ruby-trunk-changes 2019-09-15

今日もキーワード引数の keyword splat の変換関係の変更と make-snapshot の修正がありました。

[f41cd4ba43] Nobuyoshi Nakada 2019-09-14 12:09:39 UTC

39c37acf86960ae745c4d690fe2d9dd38cd96fba で rb_alloc_tmp_buffer2() を使うようにした時にバッファサイズを +1 するのを忘れてしまっていたのを修正しています。うっ、これは気がつかなかったなぁ。

[8263459627] Takashi Kokubun 2019-09-14 12:36:41 UTC

同じく 39c37acf86960ae745c4d690fe2d9dd38cd96fba で rb_alloc_tmp_buffer2() を使うようにしたものの、確保したメモリのアンカーとして機能する VALUE v 変数が add_empty_keyword() 関数の自動変数として定義されているので関数を抜けると解放される可能性があったので、この変数を戻り値にしてしまい、そして呼び元で明示的に rb_free_tmp_buffer() で解放するようにしています。なるほどー戻り値にするという手があったか。

[6d2dcf9632] Nobuyoshi Nakada 2019-09-14 13:24:44 UTC

拡張ライブラリ io/console の IO#raw にキーワード引数 intr を追加して Ctrl-C による(たぶん)割り込みの処理の有無を指定できるようにしています。

[e9c7fc7ca9] Nobuyoshi Nakada 2019-09-14 14:47:33 UTC

tool/make-snapshot が ChangeLog 生成用に git notes を fetch しようとして失敗しても処理は続行するようにしています。 [ruby-core:94932] [Bug #16167]

[1ad4be13cb] Nobuyoshi Nakada 2019-09-14 17:07:00 UTC

tool/make-snapshot のチェックアウト済み working copy を使う -exported オプションは削除しています。 [ruby-core:94932] [Bug #16167]

[395e5f510c] git 2019-09-14 17:15:29 UTC

version.h の日付更新

[1edcfd6107] Jeremy Evans 2019-09-14 20:57:39 UTC

keyword splat を通常引数の最後に Hash として追加する処理をまとめた add_empty_keyword() に、通常引数の数がそろっていてなおかつ最後の引数が Hash じゃない時にはマージできないので警告を出した上で kw_splat フラグをクリアするようにしています。ここは 0 じゃなくて VM_NO_KEYWORDS ではないのか。

[df4a4bd88c] Nobuyoshi Nakada 2019-09-14 17:16:15 UTC

e9c7fc7ca9bc15a9f84bdc356f7b6fac12988ccb の続き。 VCS::GIT#export で git notes の ref を fetch するの自体をやめています。うーん、これはいいのかな。

[585b15d75d] Nobuyoshi Nakada 2019-09-14 18:21:41 UTC

VCS::GIT#format_changelog でコミットログから ChangeLog 生成する時の git log のオプションに --no-merges を追加してマージコミットは含めないようにしています。

[44d594189a] Nobuyoshi Nakada 2019-09-15 04:29:12 UTC

include/ruby/ruby.h の引数処理マクロ rb_scan_args_count_opt() および rb_scan_args_count() で引数に渡してる ofs を使わずにマジックナンバーを直接書いてたところを修正しています。

[6cad064424] Nobuyoshi Nakada 2019-09-15 07:23:33 UTC

e9c7fc7ca9bc15a9f84bdc356f7b6fac12988ccb の続きで VCS::GIT#export_changelog で git notes 用の refs を show-ref で取得するだけでなくこの時点で git fetch するようにしています。つまりスナップショットとか作るだけならいいけどリリース版を作るときはちゃんと git notes も準備しておこうってことですかね。と思ったけどスナップショットの時も呼ばれるんじゃないかな。 [ruby-core:94932] [Bug #16167]