ruby-trunk-changes 2019-09-01

今日は昨日のキーワード引数の変更の落穂拾いや、同様に pattern match の Hash Pattern でも **nil という記法をサポートするようにした変更などがありました。

[d4eef04883] aycabta 2019-08-31 11:55:35 UTC

標準添付ライブラリ un.rb で FileUtils のメソッド呼び出しに最後に Hash オブジェクトを渡す呼びかたをしていたのを ** をつけて keyword splat 方式で渡すように修正しています。

[431a99b556] Nobuyoshi Nakada 2019-08-31 16:44:36 UTC

昨日のキーワード引数の扱いの変更で最後の Hash を keyword rest 引数に変換したり逆に **kw みたいな keyword splat で渡された Hash を通常引数の最後に追加したりした時の警告で位置情報の表示は rb_compile_warn() にまかせるようにしています。全部 rb_compile_warn() のほうにしないのはなんでだろ?

[a060629e66] git 2019-08-31 16:56:24 UTC

version.h の日付更新

[1756ec2065] Hiroshi SHIBATA 2019-08-31 23:56:00 UTC

bundler のテストでエラーメッセージの内容チェックしているところで正規表現のマッチ条件を少し緩めています。

[c5bb074fe7] aycabta 2019-09-01 02:02:14 UTC

標準添付ライブラリ reline の Reline::LineEditor でウィンドウサイズ変更になった時の処理で再描画の必要の判定や @highest_in_this @first_line_started_from などの描画に使う変数を再計算する処理を追加しています。

[11d6094cbe] aycabta 2019-09-01 02:08:09 UTC

標準添付ライブラリ reline のバージョンを 0.0.2 に更新しています。

[e5dd63ba8c] aycabta 2019-09-01 02:19:17 UTC

irb のバージョンを 1.1.0.pre.3 に更新しています。

[e80a6f65c8] Nobuyoshi Nakada 2019-09-01 04:37:28 UTC

6a9ce1fea89bc5c6518dd6bb7ff3b824a9321976 で追加したキーワード引数を受け取らない宣言 **nil の記法のために parse.y で rb_intern("nil") するようにしてましたが、組み込みの idNil 変数で参照できるのでそれを使うようにしています。

[15757390ff] Jeremy Evans 2019-09-01 04:51:02 UTC

空の Hash を keyword splat つきで渡した時に通常引数の最後には追加しないようにする処理が C 実装のメソッドの場合は別途実装が必要だったようで追加対応しています。

[e13c0bb820] Takashi Kokubun 2019-09-01 05:54:04 UTC

3cae73133cfec7d5ec3f8058ec647d5163578003 から bd8dc2561d4983df7bf44dbc6ca194930532adc7 あたりの一連の変更で rb_define_method() などに渡すコールバック関数の型に ANYARGS を使えなくなったので、C++ で書かれた拡張ライブラリなどがビルドできなくなるそうなので NEWS ファイルにその旨追記しています。

[d646a292cd] Jeremy Evans 2019-09-01 06:05:02 UTC

Object#__send__ や #send メソッドでメソッド起動する時に **kwargs のような keyword splat 渡しのフラグが無視されてたのを修正しています。

[84dca8eff0] Yusuke Endoh 2019-09-01 06:14:27 UTC

8adefd4cf29288f6e43f20efbdd44b215ae16c7a で Solaris で標準添付ライブラリ drb のテストがうまくいかないということで skip していたのを revert しています。

[02dfa0f163] Yusuke Endoh 2019-09-01 06:24:37 UTC

キーワード引数のテストでメソッドの再定義をしているところで -w つきの時の警告抑制のため再定義前に Module#remove_method するようにしています。

[ea84a68075] Kazuki Tsujimoto 2019-09-01 07:25:01 UTC

rb_const_source_location_at() という関数に MJIT_FUNC_EXPORTED をつけて MJIT 用に export するようにしています。

[cda5745c1b] Takashi Kokubun 2019-09-01 07:31:09 UTC

MJIT のテストで環境変数 TEST_MJIT_SYMBOLS が "1" に設定されていたら実行する ruby に --jit-debug オプションを追加するようにして、.travis.yml で x86_64-linux でのテスト時にこの環境変数をセットするようにしています。 MJIT 用の export がまだ足りないみたいで、それを検出するために必要なんだそうです。

[94d6ec1d90] Kazuki Tsujimoto 2019-09-01 07:39:34 UTC

pattern matching の in でもキーワード引数と同様に **nil という記法を書けるようにサポート追加しています。 Hash の要素をマッチさせる Hash Pattern で **var のようにマッチしなかった残りを受ける記法があるので、ここでも「余りがない」ことを明示するのに **nil と書けるようにしたようです。なるほどなー。 参考URL: https://speakerdeck.com/k_tsj/pattern-matching-new-feature-in-ruby-2-dot-7?slide=32

[3be3948870] Yusuke Endoh 2019-09-01 09:57:40 UTC

84dca8eff0cbcb1c23623b47fb78b0daf5c76e35 で Solaris でのテストの skip を消してたのを revert しています。やっぱりまだ直ってなかった模様。

[04c3e34456] Takashi Kokubun 2019-09-01 10:26:22 UTC

make benchmark で利用する benchmark-driver.gem の checkout するタグのバージョンを v0.14.22 に更新しています。キーワード引数まわりの変更での警告除去したバージョンだそうです。