今日は irb に組み込みコマンド show_source を追加する変更や lambda ブロック内で作った非 lambda の Proc オブジェクトのブロック内での return の処理の変更などがありました。
[9513fcd5bc] Nobuyoshi Nakada 2021-04-01 13:54:42 UTC
gc.c の objspace_each_objects() の変数初期化子を追加。警告抑制のため。
[ccb0b7ab7d] Nobuyoshi Nakada 2021-04-01 14:22:05 UTC
標準添付ライブラリ irb の組み込みコマンドテストで RB::Irb.new を IRB.conf[:VERBOSE] の設定後に移動。並列テスト時にここで警告が出てた模様。
[8e636bd0de] git 2021-04-01 16:48:13 UTC
version.h の日付更新
[1ac68bba4e] Koichi Sasada 2021-04-01 10:06:10 UTC
irb の IRB::Irb#run で SIGINT のシグナルハンドラを設定しているのをメソッドから抜ける前に元のシグナルハンドラに戻しておくようにしています。
[c080bb2284] Kenichi Kamiya 2021-04-01 16:16:58 UTC
Object#freeze の rdoc 用コメントで発生する例外の記述が RuntimeError のままだったので FrozenError に修正しています。
[ecfa8dcdba] Koichi Sasada 2021-04-01 17:28:00 UTC
Proc.new や Kernel#proc で作った(is_lambda が false の) Proc オブジェクトのブロック内で return をすると、ブロック(Proc)からではなくその作成元のメソッドからの return の意味になりますが、既にそのメソッドから抜けた後で呼ばれた時にエラーになります。ところが lambda で作った Proc オブジェクトのブロック内で Proc.new で作ったブロックの中での return は外側の lambda のブロックを抜ける意味になるのでメソッドと同様に lambda から内側の Proc オブジェクトが返された後にそれを呼ぶとエラーになるような気がするのに、同じメソッド内だとメソッドからの return として処理されていたという仕様を変更しています。ややこしい。 [ruby-core:99499] [Bug #17105]
[43e0677c6d] Nobuyoshi Nakada 2021-04-02 00:55:15 UTC
File.dirname の実装でバッファをゼロクリアしていたのをかわりに skiproot() が返した最初のセパレータ("/" または "\")へのポインタで埋めておくようにしています。後で NULL だったら同じポインタで埋めるってことをしてたのでのかわりだと思いますが、これにより VC++ での警告抑制になるようです。
[9e336f73fb] Takashi Kokubun 2021-04-01 05:49:51 UTC
irb の組み込みコマンドに show_source というのを追加して引数に指定された定数、メソッド(Class#method_name の形式で指定)、特異メソッド(Class.eigen_method_name の形式)などのソースコードを取得して表示するようにしています。
[7e93917458] aycabta 2021-04-02 08:18:37 UTC
標準添付ライブラリ reline の Reline::LineEditor のカーソル移動時に @rest_height のリセットが漏れてたのを修正。 Ctrl-l で端末をクリアした時の挙動の修正みたいです。