ruby-trunk-changes 2021-07-10

今日は irb の文法解析の不具合修正や、拡張ライブラリ fiddle のビルドに失敗してた場合のテストの対応などがありました。

[289fd3c801] Jeremy Evans 2021-07-10 04:44:01 UTC

irb が << メソッドの右辺(引数)とのあいだの空白を省くと誤ってヒアドキュメントと解釈してしまうことがあったので、字句解析時に Binding のローカル変数名リストを渡して << の引数にローカル変数が書かれてた時にヒアドキュメントにならないようにする修正です。わざわざダミーの代入文を頭にくっつけて Ripper::Lexer に渡すということをしてて、文脈で tokenize が変わる ruby の文法をエミュレートするのは大変ですね。 [ruby-core:102036] [Bug #17530]

[9c2851508e] git 2021-07-10 04:44:33 UTC

version.h の日付更新

[cb3eb3d7d5] Nobuyoshi Nakada 2021-07-10 08:39:25 UTC

gc.c で LIST_HEAD というマクロが sys/queue.h というヘッダで定義されていることがあって ccan/list で定義されるものと衝突するので事前に #undef しています。

[d172f8ac09] Nobuyoshi Nakada 2021-07-10 10:14:40 UTC

test/fiddle/test_memory_view.rb および test/fiddle/test_pinned.rb で拡張ライブラリ fiddle のビルドに失敗していて require が LoadError になる場合に rescue してましたがそのまま無視しているだけだったのでトップレベルの return でテストクラスの定義自体をスキップしてテスト実施しないようにしています。

[491ab2820a] Nobuyoshi Nakada 2021-07-10 12:02:26 UTC

拡張ライブラリ readline のテストで require "reline" が LoadError を発生させた時に、fiddle がビルドされていない場合に Reline モジュール自体は定義されてしまっているケースがあるので remove_const で削除しておくようにしています。