ruby-trunk-changes 2022-11-21

今日は syntax_suggest による文法エラーの修正候補表示がトップレベルのスクリプトで効かない不具合の修正や RubyVM::AbstractSyntaxTree.parse_file のキーワード引数 keep_tokens の追加、irb のバージョンアップや組み込みコマンド追加などがありました。

[12b7b85227] Nobuyoshi Nakada 2022-11-18 09:19:11 UTC

rb_ec_cleanup() および error_handle() という関数の第2引数の型を int から enum ruby_tag_type に変更しています。

[701dfe4eb7] Nobuyoshi Nakada 2022-11-18 09:22:12 UTC

標準添付ライブラリ syntax_suggest による文法エラーの修正候補提示がトップレベルのスクリプトでは効いていなかった不具合を修正しています。 [ruby-core:109995] [Bug #19016]

[bbc4cf5f76] Takashi Kokubun 2022-11-20 22:22:38 UTC

5958c305e527460465bdbd43e59b2da26d4cfbfb および 180ed611b238db48db9feb1449c4e3b563d2dce0irb からの変更マージで誤って README.md に追加してしまった部分を削除しています。

[d8601621ed] yui-knk 2022-09-23 13:40:02 UTC

RubyVM::AbstractSyntaxTree.parse_file のキーワード引数 keep_tokens を追加して文法記述上読まれた token の情報を落とさずに NODE に保持しておくことができるようにしているようです。 RubyVM::AbstractSyntaxTree::Node#tokens メソッドで取り出せるようにしています。 エディタや IDE のサポートのための LSP で利用するためには見た目上の記述が重要で、スクリプトの意味としては同じなので区別ができない状態(たとえば m(a) と m(a,) はどちらも文法上 valid で AST では区別がつかないけど m(a,) の場合は第2引数の入力の余地があるので候補を出したりしたい)に対処するためみたいです。 [ruby-core:110418] [Feature #19070]

[db8ff237c7] yui-knk 2022-11-21 03:01:44 UTC

d8601621edcf29e3323b90dcf04b774edd9fb45e の RubyVM::AbstractSyntaxTree.parse_file のキーワード引数 keep_tokens 追加についての NEWS エントリのチケット番号をリンクにするための footnote の追加。 [ruby-core:110418] [Feature #19070]

[1753cf59cc] Takashi Kokubun 2022-11-21 05:23:24 UTC

230c7de2529a0a29b5814e015d7cb66c3157513b の tool/sync_default_gems.rb での rdoc 用コメントの置換処理修正で git コマンド実行のための %w 文字列を %W を利用して変数の埋め込みを有効にするように修正しています。

[509f04ca91] Takashi Kokubun 2022-11-21 04:44:23 UTC

irb のバージョンを 1.5.0 に更新しています。

[427985c194] git 2022-11-21 05:25:05 UTC

509f04ca9159d1dd046af4ffb19cfa8252021b55 に追随して NEWS の default gems のバージョンリストの irb のバージョンを更新しています。

[166598a6eb] Nobuyoshi Nakada 2022-11-21 06:10:29 UTC

common.mk に make outdate-bundled-gems というターゲットを追加して .bundle/gems/ と .bundle/specifications/ のディレクトリや gemspec ファイルの対応する .gem パッケージファイルのないもの(古いもの?)を削除するようにしています。

[730b841f8d] Yusuke Endoh 2022-11-21 07:13:15 UTC

irb の組み込みコマンド edit のテストで警告抑制のため assertion メソッドの第1引数が正規表現リテラルのものは明示的に引数をかっこでくくるようにしています。

[3071a727e0] Takashi Kokubun 2022-11-21 07:21:28 UTC

configure の BASERUBY のバージョンチェックしているところに RUBY_VERSION を文字列として比較しているのがまぎらわしいのでコメントで補足を追記しています。

[854312eede] yui-knk 2022-11-21 00:56:36 UTC

parse.y で struct parser_params::delayed::token の存在チェックに has_delayed_token() というマクロを利用していないところがあったので利用するようにリファクタリングしています。

[65e31402ae] Nobuyoshi Nakada 2022-11-21 07:32:51 UTC

166598a6eb0108d41874fd3dbe4d2c2af8cfea71 で common.mk に追加した outdate-bundled-gems ターゲットのコマンドで ruby スクリプトに渡す -e オプションでのスクリプトにダブルクオートを使ってたのをシングルクオートを使うようにしています。 nmake (というか Windows のシェル?)対応のため。

[c9fbc779a6] Takashi Kokubun 2022-11-21 08:46:22 UTC

irb に debug.gem のデバッガ機能を利用するための組み込みコマンド break, next, step, continue, backtrace 等々を追加しています。 ba3b40a9aeb752d1b3e4c87748c977bfd3cf6f2c で debug コマンドで対応したのと同様に Gemfile に debug.gem が書かれてなくても自動的に bundled gem のぶんを読み込めるようにしてあるようです。

[e2b15461a7] Nobuyoshi Nakada 2022-11-21 09:28:33 UTC

標準添付ライブラリ optparse の OptionParser#load でファイルを読み込むのに IO.readlines を使ってたのを File.readlines に変更しています。