今日は主に String#append_as_bytes メソッドの新規追加やメモリ管理の空pageの効率化、GC.stat の項目追加などがありました。
[16f241f0aa] Jean Boussier 2024-08-01 09:14:19 UTC
String#append_as_bytes というメソッドを追加して receiver の文字列の Encoding を保持したままバイト列を追加することができるようにしています。 Encoding のチェックや変換をスキップするのでバイナリの連結などを高速に行うためということみたいです。またこのメソッドは Integer を渡すこともできて String#setbyte と同様に 1 byte の追加をするようです。 [ruby-core:118388] [Feature #20594]
[b66d6e48c8] Peter Zhu 2024-09-04 15:59:37 UTC
gc/default.c の pages の実装を自前の linked list から darray を利用するようにリファクタリングしているようです。
[de7ac11a09] Peter Zhu 2024-09-04 19:09:40 UTC
b66d6e48c8832edebcf7e6d667d10702ddbce42c に続いて gc/default.c で rb_objspace_t::heap_pages::allocated_pages の利用をやめて rb_darray_size() で darray のサイズを得るように変更しています。
[079ef92b5e] Peter Zhu 2024-09-05 20:07:40 UTC
メモリ管理でオブジェクトがひとつも乗ってない page は Variable Width Allocation による slot サイズの異なる heap の間を移動して流用できるようにしています。 size ごとの heap で独立して空の page を保持していたのが無駄だったのを抑制するため。参照しているチケットはメソッド引数の処理での一時オブジェクトの生成の抑制でパフォーマンスの悪化があったという問題に対する解決策みたいです。なぜ効くのかはよくわからないけど。 [ruby-core:119000] [Bug #20710]
[5a502c1873] Peter Zhu 2024-09-06 19:26:35 UTC
GC.stat の返す Hash のキーに :heap_empty_pages と :heap_allocatable_slots というのを追加しています。また GC.stat のテストをこのキーの追加以外にもいろいろ変更しているようです。テストの安定化かな?
[f2057277ea] Peter Zhu 2024-09-09 14:23:25 UTC
079ef92b5e59b616d670efe81a33e500f2bf6451 の変更部分の ASAN 有効化時の対応の追加。
[1205f17125] Peter Zhu 2024-09-09 14:55:18 UTC
079ef92b5e59b616d670efe81a33e500f2bf6451 の実装変更の ASAN 対応もうひとつ。
[2b1147f1de] Burdette Lamar 2024-09-09 19:24:33 UTC
Array の rdoc 用コメントのメソッド一覧のセクションで alias として定義されているメソッドを明記するようにしています。と、いってもいわゆる alias として定義されているわけではなくて、同じ C の関数で別の名前でメソッド定義しているものを alias と呼んでいます。 https://github.com/ruby/ruby/pull/11516
[bd7bc9e2ba] Burdette Lamar 2024-09-09 19:26:00 UTC
String の rdoc 用コメントのメソッド一覧でも alias を明記しています。といっても実際には alias ではなく同じ関数で定義されているメソッドのことです(なので、どちらが alias であるという従属関係はないので不正確な表現だと思うのだけど)。 https://github.com/ruby/ruby/pull/11517
[88723dd5a5] Peter Zhu 2024-09-09 19:28:05 UTC
String の rdoc 用コメントのメソッド一覧の markup の修正。
[d6baa6258c] David Rodríguez 2022-05-13 11:35:13 UTC
bundler で inline mode (lockfile がない場合?)時の Bundler::Definition#write_lock メソッドでスキップするための対応を変更して lib/bundler/inline.rb での不要なメソッド再定義をしないようにしています。
[07fa9e3a8f] David Rodríguez 2022-05-13 12:03:24 UTC
lib/bundler/inline.rb の不要なチェックの削除。
[f8f9cecd70] David Rodríguez 2022-05-13 12:50:30 UTC
bundler の lib/bundler/inline.rb の gemfile メソッドで Gem::LoadError 例外発生時の対応を追加しています。
[3725c388f8] Hiroshi SHIBATA 2024-09-09 08:28:21 UTC
bundler の f8f9cecd7003227ea21422dfd6609cbafaf5e5f5 の変更に対応したテストの追加。
[a5d658cb7a] Hiroshi SHIBATA 2024-09-09 10:06:33 UTC
bundler の lib/bundler/inline.rb の gemfile メソッドで重複した依存関係の削除するチェックを追加しています。
[3db2782748] Hiroshi SHIBATA 2024-09-10 01:09:34 UTC
3725c388f8654c789c87c0b9633c99241679bf9a で追加した bundler のテストを ruby リポジトリ内では抑制するようにしています。
[a3ba723ef0] Hiroshi SHIBATA 2024-09-10 07:06:23 UTC
spec/default.mspec 内で定数 COUNT_WIDTH の再定義の警告抑制のため defined? によるチェックを追加しています。
[2d12fbc4db] Nobuyoshi Nakada 2024-09-10 06:37:32 UTC
tool/lib/core_assertions.rb にテスト時にプラットフォームごとに skip するなどのために RUBY_PLATFORM などでチェックするヘルパーメソッド群を追加して、これを利用するようにしています。
[14c72e96ae] Nobuyoshi Nakada 2024-09-10 08:19:02 UTC
2d12fbc4db7d1501d8f2a6b464af165ec40f7f3c で意図せず入った tool/lib/test/unit.rb の空行を削除しています。
[f622548800] Nobuyoshi Nakada 2024-05-12 14:44:32 UTC
拡張ライブラリ win32/resolv の extconf.rb で libiphlpapi が検出できなかった時に空のダミーの Makefile を生成するようにしています。また標準添付ライブラリ resolv の gemspec の spec.files に ext/win32/resolv/extconf.rb を追加しています。
[3231ac6008] Kasumi Hanazuki 2024-08-31 07:31:42 UTC
標準添付ライブラリ resolv のテストで起動するダミーサーバーの socket の close 漏れを修正。
[a79907ed5e] Nobuyoshi Nakada 2022-10-25 07:44:08 UTC
標準添付ライブラリ tmpdir の Dir.mktmpdir の第2引数に明示的に空文字列を渡した時に ArgumentError 例外を発生させるようにしています。