ruby-trunk-changes 2021-06-30

今日は主に error_highlight という gem が新しく default gem として標準添付されるようになる変更がありました。

[03dc664493] Peter Zhu 2021-06-28 18:44:22 UTC

gc.c の gc_marks_finish() で RGENGC_CHECK_MODE=4 のマクロ指定つきでビルドされた時に gc_marks_check() を呼び出す時に during_gc 変数を FALSE にしておくようにしています。異常終了してしまうことがあったようです。

[e946049665] Yusuke Endoh 2021-06-18 08:11:39 UTC

error_squiggle.gem というのを標準添付ライブラリとして追加しています。NoMethodError などの NameError 例外時にそのカラム位置をマーカーで表示するようにするものみたいです。さらに gem_prelude.rb でプロセス起動時に require するようにしているので、デフォルトで有効になるようです。 [ruby-core:104109] [Feature #17930]

[9438c99590] Yusuke Endoh 2021-06-28 04:27:35 UTC

e94604966572bb43fc887856d54aa54b8e9f7719 で追加した error_squiggle という標準添付ライブラリを error_highlight と改名しています。 [ruby-core:104109] [Feature #17930]

[d1998d8767] Yusuke Endoh 2021-06-28 04:55:49 UTC

tool/test-bundled-gems.rb で minitest のテスト時に特別扱いして特定のテストを実行除外するようにしています。 error_highlight の導入によってエラーになるテストを除外しているようです。

[8118d435d0] Nobuyoshi Nakada 2020-12-22 07:37:35 UTC

rb_warn_deprecated() や rb_warn_deprecated_to_remove() など deprecation warning の出力する関数で出力するかどうかのチェックを deprecation_warning_enabled() という関数に切り出し、また警告出力部分も warn_deprecated() に切り出すリファクタリング。また rb_warn_deprecated_to_remove_at() で削除するバージョンの指定の引数の順序が変化しています。マクロの実装が少し複雑になってますね。 [ruby-core:101660] [Feature #17432]

[0b726924a4] Nobuyoshi Nakada 2020-12-28 10:17:52 UTC

rb_warn_deprecated_to_remove() による deprecation warning で削除予定のバージョンを警告メッセージに含めるようにしています。

[21600a5f64] Nobuyoshi Nakada 2021-01-07 07:35:35 UTC

8118d435d000adec3023a0ff509baa11cc73fabb の rb_warn_deprecated_to_remove() の定義でバージョン番号の指定の静的なチェックを追加しています。

[94bd3bde81] Nobuyoshi Nakada 2021-01-07 07:40:49 UTC

rb_warn_deprecated_to_remove_at() で削除予定のバージョンを文字列からクオートなしの記述で指定するようにしています。

[dcd1eedba7] git 2021-06-30 01:47:24 UTC

version.h の日付更新

[3dd3ea092a] Alan Wu 2021-06-17 21:47:11 UTC

定数探索の rb_const_search_from() で Module/Class の継承関係を辿る時のロジックを少し変更していて、prepend されている Module 内の探索を先にするため RCLASS_ORIGIN() が一致してないクラスはスキップする(後に出現するはずなので)ようにしています。 [ruby-core:104013] [Bug #17887]

[393f84da4a] Yusuke Endoh 2021-06-30 01:55:56 UTC

tool/sync_default_gems.rb に新規追加された default gem error_highlight の対応を追加しています。

[3391682eda] Yusuke Endoh 2021-06-30 02:39:39 UTC

393f84da4a47134c5cb8235f299e3c5d2e92f21d で error_highlight の同期処理に不要なファイル削除のコマンドがあったのを削除しています。

[db7e9b1aac] Yusuke Endoh 2021-06-30 02:44:48 UTC

標準添付ライブラリ error_highlight の ErrorHighlight::CoreExt という Module の定義に did_you_mean と協調して動くための hack についてのコメントを追記しています。

[f428ced69c] Yusuke Endoh 2021-06-30 03:28:22 UTC

標準添付ライブラリ error_highlight に出力をカスタマイズできる機能を追加しているようです。

[ca4e5b1eb3] Yusuke Endoh 2021-06-30 03:31:55 UTC

標準添付ライブラリ error_highlight の API インターフェース(キーワード引数名)を少し変更しています。

[6c6b128c67] Yusuke Endoh 2021-06-30 04:36:16 UTC

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

[b270b5df2c] Yusuke Endoh 2021-06-30 04:41:18 UTC

定数参照エラー時のテストで assert_match の引数に正規表現リテラルをかっこなしで書いてて warning が出てたのでメソッド呼び出しのかっこをつけるようにしています。

[8ccc257434] Yusuke Endoh 2021-06-30 05:02:28 UTC

標準添付ライブラリ error_highlight の gemspec ファイルを追加しています。

[59ead88563] Nobuyoshi Nakada 2021-06-30 06:45:04 UTC

Kernel#open や IO.readlines、IO.read の rdoc 用コメントに pipe を使ってコマンド実行の入出力を扱う時に shell でメタキャラクタが解釈されうることを追記しています。

[b6c910e1f4] Yusuke Endoh 2021-06-30 08:33:28 UTC

標準添付ライブラリ error_highlight の gemspec ファイルの required_ruby_version を 3.1.0.dev 以上に修正しています。3.1.0 がまだリリースされてないのでこうしないと master の ruby も弾かれてしまうため。

[0feec79846] Nobuyoshi Nakada 2021-06-30 10:55:59 UTC

common.mk の dont-install-nodoc というターゲットで rbinstall.rb に --exclude=doc というオプションを渡すようにしています。 doc/ ディレクトリのインストールを除外するためですかね。