ruby-trunk-changes 2019-05-22

今日は引き続き reline の修正や Module#name の返す名前の実装の変更などがありました。

[32ed85f601] Takashi Kokubun 2019-05-21 04:32:17 -0700

IRB::Context に --colorize の設定を伝播させるようにしています。 https://github.com/ruby/ruby/pull/2188

[2ecee730a5] aycabta 2019-05-21 20:52:14 +0900

標準添付ライブラリ reline がホームディレクトリの .inputrc を読み込もうとして失敗した時に出力してたデバッグメッセージ? を削除しています。

[b508b623ee] Takashi Kokubun 2019-05-21 05:01:41 -0700

README.ja.md のリポジトリの記述を git のものに修正しています。

[be86e71c67] aycabta 2019-05-22 02:13:57 +0900

標準添付ライブラリ reline で環境変数 RELINE_STDERR_TTY が指定されてたら標準エラー出力をそのファイル(名前からして /dev/stty# などの端末のデバイスファイルを指定することを期待しているのかもしれないですが)にすりかえるようにしています。

[232f1117e8] git 2019-05-22 02:14:35 +0900

version.h の日付更新。

[f8732bd4d6] aycabta 2019-05-22 02:52:29 +0900

標準添付ライブラリ reline の Reline::LineEditor#reset を reset_variables メソッドとして改名して initialize でこれを呼ぶようにし、reset メソッドはさらに画面サイズなどの情報のリセットも含むようにしています。画面サイズ変更時の追随のためかな?

[ca435ed04a] aycabta 2019-05-22 03:12:37 +0900

reline のテストで Reline.test_mode メソッドを呼ぶようにしています。

[c00d805672] aycabta 2019-05-22 06:48:27 +0900

標準添付ライブラリ reline でプロンプト文字列にエスケープシーケンスが含まれていた時にそのまま出力するようにしています。

[c48d9139d4] aycabta 2019-05-22 07:03:29 +0900

c00d8056729b72724b86b0f0412c6f2ca9fd1318 で未使用になった変数の代入を削除しています。

[a829be209f] Nobuyoshi Nakada 2019-05-22 08:57:20 +0900

標準添付ライブラリ ripper でコールバック用の _dispatch_0 〜 _dispatch_7 のメソッド群を rdoc のドキュメンテーション対象外にするためタグを追加しています。

[b00f280d4b] Alan Wu 2019-05-22 15:46:47 +0900

Module#name でクラスやモジュールの名前を取得する時にはキャッシュとして ruby レベルでは見えない classpath や tmp_classpath といった名前のインスタンス変数(@ で始まらないので表には出てこない)をみるけど最初は T_MODULE の constant_tbl を検索してたのですが、初期化時にあらかじめ classpath をセットしておくようにしています。なんでこうしてなかったかというと、なんでなんだろ。昔もこのへん妙に複雑だなと思ったのですが、コミットみてるとたぶん bootstrap 時に String クラスが作られる前に文字列のオブジェクトをセットしないといけないので fstring を使うとかしているので、そのへんに理由がありそうです。 [ruby-core:92253] [Feature #15765]

[1b20d6a6c6] Alan Wu 2019-05-22 15:47:00 +0900

b00f280d4b9569e7153365d7e1c522b3d6b3c6cf の続きのリファクタリング。 build_const_path() の ID を文字列オブジェクト化する部分を除いた残りを build_const_pathname() という関数に切り出して rb_set_class_path_string() で再利用するようにしています。 [ruby-core:92253] [Feature #15765]

[48f3dc3cce] Nobuyoshi Nakada 2019-05-22 15:47:00 +0900

b00f280d4b9569e7153365d7e1c522b3d6b3c6cf のさらにリファクタリング。無名のクラスの配下で定義されたクラスとかの名前を、所属している名前空間の(なんて言えばいいんだろ。親というと継承関係になってしまうから上クラス?) Module/Class が後から定数に代入された時にあらためて正式な名前として登録する時に再帰的に伝播させる処理で使っている関数名を変更して、隠しインスタンス変数への設定処理をコールバック関数内に移動しています。 [ruby-core:92253] [Feature #15765]

[4d93340d38] Nobuyoshi Nakada 2019-05-22 16:33:03 +0900

RubyVM::AbstractSyntaxTree::Node#inspect の表示の変更に追随して rdoc のサンプルでの出力例も修正しています。

[32dd1a798a] Nobuyoshi Nakada 2019-05-22 16:52:19 +0900

b00f280d4b9569e7153365d7e1c522b3d6b3c6cf の一部を revert しています。 GC 中にデバッグ出力のために rb_raw_obj_info() でオブジェクト内容を表示する時に Module/Class の名前は rb_class_path() ではなくて rb_class_path_cached() で取得するようにしています。

[2fb69b3296] git 2019-05-22 16:54:47 +0900

32dd1a798a6d042dbf91e24e9c9f44d94e68f721 のインデントのタブを空白に展開。