There's an echo in my head


M1 Mac で Ruby 3.2.0 をインストールした際に libyaml でちょっとハマった

Ruby 3.2 から libyaml や libffi などのソースコードがバンドルされなくなった*1らしく、その影響で次のようなエラーが出た。どうやら libyaml が見つからないらしい。

$ rbenv install --verbose 3.2.0
yaml.h not found
  Could not be configured. It will not be installed.
  Check ext/psych/mkmf.log for more details.
*** Fix the problems, then remove these directories and try again if you want.
Generating RDoc documentation
/private/var/folders/jr/yc04bj413qscqvvgr4b31j7w0000gn/T/ruby-build.20230106185644.21896.yeUJhx/ruby-3.2.0/lib/yaml.rb:3: warning: It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
uh-oh! RDoc had a problem:
cannot load such file -- psych


$ brew install libyaml
$ brew link libyaml
$ export LDFLAGS="-L/opt/homebrew/lib $LDFLAGS"
$ export CFLAGS="-I/opt/homebrew/include $CFLAGS"
$ rbenv install 3.2.0



  • 僕の環境では ruby-build 向けに RUBY_CONFIGURE_OPTS="--with-yaml-dir=$(brew --prefix libyaml)" みたいに設定してあって、 libyaml のパスが ruby./configure に渡されるようにしてあった。しかし、いつからかこの configure オプション自体が消えたため、 libyaml のパスが渡されなくなっていた
  • Intel Mac 時代の homebrew は brew link すれば /usr/local/lib や /usr/local/include にライブラリをリンクしてくれていたので、^のオプションがなかったとしてもコンパイラのデフォルト設定で見つかっていた。しかし、 M1 Mac からは brew link しても /opt/homebrew/lib や /opt/homebrew/include にリンクされるだけで /usr/local 配下には入らないので、コンパイラが見つけることができなくなった
  • なので、 LDFLAGS や CLAGS を使って libyaml などのライブラリがある場所を指定する必要が出てきた


ついでに、 ruby 3.2.0 の configure オプションの一覧もメモしておく。

$ ./configure --help
`configure' configures this package to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking ...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]

Program names:
  --program-prefix=PREFIX            prepend PREFIX to installed program names
  --program-suffix=SUFFIX            append SUFFIX to installed program names
  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
  --target=TARGET   configure for building compilers for TARGET [HOST]

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-load-relative  resolve load paths at run time
  --enable-rpath          embed run path into extension libraries. enabled by
                          default on ELF platforms
  --enable-devel          enable development build
  --disable-werror        don't make warnings into errors even if a compiler
                          support -Werror feature [[disabled by default unless
                          development version]]
                          disable -D_FORTIFY_SOURCE=2 option, which causes
                          link error on mingw
  --disable-largefile     omit support for large files
  --enable-mathn          enable canonicalization for mathn
  --enable-setreuid       use setreuid()/setregid() according to need even if
  --enable-multiarch      enable multiarch compatible directories
  --enable-shared         build a shared library for Ruby
  --disable-pie           disable PIE feature
  --enable-dtrace         enable DTrace for tracing inside ruby. enabled by
                          default on systems having dtrace
  --enable-gcov           enable coverage measurement by gcov
  --disable-install-doc   do not install either rdoc indexes or C API
                          documents during install
  --disable-install-rdoc  do not install rdoc indexes during install
  --disable-install-capi  do not install C API documents during install
  --disable-jit-support   disable JIT features
  --enable-yjit           enable in-process JIT compiler that requires Rust
                          build tools. enabled by default on supported
                          platforms if rustc 1.58.0+ is available
                          do not install static ruby library
  --disable-dln           disable dynamic link feature
  --enable-debug-env      enable RUBY_DEBUG environment variable
  --enable-mkmf-verbose   enable verbose in mkmf
  --disable-rubygems      disable rubygems by default

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-baseruby=RUBY    use RUBY as baseruby; RUBY is the pathname of ruby
  --without-git           never use git
  --without-gcc           never use gcc
                          OS version number for target and target_os [[full]]
  --with-arch=ARCHS       build an Apple/NeXT Multi Architecture Binary (MAB);
                          ARCHS is a comma-delimited list of architectures for
                          which to build; if this option is disabled or
                          omitted entirely, then the package will be built
                          only for the target platform
                          enable debug section compression
  --with-gmp-dir=DIR      specify the prefix directory where gmp is installed
  --without-gmp           disable GNU GMP to accelerate Bignum operations
  --with-opt-dir=DIR-LIST add optional headers and libraries directories
                          separated by $PATH_SEPARATOR
  --with-winnt-ver=0xXXXX target Windows NT version (default to 0x0600)
                          specify the thread implementation to use
  --with-jemalloc         use jemalloc allocator
                          specify the coroutine implementation to use
  --with-dln-a-out        dln_a_out is deprecated
  --without-mjit-tabs     expand tabs in mjit header
                          link external modules statically
  --without-valgrind      disable valgrind memcheck support
  --with-ext=EXTS         pass to --with-ext option of extmk.rb
  --with-out-ext=EXTS     pass to --without-ext option of extmk.rb
  --with-setup=SETUP      use extension libraries setup
                          prefix for ruby libraries [[LIBDIR/RUBY_BASE_NAME]]
  --with-soname=SONAME    base name of shared library
  --with-setjmp-type      select setjmp type
  --with-rdoc=ri,html     comma/space separated list of RDoc formats to
                          prefix for architecture dependent ruby libraries
                          prefix for architecture dependent site libraries
  --with-ridir=DIR        ri documentation [[DATAROOTDIR/ri]]
  --with-ruby-version=STR ruby version string for version specific directories
                          [[full]] (full|minor|STR)
  --with-sitedir=DIR      site libraries in DIR [[RUBY_LIB_PREFIX/site_ruby]],
                          "no" to disable site directory
  --with-sitearchdir=DIR  architecture dependent site libraries in DIR
                          [[SITEDIR/SITEARCH]], "no" to disable site directory
  --with-vendordir=DIR    vendor libraries in DIR
                          [[RUBY_LIB_PREFIX/vendor_ruby]], "no" to disable
                          vendor directory
                          architecture dependent vendor libraries in DIR
                          [[VENDORDIR/SITEARCH]], "no" to disable vendor
  --with-search-path=DIR  specify the additional search path
  --with-rubyhdrdir=DIR   core headers in DIR
                          architecture dependent core headers in DIR
  --with-sitehdrdir=DIR   core site headers in DIR [[RUBYHDRDIR/site_ruby]]
                          architecture dependent core site headers in DIR
  --with-vendorhdrdir=DIR core vendor headers in DIR
                          architecture dependent core vendor headers in DIR
  --with-mantype=TYPE     specify man page type; TYPE is one of man and doc
  --with-ruby-pc=FILENAME pc file basename
  --with-destdir=DESTDIR  specify default directory to install

Some influential environment variables:
  cflags      additional CFLAGS (ignored when CFLAGS is given)
  cppflags    additional CPPFLAGS (ignored when CPPFLAGS is given)
  cxxflags    additional CXXFLAGS (ignored when CXXFLAGS is given)
  AR          Archiver command
  AS          Assembler command
  CC          C compiler command
  CXX         C++ compiler command
  LD          Linker command
  NM          Symbol list command
  OBJCOPY     Objcopy command
  OBJDUMP     Objdump command
  RANLIB      Ranlib command
  STRIP       Strip command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CXXFLAGS    C++ compiler flags
  CPP         C preprocessor

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to the package provider.

*1: の "No longer bundle 3rd party sources" を参照


上映前の CM で見るたびに気になっていたけど、今日やっと見ることができた。そのために頑張って7時に起きた。

良かった。夏のアニメってこうだよね、というのが前面に出ていた。 あの年頃の見た目に対するコンプレックスの大きさが懐かしかった。

エンディングで鳴り始める never young beach の同名曲も心地よく、上映後しばらく耳から離れなかった。



美術がとても綺麗だった。 また、主人公のすずが学校の帰り道に川縁でゆっくりと歌うときの深い歌声には特に心惹かれた。何度でも聴き返したいぐらい。


加えて最後、すずが東京まで出てやっとのことで恵たちを見つけたのに、その後それ以上の関わりを持っていくことを匂わせるような描写が一切無く、スッと地元に帰ってきて友達や大人と笑ってるのを見て、 あれ、何もせずに帰ってきた?なんでこの人たち楽しそうに笑ってるんだ? 家庭内暴力に遭っている子供に「僕も闘う」と言わせて、それで終わってはダメでは?と言う疑問がグルグルと残った。


もしかしたらどうすべきかをあえて明示せず視聴者に考えさせることを狙ったのかも?いや仮にそうだとしても、子供を虐待に立ち向かわせてヨシとするのはダメだよなあ。 それに物語としても「助けると口では言うけど実際には何もしてくれない人たち」と同じに見えてしまっているし。 (万が一にでもないと思うけど、すずの眼力に怯んで父親は腰を抜かして去っていったけど、あれで解決じゃないよね?)






ゴジラのボテっとした感じが実家猫に似ているなあと思いながら見ていた。 ゴジラが「今日のところはこの辺にしといてやるか」という雰囲気で帰っていくのを見て、怪獣でもそういう判断することがあるんだなと面白かった。

ゴジラが日本版ゴジラっぽい風体だったので、ハリウッド版でもこうしてもらえることがあるのかと新鮮だった。 日本版だと放射線をそんなに吐かないイメージだったけど、こっちではちょこちょこ吐いていて、日常的に使える能力のようだった。



シン・エヴァンゲリオン劇場版 :||


毒気を根こそぎ抜かれるかのような、これ以上ないほど晴れ渡るような終わり方だった。 この問題はシンジくん側の人間にだけでなく、ゲンドウについても寄り添わないと解決しないということに本作を見て初めて気づいたし、そこを深掘りして整えてくれた。踏み込むべきはそこだったんだ。 世界観についての謎は最終作にも関わらずさらに増えたけど、でも物語としてはこれでちゃんとケリがついたように思う。

序、破、Qは劇場では見ていなかった。ちょうどアニメから離れていた頃だったんだと思う。 ただ、2013年の東京Ruby会議10の追加開催のサブタイトルに本作をもじった「シン・東京Ruby会議10 劇場版 ||=」をつけていたことを考えると、そこからだけでも8年経っていたわけで、長い。 新劇場版の制作がガイナックスではなくカラーになった話も考えると、お疲れ様でした、というほかない。