Ruby で YAML を扱うなら libyaml のラッパーである Psych を使うべきなのだけど、Psych ができる前から YAML を使っているところでは Syck パーサーを今でも使っているところがあって、Zendesk がそうらしいのだけど、syck gem が最近の Xcode でビルドできないとか、新しい Ruby だとビルドできないのでリリースしてくれないかという依頼が来たのでリリースしておいた。
https://github.com/ruby/syck/releases/tag/v1.5.0
で、雑にリリースしたら SEGV する症状があったかも、やっぱなかったかも、とか、不要なファイルが混ざっているかもというリリースミスがあったりして、内容に何も変更がないものの 1.5.1.1 までバージョンを進めてリリースしていた。
https://github.com/ruby/syck/releases/tag/v1.5.1.1
ひとまずこの状態なら syck パーサーを使えるという状態ではあるので、どうしても必要というプロジェクトはご利用ください。
https://bugs.ruby-lang.org/issues/20687 に書いたのだが、archlinux で ruby-build を使って tarball から ruby を入れようとすると pacman で ruby を入れてるのに erb が見つからないと言われて落ちるという報告があった。
「はて?」と調べたら archlinux では default gems を別のパッケージに切り出して、なおかつそれらを ruby というパッケージをインストールしたときには入らないという驚くべき状態になっているということをしった。なので、baseruby であるとか、そういう用途に ruby を使うときは ruby-stdlib も入れてください。
それはそれとして、tarball から ruby を入れるときに baseruby って必要なくない?なんでいるの?というのを nobu に聞いたら、ruby があるときは enc などの下を更新する必要があるかをチェックするために ruby を使うようになっていて、逆に ruby がないならそれはしないという複雑きわまりない build system になっているからということだった。
複雑すぎて普通のユーザーには無理すぎるので、ruby-build で tarball を使ったインストールのときは --without-baseruby
とかそういうフラグを付けて ruby を使わないようにしたほうがいいかもしれない。