2021/06/04 今週の気になった bugs.ruby のチケット
今週は backtrace に情報を追加する提案がありました。
[Misc #17932] 90s design (please lets move to 21st century)
- バグトラッカーを古いデザインから新しいデザインにしようぜ!っていうチケット
- github へディスカッションを移動しようぜ!みたいな内容
- この人が言うには bugs.ruby の検索が壊れているらしいが、結局一時的におかしくなっていただけで現状は問題ないっぽい
- 現状は ruby/b.r-l.o の方で議論するようにコメントされてチケット自体や Reject されている
- https://bugs.ruby-lang.org/issues/17932#note-4
- これが bugs.ruby 本体のリポジトリっぽい?
- これとは関係ないが bugs.ruby と ruby/ruby の github と各 bundled gem のリポジトリのどこで議論するのか分からん問題があるので、そのあたりをルール化してほしい気持ちは無きにしもあらず
[Feature #17930] Add column information into error backtrace
backtrace
にエラー位置情報を追加する提案- 具体的には以下のような情報を追加するイメージ
Thread::BacktraceLocation#first_lineno
Thread::BacktraceLocation#first_column
Thread::BacktraceLocation#last_lineno
Thread::BacktraceLocation#last_column
- こういう情報を追加することで以下のように『エラー箇所を明示化できる』ようにできるユースケースが提示されている
$ ruby -r ./sample/no_method_error_ext.rb err1.rb err1.rb:2:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError) data["data"].first["field"] ^^^^^^^^^
- undefined method `[]' for nil:NilClass (NoMethodError) だけだとどこでエラーになっているのかわからないのでこれは便利そう
data
がnil
なのかdata["data"].first
がnil
なのかがわからない
[Bug #17889] Enumerator::Lazy#with_index should return size
Enumerator::Lazy#with_index
の戻り値に対してsize
を呼ぶと意図しない値が返ってきたというバグ報告
p Enumerator::Lazy.new([1, 2, 3], 3){|y, v| y << v}.with_index.size # 期待する値 => 3 # 実際の値 => nil