ruby-trunk-changes 2024-05-07

今日は主に bundled gem の bigdecimal のバージョンアップなどがありました。

[1df1edc080] Alan Wu 2024-05-06 14:28:36 UTC

YJIT の --yjit-stats で出力するカウンタに invalidate_ep_escape というのを追加しています。 https://github.com/ruby/ruby/pull/10722

[88d74a4848] Earlopain 2024-05-06 14:15:24 UTC

ObjectSpace::WeakMap クラスの rdoc 用コメントの typo 修正。

[5c018cddcc] David Rodriguez 2024-05-06 12:53:52 UTC

rubygems の 2.5 より前の古い ruby での互換性のための処理を削除しています。

[00b1553dc6] David Rodriguez 2024-05-06 15:23:36 UTC

rubygems のテストで Windows での ENV.replace の不具合対策のための workaround がもう不要とのことで削除しています。

[e9356bec96] "dependabot[bot]" 2024-05-07 02:19:14 UTC

GitHub Actions の独自アクションで利用している actions/checkout アクションのバージョンを更新しています。

[7c8903d014] "dependabot[bot]" 2024-05-07 03:01:56 UTC

GitHub Actions の workflows で利用している actions/checkout アクションのバージョンを更新しています。

[80adf6a18c] Yuta Saito 2024-05-04 20:41:16 UTC

rubygems の platform の指定として wasm32-wasi のような指定を受付けるようにしています。WASM/WASI で rubygems で動的な load が使えるのかな。

[e1e6b4972f] git 2024-05-07 06:59:36 UTC

gems/bundled_gems および NEWS の bundled gems のバージョンリストの bigdecimal のバージョンを 3.1.8 に更新しています。

ruby-trunk-changes 2024-05-06

今日は主に Ractor.select に割り込みが効いてなかった不具合の修正などがありました。

[5398a46889] git 2024-05-05 11:12:41 UTC

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

[6747fbe77d] Luke Gruber 2024-05-05 15:14:53 UTC

複数 Ractor 利用時に Ractor.select で待ち状態だとシグナルでの割り込みに対応していなくて固まってしまう不具合を修正しています。 [ruby-core:116106] [Bug #20168]

[95ae123343] Nobuyoshi Nakada 2024-05-05 16:09:53 UTC

標準添付ライブラリ did_you_mean の gemspec ファイルの spec.add_development_dependency を削除しています。

[2a807bcdff] "dependabot[bot]" 2024-05-06 02:16:41 UTC

GitHub Actions の workflows で利用している ruby/setup-ruby アクションのバージョンを更新しています。

[a5cb8c8c5b] Dave Thomas 2024-05-06 04:51:44 UTC

Enumerable#inject の rdoc 用コメントを全面的に書き直しています。 https://github.com/ruby/ruby/pull/10009

ruby-trunk-changes 2024-05-05

今日は主に標準添付ライブラリ reline と irb の変更、拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#read_nonblock の挙動の小さな変更などがありました。

[d679afe9f9] tomoya ishida 2024-05-05 07:09:47 UTC

標準添付ライブラリ reline の Ctrl-i, Ctrl-p, Ctrl-n などの補完候補選択の処理を Reline::LineEditor#input_key 内に直接書いてたのをキーバインディングとして定義するようにリファクタリング? しています。 https://github.com/ruby/reline/pull/698

[fca6c55a53] Mari Imaizumi 2024-05-05 07:22:49 UTC

標準添付ライブラリ reline の Reline::Config::VARIABLE_NAMES 定数の配列から未定義の設定ファイルでの変数名を削除しています。 https://github.com/ruby/reline/pull/699

[7d42010fad] Jean Boussier 2024-04-16 12:52:58 UTC

拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#read_nonblock で読むべきものがなくて処理が戻った時にバッファを引数で渡していた時にそのバッファの内容をクリアしないようにしています。そのほうが嬉しい場合というのは思いつきませんが IO#read_nonblock の挙動と合わせるためとのこと。

[e973f9cbb3] Stan Lo 2024-05-05 10:44:49 UTC

irb の組み込みコマンドの conf のヘルプメッセージを少し変更しています。 https://github.com/ruby/irb/pull/950

[93cffcf961] Stan Lo 2024-05-05 11:11:28 UTC

irb のバージョンを 1.13.1 に更新しています。 https://github.com/ruby/irb/pull/951

ruby-trunk-changes 2024-05-04

今日は主に prism と irb の更新がありました。

[281df1e495] David Rodriguez 2024-02-05 19:19:40 UTC

rubygems の Gem::Specification#mark_version メソッドを削除しています。 gem rebuild サブコマンドで gem をリリースした時の rubygems と異なるバージョンの rubygems で rebuild してもエラーではなく警告に留めるようにしているようです。

[91485d7dc6] Nobuyoshi Nakada 2024-05-03 16:15:09 UTC

拡張ライブラリ objspace のテストのインデントの修正のみ。

[b6625d38d8] Nobuyoshi Nakada 2024-05-03 16:34:35 UTC

ObjectSpace モジュールの rdoc 用コメントの finalizer の呼ばれるタイミングについて GC で解放される直前というような記述になっていたので、解放後に呼ばれると修正しています。

[a510175e8f] Kenichi Kamiya 2024-05-03 22:08:44 UTC

irb の組み込みコマンド help でユーザー定義による組み込みコマンドの help メッセージ用の文字列が用意されていない時にエラーになってしまうのを修正しています。 https://github.com/ruby/irb/pull/944

[cf74ff714a] yui-knk 2024-04-25 07:09:42 UTC

parse.y および ripper の lexer の読み込み用関数群で文字列を VALUE で返していたのを rb_parser_string_t 型で返すように変更しています。

[fb2ea7084f] Stan Lo 2024-05-04 03:22:14 UTC

irb で Binding#irb で起動された irb かどうかを判定するためのインスタンス変数を IRB::Irb に追加してこれまで caller でバックトレースをみて判定していたのを軽量化しています。 https://github.com/ruby/irb/pull/947

[bd42f0898d] Stan Lo 2024-05-04 03:32:31 UTC

irb の組み込みコマンドの定義に使うベースクラスの #category および #description に未定義だった時のデフォルトのテキストを返すようにしています。 https://github.com/ruby/irb/pull/947

[96710a3139] tomoya ishida 2024-05-04 09:03:52 UTC

032070d793a0289931b6f15eb9ba25e9c492c1f7IRB::StdioInputMethod#gets で互換性のため? に puts を呼び出していたのを標準出力が端末の時だけにしています。 https://github.com/ruby/irb/pull/949

ruby-trunk-changes 2024-05-03

今日は irb や reline の不具合修正や parse.y のパラメーターつきルール利用の続きなどがありました。

[12cbfd8e2f] Nobuyoshi Nakada 2024-05-02 13:11:15 UTC

rubyspec の C API テスト用の拡張ライブラリで警告抑制のため return しない関数に NORETURN() による宣言を付けるようにしています。

[4f69d318b8] Peter Zhu 2024-05-01 15:15:28 UTC

206388b19eb3e1d98ee77821a96705c97c86eb06 および d1f14bafb06862e4095aea4598c7625368f6af24 の setproctitle() の代替実装のメモリリーク修正の続きで compat_init_setproctitle() で最初から存在していた environ を static 変数に保存しておいて ruby_free_proctitle() で復旧させるようにしています。

[e7d20623cb] Peter Zhu 2024-05-01 15:31:07 UTC

4f69d318b8667eb10596aaec9b75992a3265f66d のさらに続きで setproctitle() の代替実装の static 変数群にコメントを追加しています。

[c78cebb469] tomoya ishida 2024-05-02 14:41:04 UTC

fdf88a2c10bd0dc11d1033c2281d764dfdaa00de で標準添付ライブラリ reline の設定ファイルの重複読み込みを抑制する変更でキーバインディングがリセットされてしまう不具合があったのを修正しています。 https://github.com/ruby/reline/pull/697

[032070d793] tomoya ishida 2024-05-02 16:21:41 UTC

irbIRB::StdioInputMethod#gets の実装で先頭に puts を追加しています。よくわかりませんが debug との統合時の出力が変化してしまってテストが失敗するのを抑制するためみたいです。空行が追加されるみたいだけどそれはいいのかな。

[008f2b9b6a] Mari Imaizumi 2024-05-02 16:28:15 UTC

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

[0968b462b6] git 2024-05-02 16:29:17 UTC

NEWS の default gems のバージョンリストの reline のバージョンを更新しています。

[c59abb9999] Matt Valentine-House 2024-05-02 13:14:32 UTC

array.c の ary_heap_alloc() という関数を ary_heap_alloc_buffer() に改名しています。オブジェクトを確保する関数っぽくみえちゃうからかなと思いましたが ary_alloc_heap() という関数もあるので(これはオブジェクトを確保する関数)、まぎらわしすぎるのでということみたいです。確かに。

[945a99e81a] Stan Lo 2024-05-02 17:47:35 UTC

irb にテスト時に出力が端末でなくても端末であるかのように挙動させる環境変数 TEST_IRB_FORCE_INTERACTIVE をみるようにしています。

[c681af3e5d] Stan Lo 2024-05-02 17:50:39 UTC

rubyspec の binding.irb のテストで出力の空行を削るようにしています。032070d793a0289931b6f15eb9ba25e9c492c1f7 の影響かな?

[6d605f1e50] Peter Zhu 2024-05-01 20:46:51 UTC

構造体 struct RVALUE の定義からデバッグ用のビルド時のときだけ追加される領域を struct rvalue_overhead という別の構造体として切り出して slot サイズを返すマクロ BASE_SLOT_SIZE などで可算するようにしています。

[b5cefa79dd] Peter Zhu 2024-05-01 20:52:48 UTC

6d605f1e50b96f9b62eaf93bd3ef19db2fca3c83 の再修正で GC_DEBUG が真の時のビルドエラー(?)を修正しています。

[e1905ca180] ydah 2024-05-02 07:01:34 UTC

parse.y にパラメーターつきルール f_optarg() を追加して f_optarg や f_block_optarg をおきかえています。

[899d9f79dd] yui-knk 2024-05-02 23:57:55 UTC

AST のオブジェクトで wrap した VALUE 値を意味する構造体メンバーや変数名の vast を ast_value と意味がわかりやすい名前に全体的に改名しています。

[9f8e87c44b] Nobuyoshi Nakada 2024-05-02 16:07:29 UTC

拡張ライブラリ win32 の Win32::Registry のテストを追加しています。

[0b091e6675] Nobuyoshi Nakada 2024-04-27 13:03:13 UTC

拡張ライブラリ win32 の Win32::Registry の実装で Array#pack や String#unpack をアーキテクチャのワードサイズにあわせて指示子を変更していたのを環境によらない指示子を使うようにして、また指示子を定数に定義して使うようにしています。

[491c38bfcd] Nobuyoshi Nakada 2024-04-27 13:12:12 UTC

拡張ライブラリ win32 の ext/win32/lib/win32/registry.rb の magic comment の frozen_string_literal を true に変更しています。

[7662e6fcd5] Nobuyoshi Nakada 2024-04-27 13:26:39 UTC

拡張ライブラリ win32 の Win32::Registry で safe navigator 演算子を利用するリファクタリング

[c1b11c50cb] Jenny Shen 2024-05-02 17:00:49 UTC

rubygems の WebAuthn 対応で credential 内のユーザーの識別子のキーを email から identifier に変更しています。

ruby-trunk-changes 2024-05-02

今日は潜在的メモリリークの修正や拡張ライブラリ openssl の不具合修正などがありました。

[d1f14bafb0] Peter Zhu 2024-04-30 21:22:04 UTC

setproctitle(3) の代替実装でメモリプロファイラがメモリリークを検出する対策をしています。おそらく実害はないんじゃないかと思いますが。

[2a978ee047] Alan Wu 2024-05-01 14:22:41 UTC

YJIT 利用時にStruct で生成したクラスのインスタンスのメソッド呼び出しが TracePoint のイベントフックに反応しない不具合を修正しています。 https://github.com/ruby/ruby/pull/10690

[1000c27db8] Stan Lo 2024-05-01 14:23:05 UTC

irbIRB.conf[:BACKTRACE_FILTER] という設定項目で Proc オブジェクトを登録して例外表示のバックトレースのフィルタのカスタマイズができるようにしています。 https://github.com/ruby/irb/pull/917

[77f5301cd1] tomoya ishida 2024-05-01 14:52:49 UTC

irbIRB::Color.colorable? メソッドが nil を返すことがあったので常に true or false を返すようにしています。 https://github.com/ruby/irb/pull/940

[e9e41ad6b0] Nobuyoshi Nakada 2024-05-01 13:48:03 UTC

gc.c の ruby_mimcalloc() の確保するメモリサイズの計算の不具合を修正しています。

[7ef8bb129f] Peter Zhu 2024-05-01 14:01:02 UTC

拡張ライブラリ ripper の Ripper.sexp で rb_parser_t::ast の解放が漏れていた不具合を修正しています。

[fef6f5f2e1] Stan Lo 2024-05-01 15:19:55 UTC

irb のバージョンを 1.13.0 に更新しています。 https://github.com/ruby/irb/pull/941

[c8bec79216] git 2024-05-01 15:20:48 UTC

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

[5108bed513] yui-knk 2024-04-30 00:08:36 UTC

e3bfd25bd2202a172d7709e9a2f7b65b523a132druby_parser.c で TypedData_Wrap_Struct() を使うように変更したのを revert しています。やっぱり TypedData_Wrap_Struct() はよくなかったみたいです。

[d22dfce1cc] Nobuyoshi Nakada 2024-05-01 06:36:36 UTC

5108bed5130be00fd4df45eb12cc8ceee4533cf0 で revert された e3bfd25bd2202a172d7709e9a2f7b65b523a132d のリトライ。 ruby_parser.c の rb_ruby_ast_new() で TypedData_Make_Struct() を利用するようにして ast_alloc() ではポインタを指定せずに(NULL を指定して) TypedData_Wrap_Struct() を利用するように再修正しています。

[fcd89bf668] yui-knk 2024-05-02 03:17:18 UTC

同梱している Lrama のバージョンを 0.6.9 に更新しています。

[fdf88a2c10] Mari Imaizumi 2024-05-02 05:50:04 UTC

標準添付ライブラリ reline で Reline::Config.test_mode が真の時に readline を呼ぶ都度設定ファイルを読んでしまうので一度読んだら抑制するようにしています。 https://github.com/ruby/reline/pull/694

[ed5a7a59c0] ydah 2024-05-02 04:59:29 UTC

parse.y のパラメータ化されたルールの定義時に node のタイプ(型)の指定を書ける機能を利用しています。

[eb82ea6218] tomoya ishida 2024-05-02 06:06:27 UTC

標準添付ライブラリ reline の色付けをした時のプロンプトの表示サイズ計算の不具合修正。 https://github.com/ruby/reline/pull/695

[f5af620c61] Kazuki Yamaguchi 2024-05-02 06:49:05 UTC

拡張ライブラリ openssl で i2d_ASN1_TYPE() という OpenSSL の API 呼び出し時のエラーチェックを追加しています。

[d39993a4ce] Jaymz Julian 2024-02-05 23:00:47 UTC

拡張ライブラリ openssl の OpenSSL::Buffering#do_write メソッドで書き込みバッファの文字列を syswrite で一部書き込む都度その部分をクリアしてたのが大きなサイズのバッファを書き込む時にクリアする処理で時間がかかってしまうので、全体の書き込み後に一括でクリアするようにしています。

[c9aa63a9e0] Jeremy Evans 2023-10-27 16:08:11 UTC

拡張ライブラリ openssl の OpenSSL::PKCS7.new で不正なデータが渡された時のチェックを追加しています。 https://github.com/ruby/openssl/pull/690 [ruby-core:115179] [Bug #19974]

[55720f372d] Jeremy Evans 2023-11-12 00:36:39 UTC

拡張ライブラリ openssl の OpenSSL::PKCS7.read_smime でもデータが不正だった時のチェックを追加しています。

ruby-trunk-changes 2024-05-01

今日は拡張ライブラリ openssl の機能追加や parse.y に Lrama によるパラメーターつきルールを利用したリファクタリングなどがありました。

[1699772ac4] Samuel Williams 2024-04-22 08:48:40 UTC

拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket に #close_read と #close_write メソッドを追加してソケットの読み込み端と書き込み端をそれぞれ独立して close する処理に対応しています。しかし TLS のソケットは暗号化通信路の確立のために読むだけでも書き込みする通信が必要な場合があるので close_read は空のメソッドになっています。

[f1afae2459] Samuel Williams 2024-04-27 12:06:26 UTC

1699772ac4e62d783aab6e820f978c04a215a612 で追加した拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#close_{read,write} の rdoc 用コメントを追加しています。

[368ce0758e] Samuel Williams 2024-04-28 06:09:49 UTC

f1afae2459e139430859f57b8351d180e9ef5d9f の拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#closes_write の rdoc 用コメントの追記を再修正しています。

[1ca4c52b64] Peter Zhu 2024-04-29 21:42:00 UTC

プロセス終了時の構造体 rb_vm_t の解放時に unused_block_warning_table の解放が漏れていたのを修正しています。

[cc6657e563] Bart de Water 2024-03-12 02:27:04 UTC

拡張ライブラリ openssl に OpenSSL::Digest.digests というメソッドを追加してサポートされている digest のアルゴリズムのリストを文字列の配列で返すようにしています。

[9d75d9f07c] Bart de Water 2024-03-15 15:05:20 UTC

拡張ライブラリ openssl の OpenSSL::SSL::Cipher#name メソッドの rdoc 用コメントの説明を少し修正しています。

[e0949c3f7c] Peter Zhu 2024-04-30 15:17:43 UTC

拡張ライブラリ openssl のテストの行末の空白除去。

[d950609ec7] Samuel Giddins 2024-04-11 07:05:42 UTC

rubygems で gemspec ファイルを読み込む時に 10MiB を超えるサイズだと読み込みを中断してエラーを発生させるようにしています。

[d7ba0fec49] Samuel Giddins 2024-04-28 19:26:22 UTC

d950609ec709c7c4dc48603b9b2d88f840a520fb で追加した rubygems の TruffleRuby 向けの copy_stream の代替実装追加の条件に RUBY_ENGINE_VERSION のチェックを削っています。

[614187f8c2] tomoya ishida 2024-04-30 16:51:21 UTC

標準添付ライブラリ reline で補完処理でダイアログ表示をする時に折り返しが発生した時の表示の乱れを修正しています。 https://github.com/ruby/reline/pull/692

[bd419a6578] Peter Zhu 2024-04-29 15:23:39 UTC

gc.c のプロファイリングのために時間計測に使う tick_t の型を決める TICK_TYPE というマクロでの preprocess 分岐を消して常に unsigned long long を利用するようにしています。

[ade22339e3] Maxime Chevalier-Boisvert 2024-04-30 17:57:18 UTC

RubyVM::YJIT.disasm メソッドで YJIT が有効ではない時やビルド時の configuration で rb_yjit_disasm_iseq() が値を返さない時などに適当な警告メッセージを表示してエラーを起こさないようにする対応を追加しています。 https://github.com/ruby/ruby/pull/10688

[0c13596686] Sutou Kouhei 2024-04-30 13:31:07 UTC

標準添付ライブラリ delegate のテストに不要な謎の TestDelegateClass::PP モジュールの定義と include があったのを削っています。

[9f7e0d2bb4] ydah 2024-04-28 16:08:08 UTC

parse.y のメソッド引数の定義のところの opt_args_tail や opt_block_args_tail というルールを Lrama の拡張の %rule という記法を使って定義した opt_args_tail() というパラメーターつきルールを使ってまとめるようにしています。

[c28329817d] ydah 2024-04-29 01:50:53 UTC

同じく parse.y で Lrama の拡張機能を使って f_kwarg() というパラメーターつきルールを導入して f_kwarg と f_block_kwarg を置き換えています。

[acc76c8c91] ydah 2024-04-29 02:59:09 UTC

同じく parse.y に f_opt() というパラメーターつきルールを導入して f_opt, f_block_opt といったルールを置き換えています。

[57eca0a80d] Nobuyoshi Nakada 2024-05-01 08:46:41 UTC

AST まわりのメモリリークについてのテストを追加しています。eval("") を繰り返すというものなので parser まわりのメモリリークのテストにもなってそうですね。