トップ «前の日記(2024/08/20 (火) ) 最新 次の日記(2024/08/22 (木) )» 編集 RSS feed

HsbtDiary


2024/08/21 (水) [長年日記]

Syck を久しぶりにリリースした

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 パーサーを使えるという状態ではあるので、どうしても必要というプロジェクトはご利用ください。

archlinux で ruby のパッケージをいれるなら ruby-stdlib も必要

https://bugs.ruby-lang.org/issues/20687 に書いたのだが、archlinux で ruby-build を使って tarball から ruby を入れようとすると pacman で ruby を入れてるのに erb が見つからないと言われて落ちるという報告があった。

「はて?」と調べたら archlinux では default gems を別のパッケージに切り出して、なおかつそれらを ruby というパッケージをインストールしたときには入らないという驚くべき状態になっているということをしった。なので、baseruby であるとか、そういう用途に ruby を使うときは ruby-stdlib も入れてください。

Ruby のインストールで tarball でも ruby があれば使ってしまう

それはそれとして、tarball から ruby を入れるときに baseruby って必要なくない?なんでいるの?というのを nobu に聞いたら、ruby があるときは enc などの下を更新する必要があるかをチェックするために ruby を使うようになっていて、逆に ruby がないならそれはしないという複雑きわまりない build system になっているからということだった。

複雑すぎて普通のユーザーには無理すぎるので、ruby-build で tarball を使ったインストールのときは --without-baseruby とかそういうフラグを付けて ruby を使わないようにしたほうがいいかもしれない。