ruby-trunk-changes 2021-12-31

今日は名前をつけない rest 引数や keyword rest 引数をそのまま別のメソッドに委譲できるようにする文法の拡張などがありました。
これで2021年の ruby trunk changes はおそらく 10879 個のコミットにコメントしました。みなさまよいおとしを。

[db547a3bc4] Nobuyoshi Nakada 2021-12-28 04:54:16 UTC

拡張ライブラリ win32ole の WIN32OLE_VARIABLE といクラスの allocator を未定義にして直接 allocate できないようにしています。

[d5fc3fa4db] nagachika 2021-12-29 10:31:47 UTC

85a426dc8678f04a78ffd799943b690ce2984c494e007d705c7879a843cba4ef9d4bea8a422de3f9Windows 環境での YJIT サポートのため mprotect() を代替実装した時のビットフラグのチェックに使う演算子が間違ってたのを修正しています。

[2d2ee338f3] Alan Wu 2021-12-30 03:06:19 UTC

yjit_iface.c の PTR2NUM() という関数マクロの定義で ssize_t がポインタと同じ幅(精度)を持っているという前提でキャストしていたのを intptr_t にキャストした上で rb_int2inum() で変換するように修正しています。

[f53dfab95c] Jeremy Evans 2021-11-19 17:38:22 UTC

メソッド定義の時に名前をつけずに rest 引数(*args みたいな) や keyword rest 引数 (**kwargs みたいな)を受け取るように書いた時に、それをそのまま委譲してメソッド呼び出しする記法を追加しています。おーなるほどー。これは委譲のための呼び出し時にはかっこは必須なのかな。ルールの追加部をみるかぎりだとどっちでもよさそうだけど衝突は避けられるのかな。あと "*" は委譲する時に複数回書けるようです(m(*, *) みたいに書くと同じ引数群を2回書いたように渡される)。 [ruby-core:106175] [Feature #18351]

[a2f47cf8e3] git 2021-12-30 22:37:58 UTC

version.h の日付更新

[87c03694e6] Burdette Lamar 2021-12-30 22:46:24 UTC

IO#tell や IO#read、IO#gets などのメソッドの rdoc 用コメントのサンプルの手直しや IO クラスのドキュメントに改行文字の指定や影響を受けるメソッドについてなどの説明を追記しています。 https://github.com/ruby/ruby/pull/5367

[93591d31b0] Nobuyoshi Nakada 2021-12-30 14:32:35 UTC

template/prelude.c.tmpl が生成するコードで prelude オブジェクトを deprecated になった rb_cData のインスタンスとして作ってたところがあったので rb_cObject のインスタンスとして作るように修正しています。

[a493732c8e] NAKAMURA Usaku 2021-12-31 11:13:11 UTC

YJIT が利用可能かどうかを示すマクロ YJIT_SUPPORT_P を真にする条件を 85a426dc8678f04a78ffd799943b690ce2984c4991b7be7708797d8d3057fb6f2223645b4b85be71 に続いて再度変更して、mswin で x64 環境(_M_AMD64 というあまりみなれないマクロを使ってます)で YJIT が有効になるようにしています。 VC では __x86_64__ が有効にならないということかな。