Project

General

Profile

Actions

Bug #6796

closed

fix test failure of numeric/bignum built with clang -O

Added by kimuraw (Wataru Kimura) over 11 years ago. Updated over 11 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 1.8.7 (2012-06-29 patchlevel 370) [i686-darwin11.4.2]
[ruby-dev:46008]

Description

=begin

木村といいます。

clangで最適化オプションをつけてコンパイルすると、bignum関連のテストが
いくつか失敗していしまいます。
添付のパッチでこの問題が解決することを確認しました。

環境

  • Mac OS X 10.7.4
  • clang-3.0
  • ruby-1.8.7-p370

% ./ruby -v
ruby 1.8.7 (2012-06-29 patchlevel 370) [i686-darwin11.4.2]
% make TESTS=ruby test-all
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb ./runruby.rb --extout=.ext -- "./test/runner.rb" --basedir="./test" --runner=console ruby
Loaded suite ruby
Started
............................./test/ruby/test_array.rb:536: warning: given block not used
.........................................................................FE../test/ruby/test_bignum.rb:109: warning: Bignum out of Float range
./test/ruby/test_bignum.rb:110: warning: Bignum out of Float range
...............................................................................................................................................................................................................F.......F....F..F.....F..........F.......................................................................................................................................................................................................................................................................................
Finished in 68.103073 seconds.

  1. Failure:
    test_bignum(TestBignum) [./test/ruby/test_bignum.rb:20]:
    <815915283247897734345611269596115894272000000000> expected but was
    <12458531232290854317486386476939789467648000000>.

  2. Error:
    test_calc(TestBignum):
    ZeroDivisionError: divided by 0
    ./test/ruby/test_bignum.rb:55:in modulo' ./test/ruby/test_bignum.rb:55:in test_calc'

  3. Failure:
    test_readpartial_pos(TestIO)
    [./test/ruby/test_io.rb:28:in test_readpartial_pos' ./test/ruby/test_io.rb:25:in open'
    ./test/ruby/test_io.rb:25:in test_readpartial_pos' ./test/ruby/test_io.rb:9:in mkcdtmpdir'
    ./test/ruby/test_io.rb:8:in chdir' ./test/ruby/test_io.rb:8:in mkcdtmpdir'
    /Volumes/CHome/kimuraw/work/ruby/ruby_1_8_7/lib/tmpdir.rb:129:in mktmpdir' ./test/ruby/test_io.rb:7:in mkcdtmpdir'
    ./test/ruby/test_io.rb:23:in `test_readpartial_pos']:
    <2> expected but was
    <0>.

  4. Failure:
    test_divmod(TestInteger)
    [./test/ruby/test_integer.rb:219:in test_divmod' ./test/ruby/test_integer.rb:212:in each'
    ./test/ruby/test_integer.rb:212:in test_divmod' ./test/ruby/test_integer.rb:211:in each'
    ./test/ruby/test_integer.rb:211:in `test_divmod']:
    <-79228162514264337593543950338> expected but was
    <-2>.

  5. Failure:
    test_lshift(TestInteger)
    [./test/ruby/test_integer.rb:308:in test_lshift' ./test/ruby/test_integer.rb:303:in each'
    ./test/ruby/test_integer.rb:303:in test_lshift' ./test/ruby/test_integer.rb:302:in each'
    ./test/ruby/test_integer.rb:302:in `test_lshift']:
    -6277101735386680763835789423207666416102355444464034512898 << 63.
    <57896044618658097711785492504343953926634992332820282019747238748030274371584> expected but was
    <-57896044618658097711785492504343953926634992332820282019747238748030274371584>.

  6. Failure:
    test_mult(TestInteger)
    [./test/ruby/test_integer.rb:205:in test_mult' ./test/ruby/test_integer.rb:198:in each'
    ./test/ruby/test_integer.rb:198:in test_mult' ./test/ruby/test_integer.rb:197:in each'
    ./test/ruby/test_integer.rb:197:in `test_mult']:
    -6277101735386680763835789423207666416102355444464034512898 * -4611686018427387906.
    <28948022309329048868446949722945338490989075012825473841617161661100467421188> expected but was
    <28948022309329048868446949722945338490989075012825473842078330262943206211588>.

  7. Failure:
    test_pow(TestInteger)
    [./test/ruby/test_integer.rb:243:in test_pow' ./test/ruby/test_integer.rb:234:in each'
    ./test/ruby/test_integer.rb:234:in test_pow' ./test/ruby/test_integer.rb:233:in each'
    ./test/ruby/test_integer.rb:233:in `test_pow']:
    ((-4611686018427387904) ** 2) / -4611686018427387904 / ...(2 times)...
    <1> expected but was
    <0>.

  8. Failure:
    test_rshift(TestInteger)
    [./test/ruby/test_integer.rb:330:in test_rshift' ./test/ruby/test_integer.rb:325:in each'
    ./test/ruby/test_integer.rb:325:in test_rshift' ./test/ruby/test_integer.rb:324:in each'
    ./test/ruby/test_integer.rb:324:in `test_rshift']:
    -6277101735386680763835789423207666416102355444464034512898 >> -65.
    <0> expected but was
    <-231584178474632390847141970017375815706539969331281128078988954992121097486336>.

624 tests, 452824 assertions, 7 failures, 1 errors
make: *** [test-all] Error 1
make TESTS=ruby test-all 62.34s user 0.91s system 92% cpu 1:08.44 total

=end


Files

patch-numeric.c.diff (876 Bytes) patch-numeric.c.diff kimuraw (Wataru Kimura), 07/26/2012 10:29 PM
Actions #1

Updated by sorah (Sorah Fukumori) over 11 years ago

  • Project changed from Backport187 to Ruby 1.8
Actions #2

Updated by sorah (Sorah Fukumori) over 11 years ago

  • Tracker changed from Feature to Bug

Updated by sorah (Sorah Fukumori) over 11 years ago

  • Status changed from Open to Rejected
  • ruby -v set to ruby 1.8.7 (2012-06-29 patchlevel 370) [i686-darwin11.4.2]

1.8.7 の bug fix は終了しています。

http://www.ruby-lang.org/ja/news/2011/10/07/plans-for-1-8-7/

Updated by knu (Akinori MUSHA) over 11 years ago

ruby_1_8には入れておきます。(r36546)

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0