Range.new on objects without <=> but with Comparable does raise SystemStackError, and if this is catched it crash in "Segmentation fault"
|ruby -v:||ruby 2.1.0dev (2013-10-09) [x86_64-darwin12.5.0]||Backport:||1.9.3: DONE, 2.0.0: DONE|
this code causes "Segmentation fault: 11"
p Range.new(o1,o2) # raises Stack Error
p Range.new(o1,o2) # Segmentation fault: 11
i tested also other ruby versions:
Crashs for versions:
ruby 2.1.0dev (2013-10-09) [x8664-darwin12.5.0]
ruby 2.0.0p247 (2013-06-27 revision 41674) [x8664-darwin12.3.0]
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
works for versions:
ruby 2.1.0dev (2013-09-22 trunk 43011) [i686-linux]
ruby 2.0.0p247 (2013-06-27) [i386-mingw32]
ruby 2.0.0p0 (2013-02-24 revision 39474) [i686-linux]
from what i can see it looks like an 64bit problem on MRI
it seems to work on rubinius 64bit
#2 Updated by Nobuyoshi Nakada 7 months ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r43208.
Hans, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
compar.c: fail if recursion
- compar.c (cmp_eq): fail if recursion. [Bug #9003]
- thread.c (rbexecrecursivepairedouter): new function which is combinnation of paired and outer variants.