ruby-trunk-changes 2020-05-29

今日は BASERUBY が 2.2 より古い時は BASERUBY が必要な場合(パッケージでなくリポジトリからのビルドなど)はエラーになるようにする変更や ripper の DSL で $$ という変数参照を使えるようにする変更などがありました。

[9a3371be8f] Jeremy Evans 2020-03-03 20:24:02 UTC

参照しているチケットは tool/vcs.rb が SyntaxError になるというものですが、変更は configure で BASERUBY のバージョンが 2.2 以降であることを要求するようにする内容になっています。 [ruby-core:97325] [Bug #16668]

[07b2102a88] Jeremy Evans 2020-03-03 20:53:09 UTC

ということで 9a3371be8f5274d1dca64b93c7b9a379e32ea2f5 の続きで tool/lib/vcs.rb の古い ruby のための代替実装などを削除しています。 [ruby-core:97325] [Bug #16668]

[b8fadf3a6b] Nobuyoshi Nakada 2020-05-28 17:43:30 UTC

bignum.c のデバッグ用の BIGNUM_DEBUG というマクロが常に 0 になってたので、コマンドラインオプションで 1以上に定義されてたらそれが影響するようにしています。ついでに GitHub Actions でそのテストをしていたところがマクロ名を typo していたので修正。

[fd7849cedb] git 2020-05-28 17:45:11 UTC

version.h の日付更新

[c7ceaa6d3c] Aaron Patterson 2020-05-28 21:13:15 UTC

gc_compact_after_gc() から移動したオブジェクトの slot を解放する処理を gc_unlink_moved_list() という関数に切り出すリファクタリング

[d32e2bb02d] Nobuyoshi Nakada 2020-05-24 11:12:32 UTC

ext/ripper/tools/dsl.rb で $$ というグローバル変数? を別に新規作成したグーバル変数 $dollar への alias として上書きしています。グローバル変数の alias なんてできたんだ。 ripper の DSL 内で yacc っぽい $$ が使えるようにするためのようです。

[6ba2d3e4c6] Koichi Sasada 2020-05-29 02:19:44 UTC

internal.h の ruby_debug_breakpoint() と ruby_debug_printf() の宣言を RUBY_SYMBOL_EXPORT_BEGIN と RUBY_SYMBOL_EXPORT_END で囲んで mswin 環境で export されるようにしています。

[03d7f3cdb2] Koichi Sasada 2020-05-29 02:23:17 UTC

RubyVM::InstructionSequence#disasm で出力する命令列の表示のインデントを修正。

[d300a73441] Koichi Sasada 2020-05-29 04:50:58 UTC

RUBY_DEBUG が未定義で clang の 7 以降の時に RBIMPL_ASSERT_OR_ASSUME() は RBIMPL_ASSUME() を使って __builtin_assume() というのを使ってコンパイラに最適化のヒントを与えるようになっていましたが、Clang で _builtin_assume() の挙動に不具合っぽいものがあったそうで RUBY_ASSERT_NOASSUME というマクロを定義すると __builtin_assume() を使うのもやめるようにしています。

[0bd025ad69] Takashi Kokubun 2020-05-29 05:45:27 UTC

debug counters に MJIT で VM 命令の leave をコンパイルしたもので割り込みを検出してキャンセルする処理に入った時のカウンター mjit_cancel_leave を追加しています。