ruby-trunk-changes r60728 - r60735

今日は ISeq の disassemble の不具合修正や TracePoint.new の例外のクラス変更などがありました。

marcandre: r60728 2017-11-10 07:04:47 +0900

TracePoint.new にブロックが渡されなかった時になぜか ThreadError 例外が発生していたのを ArgumentError に変更しています。 [ruby-core:83632] [Bug #14074]

svn: r60729 2017-11-10 07:04:48 +0900

version.h の日付更新。

marcandre: r60730 2017-11-10 07:05:44 +0900

標準添付ライブラリ matrix の先頭のコメントにメソッド名一覧が書かれてたのを削っています。

nobu: r60731 2017-11-10 08:02:52 +0900

tool/mk_call_iseq_optimized.rb で生成するファイルの先頭に emacs 向けの mode line のコメントを追加するようにしています。

nobu: r60732 2017-11-10 08:08:01 +0900

RubyVM::InstructionSequence を disassemble する時の rb_insn_operand_intern() でローカル変数のオペランドの文字列化の処理を、命令融合でできた命令にも対応させるようにしています。

ko1: r60733 2017-11-10 14:26:52 +0900

rb_iseq_line_no() という関数は find_line_no() の wrapper として引数 pos が 0 の時だけ -1 しないように分岐してましたが、呼び元で -1 してるところもあったので find_line_no() を rb_iseq_line_no() と改名して常に呼び元で考慮するようにしています。

hsbt: r60734 2017-11-10 15:31:36 +0900

拡張ライブラリ date のテストで Calendar クラスが未定義の時にテストを skip していたのを、そもそもテストメソッドを定義しないようにして Skip の結果が出ないようにしています。 https://github.com/ruby/ruby/pull/1743 [ruby-core:83690] [Bug #14088]

nobu: r60735 2017-11-10 17:26:44 +0900

rb_iseq_disasm() で RubyVM::InstructionSequence のダンプ時に同じ ISeq は何度もダンプしないように、st_table のテーブルを導入しています。catch table などで rescue とか ensure の節の ISeq は重複してダンプされる可能性があったのかな?