Bug #3033
closedbacktrace of SystemStackError disappeared
Description
=begin
遠藤です。
なぜか SystemStackError の時のバックトレースが出なくなっているようです。
$ ./ruby -ve 'def foo; bar; end; def bar; foo; end; def baz; foo; end; baz'
ruby 1.9.2dev (2010-03-26 trunk 27063) [i686-linux]
-e:1: stack level too deep (SystemStackError)
$ ruby-1.9.1-p378 -ve 'def foo; bar; end; def bar; foo; end; def baz;
foo; end; baz'
ruby 1.9.1p378 (2010-01-10 revision 26273) [i686-linux]
-e:1:in foo': stack level too deep (SystemStackError) from -e:1:in
bar'
from -e:1:in foo' from -e:1:in
bar'
from -e:1:in foo' from -e:1:in
bar'
from -e:1:in foo' from -e:1:in
bar'
from -e:1:in foo' ... 8720 levels... from -e:1:in
bar'
from -e:1:in foo' from -e:1:in
baz'
from -e:1:in `'
--
Yusuke ENDOH mame@tsg.ne.jp
=end
Updated by mame (Yusuke Endoh) over 14 years ago
=begin
遠藤です。
2010年3月29日0:00 Yusuke ENDOH mame@tsg.ne.jp:
なぜか SystemStackError の時のバックトレースが出なくなっているようです。
git bisect 先生によると r25680 が原因のようです。
--
Yusuke ENDOH mame@tsg.ne.jp
=end
Updated by mame (Yusuke Endoh) over 14 years ago
- Status changed from Open to Rejected
- Target version set to 1.9.2
- ruby -v set to -
=begin
遠藤です。
r25680 のコミットをちゃんとみると、まつもとさんが意図的に変更したよう
なので、バグではないようです。rejected とします。
「matz を説得する方法」の「省略の意図を尊重している」が消えちゃった¶
http://www.a-k-r.org/pub/howto-persuade-matz-rubykaigi2008.pdf¶
--
Yusuke Endoh mame@tsg.ne.jp
=end
Updated by dolzenko (Evgeniy Dolzhenko) over 14 years ago
=begin
I think that returning String instead of an Array as Exception#backtrace
here http://github.com/shyouhei/ruby/blob/trunk/eval.c#L382
is breaking other code expectation about backtrace being enumerable.
The real life example is RSpec:
/usr/local/rvm/gems/ruby-1.9.2-head/gems/rspec-core-2.0.0.beta.7/lib/rspec/core/formatters/base_formatter.rb:127:in read_failed_line': undefined method
detect' for "faster_open_struct.rb:0":String (NoMethodError)
(link to the code http://github.com/rspec/rspec-core/blob/master/lib/rspec/core/formatters/base_formatter.rb#L125 )
=end