ruby-trunk-changes 2021-03-21

今日は Hash#select! などの破壊的メソッドのブロック内で freeze した時の対応や irb の組み込みコマンド ls と whereami の追加などがありました。

[7954bb056b] Kenichi Kamiya 2021-03-20 10:35:36 UTC

e019dd24df4ed7063ad80d4c2e4070141793f598 と類似で Hash#select! などの Hash の一部の破壊的メソッドでもブロック内で freeze された時に対応していなかったのを修正しています。 [ruby-core:102955] [Bug #17736]

[178a2a1a12] "S.H" 2021-03-20 11:55:58 UTC

bignumc. の不要な前方宣言を削除しています。

[71ba09632b] "S.H" 2021-03-20 12:00:29 UTC

gc.c、io.c、marshal.c からも static 関数の不要な前方宣言を削除しています。

[0b6554e65b] Nobuyoshi Nakada 2021-03-20 14:41:41 UTC

hash.c の rb_hash_update_callback() という関数から置換すべき値を引数で指定する形で hash_update_replace() という関数を切り出して rb_hash_update_block_callback() からも再利用するリファクタリング

[cfadbf2fc4] Nobuyoshi Nakada 2021-03-20 14:53:57 UTC

rb_hash_update_func_callback で Enumerable#tally の最適化のため Hash オブジェクトとしてでなく st_table として直接更新するようにした影響で RGenGC のための write barrier が不足していたみたいで、rb_hash_update_func_callback() で RB_OBJ_WRITTEN() の呼び出しを追加しています。

[298edfa4a2] Nobuyoshi Nakada 2021-03-20 15:11:08 UTC

0b6554e65b902a977012150ba3ae2b170a3c061e で切り出した hash_update_replace() を hash_aset() でも利用するようにリファクタリングしています。

[2d66f8e011] git 2021-03-20 15:23:00 UTC

version.h の日付更新

[54bfa0570d] "S.H" 2021-03-20 21:57:30 UTC

class.c の xxxx_methods 系メソッドの実装でメソッドの可視性をチェックするコールバック関数 ins_methods_priv_i()/ins_methods_prot_i()/ins_methods_pub_i() から共通部分を ins_methods_type_i() として切り出すリファクタリング

[d319eb602d] Kenichi Kamiya 2021-03-20 16:57:46 UTC

7954bb056be30e86c419fe3792064d28990a4999 の Hash の一部破壊的メソッドのブロック内での freeze の挙動の修正についてのテストを追加しています。 [ruby-core:102955] [Bug #17736]

[d36ac283d1] Nobuyoshi Nakada 2021-03-21 00:42:29 UTC

7954bb056be30e86c419fe3792064d28990a4999 の Hash の破壊的メソッドのブロックでの freeze 対応をより包括的にするため tbl_update() の内部で rb_hash_modify() を呼ぶようにしています。 [ruby-core:102955] [Bug #17736]

[5f72962a09] Takashi Kokubun 2021-03-18 07:28:04 UTC

標準添付ライブラリ irb に組み込みコマンド ls を追加しています。ローカル変数の一覧や現在の context にあわせて定数やメソッド一覧を表示するようです。

[232433f224] Takashi Kokubun 2021-03-18 08:18:42 UTC

標準添付ライブラリ irb に whereami というコマンドを追加しています。現在の Binding の周辺数行のソースコードを表示するみたいです。

[21863470d9] Kazuki Tsujimoto 2021-03-21 06:12:54 UTC

pattern match のなかで式を評価した結果にマッチすることを指定できる "^" 演算子のサポートを追加しています。 [ruby-core:101546] [Feature #17411]

[d0b044a842] Takashi Kokubun 2021-03-21 06:15:51 UTC

232433f22423fb6a3ff7a610140c711a964d3b3d で追加した irb の組み込みコマンド ls で行の折り返しの対応を追加しています。

[75b38f1894] Takashi Kokubun 2021-03-21 06:48:10 UTC

d0b044a842ec03525ab839eb79864899ad81bed3 の追加修正。誤って既に Integer になっていた cols 変数の size メソッドを呼んでた(Integer#size は整数のメモリ上の幅を返すメソッドがあるので NoMethodError にはなってなかった)のを修正しています。

[450d1f2c5c] Takashi Kokubun 2021-03-21 06:56:57 UTC

5f72962a0955d62dfbac2f7553b725b9d1e9e60dirb の ls コマンド追加のテストで端末幅によって変化する空白の数を許容するようにしています。

[94254117ee] Takashi Kokubun 2021-03-21 07:01:07 UTC

5f72962a0955d62dfbac2f7553b725b9d1e9e60dirb のコマンド ls の表示端末幅を考慮する時に両端のマージンぶん考慮するようにしています。

[cb396d4214] Nobuyoshi Nakada 2021-03-21 08:53:20 UTC

cygwin/GNUmakefile.in から defs/gmake.mk を include していたのを template/GNUmakefile.in を include するように変更しています。template/GNUmakefile.in も defs/gmake.mk を include しているので、より広い範囲を include するようにしているみたいです。