今日は net/http, net/ftp の default gem 化やメソッドキャッシュの実装の大幅な変更などがありました。
[f08d8e5e85] Hiroshi SHIBATA 2020-02-21 10:09:21 UTC
標準添付ライブラリ net/ftp を default gem 化しています。
[a294ec1622] Hiroshi SHIBATA 2020-02-21 10:56:15 UTC
doc/maintainers.rdoc と doc/standard_library.rdoc の net/ftp の項目を default gems のセクションに移動。
[9cb1ffaa5c] Hiroshi SHIBATA 2020-02-21 12:21:14 UTC
標準添付ライブラリ net/http も default gem 化しています。
[fa1cf777db] Hiroshi SHIBATA 2020-02-21 12:23:16 UTC
doc/maintainers.rdoc と doc/standard_library.rdoc の net/http のエントリも default gems のセクションに移動しています。
[e7f8724fb2] Hiroshi SHIBATA 2020-02-21 12:25:43 UTC
tool/sync_default_gems.rb の net/ftp の gem の同期の手順を修正しています。
[8d3b7f0fda] Hiroshi SHIBATA 2020-02-21 12:30:04 UTC
tool/sync_default_gems.rb の ftp 以外の net/xxx 系の gem の同期の手順も修正しています。
[5e7322b866] Nobuyoshi Nakada 2020-02-19 10:27:53 UTC
irb の色付けのテストで yield の色つけのためのサンプルコードがトップレベルにいきなり yield が書かれていて SyntaxError になるものだったのでメソッド定義内に置くように修正しています。
[0b4500d982] Nobuyoshi Nakada 2020-02-21 15:17:31 UTC
vm_insnhelper.c のインデント修正。
[5cab86f3b0] Nobuyoshi Nakada 2020-02-21 15:30:55 UTC
f0b815dc670b61eba1daaa67a8613ac431d32b16 の Symbol#to_proc で作った Proc が lambda? に true を返すようにした変更についてのテストを追加しています。 [ruby-core:95418] [Bug #16260]
[8c5ca318cb] Nobuyoshi Nakada 2020-02-21 15:32:43 UTC
Symbol#to_proc で作った Proc が Refinements で上書きされているメソッドの呼び出しだった時にも lambda? を true にする対応が有効になるように修正しています。 [ruby-core:95418] [Bug #16260]
[5a89c05773] git 2020-02-21 15:45:33 UTC
version.h の日付更新
[a1eb1fabef] Koichi Sasada 2020-02-21 17:59:46 UTC
internal.h のデバッグ用の rp() マクロ定義で __func__ を使っていたところを移植性のため RUBY_FUNCTION_NAME_STRING のほうを使うようにしています。
[f2286925f0] Koichi Sasada 2020-01-07 23:20:36 UTC
struct rb_call_info の内容を kwarg が空(NULL)の時に必要なサイズが VALUE で足りるのでその場合はポインタのかわりにその他の情報を埋め込んで持つようにしてメモリ消費を減らしています。うーん、なるほど。
[b9007b6c54] Koichi Sasada 2020-01-08 07:14:01 UTC
メソッドキャッシュの実装の変更と Class 毎のメソッドキャッシュの機構の導入。 インラインメソッドキャッシュの実体 struct rb_callcache を T_IMEMO 型のオブジェクトとして持つようにしてそのメモリ管理を GC にまかせるようにしています。マルチスレッドでの競合の問題をおきにくくするためとのこと。またメソッド再定義時のキャッシュの破棄に class_serial を使う手法のかわりに method entry 毎に直接破棄フラグを立ててキャッシュ破棄することでメソッド再定義時の影響範囲を狭くするようにしているようです。かなり大規模の変更なのでしばらくなにかと追加変更がありそう(Refinements がらみとか…)。 [ruby-core:97084] [Feature #16614]
[d7984d0f54] git 2020-02-22 00:59:23 UTC
b9007b6c548f91e88fd3f2ffa23de740431fa969 の行末の空白除去。
[da31035687] MSP-Greg 2020-02-19 14:11:32 UTC
拡張ライブラリ readline のテストの一部のテストクラスの定義を環境変数 TEST_READLINE_OR_RELINE をチェックして Reline のテストのために呼ばれてた時には定義しないようにしています。
[af12e38675] Burdette Lamar 2020-02-22 01:25:54 UTC
ENV の rdoc の整形やリンクの修正など。
[31748e69c8] Koichi Sasada 2020-02-22 01:26:15 UTC
RubyVM::InstructionSequence#to_binary で f2286925f08406bc857f7b03ad6779a5d61443ae の変更の影響? で rb_call_data::ci が NULL の場合があるようになったのでそれに対処するように分岐を追加しています。
[5b29ea0845] Nobuyoshi Nakada 2020-02-22 01:40:25 UTC
Symbol#to_proc で生成した Proc オブジェクトの arity が -2 を返すようにしています。あれ? と思ったけど第1引数にはメソッドを呼ぶ receiver を渡すようになってるんでしたねそういえば。 [ruby-core:97190] [Bug #16640]
[f744d80106] Koichi Sasada 2020-02-22 02:23:30 UTC
b9007b6c548f91e88fd3f2ffa23de740431fa969 で rb_iseq_mark() に追加した MJIT を考慮した分岐を USE_MJIT が真の時だけ定義するように preprocessor の分岐を追加しています。