Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: JRuby 1.6
-
Fix Version/s: JRuby 1.6.1
-
Component/s: Core Classes/Modules, Ruby 1.9.2
-
Labels:None
-
Number of attachments :
Description
Fixnum#** sometimes returns wrong Bignum in 1.9 mode.
$ jruby -v --1.9 -e '10.times {|i| puts "#
{(n = 2 ** i).class} #{n}" }'jruby 1.6.0 (ruby 1.9.2 patchlevel 136) (2011-03-15 f3b6154) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_24) [linux-amd64-java]
Fixnum 1
Fixnum 2
Fixnum 4
Bignum 8
Fixnum 16
Bignum 32
Fixnum 64
Bignum 128
Fixnum 256
Bignum 512
The following is right behavior.
$ jruby -v --1.8 -e '10.times {|i| puts "#{(n = 2 ** i).class}
#
{n}" }'
jruby 1.6.0 (ruby 1.8.7 patchlevel 330) (2011-03-15 f3b6154) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_24) [linux-amd64-java]
Fixnum 1
Fixnum 2
Fixnum 4
Fixnum 8
Fixnum 16
Fixnum 32
Fixnum 64
Fixnum 128
Fixnum 256
Fixnum 512
commit 81cd13e2fe6ee2f87b769851aeefedb626091e96
Author: Charles Oliver Nutter <headius@headius.com>
Date: Tue Apr 5 16:39:19 2011 -0500
Fix
JRUBY-5693: [1.9] Fixnum#** sometimes returns wrong Bignum