yarv-dev-en:150
From: SASADA Koichi <ko1 atdot.net>
Date: Tue, 15 Aug 2006 15:12:22 +0900
Subject: [yarv-dev-en:150] Re: Fixnum -> Bignum Conversion
Hi, Thanks. I fixed it. Brian Eng wrote: > $ uname -a > Darwin pp1 8.7.0 Darwin Kernel Version 8.7.0: Fri May 26 15:20:53 PDT > 2006; root:xnu-792.6.76.obj~1/RELEASE_PPC Power Macintosh powerpc > > $ cat numtest.rb > temp = 2**30 - 5 > 5.times do > temp += 1 > print temp, " ", temp.class, "\n" > end > > $ ./ruby-yarv -v numtest.rb > ruby 2.0.0 (Base: Ruby 1.9.0 2006-04-08) [powerpc-darwin8.7.0] > YARVCore 0.4.1 Rev: 528 (2006-08-05) [opts: [direct threaded code] > [inline method cache] ] > 1073741820 Fixnum > 1073741821 Fixnum > 1073741822 Fixnum > 1073741823 Fixnum > 6 Fixnum > > This problem only happens when doing small increments, large ones work > fine. > > $ cat numtest2.rb > temp = 2 > 5.times do > temp **= 2 > print temp, " ", temp.class, "\n" > end > > $ ./ruby-yarv -v numtest2.rb > ruby 2.0.0 (Base: Ruby 1.9.0 2006-04-08) [powerpc-darwin8.7.0] > YARVCore 0.4.1 Rev: 528 (2006-08-05) [opts: [direct threaded code] > [inline method cache] ] > 4 Fixnum > 16 Fixnum > 256 Fixnum > 65536 Fixnum > 4294967296 Bignum > > Using the Ruby that comes with OS X 10.4 > > $ ruby -v numtest.rb > ruby 1.8.2 (2004-12-25) [powerpc-darwin8.0] > 1073741820 Fixnum > 1073741821 Fixnum > 1073741822 Fixnum > 1073741823 Fixnum > 1073741824 Bignum > > Setting #define OPT_SPECIALISED_INSTRUCTION 0 (default is 1) in > vm_opts.h seems to fix problem. > > $ ./ruby-yarv -v numtest.rb > ruby 2.0.0 (Base: Ruby 1.9.0 2006-04-08) [powerpc-darwin8.7.0] > YARVCore 0.4.1 Rev: 528 (2006-08-05) [opts: [direct threaded code] > [inline method cache] ] > 1073741820 Fixnum > 1073741821 Fixnum > 1073741822 Fixnum > 1073741823 Fixnum > 1073741824 Bignum > > Is it a problem just with OS X or maybe PPC computers? -- // SASADA Koichi at atdot dot net -- ML: yarv-dev-en quickml.atdot.net Info: http://www.atdot.net/~ko1/quickml
149 2006-08-15 02:04 [beng jlab.org ] Fixnum -> Bignum Conversion -> 150 2006-08-15 15:12 ┗[ko1 atdot.net ]