ruby-trunk-changes 2023-12-01

今日は拡張ライブラリ json の更新や YJIT の不具合修正、ripper の不具合修正などがありました。

[3c5a3b73f1] Jean Boussier 2023-11-30 07:28:41 UTC

NEWS に RGenGC 関連の改善や組み込みクラスの Variable Width Allocation を利用した slot への埋め込み対応について追記しています。

[cc393b4f80] Nobuyoshi Nakada 2023-10-29 03:30:56 UTC

標準添付ライブラリ rdoc のテストで Kernel#open を使っているところを File.write を利用するようにしています。

[f193f96d31] Stan Lo 2023-11-30 15:22:17 UTC

irb で通常の入力の評価結果の inspect の表示でもページャーコマンドを利用するようにしています。また less コマンドの時に自動的に -X オプションをつけるようにしているようです。 https://github.com/ruby/irb/pull/784

[d048bae96b] Takashi Kokubun 2023-11-30 16:23:25 UTC

YJIT の実装でメソッド呼び出し時のコードで rb_execution_context_t::cfp の更新をその cfp->jit_return の設定の後で行うようにしています。タイミングで stackprof でプロファイルをしている時に不正な状態がみえてしまうことがあったみたいです。 https://github.com/ruby/ruby/pull/9072

[85092ecd6f] Alan Wu 2023-11-29 23:10:13 UTC

T_IMEMO 型のオブジェクトの imemo_env タイプのオブジェクトを生成する時に GC.compact の対応に問題があって異常終了する可能性があったので処理の順序を変更しています。

[f75fef6622] Jeremy Evans 2023-11-30 18:33:40 UTC

NEWS に Thread::Queue, Thread::SizedQueue の freeze メソッドの挙動変更について追記しています。

[060f14bf62] Jeremy Evans 2023-11-30 17:53:01 UTC

doc/_regexp.rdoc の正規表現の文字クラスの :word: や \p{Word} について、Unicode の Number ではなく Decimal Number というカテゴリにマッチするというふうに記述を修正しています。 [ruby-core:112223] [Bug #19417]

[7008d97b76] Ellen Marie Dash 2023-11-29 23:49:08 UTC

rubygems の gem install や gem update での user install に fallback する時の警告出力の条件を修正しています。

[a1647c460f] Peter Zhu 2023-11-30 15:13:20 UTC

Object Shapes の赤黒木の実装での変数名の改名。

[4541e192d9] Peter Zhu 2023-11-30 21:48:51 UTC

Object Shapes の赤黒木の実装にデバッグのためさらに RUBY_ASSERT() による assertion を追加しています。

[73e6d8a0d0] Maxime Chevalier-Boisvert 2023-11-30 22:14:53 UTC

YJIT で Array#length, Array#size メソッドの呼び出しでメソッド呼び出しを使わず直接インラインで処理を生成する最適化を追加しています。 https://github.com/ruby/ruby/pull/9085

[c3cb27eede] Alan Wu 2023-11-30 23:28:11 UTC

NEWS に Kernel#lambda でブロックをその場で定義してない時に警告を出力する変更について追記しています。

[59f31a6618] Alan Wu 2023-11-30 23:46:00 UTC

NEWS.md のインデントの修正。

[5888a16a12] Alan Wu 2023-11-30 23:54:32 UTC

YJIT のテストで RubyVM::YJIT.runtime_stats の項目名の改名の追随漏れを修正。

[ba1cdadfc8] Takashi Kokubun 2023-12-01 02:35:55 UTC

YJIT のプログラム領域の独自の GC で不正なメモリの参照状態になり異常終了してしまう可能性があったとのことで YJIT で大域脱出? する時に cfp->jit_return という構造体メンバーの内容を leave_exit にクリアしておくようにしているようです。 https://github.com/ruby/ruby/pull/9086

[b4a85e402f] Kevin Newton 2023-11-30 20:42:47 UTC

prism の追加された Encoding 関連のソースファイルの依存関係を common.mk に追加しています。

[e2bbbacc23] Kevin Newton 2023-12-01 01:59:00 UTC

prism の新規ヘッダの依存関係の common.mk への追加と関数の引数の const 修飾子追加。

[1bfd30a1e3] Misaki Shioi 2023-12-01 00:31:33 UTC

拡張ライブラリ socket の Socket::ResolutionError 例外についてのテストが FreeBSD で失敗していた件の対処として許容する error に Socket::EAI_FAIL を追加しています。またテストに使うドメイン名として example.com を使うようにしています。

[52c2660163] Misaki Shioi 2023-12-01 01:23:14 UTC

1bfd30a1e3fa2c1d2729667ed698b7c604c2a1bd の再修正でチェックするエラーが複数になったので assert_include を利用するよう修正しています。

[d503e1b95a] Nobuyoshi Nakada 2023-12-01 04:04:42 UTC

拡張ライブラリ ripper の Ripper.tokenize に '"\\C-あ"' のように \C- に続いて不正な文字を渡すと無視されてしまうので SyntaxError にするようにしています。正確にはその場で SyntaxError にはしないけどマルチバイト文字が読み飛ばされずに残るのでそれを読んだ時点で改めて SyntaxError になるということかな。 [ruby-core:115549] [Bug #20030]

[e36b9760fd] Nobuyoshi Nakada 2023-12-01 05:52:47 UTC

同じく 拡張ライブラリ ripper で "\x##" の記法で ## の部分が不正だった時のエラーで "\x" の部分もコールバックに渡されるようにしています。

[60568e971e] Kazuhiro NISHIYAMA 2023-12-01 07:39:22 UTC

NEWS のチケットのリンク用の footnote をチケット番号でソートしなおしています。

[062b59ba9a] Kazuhiro NISHIYAMA 2023-12-01 07:45:17 UTC

NEWS の M:N Thread の記述の typo 修正。

[854e6559b6] Lucas Kanashiro 2022-11-10 20:21:36 UTC

拡張ライブラリ json のテストに helper の require を追加。

[4b770527c2] John Hawthorn 2022-09-20 00:56:19 UTC

拡張ライブラリ json で parse 時に "Infinity" を読んでエラーにする時の文字列内の位置の計算が間違っていて間違ったトークンがエラーの原因として表示されていたのを修正しています。

[32f289d118] Hiroshi SHIBATA 2023-12-01 05:58:11 UTC

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

[698cb84062] Jean Boussier 2023-02-20 10:09:32 UTC

拡張ライブラリ json の実装で free(3) のかわりに ruby_xfree() を呼ぶように修正しています。メモリ確保するほうはもともと ruby_xmalloc() を使ってたようです。

[0dfeb17296] Jean Boussier 2023-04-13 17:22:29 UTC

拡張ライブラリ jsonJSON への文字列のエンコード時に Unicode の U+2028 LINE SEPARATOR と U+2029 PARAGRAPH SEPARATOR という文字を "\U####" のようなエンコードをするようにしています。これにあわせて JSON.generate に script_safe というオプションを追加してこれが true の時に前述のエンコードを行うようにしています。デフォルトはどっちだろう。false っぽいけど。 https://github.com/flori/json/pull/525

[86045fca24] Hiroshi SHIBATA 2023-12-01 06:51:26 UTC

拡張ライブラリ json のいくつかの変更を手動で取り込んでいるようです。 https://github.com/flori/json/pull/525 https://github.com/flori/json/pull/454

[7d142c08cb] Hiroshi SHIBATA 2023-12-01 07:46:42 UTC

854e6559b6dcda9dcbd6687aef1a3ac0c0c90cac で拡張ライブラリ json のテストで helper の require を追加したのを LoadError を捕捉して無視するようにしています。 rubyリポジトリ内では不要な require なので。

[e005c51732] git 2023-12-01 07:48:10 UTC

NEWS の default gems のバージョンリストに json の項目を追加しています。

[64c4bbb86c] Hiroshi SHIBATA 2023-12-01 09:12:55 UTC

prism のテスト用のファイルの追加漏れ修正。