From: Eric Wong Date: 2014-03-01T21:12:21+00:00 Subject: [ruby-core:61196] Re: [ruby-trunk - Bug #9507] Ruby 2.1.0 is broken on ARMv5: tried to create Proc object without a block rubylang.10.webmeister@spamgourmet.com wrote: >
> Can you try any other code which uses 64-bit math? >
> > Can you recommend any test code? Those compilers build the whole Arch Linux ARM repository, so if it were a common problem, it should have been noticed by now. Maybe some crypto or audio/video codecs. It could also be compiler options for math worth trying. >
> 64-bits is needed to avoid overflow on VM state changes. > Otherwise our caches could give false hits and crash. >
> I see. But isn't it dangerous then to fall back to `unsigned long`, > which only guarantees at least 32 bits? Or is the probability for a > crash with only 32 bits still very low, and 64 bits just provide some > extra safety? unsigned long is 64-bits on 64-bit systems. The probability of a 32-bit crash is low and only affects codebases with frequent dynamic method/module/class/const creation. Maybe few use the 32-bit unsigned long case and don't hit the problem.