今日は主に拡張ライブラリ json の高速化のための変更などがありました。
[c6c1e111b1] Peter Zhu 2024-10-15 14:26:58 UTC
GitHub Actions の compilers workflow 用のシェルスクリプトで共有ライブラリから GC 実装を読み込むための設定部分がもう不要になったようで削除しています。
[ebfe615a0c] Peter Zhu 2024-10-16 13:45:44 UTC
YJIT のテストで GC.compact を利用するものを GC.compact が未サポートの時に skip するようにしています。
[f549448e5e] BurdetteLamar 2024-10-15 19:35:03 UTC
Array#shuffle! の rdoc 用コメントの関連メソッドグループへのリンクの修正。
[3affd43c2d] BurdetteLamar 2024-10-15 19:32:12 UTC
Array#shuffle の rdoc 用コメントの手直し。
[9251971335] Kevin Newton 2024-10-16 18:22:26 UTC
sample/prism/ にサンプルを追加しています。
[78fb1ab84b] git 2024-10-16 18:22:44 UTC
9251971335ded7d1eb196f79648fdf12f1208954 で追加したサンプルスクリプトの行末の空白除去。
[5eca11ca5e] Kevin Newton 2024-10-15 14:06:50 UTC
RubyVM::InstructionSequence.of でメソッドの指定に Thread::Backtrace::Location を受付けるようにしています。
[4621c9b815] Burdette Lamar 2024-10-16 18:52:34 UTC
Array#slice! の rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/11902
[90aa6aefc4] Peter Zhu 2024-10-15 19:46:23 UTC
prism で SyntaxError 発生時のメモリリークを修正しています。
[9d5be3d9ed] David Rodríguez 2024-10-14 16:42:38 UTC
bundler の bundle check サブコマンドで正常終了時に #lock メソッドを呼ぶ対象を Bundler.definition の結果に変更しています。
[cff18256ca] David Rodríguez 2024-09-30 16:11:17 UTC
bundler の Bundler::Definition#sources メソッドを private から public にしています。
[def5fdf82a] David Rodríguez 2024-10-14 20:49:05 UTC
よくわかりませんが bundler で source が変更された gem の処理を変更してチェックを遅延しているようです。
[36b7ad3caa] David Rodríguez 2024-10-14 21:02:23 UTC
bundler の bundler check で source の変更時に? 誤った lock をしてしまう不具合を修正しているようです。
[6a49bbd734] Lars Kanis 2024-10-04 20:30:02 UTC
win32-registry のテストで使う Windows の Registry のキーを通し番号を使って生成して使われてないものを探して使うようにしています。
[85ce3b177c] Lars Kanis 2024-10-11 20:41:09 UTC
標準添付ライブラリ win32-registry で fiddle の JRuby/TruffleRuby 向け実装の非互換に対応するための修正。
[34d800ebcd] Nobuyoshi Nakada 2024-10-17 02:12:09 UTC
標準添付ライブラリ win32-registry の gemspec ファイルの spec.files から .mailmap を除外するようにしています。
[72b8fa9e03] Nobuyoshi Nakada 2024-10-17 03:06:41 UTC
標準添付ライブラリ win32-registry の gemspec ファイルの spec.files から rakelib/ の配下および Rakefile も除外するようにしています。
[817f2cc172] Hiroshi SHIBATA 2024-10-17 05:33:55 UTC
NEWS の新規 default gems についてのセクションを移動しています。
[d4a18d4a78] David Rodríguez 2024-09-03 16:03:16 UTC
bundler の Gemfile 内で "gemspec" による指定を 2回書けるようにしているようです。
[9da60a14bf] Nobuyoshi Nakada 2024-10-17 07:28:51 UTC
拡張ライブラリ etc が configure 時に --enable-load-relative でビルドされている ruby 向けにビルドされている時に Etc.sysconfdir が正しいパスを返せてなかったのを修正しています。
[681787d11f] Hiroshi SHIBATA 2024-10-17 07:33:02 UTC
libexec/syntax_suggest で ruby 本体内で使った時に require_relative の LoadError を捕捉して require しなおすようにしています。
[7962b4c342] Yusuke Endoh 2023-12-27 07:57:00 UTC
拡張ライブラリ json で配列の要素にアクセスするのに rb_ary_entry() のかわりに RARRAY_AREF() を利用するようにしています。
[3911189fba] Yusuke Endoh 2023-12-27 07:51:04 UTC
拡張ライブラリ json でオブジェクトのクラスの判定に CLASS_OF() を使ってたのを各種即値を判定する RB_XXX_P() と RB_BUILTIN_TYPE() による内部的なオブジェクトの型による分岐を利用するようにしています。高速化のためみたいです。
[fb84aa5501] Yusuke Endoh 2023-12-27 07:55:03 UTC
拡張ライブラリ json でオブジェクト(Hash)のキーの部分をエンコードする時に generate_json() を呼んでたのを、文字列に限定されるので generate_json_string() を呼ぶようにして不要な分岐を抑制するという最適化。
[88719fb300] Yusuke Endoh 2023-12-27 06:45:09 UTC
拡張ライブラリ json で配列の区切り文字が続く改行の有無と含めて専用の構造体メンバーで保持されていて fbuffer_append() という関数で文字列として追記されていたのを "," に決め打ちして fbuffer_append_char() で追加するようにしています。改行が不要な時のほうが多いのでそういう時に高速化するためみたいです。
[186e77209e] Yusuke Endoh 2023-12-27 06:48:17 UTC
88719fb300e0c6f5d8269224a3322e9871ad29b2 の拡張ライブラリ json の配列の区切り文字の追加の最適化と同様のことをオブジェクト(Hash)についても行なっています。
[64c24f6971] Yusuke Endoh 2023-12-27 06:57:02 UTC
186e77209e74c3f7643ae6396ad3dbba8a5c6977 のさらに続きで拡張ライブラリ json でオブジェクトのキーと値のあいだの ":" についてもスペースの有無によらず文字として追加するように最適化しています。
[0b4257efa3] Yusuke Endoh 2023-12-27 07:06:17 UTC
拡張ライブラリ json で RB_UNLIKELY() マクロを利用してよく使う分岐のほうをコンパイラにヒントを与えるようにしています。結構速くなるんですね。
[233f63c7fb] Yusuke Endoh 2023-12-27 07:32:47 UTC
拡張ライブラリ json で Encoding を得るのに rb_enc_get() のかわりに RB_ENCODING_GET() を利用するようにしています。ベンチマークではこれでかなり速くなるみたいですね。
[494d814637] Jean Boussier 2024-10-17 09:13:14 UTC
拡張ライブラリ json の JSON.dump の ruby 実装部分の引数処理で省略された引数の考慮のために中間オブジェクトの配列を生成していたのをやめて、また不要な respond_to? でのチェックを省くように最適化しています。
[1f0b540332] Mads Ohm Larsen 2024-10-17 10:10:31 UTC
標準添付ライブラリ rdoc の生成する HTML ドキュメント用の CSS の修正。 https://github.com/ruby/rdoc/pull/1174
[fc11579c49] Stan Lo 2024-10-17 10:10:59 UTC
標準添付ライブラリ rdoc の生成する HTML ドキュメントのスタイルの修正。 https://github.com/ruby/rdoc/pull/1190
[5a18956430] Nobuyoshi Nakada 2024-10-17 10:34:31 UTC
emasc 用の misc/ruby-style.el でバックスラッシュの整形での扱い? の指定を追加しているようです。
[a1c420c740] Jean Boussier 2024-10-17 10:21:57 UTC
拡張ライブラリ json の実装でグローバル変数にする必要のないクラスなどの変数を Init_generator() 内のローカル変数化しています。
[0e2ac46584] Jean Boussier 2024-10-17 10:36:13 UTC
拡張ライブラリ json の 43e08133c35351f0efd7bdfacf490b0ef38ecc22 で ruby 実装化した JSON::Ext::Generator::State の #configure メソッドでオプションの処理をキーごとに存在チェックして処理していたのを Hash#each で渡されたオプションのみ処理するようにしています。これも代表的な使いかたでの高速化のためだと思われます。