ruby-trunk-changes 2020-12-21

今日は Ractor#receive_if の不具合修正や Windows 10 でのコンソールでのエスケープシーケンス対応などがありました。

[730f314171] Koichi Sasada 2020-12-20 16:13:39 UTC

ractor.c の make_shareable_check_shareable() で traverse を止める判定に RB_OBJ_SHAREABLE_P() を使ってたのを rb_ractor_shareable_p() に変更しています。 rb_ractor_shareable_p() は rb_ractor_shareable_p_continue() の呼び出しも含んでて、その中でさらに rb_obj_traverse() して flags に RUBY_FL_SHAREABLE をつけているみたいなのでいいのかな。コミットログをみると shareable_p_enter() で T_CLASS/T_MODULE/T_ICLASS の時にその配下を辿らないようにしているのが必要だったみたいですが、よくわからず。

[a365ae841b] git 2020-12-20 16:15:45 UTC

version.h の日付更新

[ad534a677a] Nobuyoshi Nakada 2020-12-20 15:20:06 UTC

rubyspec の spec 名(っていうのかな、it の引数)で string/symbol と並列して fixnum を Symbol の名称として扱う記述があったので削っています。

[fb8f011422] Nobuyoshi Nakada 2020-12-20 15:40:56 UTC

rdoc 用コメントや rubyspec で Integer の冠詞に a を使ってたところを an に修正しています。

[9c73c75624] Nobuyoshi Nakada 2020-12-20 16:16:26 UTC

rubyspec に Fixnum や Bignum という名前を使ってるところがあったので全て Integer に置換しています。 Fixnum を参照した時の警告の spec まで置換してしまってるのもありますが。

[7600f69a8e] Koichi Sasada 2020-12-20 17:20:57 UTC

80cb9165fa34185b601970da407a295a78ec9eff で追加した ractor.c の rb_ractor_make_copy_shareable() を rb_ractor_make_shareable_copy() と改名しています。

[435b619a3d] Ivan Denysov 2020-12-20 17:24:30 UTC

doc/ractor.md のサンプルコード内のコメントの文法修正。

[6be61ab264] Koichi Sasada 2020-12-20 17:04:38 UTC

ractor.c の ractor_recursive_receive_if() で rb_ractor_t::receiving_mutex のロック保持してるかのチェックに rb_mutex_locked_p() を呼んでましたが、この関数は「誰かがロック取得しているか」のチェックで自分がロック取得しているかのチェックではなかったので、rb_mutex_owned_p() を呼ぶように修正しています。

[5253b9579a] Victor Shepelev 2020-12-21 00:32:30 UTC

Array#[]、#slice の rdoc 用コメントや Enumerator::ArithmeticSequence クラスのコメントに引数に使えるという関係を明示的に追記しています。 https://github.com/ruby/ruby/pull/3952

[63849a1cd9] Kazuhiro NISHIYAMA 2020-12-21 01:54:24 UTC

コメントや rubyspec の it の引数の typo 修正と rubygemsgemcutter 関係のコードで環境変数 USER, USERNAME がなかった時のデフォルト値の typo の修正があります。

[11656d15e2] 卜部昌平 2020-12-14 06:17:59 UTC

include/ruby/internal/xmalloc.h の Doxygen 用のコメントのタグで発生する例外を指定するものを @throw から @exception に変更しています。

[fe60480947] 卜部昌平 2020-12-14 07:54:12 UTC

11656d15e2c5d5779a637eaf5f388a5c18bef629 に続いて include/ruby/internal/xmalloc.h の Doxygen 用コメントの rb_eMemError を rb_eNoMemError に修正しています。

[ac78d90d5e] Hiroshi SHIBATA 2020-12-21 02:22:58 UTC

bundled gems の rake を 13.0.3 に更新しています。

[eee93bc933] Yusuke Endoh 2020-12-21 02:33:22 UTC

eval_error.c の print_backtrace() で --backtrace-limit の指定による抑制の判定が 1つずれているところがあったので修正しています。 [ruby-core:101561] [Bug #17413]

[1ecac8e4d0] Marc-Andre Lafortune 2020-12-21 02:51:11 UTC

テスト用ユーティリティの assert_ractor にキーワード引数 require_relative を追加して require のかわりに呼び元のスクリプトのファイルパスからの相対パスで指定できるようにしています。

[74a7877836] Kazuhiro NISHIYAMA 2020-12-21 04:25:03 UTC

76e88480371469400346fca609efe67096813915 で Ractor::MovedObject を freeze しなくなったので、このクラスの rdoc 用コメントから FrozenError 発生するサンプルを削除しています。 [ruby-core:101483] [Feature #17401]

[a574df14e4] Takashi Kokubun 2020-12-21 05:54:27 UTC

MJIT でコンパイルする ISeq が解放されるのを防ぐために mjit_mark() という関数で unit_queue リストが参照する ISeq を mark していましたが 143776f6fe1f050fe0806cb9e6810b05bf473956 の変更でこれが不要になってたようで mjit_mark() 関数は削除しています。

[1fdc97f1b7] Takashi Kokubun 2020-12-21 06:41:52 UTC

a574df14e45b8b5a1de7bfe949e08b61ae51b0bd で mjit_mark() を削除しましたが、再度追加して今度は active_units というリストの ISeq を mark するようにしています。

[f26f905b28] Takashi Kokubun 2020-12-21 07:17:28 UTC

MJIT に今まさにコンパイル処理中の ISeq をセットしておく変数 compiling_iseq を追加して、mjit_mark() でこれも mark して解放されないようにしておくようにしています。

[391343e828] Hiroshi SHIBATA 2020-12-21 04:35:37 UTC

標準添付ライブラリ rdoc のテストで webrick に依存しているものを WEBrick が定義済みの時だけ定義するようにしています。

[95ce5c0ee9] Hiroshi SHIBATA 2020-12-21 04:27:52 UTC

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

[09f939d3a0] "U.Nakamura" 2020-12-21 08:29:09 UTC

win32/win32.c の init_stdhandle() という標準入出力の fd を設定する関数で SetConsoleMode() で標準出力に ENABLE_VIRTUAL_TERMINAL_PROCESSING というフラグをセットするようにしています。 Windows 10 のコンソールでエスケープシーケンスを有効にするため必要とのこと。

[d8469507b9] Kenta Murata 2020-12-16 08:53:37 UTC

拡張ライブラリ digest の gemspec ファイルの spec.files から .gitignore や .travis.yml を削除しています。

[b9d00f42e6] Nobuyoshi Nakada 2020-12-21 09:09:45 UTC

09f939d3a0140478f2e547f45b4becd05247d360 の続きで process_options() で --help オプションによるヘルプメッセージを pager つきで表示する時に Windows 環境で GetConsoleMode() で ENABLE_VIRTUAL_TERMINAL_PROCESSING フラグが立ってるかでコンソールでの実行かどうか判定するようにしています。

[d84dd66da0] Nobuyoshi Nakada 2020-12-21 09:17:45 UTC

test/readline/test_readline.rb で NotImplementedError の例外クラス名が typo (i が小文字になってた)してたのを修正しています。