以下の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20241026より取得しました。


ruby-trunk-changes 2024-10-26

今日は主に拡張ライブラリ json の最適化、不具合修正とバージョン更新などがありました。

[9c8c140d73] "Daisuke Fujimura (fd0)" 2024-10-25 10:13:14 UTC

dln.c に cygwin 環境向けの preprocessor 分岐の条件を追加しています。

[d278d352f9] "S.H." 2024-10-25 13:26:29 UTC

parse.y で Lrama の inline rule 機能を使ってリテラル類のルールをまとめるリファクタリング

Universal Parser 用の構造体 rb_parser_config_t から関数ポインタ ary_new を削除しています。

[990a53825e] Peter Zhu 2024-10-25 14:58:45 UTC

gc/default.c の ASAN 用の lock の不要な操作を削除しています。

[9838c443c4] Takashi Kokubun 2024-10-26 00:46:46 UTC

RJIT が有効でない時に Init_builtin_rjit() と Init_builtin_rjit_c() という関数のダミー定義をして inits.c で preprocessor 分岐を不要にしています。

[346085ea94] Benoit Daloze 2024-10-18 12:52:56 UTC

拡張ライブラリ fiddle の TruffleRuby 向けの対応。 https://github.com/ruby/fiddle/pull/156

[a51007fc35] Nobuyoshi Nakada 2024-10-22 21:07:16 UTC

拡張ライブラリ fiddle で FFI_GO_CLOSURES というマクロを常に 0 に定義しておくようにしています。警告抑制のためみたいです。 extconf.rb で警告をチェックしてコンパイラオプションでマクロ定義を挿入していましたが、clang と gcc で警告メッセージのクオートが微妙に違っててうまく検出できていなかったようです。 https://github.com/ruby/fiddle/pull/157

[2ec2051f1f] Sutou Kouhei 2024-10-22 21:07:38 UTC

拡張ライブラリ fiddle の extconf.rb で mkmf.rb の dummy_makefile を利用していたのを独自のテンプレートを使うようにしています。mkmf.rb が JRuby でうまくいかなかったためみたいです。 https://github.com/ruby/fiddle/issues/153 https://github.com/ruby/fiddle/pull/155

[e7f06402dd] Sutou Kouhei 2024-10-22 21:17:56 UTC

拡張ライブラリ fiddle のバージョンを 1.1.5.dev に更新しています。

[d6046bccb7] Nobuyoshi Nakada 2024-10-01 21:28:59 UTC

拡張ライブラリ strscan でブロックの途中での変数宣言をしていたのをやめて先頭に移動しています。 https://github.com/ruby/strscan/pull/101

[e73f35ddaf] NAITOH Jun 2024-10-16 00:59:44 UTC

拡張ライブラリ strscan で不要な rb_enc_check() の呼び出しを削る最適化。 https://github.com/ruby/strscan/pull/108

[e61bb75a86] NAITOH Jun 2024-10-19 06:15:30 UTC

拡張ライブラリ strscan の最適化らしいのですが JRuby 向けの最適化みたいで ruby 本体に同期されたのはテストだけです。 https://github.com/ruby/strscan/pull/110

[5fa491b405] David Rodríguez 2024-07-26 09:50:42 UTC

bundler のオプション --normalize-platforms を追加して Gemfile.lock に記述する platform の名前の正規化を指示できるようにしています。

[aed0114913] Jean Boussier 2024-10-18 09:04:44 UTC

json の upstream から benchmark/encoder.rb に更新がマージされています。

[8e7e638221] Jean Boussier 2024-10-18 09:49:17 UTC

拡張ライブラリ jsonDoxygen 用? の C 関数のコメントを修正しています。

[e0f8732023] Jean Boussier 2024-10-18 10:27:17 UTC

拡張ライブラリ json で Parser 作成時の余計な中間オブジェクトの生成を抑制する最適化。

[618085f48d] Jean Boussier 2024-10-18 10:30:58 UTC

拡張ライブラリ json のタブの空白への展開。

[7dfc1f3d66] Jean Boussier 2024-10-18 11:45:29 UTC

拡張ライブラリ jsonJSON::ParserError 例外発生時の処理を関数として切り出すリファクタリング

[9045258c88] Jean Boussier 2024-10-18 12:04:52 UTC

拡張ライブラリ json7dfc1f3d66d6041631da4a94767dfa33ff290945 で切り出した例外発生用の関数でメッセージに埋め込むエラー部分の文字列が長すぎる時に切り詰める処理を追加しています。 https://github.com/ruby/json/issues/534

[18cc663aef] Jean Boussier 2024-10-18 13:48:00 UTC

拡張ライブラリ jsonJSON.load の第2引数に Proc オブジェクトを渡した時のテストを追加しています。 https://github.com/ruby/json/issues/438

[07fc21cfad] Jean Boussier 2024-10-18 14:03:15 UTC

拡張ライブラリ json の数値の parse 時の不要なメソッドチェックを削る最適化。なのですが最後の hunk では opts への代入の削り漏れがありそう。 https://github.com/ruby/json/pull/512

[9f300d0541] Jean Boussier 2024-10-18 17:45:21 UTC

拡張ライブラリ json で文字列の ASCII の範囲の文字が多いという前提で処理の順序を入れかえる最適化。

[97713ac952] Jean Boussier 2024-10-18 18:47:28 UTC

拡張ライブラリ jsonUnicode 文字のエスケープのためのテーブルの実装を真偽値だけでなくエンコードに必要な文字数を持たせるように最適化しています。

[e52b47680e] Jean Boussier 2024-10-19 10:55:57 UTC

拡張ライブラリ json の文字列のエスケープ処理の分岐に RB_UNLIKELY() を追加。

[cbd933bcf1] Jean Boussier 2024-10-19 17:49:48 UTC

拡張ライブラリ json で常にマルチバイト文字をエスケープして JSON エンコードするための関数? でも 9f300d0541cd93e14fed0b832a630ba1dc0d9770 と同様の最適化を施しているようです。

[a052d96103] Jean Boussier 2024-10-19 18:44:33 UTC

拡張ライブラリ json の extconf.rb でコンパイラオプションに -std=c99 を追加して C99 としてコンパイルするように指定しています。

[11348c583f] Étienne Barrié 2024-10-21 10:01:44 UTC

拡張ライブラリ json のテストで String#b を利用するようにリファクタリング

[5f97468958] Étienne Barrié 2024-10-21 10:02:47 UTC

拡張ライブラリ json で Time のエンコード/デコードで 1.8系の古い ruby 向けの対応を削除しています。

[82f7550f65] Étienne Barrié 2024-10-21 10:04:56 UTC

拡張ライブラリ json の magic comment frozen_string_literal を true にしています。

[44aef5e852] Étienne Barrié 2024-10-21 10:05:36 UTC

拡張ライブラリ json のテストで Array#permutation が定義されていない古い ruby のための分岐を削除しています。

[00aa1f9a1d] Jean Boussier 2024-10-21 12:25:01 UTC

拡張ライブラリ json の upstream から benchmark/encoder.rb の更新を同期。

[70f554efb4] Jean Boussier 2024-10-21 13:32:43 UTC

拡張ライブラリ json7dfc1f3d66d6041631da4a94767dfa33ff290945 で切り出して 9045258c8891b3a71d1adb9045c2a106fbcc53ee でメッセージの切り詰めをした raise_parse_error() 関数でブロック内で宣言した自動変数の配列へのポインタをそのブロックから出た後で使ってしまっていた不具合を修正しています。 https://github.com/ruby/json/pull/625

[1cf1bf9588] Benoit Daloze 2024-10-21 19:38:12 UTC

拡張ライブラリ json の gemspec ファイルの spec.files に lib/json/ext/generator/state.rb を追加しています。

[2c6e3bc71e] Benoit Daloze 2024-10-21 19:26:03 UTC

拡張ライブラリ json の不正なバイト列へのエラーのテストを追加しています。 https://github.com/ruby/json/issues/344

[fc9f0cb8c5] Jean Boussier 2024-10-21 20:19:44 UTC

拡張ライブラリ json で不正なバイト列の文字列を JSON.dump でエンコードしようとした時の自動変換の処理を追加? しています。誤読かもしれませんがコミットログと内容が一致してないような。

[925131073d] Jean Boussier 2024-10-22 14:05:23 UTC

拡張ライブラリ json の gemspec ファイルに JRuby 向けの gem としての gemspec ファイルもマージしているようです。

[89d4bbacfb] Jean Boussier 2024-10-23 08:17:23 UTC

拡張ライブラリ json のバージョンを 2.7.3.rc1 に更新しています。また JSON::VERSION_ARRAY や VERSION_{MAJOR,MINOR,BUILD} といった定数は削除しています。

[9d3fd50cfe] Jean Boussier 2024-10-24 08:18:09 UTC

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

[7d37ae6751] Jean Boussier 2024-10-24 08:46:10 UTC

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

[1d4708565f] Jean Boussier 2024-10-24 08:48:44 UTC

拡張ライブラリ json の gemspec ファイルで required_ruby_version を 2.7 以降に引き上げています。

[bfdf02ea72] Jean Boussier 2024-10-18 13:36:57 UTC

拡張ライブラリ jsonエンコード時の pretty で改行ありのエンコードをする時に空の配列やハッシュの場合に不要な改行を入れないようにしています。

[1045b9f820] Jean Boussier 2024-10-24 09:42:02 UTC

拡張ライブラリ json のヒアドキュメントにインデント除去つきヒアドキュメントを利用するようにしています。

[b1d417dc7b] Jean Boussier 2024-10-24 14:10:44 UTC

拡張ライブラリ json のテストで String#b を利用したりエンコーディングに定数参照を使うリファクタリング

[a3c21756e9] Jean Boussier 2024-10-24 14:51:14 UTC

拡張ライブラリ json の構造体 JSON_Parser の真偽値のメンバーに int を使っていたのを char に変更して構造体をスリム化しています。

[7314275548] Jean Boussier 2024-10-25 10:35:29 UTC

拡張ライブラリ json の Ractor 対応についてのテストで assert_separately を利用していたのを直接 Kernel#fork で子プロセスを作るようにしています。子プロセスでの require "json" を避けようとしているみただけどちょっとよくわからず。

[3daf16e51f] Jean Boussier 2024-10-25 10:36:53 UTC

拡張ライブラリ json のテストのヘルパーで $: のかわりに $LOAD_PATH を参照するように変更。また File.expand_path を利用するようにしています。

[a5bd0c638a] Jean Boussier 2024-10-25 07:55:25 UTC

拡張ライブラリ jsonrubygems の不具合で default gems の拡張ライブラリのロードの不具合を検出するために JSON::Generator::State#initialize に警告出力をさせるコードを埋め込んでいます。うーん、そうだとするとこれって upstream の時だけ入れたいんじゃないのかな? https://github.com/ruby/json/issues/647 https://github.com/rubygems/rubygems/pull/6490

[8018a3121f] Jean Boussier 2024-10-25 10:00:21 UTC

拡張ライブラリ json の初期化関数 Init_generator() で rb_require() で JSON::Generator::State をロードするようにしています。 jsonjson_pure の競合のための workaround みたいですが、$LOAD_PATH に依存するだろうし意味あるのかな。 https://github.com/ruby/json/issues/646

[e136e552b6] Jean Boussier 2024-10-25 17:20:00 UTC

拡張ライブラリ jsonJSON::Ext::Parser.new の引数に明示的に keyword splat を使うようにしています。 https://github.com/ruby/json/issues/650 https://github.com/ruby/json/issues/651

[58797b7f74] Hiroshi SHIBATA 2024-10-26 08:52:36 UTC

tool/sync_default_gems.rb で拡張ライブラリ json の同期時に ext/json/extconf.rb を除外するようにしています。

[caa946f2de] Hiroshi SHIBATA 2024-10-26 09:15:35 UTC

拡張ライブラリ json の ext/json/extconf.rb を削除しています。

[519f559113] git 2024-10-26 09:45:06 UTC

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




以上の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20241026より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14