ruby-trunk-changes 2024-02-22

今日は拡張ライブラリ date の Date._parse に Symbol が渡された時にエラーにする変更や拡張ライブラリ zlib の Zlib::GzipFile#eof? の不具合修正などがありました。

[01c7e16c0c] Nobuyoshi Nakada 2024-02-21 10:26:22 UTC

miniruby のビルド時に dmyext.c を利用しないようにして miniinit.c 内に Init_ext() 関数を定義するようにしています。また dmyenc.c の先頭に追加したコメントに miniruby、static link しているかどうかでの説明を分けてより詳しく書いています。

[402690c3b6] Peter Zhu 2024-02-20 22:18:11 UTC

T_IMEMO 型オブジェクトのメモリ使用量を返す imemo_memsize() で switch 文の default 節で rb_bug() で異常終了させるようにして、漏れていたタイプの case を追加しています。

[96f21e9dd1] Kevin Newton 2024-02-21 15:26:49 UTC

コマンドラインオプションのテストで --parser=prism を使っていて locale が UTF-8 でない時にスキップしていたテストを実行するように戻しています。

[2e6f8554f8] Nobuyoshi Nakada 2024-01-29 16:27:33 UTC

拡張ライブラリ date で Date.parse などで Symbol が渡された時に警告を出しつつ文字列に変換して対応していたのをやめて TypeError が発生するようにしています。

[330830dd1a] Peter Zhu 2024-02-20 20:58:10 UTC

T_IMEMO 型オブジェクトを生成する rb_imemo_new() の wrapper マクロ IMEMO_NEW() を定義して各所でこれを利用するようにリファクタリングしています。T_IMEMO の構造体レイアウトの詳細を意識させず個別のタイプごとに必要なメンバーを初期化させるようにしています。

[d9ebb65b79] Nobuyoshi Nakada 2024-02-21 16:35:53 UTC

標準添付ライブラリ pp のテストに RubyVM::AbstractSyntaxTree::Node の表示のテストがあったのが AST の内部構造の変更でエラーになってたので RUBY_VERSION で分岐するようにしています。

[0f1ca9492c] Kevin Newton 2024-02-12 19:40:07 UTC

ISeq のバイナリフォーマットのダンプのフォーマットに prism 用のフラグを追加しているようです。

[82a4c3af16] Kevin Newton 2024-02-14 15:58:20 UTC

RubyVM::AbstractSyntaxTree.of で AST が prism で作られたものの時は例外を発生させるようにしています。

[37b8fc7477] Nobuyoshi Nakada 2021-09-05 12:51:14 UTC

標準添付ライブラリ pp の PP.pp の実装でインスタンスを作る時に PP.new していたのを receiver を指定しないようにしています。 PP を継承したサブクラスを作った時にその pp メソッドで継承した子クラスのインスタンスを返せなくなってしまうので。

[6e704311bb] Nobuyoshi Nakada 2021-09-05 13:19:48 UTC

標準添付ライブラリ pp の Hash の文字列化の処理の一部をメソッドに切り出すリファクタリング

[2edc14be69] Nobuyoshi Nakada 2023-12-06 01:37:14 UTC

標準添付ライブラリ fileutils に rdoc によるドキュメント化を抑制する :nodoc: タグを追加しています。

[5ab6b3181f] Nobuyoshi Nakada 2024-02-21 16:52:59 UTC

標準添付ライブラリ fileutils の FileUtils::VERSION に rdoc 用コメントを追加しています。

[c2812fb616] Samuel Giddins 2024-02-07 20:26:31 UTC

rubygems の専用の YAML 実装で Psych.safe_load に渡す aliases の引数の値をわざわざ private な定数を定義してそれを使うようにしています。なんでだろ。

[5dcc7a0326] Samuel Giddins 2024-02-09 18:15:40 UTC

c2812fb616a9a0f31bbc3906a8ec9bad9faec498 の再修正で rubygemsYAML 実装の Psych.safe_load に渡す aliases 引数の値を定数ではなくモジュールのインスタンス変数にして、特異メソッドで設定可能にしています。

[466ed0e1ac] Samuel Giddins 2024-02-11 03:52:13 UTC

rubygems の独自の YAML 実装 Gem::SafeYAML の 5dcc7a03267216feaa587017ef5d6d075b62f75b で aliases 引数を設定可能にした変更に対応するテストを追加しています。

[997470b7b6] Samuel Giddins 2024-02-14 08:50:52 UTC

5dcc7a03267216feaa587017ef5d6d075b62f75b の追加変更で rubygems の Gem::SafeYAML の aliases 引数の設定を変更するメソッドしか追加してなかったので現在値をチェックする Gem::SafeYAML.aliases_enabled? を追加しています。

[8bc51a393a] Samuel Giddins 2024-02-20 19:03:28 UTC

466ed0e1ace6ebf069d444d666f0db3f9224a4b9 で追加した rubygemsYAML のテストで Psych のバージョンによって発生する例外クラスが異なるのを両対応するようにしています。

[fce780473c] Burdette Lamar 2024-02-21 20:42:23 UTC

doc/command_line/field_processing.md というドキュメントファイルを追加しています。コマンドラインオプションのうち行指向フィルタとして挙動する特別なやつらの説明みたいですね。 https://github.com/ruby/ruby/pull/10008

[80ffa3006c] Kevin Newton 2024-02-21 20:27:11 UTC

prism 向けの vm_eval.c の関数の修正。

[0be09967fe] Alan Wu 2024-02-21 22:42:23 UTC

YJIT の String#byteslice の実装でスタックから値を取り出すタイミングを jit_prepare_call_with_gc() の後に修正しています。 https://github.com/ruby/ruby/pull/10060

[5f00b2dcb6] Takashi Kokubun 2024-02-21 23:05:40 UTC

VM_CHECK_MODE が指定されているデバッグ用のビルドで vm_check_canary() というマクロで表示する VM の情報の VM 命令の位置情報の不具合修正。 https://github.com/ruby/ruby/pull/10062

[35f68e7dff] Takashi Kokubun 2024-02-21 23:09:17 UTC

YJIT の Rust 実装の Assembler.push_insn で sp のチェックをする assertion を追加しています。 https://github.com/ruby/ruby/pull/10061

[7acc8bbea5] "dependabot[bot]" 2024-02-22 02:18:11 UTC

GitHub Actions の workflows で利用している ruby/setup-ruby アクションのバージョンを更新しています。

[9f8f32bf9f] Martin Emde 2023-12-21 22:11:02 UTC

拡張ライブラリ zliv の Zlib::GzipFile#eof? でたまたまバッファの終端とファイル全体の終端が一致した時に true を返しそこねていたのを修正しています。 https://github.com/ruby/zlib/issues/56

[97a39ccc2c] Nobuyoshi Nakada 2024-02-22 04:24:42 UTC

dln.c の init_funcname() を build_funcname() と改名しさらにその内容を concat_funcname() という関数に切り出すリファクタリング

[b7f5c80036] ydah 2024-02-21 13:12:47 UTC

parse.y で省略可能な terms ノードのために opt_terms というルールを使っていたのを terms? というのを使うようにしています。これは Lrama の拡張かな?

[6a0b05f413] Samuel Williams 2024-02-22 09:35:54 UTC

SAVE_ROOT_JMPBUF() というマクロはなにも機能しなくなっていたので削除して引数をそのまま展開して書くようにしています。 https://github.com/ruby/ruby/pull/10066

[7d112b04c7] yui-knk 2024-02-21 04:43:17 UTC

parse.y の Hash リテラルのキーの重複チェックのための st_table の hash 関数 literal_hash() で node のタイプが NODE_ENCODING の時の戻り値に VALUE の値を使うのではなく rb_encoding のポインタそのままを使うようにしています。

[133d774382] Nobuyoshi Nakada 2024-02-22 10:02:34 UTC

コマンドラインオプションのテストに -W でのカテゴリごとの指定のテストの網羅性を上げています。

[6478514502] Jun Aruga 2024-02-20 16:29:33 UTC

GitHub Actions の workflow でテストを skip させるための TESTS 変数の加工の処理を別の step として切り出しています。

[d597335c6d] Nobuyoshi Nakada 2024-02-22 11:18:49 UTC

eval.c の rb_ec_exec_node() で 6a0b05f413931cf24c149c29cc317d2b9c623885 の SAVE_ROOT_JMPBUF() の削除で未使用になっていた変数の宣言を削除しています。