Bug #8204
closedObjectSpace.each_object(Bignum) can generate Bignums that are to small to be Bignums
Description
when i do:
p ObjectSpace.each_object(Bignum).to_a
=> [18446744073709551615, 3, 2394213621560389257607583714845333205]
and again:
ObjectSpace.each_object(Bignum).to_a
=> [18446744073709551615, 3, 63326588221939058800767348888534802301, 0, 0, 0]
my question: why does the 3 and the zeros show up?
n = ObjectSpace.each_object(Bignum).min #=> 0
p n.class #Bignum
p n.zero? #=> false
p n < 0 # true
okay this means i have a zero, that looks like zero, but is not a zero and its class is Bignum
(but when i try in a new ruby session)
(2**64) < 0;
p bigZero = ObjectSpace.each_object(Bignum).min #=> 0
p bigZero.class #Bignum
p bigZero.zero? #=> true
okay, this time i get a zero that looks like a zero, and react like a zero, but its still a Bignum
so where does the zeros come from and why does they react so totaly different?