ruby-trunk-changes r61424 - r61446

今日は TracePoint の一部のイベントの行番号の修正や ISeq のメソッド追加、irb のバックトレース表示の順序の反転などがありました。

ko1: r61424 2017-12-23 20:00:48 +0900

r60763 以降の TracePoint の実装の変更で :return, b_return, :end のイベントの行番号が変化していたみたいで、なおかつ byebug が古い行番号が取れることに依存していたそうなので、古い挙動に戻すように修正しています。なかなかままならないものですね。 [ruby-core:83758] [Feature #14104]

ko1: r61425 2017-12-23 21:48:24 +0900

RubyVM::InstructionSequence#each_child というメソッドを追加して、ISeq の例外テーブルやブロックなどの「子ISeq」を辿るのが簡単にできるようにしています。あー class/module 文もネストした ISeq なのか。

nobu: r61426 2017-12-23 23:31:56 +0900

拡張ライブラリ io/console の IO.console.getpass と ioflush のテストで sleep を追加しています。 timing issues の対策のためとのこと。

ko1: r61427 2017-12-23 23:46:59 +0900

RubyVM::InstructionSequence#trace_points というメソッドを追加して、ISeq からその ISeq に含まれているイベントの発生箇所のリストを返すようにしています。

ko1: r61428 2017-12-23 23:48:28 +0900

r61427 に余分な数字が含まれていたので修正。

naruse: r61429 2017-12-24 01:17:57 +0900

gcc の 4.8.6 以前では不具合があるみたいで(?) __builtin_choose_expr_constant_p() がビルドできないことがあるそうなので、利用しないようにしています。 このために GCC のバージョンを確認するためのマクロ GCC_VERSION_BEFORE を追加しています。 https://github.com/ruby/ruby/pull/1778 [ruby-core:84401] [Bug #14221]

svn: r61430 2017-12-24 01:17:57 +0900

version.h の日付更新。

sorah: r61431 2017-12-24 03:17:39 +0900

標準添付ライブラリ irb で捕捉されない例外があった時のバックトレースの表示を、ruby 本体の標準エラー出力が端末だった時と同様に、最後に実行していたフレームが最後に表示されるようにいままでの逆順に出力するようにしています。この(ruby 本体のほうの)変更反対意見も多いけど irb だと逆のほうが便利ですよねぇ。まあ一部だけ変更すると一貫性がなくなって困るというのもわかるけど。 [ruby-core:56096] [Feature #8661]

hsbt: r61432 2017-12-24 08:33:09 +0900

標準添付ライブラリ rdoc に upstream から 6.0.1 をマージしています。 activerecordソースコードのドキュメント化でエラーが起きてたのに対して対策を入れてるみたいです。 erb のテンプレートを処理しようとしてエラーになってたみたいですね。 https://github.com/ruby/rdoc/issues/571

kazu: r61433 2017-12-24 10:26:46 +0900

IO#pwrite の rdoc 用コメントのサンプルコードで File.new を使っていたのですが、File.open にブロック渡ししたほうが close 漏れがなくていいので、そのように書き変えています。

nobu: r61434 2017-12-24 10:52:21 +0900

r61431 の irb のバックトレースの表示の変更から、バックトレースの irb のファイルのぶんを削る処理を少しリファクタリングしています。

nobu: r61435 2017-12-24 11:26:22 +0900

標準添付ライブラリ irb で捕捉されなかった例外を表示する時に、STDOUT が端末だったらエスケープシーケンスを利用して色付けするようにしています。またまたこんな環境依存しそうなのをリリース直前に〜(Windows 環境はだいじょうぶかな)。

nobu: r61437 2017-12-24 11:38:27 +0900

トップレベルの return が引数に何が書かれてても無視する、という挙動をしていたのを、評価はして結果は捨てるように変更しています。あー、そういう問題ありましたね。2.4 はどうしようかな…。

kazu: r61438 2017-12-24 11:41:00 +0900

r61433 と類似で IO#pread の rdoc 用コメントのサンプルコードで File.new のかわりに File.open のブロックつき呼び出しを利用するようにしています。

mrkn: r61441 2017-12-24 15:22:41 +0900

拡張ライブラリ bigdecimal に upstream から 1.3.4 をマージしています。 BigDecimal#clone と #dup で警告を出していたのをやめて、コピーでなく self を返すようにしています。 https://github.com/ruby/bigdecimal/compare/v1.3.3...v1.3.4

mrkn: r61442 2017-12-24 15:24:57 +0900

NEWS ファイルに bigdecimal の 1.3.4 への更新と、BigDecimal#clone と #dup を deprecated と書いていたのを消して、コピーでなく self を返すようになったことを追記しています。

normal: r61443 2017-12-24 17:38:43 +0900

標準添付ライブラリ webrick のバージョンを 1.4.2 に更新しています。 [ruby-core:84391] [Misc #14216]

normal: r61444 2017-12-24 17:40:11 +0900

NEWS ファイルの typo 修正。

normal: r61445 2017-12-24 17:45:21 +0900

NEWS ファイルに WEBrickrubygems.org でのリリースと、Kernel#open を File.open に変更した件を追記しています。

nobu: r61446 2017-12-24 19:12:21 +0900

NEWS ファイルの BigDecimal のエントリの文法修正。