ruby-trunk-changes 2024-04-04

今日は parse.y の CRuby 依存の実装を除去する活動の一環の変更や拡張ライブラリ json の更新などがありました。

[4960a598d6] Peter Zhu 2024-04-01 19:46:51 UTC

RubyVM::InstructionSequence を GC.compact で移動可能にした変更を revert していた 16c18eafb579cf2263c7e0057c4c81358fe62075 を revert して、つまり再度移動可能にしています。 iseqw_new() の rb_check_typeddata() の戻り値の扱いに修正がありそう。

[f928e60d41] Nobuyoshi Nakada 2024-04-03 14:14:52 UTC

signal.c の CHECK_STACK_OVERFLOW() マクロで siginfo_t::si_code をチェックしてシグナルの送信元がカーネルからかどうか確認してから stack overflow のチェックに入るようにしています。

[8388604a4c] Takashi Kokubun 2024-04-03 17:38:00 UTC

GitHub Actions での pull request の自動 reviewer 設定をやめて .github/CODEOWNERS ファイルを置くようにしていたのをまた revert して necojackarc/auto-request-review アクションの利用に戻しています。

[c7cda1ae9b] Takashi Kokubun 2024-04-03 19:49:36 UTC

YJIT のスタックからオペランドの情報を取得する Context.sp_opnd メソッドの引数をバイト数から VALUE 型の slot 数での指定にリファクタリングしています。 https://github.com/ruby/ruby/pull/10442

[571bfc7402] Maxime Chevalier-Boisvert 2024-04-03 21:28:01 UTC

doc/yjit/yjit.md の YJIT を使う時のパフォーマンスのための実装方針についての記述を更新しています。 https://github.com/ruby/ruby/pull/10445

[6056773105] yui-knk 2024-04-03 10:28:55 UTC

Ractor のための magic comment shareable_constant_value の処理を parse.y から compile.c に移動しています。 parse.y の CRuby 依存を減らすための一環でしょう。

[41e9d6641b] Yusuke Endoh 2024-04-04 01:30:29 UTC

Object#method_missing を public にしてから require した時の GC のテスト? で子プロセスのタイムアウトを設定しています。

[0be7133b7f] Hiroshi SHIBATA 2024-03-29 09:23:27 UTC

rubygems の設定ファイルから読み込んだ内容をインスタンス変数にセットするところの順序の入れ替え。

[0930231361] Hiroshi SHIBATA 2024-03-29 09:41:09 UTC

rubygems の設定ファイルのキーに Symbol ではなく文字列を使っても同じように読み取れるようにしているようです。

[066bd28cff] tompng 2024-04-03 09:43:24 UTC

拡張ライブラリ jsonjson/generic_object の読み込みを autoload を使って遅延するようにしています。3.4 から ostruct の警告が出るのでそれを実際に利用する時だけにするためみたいです。

[514b415d90] Hiroshi SHIBATA 2024-04-04 02:36:47 UTC

拡張ライブラリ jsonjson/generic_object.rb で require "ostruct" が LoadError を発生させた時に独自に警告メッセージを出力するようにしています。

[ab65148c78] Hiroshi SHIBATA 2024-04-04 03:29:00 UTC

拡張ライブラリ json のバージョンを 2.7.2 に更新しています。

[bdfbeb90c9] git 2024-04-04 03:48:12 UTC

NEWS の default gems の新規バージョンリストに json を追記しています。

[f057741c5d] yui-knk 2024-04-03 22:46:28 UTC

parse.や compile.c でリテラルのための NODE の種別 NODE_LIT はもう未使用になったので enum の定義や分岐を削除しています。

[fc67091fc8] Yusuke Endoh 2024-04-04 04:23:52 UTC

テストで assertion メソッドの第1引数に単項演算子メソッドの String#@+ が使われている時に警告を抑制するために明示的なかっこを追加しています。

[cb30c3d2b3] Yusuke Endoh 2024-04-04 04:24:09 UTC

テストで未使用の変数の警告抑制のために "_" 変数への代入を追加しています。

[d910d64ed9] Yusuke Endoh 2024-04-04 04:29:11 UTC

テストでメソッドの再定義の警告抑制のため再定義前に Module#remove_method を追加しています。

[295f2a3305] Yusuke Endoh 2024-04-04 04:30:27 UTC

enc/make_encmake.rb で文字列リテラルに対して破壊的メソッドを利用していたのを chilled string の警告抑制のため非破壊的メソッドで書き直しています。

[8aa8fce320] HASUMI Hitoshi 2024-04-04 02:06:15 UTC

compile.c の compile_shareable_constant_value() で switch 文の default 節を追加して rb_bug() で異常終了するようにしています。警告抑制のため。

[6d82be499b] Yusuke Endoh 2024-04-04 05:10:23 UTC

ARGF.puts のテストで警告抑制のため子プロセス起動時のコマンドラインオプションに -W0 を追加しています。

[80e31663f3] tomoya ishida 2024-04-03 15:36:17 UTC

標準添付ライブラリ reline の Reline::LineEditor のエスケープシーケンスがある時のインデントの修正をしているようです。

[8088c88d01] tomoya ishida 2024-04-03 15:50:03 UTC

標準添付ライブラリ reline の割り込みで端末モードを戻すのに失敗することがあった不具合を修正。 https://github.com/ruby/reline/pull/646

[27622f3eb9] Hiroshi SHIBATA 2024-04-04 09:17:30 UTC

README から既に動かしてない AppVeyor のバッジを削除しています。

[f5e387a300] HASUMI Hitoshi 2024-03-29 07:18:14 UTC

ast.c から rb_script_lines_for() という関数の実装を ruby_parser.c に移動しています。 RubyVM::AbstractSyntaxTree.of の実装からも呼んでいましたがこれは不要ということで呼び出しを削っています。

[64b0f4303e] Nobuyoshi Nakada 2024-04-04 09:06:06 UTC

ARGF のテストで一時ファイルを作るのにヘルパーメソッドを利用するようにリファクタリングしています。

[184db1fd6a] Nobuyoshi Nakada 2024-04-04 09:22:27 UTC

ARGF.write に複数の文字列を引数に受け取れるように拡張しています。

[cfd48adb2f] yui-knk 2024-04-04 05:52:34 UTC

Universal Parser 用の rb_parser_config_t 構造体の関数ポインタのメンバー ractor_make_shareable が不要になっていたので削除しています。

ruby-trunk-changes 2024-04-03

今日は主に YJIT の arm64 向け最適化などがありました。

[5903fdf43e] Matt Valentine-House 2024-04-02 12:53:56 UTC

configure や configure で使う m4 のマクロ定義内のメッセージの typo 修正。

[3d1d1435c1] Naoto Ono 2024-03-25 04:20:04 UTC

test/unit の Launchable 向けのテストの情報を JSON でダンプする処理の実装のリファクタリング

[3c4de946c9] Alan Wu 2024-04-02 16:29:14 UTC

YJIT の arm64 向けの機械語生成で不要なレジスタ利用を抑制する細かな最適化を行なっています。 https://github.com/ruby/ruby/pull/10402

[24a7407960] Peter Zhu 2024-04-01 18:52:52 UTC

rb_darray_make_without_gc()、rb_darray_append_without_gc() といった darray の _without_gc の suffix つきの API を削除しています。そもそも darray ってなんだっけ。なんにせよ _without_gc はメモリ確保に失敗した時に rb_bug() ですぐに異常終了して GC を起動しないことを保証する関数ですが、かわりに DURING_GC_COULD_MALLOC_REGION_{START,END}() マクロを使って一時的に GC を無効化するようにしています。

[b664590c4d] Adam Daniels 2024-04-02 14:07:52 UTC

doc/packed_data.rdoc の指示子 "u" のサンプルを修正しています。

[56ecd8038a] Naoto Ono 2024-03-25 04:42:28 UTC

テストの Launchable 向けの対応で出力する JSON に行番号のデータを追加するようにしているようです。

[ce395d7e90] Nobuyoshi Nakada 2024-04-03 07:38:52 UTC

rubyspec の if 文の条件に flip-flop を書いた時の警告のテストで特殊変数 $. をリセットしておくようにしています。たまたま 4になっていて意図しない結果になる場合があったようです。

[25e28559c1] Hiroshi SHIBATA 2024-01-19 07:08:38 UTC

rubygems の再定義する require で default gems や bundled gems に警告を出力する lib/bundled_gems.rb で bundled gems の開発用のリポジトリ内での require 時の警告を抑制するための対応のようです。

ruby-trunk-changes 2024-04-02

今日は主に bundler の依存関係の解決の修正や Hash のキーや case 文の when 節に同じ値が重複していた時の警告出力の仕様変更などがありました。

[e26ac3ab71] Peter Zhu 2024-03-28 19:30:25 UTC

bootstraptest の finalizer のテストに登録された finalizer の実行を確認するテストを追加しています。

[3ca0683529] David Rodriguez 2024-03-21 15:01:37 UTC

bundler のコメントの typo 修正。

[d342937e01] David Rodriguez 2024-03-21 15:02:17 UTC

bundler のメソッド名の変更。

[acbd91e47f] David Rodriguez 2024-03-21 15:55:50 UTC

bundler の依存関係解決時の冗長なソート処理を削除。

[0a1e36964d] David Rodriguez 2024-03-21 16:20:57 UTC

bunler の依存関係解決の不要な処理の削除。

[2b82b7d192] David Rodriguez 2024-03-21 16:27:04 UTC

bundler の rdoc 用コメントの追加と更新。

[d69ef1cc52] David Rodriguez 2024-03-21 16:55:14 UTC

bundler の依存関係解決のためのバージョンの比較のメソッドを逆転して配列の reverse を不要にしています。

[b6ac37c91a] David Rodriguez 2024-03-21 17:41:31 UTC

bundler の依存関係解決時のバージョンのリストアップ時に指定の範囲外の不要なバージョンを除外するようにしています。

[bfdbdf7aae] David Rodriguez 2024-03-21 20:20:40 UTC

bundler の依存関係解決処理の冗長な処理を削る最適化のようです。

[f80bb3837c] David Rodriguez 2024-03-21 18:19:05 UTC

bundler の依存関係解決処理のバージョンリストの処理のリファクタリング

[e2a1d0b53d] David Rodriguez 2024-03-21 19:59:42 UTC

bundler の依存関係解決の conflict 時のエラーメッセージを改善。

[508bddc865] tomoya ishida 2024-04-01 16:25:17 UTC

標準添付ライブラリ reline の Reline::LineEditor::MenuInfo を Struct のインスタンスから class 文で宣言する通常のクラスにして表示の整形処理を実装しています。 https://github.com/ruby/reline/pull/613

[a531cac335] tomoya ishida 2024-04-01 18:12:23 UTC

標準添付ライブラリ reline の補完処理のための Proc オブジェクトの実装などのリファクタリングhttps://github.com/ruby/reline/pull/647

[8066e3ea6e] yui-knk 2024-04-01 06:46:58 UTC

internal/parse.h で定義している構造体 rb_strterm_t のメンバー flags を削除して bool 型の heredoc をかわりに追加しています。 T_IMEMO 型オブジェクトではなくなったため VALUE 型のメンバーを消すためのようです。

[799e854897] yui-knk 2024-03-23 23:39:27 UTC

Hash のキーや case 文の when 節に同じ値が重複していた時の警告を parse 時に出しているのですが、このために表現上は異なる書きかたがされているけどオブジェクトとしては同値になるようなものも警告するために、parse 時に構文から ruby のオブジェクトへの変換をしないといけないのが現在進めている parser から ruby のオブジェクト(VALUE)への依存をなくす方針と conflict するため、少し仕様を変更して構文上同じ表現のものが重複している時だけ警告するようにしています。 [ruby-core:117115] [Feature #20331]

[4db7c8a24a] Hiroshi SHIBATA 2024-04-02 01:12:48 UTC

rubygems の再定義する require で警告する対象の gem に ostruct を 3.5 以降で警告するよう追加しています。

[94f56098b1] Hiroshi SHIBATA 2024-04-02 01:13:33 UTC

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

[a65d49ce77] Hiroshi SHIBATA 2024-04-02 01:48:39 UTC

bundler のテストで使う? rake のバージョンの指定を 13.2.0 に更新しています。

[457a30df85] git 2024-04-02 02:22:51 UTC

NEWS の bundled gems のバージョンリストに rake の新バージョンを追記しています。

[8b55aaa85c] Yuta Saito 2024-02-20 07:03:11 UTC

拡張ライブラリの cross compiling のために標準添付ライブラリ mkmf.rb でコマンドラインオプション --target-rbconfig を処理するようにしています。 require するだけで ARGV を変更しちゃうのでちょっと副作用が気になりますが、影響受けるのはテストとかだろうから実世界ではまあ大丈夫かな……。 [ruby-core:117212] [Feature #20345]

[1e5949bd60] Andrew Konchin 2024-04-01 14:52:57 UTC

spec/ruby に upstream から最新版をマージしています。

[e651395210] Hiroshi SHIBATA 2024-04-02 08:28:42 UTC

rubygems で上書きする require で default gems などに警告を出すための lib/bundled_gems.rb で pstore も 3.5 から警告を出力するようにしています。

[e816ab0b0c] yui-knk 2024-04-01 05:33:17 UTC

parse.y から rb_imemo_tmpbuf_t を利用した GC で管理される一時メモリ領域の確保の機構が不要になっていたので削除しています。

ruby-trunk-changes 2024-04-01

今日は主にテストの修正などがありました。

[80bda107c8] KJ Tsanaktsidis 2024-03-31 23:50:18 UTC

標準添付ライブラリ resolv のテストに with_udp と with_tcp というヘルパーメソッドを組み合わせた with_udp_and_tcp という新しいヘルパーメソッドを導入しています。 UDPTCP で同じ port 番号になるようにリトライも追加してまれ port が空いてなくてテスト失敗するのを防ぐようにしているようです。 [ruby-core:117388] [Bug #20403]

[e07178d526] Joshua Young 2024-04-01 01:06:10 UTC

Process.wait の rdoc 用コメントの typo 修正。

Universal Parser 用の構造体 rb_parser_config_t から char_to_option_kcode、ascii8bit_encindex、encoding_get、encoding_set といった未使用になっている関数ポインタのメンバーを削除しています。

[acfef7c4f0] Hiroshi SHIBATA 2024-04-01 04:16:33 UTC

rubygems のテストで gem のファイルをオンメモリで生成して書き出してたのを fixtures にファイルを用意してそれをコピーして使うように変更しています。

[70645a5acd] Nobuyoshi Nakada 2024-04-01 07:03:57 UTC

acfef7c4f06696bf5f6d0ade06ddc32683a2f7bb の続きで、やっぱり .gz ファイルをオンメモリで生成して書き出し時に File.binwrite を利用するように修正しています。 Windows での改行コードの自動変換で問題が起きてたみたいですね。

[b50c4dc30a] Nobuyoshi Nakada 2024-04-01 07:51:28 UTC

70645a5acdaa6028a897b828ceacd57efb9cf257 のさらに続きで変数名をすこし変更しています。

[1232975398] 卜部昌平 2024-04-01 03:10:34 UTC

GitHub Actions のいろんなコンパイラ/コンパイルオプションをためす workflow で clang のバージョンを上げています。

ruby-trunk-changes 2024-03-31

今日は Object Shapes でのインスタンス変数がみつからない時の最適化やコンパイラ最適化による潜在的 GC mark 漏れの修正などがありました。

[f697d3242f] Nobuyoshi Nakada 2024-03-30 09:34:45 UTC

configure で BASERUBY のバージョンのチェックでのバージョン番号を tool/missing-baseruby.bat から抽出するようにしてバージョンの記述箇所をまとめるようにしているようです。

[376ae22235] Nobuyoshi Nakada 2024-03-30 09:34:45 UTC

f697d3242feeb18dae3b9f5e9addebb11e5442ff の続きで tool/missing-baseruby.bat という複数の言語(bat ファイルや shell)として記述されているスクリプトruby として動作するための記述も追加して win32/Makefile.sub で BASERUBY を探す時にもこの実装を利用して tool/missing-baseruby.bat で探すようにしています。

[9579cf45d5] Aaron Patterson 2024-03-31 00:29:09 UTC

Object Shapes の実装でインスタンス変数の検索で存在しないインスタンス変数だった時に shape_cache_get_iv_index() でヒットしなかった時にキャッシュを利用して不要な探索をスキップするように最適化しているようです。

[174b671699] Ellen Marie Dash 2024-03-31 01:07:31 UTC

rubygems の Gem::Commands::RebuildCommand::DATE_FORMAT という未使用の定数を削除しています。

[9d0a5148ae] KJ Tsanaktsidis 2024-03-30 01:58:01 UTC

Array#sample や RubyVM::InstructionSequence.load や文字列の連結処理などで中間オブジェクトをコンパイラの最適化による GC の mark 漏れから保護するための RB_GC_GUARD() を追加しています。 [ruby-core:117380] [Bug #20402]

[e02a06fbf2] KJ Tsanaktsidis 2024-03-31 09:41:22 UTC

doc/contributing/building_ruby.md に ASAN を有効にしてテストを実行する方法について追記しています。

ruby-trunk-changes 2024-03-30

今日は prism の更新と bundled gems の debug.gem のバージョン更新がありました。

[d7d59ea172] Alex Robbin 2024-03-29 16:23:24 UTC

bundler のテストに bundle update での Gemfile.lock の生成についてのテストを追加しています。

[a6d8837d2b] git 2024-03-30 06:58:50 UTC

gems/bundled_gems と NEWS の bundled gems のバージョンリストの debug.gem のバージョンを 1.9.2 に更新しています。

ruby-trunk-changes 2024-03-29

今日は主に rubygems の gem rebuild サブコマンドの追加などの変更がありました。

[2ab9fb1c2e] Nobuyoshi Nakada 2024-03-28 13:28:37 UTC

parse.y で数値リテラルの 8進数の検知の処理でバッファから文字を peek したのを戻し忘れていた不具合の修正。 [ruby-core:117354] [Bug #20398]

[4fa8fefd9c] Nobuyoshi Nakada 2024-03-28 14:19:39 UTC

rubyspec の拡張ライブラリ stringio のテストで文字列リテラルに String#@+ をつけて chilled string の警告避けをしています。

[03ab4a56d2] Nobuyoshi Nakada 2024-03-28 14:58:07 UTC

common.mk の make clean-runnable で削除対象に $(EXTOUT)/common/$(arch) を追加しています。

[fa0a62413a] Peter Zhu 2024-03-27 15:16:24 UTC

GC.compact でのオブジェクトへの参照の対応処理 gc_update_object_references() で Symbol の時の dynamic symbol かどうかのチェックが冗長とのことで削っています。

[97b2cc3435] Jake Zimmerman 2024-03-25 22:53:53 UTC

rubygems の Gem::Package::FormatError.new に File でなく文字列を渡しても対応するように修正しています。

[bb3cbdfe2f] Maxime Chevalier-Boisvert 2024-03-28 19:21:09 UTC

YJIT の --yjit-stats オプション指定時の統計情報のカウンタに iseq_alloc_count を追加しています。 https://github.com/ruby/ruby/pull/10398

[f3c35749fe] Alan Wu 2024-03-28 19:46:08 UTC

YJIT で Integer#<< メソッドの最適化を追加しています。

[02d40b6c17] "Daisuke Fujimura (fd0)" 2023-12-26 01:27:01 UTC

thread_pthread.c の USE_UBF_LIST マクロ定義を抑制する条件から __CYGWIN__ マクロの存在チェックを削っています。

[e5def27fbf] Ellen Marie Dash 2021-09-11 21:15:21 UTC

rubygems に gem rebuild というサブコマンドを追加しています。 .gemspec ファイルを指定してそのファイルの設定でのビルドを再現するというものみたいです。

[cd12dfd388] Ellen Marie Dash 2024-01-30 23:31:05 UTC

e5def27fbfaca4f08ff3a9bcf4c27742371a1da9rubygems の gem rebuild サブコマンドの実装で File オブジェクトの close 漏れを修正しています。

[a28087affc] Ellen Marie Dash 2024-01-31 03:05:56 UTC

e5def27fbfaca4f08ff3a9bcf4c27742371a1da9 で追加の rubygems の gem rebuild サブコマンドに --diff オプションを追加して、diffoscope というコマンドを使って結果のパッケージファイルの比較をするようにしています。

[54e0b8073b] Ellen Marie Dash 2024-01-31 04:12:04 UTC

rubygems の gem rebuild サブコマンドでビルドディレクトリの作成に標準添付ライブラリ tmpdir を利用するようにしています。

[fe096f64e8] Ellen Marie Dash 2024-01-31 04:18:48 UTC

rubygems の gem rebuild サブコマンドのヘルプメッセージのサンプルなどの記述を削除しています。

[88d7be46b5] Ellen Marie Dash 2024-01-31 17:34:20 UTC

rubygems の gem rebuild サブコマンドの実装で File.read のかわりに Gem.read_binary を使うなどのリファクタリング

[dfe83df03e] Ellen Marie Dash 2024-01-31 18:07:07 UTC

rubygems の gem rebuild サブコマンドで古いパッケージのビルドに使った rubygems のバージョンをチェックするようにしています。

[54d90e1355] Ellen Marie Dash 2024-02-28 00:38:43 UTC

rubygems の gem rebuild サブコマンドの --diff オプションを指定しなかった時にも常に --diff を付けて詳細な差分が出せるよというメッセージを出すようにしています。

[d916dbcb84] Ellen Marie Dash 2024-02-28 00:48:41 UTC

rubygems の gem rebuild サブコマンドのヘルプメッセージの整形。

[d19744fbd6] Ellen Marie Dash 2024-02-29 23:38:40 UTC

rubygems の gem rebuild サブコマンドの実装の find_gemspec というメソッドを Gem::GemspecHelpers モジュールに切り出すリファクタリング

[38331c8981] Ellen Marie Dash 2024-02-29 23:47:39 UTC

d19744fbd6e8ede579eb73109e6b2ec936a6ab43 で追加したファイルの空行削除。 Rubocop の指摘適用らしいです。