ruby-trunk-changes 2021-12-15

今日は ENV の Ractor 対応と TracePoint のメモリリーク修正、YJIT の不具合修正や引き続き NEWS の整理などがありました。

[0e7d073914] Peter Zhu 2021-12-13 19:43:52 UTC

GC.compact が利用可能かどうかの判定のために ObjectSpace の page のサイズがシステムのページサイズの整数倍になっているか、という条件があり、そのために sysconf() で判定して例外発生させていたのをやめています。compaction の実装では移動したオブジェクトの参照をトラップするための read barrier のために mmap() を利用しているので、実際にこの条件にひっかかる環境はないはずとのことで。

[9e00f8267d] Jean Boussier 2021-12-13 08:45:29 UTC

NEWS に String#unpack, #unpack1 の offset キーワード引数追加と Marshal.load の freeze キーワード引数の追加について追記しています。

[67b6a22263] git 2021-12-14 15:43:38 UTC

version.h の日付更新

[a3934cd1e5] Nobuyoshi Nakada 2021-12-14 15:35:54 UTC

parse.y のインデントの修正のみ。

[637c3cfc5d] Nobuyoshi Nakada 2021-12-14 15:37:45 UTC

parse.y の SET_LEX_STATE() マクロの実体を parser_set_lex_state() という inline 関数で実装してこのの呼び出しに変更しています。

[b32b755ea2] Matheus Richard 2021-12-14 16:46:08 UTC

Integer.try_convert の rdoc 用コメントの未対応のオブジェクトについての記述でメソッド名の typo 修正(to_ary -> to_int)をしています。

[b8f7fc361d] Matheus Richard 2021-12-14 17:12:37 UTC

Integer.try_convert の rdoc 用コメントにサンプルコードを追加しています。

[2e6e2fd9da] Koichi Sasada 2021-12-12 17:15:05 UTC

TracePoint の利用時にイベントフックの挿入箇所を管理する rb_hook_list_t 構造体のリストの要素の解放漏れがあったのを修正しています。

[397a509b6d] Koichi Sasada 2021-12-14 16:11:45 UTC

main Ractor でない Ractor から Module#autoload で設定された定数の参照によりファイルのロードが行なわれそうになったら例外を発生させるようにしています。 [ruby-core:105014] [Bug #18120]

[3a6b79d0c0] Nobuyoshi Nakada 2021-11-29 06:29:36 UTC

b7f7117bdc78a4a342a57dad1a340b158492ccf3 で parse.y の構造体 struct lex_context のメンバー名を in_kwarg → in_argdef に改名していたのを revert しています。

[aa7c4c37d7] Nobuyoshi Nakada 2021-11-18 12:41:46 UTC

parse.y の構造体 struct lex_context に in_kwarg とは別に新しいメンバー in_argdef を追加して、メソッド定義の引数に委譲用の "..." を書いてなおかつメソッド引数をかっこで括らなかった時の parse がおかしくなるのを修正しています。 [ruby-core:105795] [Bug #18267]

[b563f12297] Matheus Richard 2021-12-14 22:15:02 UTC

Process._fork メソッドの rdoc 用コメントのマークアップ修正。

[b7ae08992f] John Hawthorn 2021-12-11 01:08:05 UTC

YJIT のメソッド再定義の検出のコードでの不要な invalidation を抑制するための修正。BOP ってなんだろう。

[e307627b6c] John Hawthorn 2021-12-14 21:20:45 UTC

b7ae08992f7e4c663b61a3895d29d066fa22e452 に続き YJIT のメソッド再定義の検出で alias で定義されたメソッドの変更時に alias 先の本体のメソッドのほうの invalidation を抑制するようにしています。

[6eb500e2df] Nobuyoshi Nakada 2021-11-27 09:55:42 UTC

標準添付ライブラリ cgiCGI::Session#initialize や CGI::Session::PStore#initialize から一時ファイルを生成する処理を CGI::Session#new_store_file に切り出すリファクタリング

[ac5d6faea8] Alan Wu 2021-12-15 00:47:42 UTC

YJIT がキーワード引数のデフォルト値をコピーする時に mov 命令のオペランドに直接即値で書こうとして環境によって上位バイトが削れてたのを修正して、一度レジスタに入れてそれを参照するように修正しています。

[0fcc58a18c] Victor Shepelev 2021-12-15 02:25:33 UTC

Thread::Queue.new の rdoc 用コメントのサンプルを強化しています。

[d3d156c21e] Rohit Menon 2021-07-02 00:04:52 UTC

ENV のメソッド群の実装に mutex による排他処理を追加しています。複数 Ractor 対応かな?

[2a3e4b6940] Rohit Menon 2021-07-03 18:27:45 UTC

d3d156c21ecf0a602d366209b3e2da665c3ec389 の修正で例外が発生する可能性のある処理は排他処理のセクションの外に出して解放漏れしないようにしています。

[e071ac8b3d] Rohit Menon 2021-07-07 15:17:26 UTC

ENV のテストに Ractor から利用するものを追加しています。

[3aab870761] Rohit Menon 2021-07-08 03:13:49 UTC

ENV を Ractor 間で共有可能なオブジェクトとして flags に RUBY_FL_SHAREABLE を設定しています。

[f471cf295b] Nobuyoshi Nakada 2021-07-21 03:06:16 UTC

d3d156c21ecf0a602d366209b3e2da665c3ec389 で導入された ENV 排他用のロックの変数 env_lock や関数 getenv_with_lock() に static 修飾子を追加しています。

[9bb83a82ab] Nobuyoshi Nakada 2021-07-21 03:19:54 UTC

test/ruby/test_env.rb の行末の空白除去。

[88e36d8f3c] Nobuyoshi Nakada 2021-07-21 03:24:22 UTC

hash.c の関数定義などのスタイルの修正。

[b43338ccc4] Nobuyoshi Nakada 2021-07-21 03:39:34 UTC

common.mk の hash.o の依存関係の更新。

[db3ab440db] Nobuyoshi Nakada 2021-07-21 03:40:26 UTC

hash.c の env_entry_count() の定義で引数に明示的に void を書くように修正しています。

[a6ebc10532] Nobuyoshi Nakada 2021-07-21 03:57:32 UTC

さらに hash.c の copy_env_pairs() の引数を C の文字列で受け取るようにリファクタリングしています。

[a4a3528eb7] Nobuyoshi Nakada 2021-07-21 03:58:14 UTC

hash.c のいくつかの関数で不要になった変数 env を削除しています。

[0eafba3610] Koichi Sasada 2021-12-14 08:28:25 UTC

d3d156c21ecf0a602d366209b3e2da665c3ec389 の ENV の排他のためのロック処理を共通の RB_VM_LOCK_ENTER() と RB_VM_LOCK_LEAVE() を利用するように書きかえています。

[04aab3c259] Koichi Sasada 2021-12-14 15:13:15 UTC

ENV の Ractor からの利用のテストで Ractor.new の引数を渡し忘れてたのを修正しています。

[13c37835d5] Koichi Sasada 2021-12-14 16:24:36 UTC

ENV で環境変数にとても大きい文字列を設定した時に Errno::EINVAL が発生する環境として RUBY_PLATFORM に mswin を含むという条件にしていたのを ucrt も条件に追加しています。

[0f99f3fe5e] Nobuyoshi Nakada 2021-12-15 06:31:46 UTC

hash.c のインデントの修正のみ。

[b2395539aa] git 2021-12-15 07:01:23 UTC

gems/bundled_gems の minitest のバージョンを 5.15.0 に更新。

[7d50142a9b] Kazuhiro NISHIYAMA 2021-12-15 07:59:10 UTC

NEWS から未参照のチケットを footnote から削除。

[ded33ed5b8] Nobuyoshi Nakada 2021-12-15 08:42:48 UTC

GitHub Actions の .github/workflows/check_misc.yml に標準添付ライブラリのバージョンの更新を NEWS に反映されているかをチェックして自動的に更新してコミットまでするという処理を追加しています。

[583e06e28f] git 2021-12-15 09:00:47 UTC

NEWS の標準添付ライブラリのバージョン一覧が更新されています。 ded33ed5b8d923b0bb707b4e617ba02dde404188 による一括の更新ですね。

[7e084ed707] Hiroshi SHIBATA 2021-12-14 12:14:58 UTC

rubygems と bundler の upstream からのマージ。

[5044371621] Hiroshi SHIBATA 2021-12-15 06:44:06 UTC

rubygems のテストで s390x 環境で失敗するものを skip するようにしています。

[de01011da3] Kazuhiro NISHIYAMA 2021-12-15 09:53:16 UTC

NEWS の標準添付ライブラリと bundled gems のバージョンの更新。

[890a6b432c] David Rodríguez 2021-12-13 15:50:04 UTC

rubygems のテスト用ヘルパーメソッドでまったく同じものが重複して定義されていたので test/rubygems/helper.rb に移動して共通化しています。

[c2dbdf3067] David Rodríguez 2021-12-13 15:52:37 UTC

rubygems のテストから Encoding.default_internal を変更してテスト実行するという処理を with_internal_encoding というヘルパーメソッドとして切り出すリファクタリング

[9f87c0cc6d] David Rodríguez 2021-12-13 15:53:50 UTC

rubygems の Gem.write_binary メソッドでファイルを開く時に flags に File::BINARY のビットフラグを含めるかわりに binmode: true を渡すようにしています。

[1fc80754dd] git 2021-12-15 10:47:15 UTC

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