ruby trunk changes (original) (raw)

今日は macOS 15.0 での環境の不具合に対応する修正や -> による lambda 記法の SyntaxError の修正などがありました。

今日はなぜか変更が多かったです。主に YJIT の Module#name のインライン化最適化対応、拡張ライブラリ socket の rb_io_t のレイアウトに依存しないようにする利用 API の変更、bundler/rubygems の修正、default gems に win32 から分離した win32-registry の追加などがありました。

今日は拡張ライブラリ json の upstream の変更への対応や json の更新、拡張ライブラリ win32 から win32-sspi を独立したリポジトリに分離する(標準添付からはずす)変更などがありました。

今日は主に IO#readline の delimiter 指定時の Encoding に依存した不具合修正標準添付ライブラリ reline の機能強化などがありました。

今日は主に Kernel#Float() で整数部や小数部を省略した記法の変換も許容するようにした変更などがありました。

今日は RubyVM::InstructionSequence.compile_parsey というメソッドが新規追加……されていますがこれは誤コミットの可能性があります。また IO 関連の C API で fd のかわりに rb_io_t 構造体を渡すインターフェースの追加などがありました。

[cd86393ad8] Peter Zhu 2024-10-03 20:20:16 UTC

GC のオブジェクトのインスタンス変数の mark 処理をする rb_mark_generic_ivar() において rb_gen_ivtbl_get() という関数を利用していたところをその内容の st_lookup() の呼び出しを直接実行するようにしています。rb_gen_ivtbl_get() では複数 Ractor 用の VM のロック取得をしているけど、rb_mark_generic_ivar() の呼び出し時には既にロック取得済みのはずなので不要とのこと。

[30038656aa] Kevin Newton 2024-10-04 17:57:14 UTC

RubyVM::InstructionSequence.compile の parseer として parse.y 実装を指定する compile_parsey というクラスメソッドを新規追加しています。と、思ったのですがコミットログをみると prism_compile.c の pm_compile_array_node() の off-by-one の不具合修正がメインみたいで、どうも誤ってコミットが混ざってしまってそうな気がします。

今日は Object#singleton_methods で receiver の特異クラスに include/prepend された Module のメソッドも取り出せるようにする仕様変更や、Pathname.mktmpdir の追加、GC の実装のインターフェースの変更などがありました。

[08346e7267] schneems 2020-10-27 18:54:23 UTC

拡張ライブラリ pathname に Pathname.mktmpdir という特異メソッドを追加しています。なぜ pathname に? と思うのですが要するにブロックつきで呼び出した時にブロックに渡される path 名を Pathname オブジェクトにしたい、ということみたいです。実装は tmpdir に委譲。実行時に require "tmpdir" します。