ruby-trunk-changes 2024-05-21

今日は主に ripper の DSL の拡張とそれを利用した parse.y の ripper 用アクションのリファクタリングなどがありました。

[f1bbcc8126] Yusuke Endoh 2024-05-20 06:25:22 UTC

GitHub Actions の macOS 版の workflow で sysctl で core dump が出力されるようにカーネルパラメーターを設定しています。

[1ba93c2c4d] Yusuke Endoh 2024-05-20 05:53:36 UTC

f1bbcc81261aeeb304d0d0b52d7c2310c01089a8 の続きで GitHub Actions の macOS 版で core dump ファイルを S3 にアップロードするようにしています。

[f021bcdbbe] Jeremy Evans 2024-05-10 19:51:30 UTC

引数の処理で生成される中間オブジェクト(Array/Hash)の確認をするテストにメソッドが ruby2_keywords で修飾されているケースのテストを追加しています。

[2433b57b6a] Jeremy Evans 2024-05-11 19:12:52 UTC

ruby2_keywords で修飾されているメソッドでの最後の引数の Hash をキーワード引数として扱う時の不要な Hash 生成を抑制する修正。

[86cf074fa1] Jeremy Evans 2024-05-15 00:03:46 UTC

ruby2_keywords で修飾されているメソッドで不要な引数の配列の複製を抑制する変更。

[30aa300f84] "dependabot[bot]" 2024-05-21 02:13:47 UTC

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

[5fed63f7b0] Nobuyoshi Nakada 2024-05-09 03:00:29 UTC

parse.y の単項演算子の "-" の ripper 用のアクション用のコメントで次の 2d92a4afba36034f3d92ab75dfae4dbf5a445c7e で拡張される ripper 用の DSL の記法を利用するようにしています。

[2d92a4afba] Nobuyoshi Nakada 2024-05-10 11:02:16 UTC

拡張ライブラリ ripper の DSL に $:$ で reduce 後の値、$:1 のような記法で leaf の値を get_value() で VALUE 値に変換したものを返すように記法を拡張しています。またこれを利用して ripper 用のアクションの記述をリファクタリングしています。

[2e765c20db] Nobuyoshi Nakada 2024-05-10 14:08:25 UTC

ripper 用の DSL 定義 ext/ripper/tools/dsl.rb で Refinements を使って Array#to_s を上書きして ripper 用 DSL で配列を書くと rb_ary_new_from_args() の呼び出しに展開されるようにしています。また parse.y でこの記法を利用するようにリファクタリングしています。

[ee8bbbabe5] Nobuyoshi Nakada 2024-05-12 02:34:01 UTC

parse.y の after_reduce() と after_pop_stack() というフック関数の ripper 用の定義で先に rb_ary_pop() で配列の末尾要素を取り出してデバッグ用メッセージ出力時の rb_ary_entry() での末尾要素の参照のかわりにも使いまわすようにリファクタリングしています。

[147134b474] Nobuyoshi Nakada 2024-05-12 02:44:45 UTC

拡張ライブラリ ripper で rb_ripper_none というグローバル変数を削除して、parse.y で空の "()" と none を区別するように? しています。

[47efdae602] Nobuyoshi Nakada 2024-05-12 02:59:44 UTC

ripper 用の DSL 用の ext/ripper/tools/dsl.rb でインデントを保持したままコード生成するようにしているようです。

[66446b9435] Nobuyoshi Nakada 2024-05-12 09:52:26 UTC

ext/ripper/tools/dsl.rb の ripper 向け DSL で ripper[error]: のように "[]" でくくって書くオプション内に "(,)" のような記法があったらそれはオプションのデリミタのカンマとして扱わないようにしています。

[e61e5c3b84] Nobuyoshi Nakada 2024-05-12 10:04:25 UTC

parse.y で ripper 用の ripper_const_decl() という関数定義を削除して const_decl() に委譲するようにしています。

[56d2c26c85] Nobuyoshi Nakada 2024-05-12 10:17:15 UTC

parse.y の ripper 用の関数 ripper_assignable() も削除して assignable() の中に処理を移動しています。

[5bba5fb739] Nobuyoshi Nakada 2024-05-12 10:52:18 UTC

parse.y の var_ref ルールの ripper 用アクションで DSL を利用するように書きなおしています。

[4c7ec5e014] Nobuyoshi Nakada 2024-05-12 10:55:44 UTC

ripper 用の DSL ext/ripper/tools/dsl.rb で $:1 のような記法にさらに [] で添字つきアクセスにも対応するように拡張しています。

[be0f2ab32d] Nobuyoshi Nakada 2024-05-12 11:01:05 UTC

parse.y の 1行メソッド定義の構文などのルールで 4c7ec5e0148bda451631d738af95d528a507557f で拡張した DSL の配列のアクセスを利用した記法を利用するようにしています。

[3e81bc3d53] Nobuyoshi Nakada 2024-05-12 11:05:17 UTC

parse.y のブロックパラメーター(ブロック内の |v1, v2| みたいな部分)の ripper 用アクションでも 4c7ec5e0148bda451631d738af95d528a507557f で拡張した ripper 用 DSL の配列参照の記法を利用するようにしています。

[978c31f04a] Nobuyoshi Nakada 2024-05-12 11:14:22 UTC

さらに parse.y で拡張された DSL 記法を利用するようにリファクタリングしています。

[501dbf2bca] Nobuyoshi Nakada 2024-05-12 11:20:23 UTC

parse.y のキーワード引数の構文でも拡張された ripper 用DSL の記法を利用するようにしています。

[c773453c77] Nobuyoshi Nakada 2024-05-12 11:23:38 UTC

parse.y の引数の途中に rest 引数の記法が挟まってる時のルールの処理に DSL を活用するようにしています。

[8277cf0799] Nobuyoshi Nakada 2024-05-21 08:03:34 UTC

macOS でのビルド時に ar, ld, nm などのコンパイラツールチェインのコマンド群をコンパイラ(clang)と同じパスにあるものをセットするようにしています。 [ruby-core:117947] [Bug #20499]