ruby-trunk-changes 2021-01-05

今日は主に irb の更新や Ractor での定数の inline cache を有効にする変更などがありました。

[433a3be86a] Nobuyoshi Nakada 2021-01-04 14:37:00 UTC

拡張ライブラリ ripper のノードの pretty_print 時に state の内容表示にも pretty_print メソッドを呼ぶように修正しています。

[1fe111d7d0] git 2021-01-04 15:02:01 UTC

version.h の日付更新

[3fee9e7021] Kazuhiro NISHIYAMA 2021-01-04 15:19:48 UTC

Enumerable#compact の rdoc 用コメントのサンプル内のインデント修正。

[f42593c98e] Gui Heurich 2021-01-04 16:06:07 UTC

internal/compilers.h の Doxygen 用コメントの typo 修正。

[bf21faec15] Nobuyoshi Nakada 2021-01-04 15:55:55 UTC

main.c の RUBY_DEBUG_ENV 定義時の stdio.h の include は不要(既に常に include されてる)なので削除しています。

[e7fc353f04] Koichi Sasada 2021-01-04 09:08:25 UTC

定数の inline cache を子 Ractor からも参照できるようにしています。 Ractor 毎にキャッシュを持つわけではなく iseq_inline_storage_entry から直接 struct iseq_inline_constant_cache_entry を持たずに T_IMEMO 型オブジェクトとして独立したものをポインタ経由で参照するようにしています。なんでこれでいいのかはよくわからず。 [ruby-core:101913] [Bug #17510]

[87c546b5fa] Takashi Kokubun 2021-01-04 18:44:02 UTC

tool/ruby_vm/views/_mjit_compile_getinlinecache.erb で生成する C のソースコード内で goto 文を使ってたのを、他では使ってないので使わないようにリファクタリングしています。

[7a3322a0fd] Takashi Kokubun 2021-01-04 21:09:01 UTC

tool/ruby_vm/views/_mjit_compile_getinlinecache.erb で利用している関数 vm_ic_hit_p() の引数の型が食い違っていたので vm_ic_hit_p() から vm_inlined_ic_hit_p() と抽出した関数を作って引数の型を合わせて、さらに e7fc353f044f9280222ca41b029b1368d2bf2fe3 の変更に追随させています。

[449ef72cb9] Yusuke Endoh 2021-01-05 01:16:05 UTC

configure でクロスコンパイル時に getprop コマンドで AndroidAPI バージョンを取得するのをやめるようにしています。 [ruby-core:101819] [Bug #17491]

[3adf84a079] Nobuyoshi Nakada 2021-01-05 02:30:53 UTC

common.mk の make check のアクションで UNIX 系の shell でないと動かない部分を cmd.exe では実行せずメッセージを出すようにしている、ようですがどういう仕組みかはよくわからず。": :" っていうのが cmd.exe ではコメントになるのかな。

[451b456051] Marcus Stollsteimer 2020-12-23 16:41:16 UTC

拡張ライブラリ io/console の IO#getpass の rdoc 用コメントに改行は削られることを追記しています。

[515d6b47ad] aycabta 2021-01-04 10:38:22 UTC

標準添付ライブラリ irb の出力の色付けで IRB::ColorPrinter#text の引数の str が文字列じゃなかった時のことを考慮するようにしています。

[f2d0d4cb0a] Burdette Lamar 2021-01-05 04:39:13 UTC

Enumerable の rdoc 用コメントにメソッド一覧などを追記しています。うーんこれメンテしていくのかな……。 https://github.com/ruby/ruby/pull/4004

[b9c1b3f8d8] Yusuke Endoh 2021-01-05 04:48:42 UTC

configure でターゲットのアーキテクチャが ARM で OS が Android の場合に __builtin_setjmp() はないものとして扱うようにしています。 [ruby-core:101917] [Bug #17511]

[e91160f757] Koichi Sasada 2021-01-05 07:48:43 UTC

make runruby のアクションで環境変数 RUBY_ON_BUG を設定して SEGV 時に gdb でアタッチするようにしています。一時的なデバッグのためかなぁ。

[cce72a2411] aycabta 2020-12-26 14:34:27 UTC

irb で一行メソッド定義を入力するとインデントの判定がおかしくなるのを修正しています。

[e72a6ed45f] aycabta 2020-12-28 01:45:17 UTC

irb で例外を表示する時に例外メッセージ内の不正なバイト列を \xXX 表示に変換するようにしています。

[5012512398] aycabta 2020-12-31 10:10:50 UTC

irb で do..end ブロックでインデントの調節がおかしくなることがある不具合を修正しているようです。めちゃくちゃ大変そうだなぁこれ。

[505e01fe12] aycabta 2021-01-01 20:20:48 UTC

標準添付ライブラリ irbIRB::RubyLex でヒアドキュメントを parse した時に複数行にまたがるトークンが存在しうるのがインデント調整で問題になる場合があったようで修正しています。

[5a1866caff] aycabta 2021-01-02 18:25:47 UTC

標準添付ライブラリ irbIRB::RubyLex で文法解析のために拡張ライブラリ ripper の Ripper.lex のかわりに Ripper::Lexer#scan メソッドを使うようにしています。構文エラー時にエラー情報をより正確に取れるようにするためのようです。

[0123bc9d38] aycabta 2021-01-04 12:11:24 UTC

5a1866caff1ec7d924c4101ea05e9d460b6ef3ae の再修正でエラーになったトークンの情報を Ripper::Lexer#scan の呼び出し直後に処理するようにしているようです。

[903af74bbd] Nobuyoshi Nakada 2021-01-05 08:42:05 UTC

標準添付ライブラリ irb で警告抑制のため? 一時的に $VERBOSE を nil に設定しているのを戻すところを ensure 節にして例外発生時などに戻し損ねるのを修正しています。