ruby-trunk-changes 2022-03-18

今日は Proc#parameters で lambda かどうかのフラグを結果に反映する変更や String#bytesplice メソッドの新規追加などがありました。

[e660b934b9] Nobuyoshi Nakada 2022-03-17 09:54:49 UTC

Struct.new の最後に Hash オブジェクトを渡した時にキーワード引数として扱う挙動をやめて TypeError を発生させるようにしています。 [ruby-core:107893] [Bug #18632]

[4fdb10e65e] Nobuyoshi Nakada 2022-03-17 15:35:02 UTC

e660b934b98943826f888f2b73f773c6411cd199 の Struct.new の変更と同様に Kernel#raise の引数にも最後に Hash が渡された時にキーワード引数として扱う挙動をやめています。 [ruby-core:107893] [Bug #18632]

[cdf25cad6b] Nobuyoshi Nakada 2022-03-16 09:41:00 UTC

fiber pool を有効にしてビルドした時に cont.c で関数名を間違えていてビルドに失敗していたのを修正しています。

[f69a969544] Nobuyoshi Nakada 2022-03-16 09:41:45 UTC

同じく fiber pool を有効にした時の Fiber::Pool のインスンタンス生成時に TypedData_Wrap_Struct() でなく TypedData_Make_Struct() を利用するようにして潜在的メモリリークを防ぐようにしています。

[58b355175c] git 2022-03-17 15:42:30 UTC

version.h の日付更新

[29b68b89a0] John Hawthorn 2022-03-05 07:31:37 UTC

rb_class_superclass() でも Class 同士の継承関係チェックのために導入した rb_classext_t::superclasses が利用できるのでこれで高速化するようにしています。

[b6804d62f8] Jeremy Evans 2019-08-28 01:38:48 UTC

Proc#parameters が receiver が lambda? が真の時にデフォルト値のない引数が必須引数として返されるようにしています。また Proc#parameters にキーワード引数 lambda を追加して、その真偽値を receiver の lambda? だとした時の引数の解釈をして返されるようにしています。キーワード引数による指定はどういう時に使うんだろう? [ruby-core:90135] [Feature #15357]

[b8e72bd2e9] John Hawthorn 2022-03-17 18:56:00 UTC

29b68b89a0c0ea7de46c058fab746550398151f0 の rb_class_superclass() で rb_classext_t::superclasses を利用する実装を revert しています。

[1107839a7f] Shugo Maeda 2022-02-22 01:41:56 UTC

String#bytesplice というメソッドを新規追加して、バイト単位で指定した位置の文字列を指定した文字列で置き換えるという操作ができるようにしています。 [ruby-core:107707] [Feature #18598]

[2fdfd499db] Shugo Maeda 2022-03-18 02:53:36 UTC

1107839a7fed31339fc947995b7b45b8eaf4041b での String#bytesplice の追加について NEWS に追記しています。

[634e0a97eb] Jeremy Evans 2022-03-18 03:34:13 UTC

Proc#curry の rdoc 用コメントに省略可能な arity 引数で可変長引数を受け取る Proc にいくつの引数を受け取るように curry 化するのがほぼ必須であることを追記しています。