ruby-trunk-changes 2020-12-03

今日は default gems の gemspec ファイルの整備や正規表現の最適化の不具合の修正などがありました。

[0bebea985d] Aaron Patterson 2020-12-01 23:15:14 UTC

gc.c の gc_sweep_continue() から heap_increment() を呼んで heap に page 追加してたのをやめています。 incremental sweep (lazy sweep と同じ?)では空き slot を探してるので空きをみつけるまでやらないといけないのに page 追加したら無駄になっちゃう、ということみたいです。

[7546be2ca0] git 2020-12-02 16:23:57 UTC

version.h の日付更新

[9e73177d53] Jeremy Evans 2020-11-23 22:40:59 UTC

正規表現の +, *, ? などの繰り返しの指示子の重複を省いてシンプルにする処理というのがあるらしく、そのうち (〜+?)? というパターン? の処理をなくています。コミットログによるとマッチ結果が変化するような変更をしてしまっていたみたいです。 [ruby-core:101030] [Bug #17341]

[51268be7fe] Aaron Patterson 2020-10-23 23:13:11 UTC

0bebea985dd1b759973e285e87ed9dfa8610d253 の続き? heap_add_page() で heap に追加する page を linked list の先頭ではなく末尾に追加するようにしています。GC.compact での処理との相性のためみたいですね。

[1f71c7dc81] Koichi Sasada 2020-12-02 21:49:52 UTC

VM の control frame をブロックから Proc などを作成するためにコピーする env_copy() で prev_ep のコピーを指す VALUE の参照が処理中に mark されなくなるおそれがあったようで RB_GC_GUARD() で保護するようにしています。

[84eb2bfab9] 卜部昌平 2020-12-03 02:53:56 UTC

ruby_xmalloc()、ruby_xmalloc2()、ruby_xrealloc()、ruby_xrealloc2()、ruby_xfree() などの関数に doxygen でのドキュメント生成のためのコメントを追加しています。

[43b95bafd5] 卜部昌平 2020-07-27 02:15:50 UTC

IO#bytes, #chars, #lines, #codepoints などのメソッドや IO に類似の StringIO, ARGF などのクラスのメソッドは長らく deprecated になっていて警告が出ていたので、3.0 で削除しています。 preview1 の後だけど大丈夫かな。

[29c9588e7e] Jeremy Evans 2020-12-03 06:27:54 UTC

NEWS に Proc#==、Proc#eql? メソッドの追加について追記しています。そういえばそんなのあったな。

[58c3c75fee] Takashi Kokubun 2020-12-03 07:38:40 UTC

ractor.c の ASSERT_ractor_unlocking()、ASSERT_ractor_locking()、ractor_lock() などの関数は GET_RACTOR() を使っていて、その実装は GET_EC() に依存していますが MJIT の worker thread では GET_EC() が値を返さないので呼ぶと SEGV してしまうので、GET_EC() の NULL チェックも併用するようにしています。

[541e4340dd] Takashi Kokubun 2020-12-03 08:01:10 UTC

mjit_free_iseq() に static 変数 in_gc と in_jitGC 中であることと JIT 中でないことをチェックするようにしています。

[7324d76da4] Hiroshi SHIBATA 2020-12-03 07:30:57 UTC

拡張ライブラリ digest の gemspec ファイルの spec.files を 2e601c284c9b61c286aa031d91e5198c17b44f00 の変更に追随させています。

[412a0f5240] Hiroshi SHIBATA 2020-12-03 07:31:14 UTC

拡張ライブラリ digest の gemspec ファイルでライセンスを Ruby 本体のライセンスとの dual license に変更しています。

[7d0a6e28f2] Nobuyoshi Nakada 2020-10-12 05:53:29 UTC

拡張ライブラリ io/nonblock の gemspec ファイルで spec.files を git ls-files から抽出するところで test/, spec/, features/ ディレクトリを除外するための正規表現で \A を使うように変更しています。

[7820162018] Nobuyoshi Nakada 2020-10-12 05:55:48 UTC

7d0a6e28f2260ec2ba487c174e35a9dc614e2e60 の続きで拡張ライブラリ io/nonblock の gemspec ファイルの spec.files から .git* や .travis* も除外するようにしています。

[2800e9f347] Nobuyoshi Nakada 2020-10-12 05:56:27 UTC

拡張ライブラリ io/nonblock の gemspec ファイルに spec.extensions の指定を追加しています。

[09bcb935ec] Nobuyoshi Nakada 2020-10-11 06:19:23 UTC

拡張ライブラリ io/wait の gemspec ファイルでも spec.files の抽出のための正規表現に \A を使うように修正しています。

[7fcbe07d61] Nobuyoshi Nakada 2020-10-11 06:25:15 UTC

拡張ライブラリ io/wait の gemspec ファイルでも .git* と .travis* も除外するようにしています。また spec.required_ruby_version を 2.3.0 以上に変更しています。

[09266eccf4] Nobuyoshi Nakada 2020-10-11 06:27:45 UTC

7fcbe07d612a967d1904a52617903007c28ffb86 の再修正。 .git* と .travis* を除外するのにグルーピングが足りてなかったのを修正しています。

[eab4aa4178] Nobuyoshi Nakada 2020-10-11 06:41:08 UTC

拡張ライブラリ io/wait の gemspec にも spec.extensions の指定を追加しています。

[b619197dfa] aycabta 2020-09-25 16:43:25 UTC

ext/readline/depend.gem というファイルを追加しています。 Makefile の依存関係っぽいものが書かれてます。はじめてみたなこういうファイル。

[b526db85fe] aycabta 2020-09-25 16:47:28 UTC

拡張ライブラリ readline の gemspec ファイルでバージョンを 0.1.1 に更新しています。

[5b1ebb8ead] aycabta 2020-09-26 02:02:58 UTC

b619197dfad4767ee779822047ca0b03ffe1fb05 で追加した ext/readline/depend.gem を ext/readline/depend-gem にファイル名を改名しています。

[ab524dfdd9] Marc-Andre Lafortune 2020-08-24 14:07:15 UTC

標準添付ライブラリ forwardable の gemspec ファイルに spec.required_ruby_version を追加して 2.4.0 以降への依存を追加しています。

[7b126a82a9] Samuel Williams 2019-07-09 11:16:13 UTC

標準添付ライブラリ ipaddr の gemspec ファイルの spec.files から不要なファイルを削り、spec.bindir と spec.executables の指定は削除しています。

[ca024beeba] Hiroshi SHIBATA 2020-07-16 09:03:28 UTC

標準添付ライブラリ ipaddr の gemspec ファイルから spec.add_development_dependency の指定を削除しています。

[d65621b636] Samuel Williams 2019-07-09 11:16:23 UTC

標準添付ライブラリ ipaddr の gemspec ファイルに spec.required_ruby_version の指定を追加して 2.3 以降に依存するようにしています。

[e62eb9a3fa] Hiroshi SHIBATA 2020-12-03 08:33:34 UTC

d65621b636e1eb89696f13f4076e53d54710cb3f の再修正。ipaddr の gemspec の required_ruby_version の書きかたが 3.0 は除外するようになってたので 2.3 以降なら major が上がっても大丈夫なようにしています。

[1af8a0a95e] Hiroshi SHIBATA 2020-12-03 08:39:15 UTC

d65621b636e1eb89696f13f4076e53d54710cb3f および e62eb9a3fa627b42eb4445688afc46bd28c0def4 のさらに再修正。 "~>" を ">" にしたため 2.3.0 が除外されるようになってしまってたので ">= 2.3" を使うように修正しています。

[d3c685f0b5] Hiroshi SHIBATA 2020-12-03 10:17:29 UTC

net/imap、net/pop、net/smtp の gemspec ファイルのコメントアウトされてた digest への依存関係のコメントアウトを消しています。 digest の gem 化が完了したようです。