ruby-trunk-changes 2023-05-14

今日は parse.y の処理結果を拡張ライブラリ ripper 向けに変更する処理を Lrama の機能で吸収するようにする変更などがありました。

多値代入の左辺にメソッド呼び出しの形式を書くことで x.a= のような代入記号つきメソッドを呼ぶという記法があり(x.a, x.y = 0, 1 のように書ける)、parse.y でこのメソッド呼び出しの mlhs_node のルールで &. によるメソッド呼び出しも同じアクションにまとめられていますが、これは多値代入の左辺値では禁止とのことでチェックしていたのを anddot_multiple_assignment_check() という関数に切り出すリファクタリング

[edca57e6e3] Yuta Saito 2023-05-14 03:59:39 UTC

WASI 実装のための setjmp の代替実装でデバッグログ出力をするための RB_WASM_DEBUG_LOG() というマクロで fprintf(3) を利用していたのを __wasi_fd_write() という API を利用するように書き換えています。 asyncify というツール? を利用した時に問題があったようです。

[3150516aab] Nobuyoshi Nakada 2023-05-14 00:13:29 UTC

拡張ライブラリ ripper のビルド時に一時ファイル ripper.tmp.y を生成していたのをパイプを使って生成した .y ファイルの内容をやりとりするようにしています。

[bdaa491565] Nobuyoshi Nakada 2023-05-14 00:28:53 UTC

parse.y の YY_LOCATION_PRINT() マクロに引数を追加して Lrama で追加の引数を処理できるようにしています。また拡張ライブラリ ripper のビルド時に tool/ytab.sed を使って処理結果の yydebug 関係のコードを置換していたのをやめて tool/ytab.sed は不要になったので削除しています。

ruby-trunk-changes 2023-05-13

今日は主に bundled gems の test-unit のバージョン更新などがありました。

[93dd13d97a] TSUYUSATO Kitsune 2023-05-13 01:04:28 UTC

regexec.c のコンパイル時の警告除去のため stack_type_str() の戻り値の型から const 修飾子を削除しています。 https://github.com/ruby/ruby/pull/7803

[30326844c7] Martin Dürst 2023-05-13 01:06:24 UTC

rubyspec のスクリプトエンコーディングについてのテストで spec 説明の英文を修正しています。

[5f411b9b3e] Hiroshi SHIBATA 2023-05-13 00:53:03 UTC

bundler に同梱されている thor のバージョンを更新しています。

math.c の acos, asin などの実装の共通部分を math_arc() というマクロに切り出すリファクタリング

[cee6903763] git 2023-05-13 06:59:15 UTC

gems/bundled_gems の test-unit のバージョンを更新しています。また NEWS の bundled gems バージョンリストも更新しています。

ruby-trunk-changes 2023-05-12

今日は主にビルド時の bison の依存をなくすため独自のパーサジェネレーター Lrama を利用するようにする変更などがありました。

[b742fb029d] Janosch Müller 2023-04-13 18:43:06 UTC

tool/enc-unicode.rb のコメントで記述されている必要なファイル群や実行方法などのドキュメントを最新の状態に更新しています。

[223a79e683] "NARUSE, Yui" 2023-05-12 06:40:10 UTC

GitHub Actions の Slack 通知のアクションを必要な secret がセットされてない時に実行しないように if: の条件を追加しています。fork したリポジトリでエラーにならないようにするためかな?

[27a21ad201] 卜部昌平 2023-05-12 06:10:28 UTC

GitHub Actions のいろんなコンパイラ/コンパイルオプションを試す workflow から古い GCC や Clang のバージョンを削っています。 [ruby-core:111899] [Bug #19353]

[d314fe42f9] "NARUSE, Yui" 2023-05-12 08:15:13 UTC

223a79e6830ca9c3619258ac00eebffb7754a0a1GitHub Actions の Slack 通知を実施する条件の追加を revert しています。

[a1b01e7701] Yuichiro Kaneko 2023-05-12 09:25:10 UTC

parse.y をビルドするのに bison ではなくて Lrama という独自のパーサジェネレーターを利用するようにしています。 Lrama ってなにかと思ったら(おそらく)このために独自に開発した pure ruby のパーサジェネレーターみたいですね。すごい!! https://github.com/yui-knk/lrama
lrama は tool/lrama/ 配下に同梱させているようです。 [ruby-core:113450] [Feature #19637]

[e3385f8783] Nobuyoshi Nakada 2023-05-12 01:48:35 UTC

rb_sys_fail()、rb_sys_fail_str()、rb_sys_fail_path() などの SystemCallError 例外(Errno::EXXX 系の例外)を発生させる C API を関数から関数マクロとして定義して、errno 変数をリセットさせないようにしています。 GC 発生時に意図せず errno がクリアされて本来の例外が作れなかったりする場合があったようです。 [ruby-core:113449] [Bug #19635]

[30d7205671] Nobuyoshi Nakada 2023-05-12 01:49:25 UTC

e3385f87831f036eaba96558cb4d83c8d5c43901 の続きで rb_sys_fail_str() と rb_sprintf() を組み合わせた rb_sys_fail_sprintf() というマクロも追加して利用するようにリファクタリングしています。

[c803e92d66] Nobuyoshi Nakada 2023-05-12 01:57:42 UTC

dir.c の nogvl_dir_empty_p() という C API で errno を上書きしてエラー時に戻り値に Qundef を返していたところを errno を Integer にしたものを返すようにしています。

ruby-trunk-changes 2023-05-11

今日はテストの警告除去だけでした。

[a19fa9b2bd] Yusuke Endoh 2023-05-10 14:49:44 UTC

本体のテストで未使用の変数の警告が出ているところがあったので、変数名の先頭に "_" を追加したり、rescue 節で未参照の場合明示的な変数への束縛を書かないようにしたりしています。

ruby-trunk-changes 2023-05-10

今日は主に YJIT の統計情報出力の不具合修正や拡張ライブラリ readline の削除に関連するドキュメントやツール類の整理などがありました。

[e1c84e8ee6] Noah Gibbs 2023-05-09 19:40:26 UTC

YJIT の統計情報出力時にゼロ除算が発生する可能性があった不具合を修正しています。 https://github.com/ruby/ruby/pull/7793

[507801c6d7] Hiroshi SHIBATA 2023-05-10 00:52:33 UTC

doc/maintainers.md、doc/standard_library.rdoc、test/test_extlibs.rb から拡張ライブラリ readline に関するエントリを削除しています。

[aec4e2d678] Hiroshi SHIBATA 2023-05-10 00:53:02 UTC

doc/maintainers.md から readline.rb (pure ruby 版 readline) のエントリも 1つ削除しています。重複してエントリがあったみたいです。

[172077232e] Hiroshi SHIBATA 2023-05-10 00:55:27 UTC

doc/contributing/building_ruby.md、doc/windows.md、doc/yjit/yjit.md のビルド時の依存ライブラリの記述から Readline および Editline の記述を削除しています。そうかついに libreadline の依存がなくなったのか。

[71dc88df38] Hiroshi SHIBATA 2023-05-10 00:56:54 UTC

NEWS に拡張ライブラリ readline の削除について追記しています。

[9ed189e9aa] Samuel Giddins 2023-04-28 19:29:21 UTC

rubygems の保持しているライセンス名のリストを更新しています。

[0ef6e718d9] Hiroshi SHIBATA 2023-05-10 06:02:29 UTC

bundler で Marshal による serialize したバイナリデータからのロード時に特定のクラスのオブジェクトのみ許可するための Proc オブジェクトを保持するための Module を lib/bundler/safe_marshal.rb に切り出して許可するクラスをいくつか追加しています。 https://github.com/rubygems/rubygems/pull/6655

[8866e08207] Hiroshi SHIBATA 2023-05-10 06:03:58 UTC

tool/sync_default_gems.rb から拡張ライブラリ readline の同期のための処理を削除しています。

[0e5aecea11] Nobuyoshi Nakada 2023-05-10 06:47:39 UTC

Array#first と Array#last の rdoc 用コメントを C 実装の前でなくて ruby 実装のメソッド定義の前に移動しています。

[2d9bc3efe5] Nobuyoshi Nakada 2023-04-13 12:45:56 UTC

Process.argv0 が返す文字列が freeze されていなかったので freeze した文字列オブジェクトを返すように修正(変更)しています。 [ruby-core:113221] [Bug #19597]

ruby-trunk-changes 2023-05-09

今日は主に拡張ライブラリ版の readline の標準添付ライブラリからの削除などがありました。

[fb23fba082] 卜部昌平 2023-05-08 02:28:56 UTC

GitHub Actions のいろんなコンパイラでのビルドをためす workflow に GCC 13 と Clang 17 を追加しています。

[6987ec45b1] Nobuyoshi Nakada 2023-05-08 07:21:15 UTC

拡張ライブラリ stringio の要求する ruby バージョンを 2.7.0 以降に引き上げて C API の rb_io_extract_modeenc() の代替実装を削除しています。

[5831f7c831] Takumasa Ochi 2023-05-08 04:51:46 UTC

rubygems の Gem::Specification#runtime_dependencies で runtime_dependencies というメソッドを利用するようにリファクタリングしています。

[59fd67fc3d] Hiroshi SHIBATA 2023-05-02 00:08:12 UTC

拡張ライブラリ版の readline を削除しています。

[9d3ab15827] Hiroshi SHIBATA 2023-05-02 06:32:03 UTC

bundler のサブコマンドのテストで出力をチェックする正規表現の条件を緩めていいます。

[7397642021] Hiroshi SHIBATA 2023-05-09 00:24:19 UTC

gems/bundled_gems で debug のテストに使う commit hash の指定を削除しています。

[bb75e83d9f] Hiroshi SHIBATA 2023-05-09 01:23:15 UTC

tool/fetch-bundled_gems.rb および tool/lib/bundled_gem.rb で bundled gems の upstream からリポジトリを clone してきた時の gemspec ファイルのバージョンチェックを削除しています。リリースパッケージを作成する時にチェックすればいいのでその時の GitHub Actions のワークフローにチェックを移動するとのこと。

[59646e8798] Hiroshi SHIBATA 2023-05-09 02:08:30 UTC

tool/lib/bundled_gem.rb で bundled gems の gem パッケージを展開する処理のエラー時に gems/ ディレクトリ配下の .gem パッケージ(コメントによると gems/bundled_gems に commit hash 指定があった時に upstream のリポジトリからビルドしたバージョンらしい)でリトライするようにしています。

[9d6bfe3815] Hiroshi SHIBATA 2023-05-09 03:10:34 UTC

gems/bundled_gems の debug のバージョンを 1.8.0 に更新しています。

[6404a0f2f8] Jemma Issroff 2023-05-09 02:18:10 UTC

doc/contributing/making_changes_to_stdlibs.md のリンクが切れてたのを修正しています。

[091d04ccce] git 2023-05-09 03:57:54 UTC

9d6bfe3815118e7734515d29f9f51c56176269e5 に追随して NEWS の bundled gems のバージョンリストの debug.gem のバージョンも更新しています。

[986268afae] Jeremy Evans 2023-05-09 09:22:52 UTC

Array#& や Array#intersection, Array#intersect? メソッドの rdoc 用コメントに配列の要素の比較は eql? で行なわれ、hash メソッドが正しく(同値の要素は同じ hash 値になるように)実装されている必要がある旨追記しています。 [ruby-core:113376] [Bug #19622]

ruby-trunk-changes 2023-05-07

今日は標準添付ライブラリ reline のダイアログ描画の修正がありました。

[5eca327fc5] tomoya ishida 2023-05-07 13:18:09 UTC

標準添付ライブラリ reline のダイアログの再描画時に表示が崩れることがあった不具合を修正しています。 https://github.com/ruby/reline/pull/524