ruby-trunk-changes 2022-10-31

今日は主に error_highlight のための RubyVM::AbstractSyntaxTree.node_id_for_backtrace_location というメソッドの新規追加がありました。

[7ed10abdd9] Nobuyoshi Nakada 2022-10-30 13:21:18 UTC

拡張ライブラリ bigdecimal の ext/bigdecimal/missing.h でマクロ HAVE___ASSUME を定義する時に定義内容が空だったのを 1 に定義するように修正しています。 HAVE_XXX マクロは真偽値として扱うため。

[3391c51eff] eileencodes 2022-10-19 17:23:53 UTC

RubyVM::AbstractSyntaxTree.node_id_for_backtrace_location というメソッドを新規追加して Exception#backtrace_locations などで得られる Thread::Backtrace::Location から対応する AST の id を取得できるようにしています。 error_highlight で ERB のテンプレートなど eval 系のメソッド内の位置情報を取得するためみたいです。

[350d0aa023] eileencodes 2022-10-19 17:50:30 UTC

標準添付ライブラリ error_highlight の ErrorHighlight.spot で引数に RubyVM::AbstractSyntaxTree::Node のインスタンスが渡された時にエラーになってのを修正しています。修正そのものじゃなくテストのほうに 3391c51effcd61f9a718adf59740661d99f57b5b で追加された RubyVM::AbstractSyntaxTree.node_id_for_backtrace_location が利用されています。

cont.c の root_fiber_alloc() 内の VM_ASSERT() の式に FIBER_RESUMED_P() マクロを利用するようにリファクタリング