On Sat, 12 Jan 2019 21:33:53 -0800
Jeremy Evans <jer...@openbsd.org> wrote:

> I think was able to fix both JIT issues.

Your new tarball from Sun, 13 Jan, fixes the JIT problems on my
powerpc machine.  "MJIT: CC defaults to /usr/bin/cc"

Old result, broken JIT:
  Finished tests in 6145.605596s, 3.2864 tests/s, 371.8192 assertions/s.
  20197 tests, 2285054 assertions, 64 failures, 16 errors, 112 skips
New result, fixed JIT:
  Finished tests in 6827.563384s, 2.9582 tests/s, 334.5004 assertions/s.
  20197 tests, 2283823 assertions, 14 failures, 15 errors, 111 skips

(I failed to clean my old ruby26 binary and the TEST_DEPENDS
reinstalled the old one.  The JIT tests passed, so they must have been
testing the new binary, not the old one.)

I saw 2 failures that weren't DES crypt or SSL:

  8) Failure:                                                                  
Fiddle::TestImport#test_gettimeofday [/usr/ports/pobj/ruby-2.6.0/ruby-2.6.0/test
/fiddle/test_import.rb:126]:                                                   
Failed assertion, no message given.                                            

I looked at test/fiddle/test_import.rb and it declares Timeval with
"long tv_sec", which has the correct 64 bits on amd64 and the wrong
32 bits on powerpc.  I typically run the tests on amd64, so I didn't
see this failure until now.  The test is wrong so we can ignore it.

 12) Failure:                                                                  
TestEnumerable#test_sum [/usr/ports/pobj/ruby-2.6.0/ruby-2.6.0/test/ruby/test_en
um.rb:1065]:                                                                   
<Infinity> expected but was                                                    
<NaN>.                                                                         

test/ruby/test_enum.rb does `k.new(+Float::INFINITY, 0.0).sum` where
k#each yields Float::INFINITY then 0.0.  I can reproduce the wrong NaN
in both irb25 and irb26 on powerpc:

irb(main):045:0> Enumerator.new{|y| y << Float::INFINITY << 0.0}.sum
=> NaN
irb(main):046:0> Enumerator.new{|y| y << Float::INFINITY << 0.0}.reduce(:+)
=> Infinity
irb(main):047:0> Enumerator.new{|y| y << Float::INFINITY << 0.0}.to_a.sum
=> Infinity

Trying the same 3 lines on amd64: irb25 gives NaN, Infinity, NaN;
irb from ruby 2.7.0dev (2019-01-13 trunk 66808) gives the correct
Infinity, Infinity, Infinity.  Therefore, Enumerable#sum has some
Float problem on powerpc, but Ruby 2.6 isn't worse than 2.5.

-- 
George Koehler <kern...@gmail.com>

Reply via email to