Ticket #38 (closed bug: fixed)

Opened 6 years ago

Last modified 6 years ago

t/op/trans.t:atan2 fails in JIT core

Reported by: whiteknight Owned by: jkeenan
Priority: normal Milestone: 1.1
Component: core Version:
Severity: medium Keywords: JIT atan2
Cc: Language:
Patch status: Platform:

Description

I'm getting a test failure in the "atan2" test of t/op/trans.t is failing in the JIT core. Here's some of the output:

make testj t/op/trans.............................dubious

Test returned status 1 (wstat 256, 0x100)

DIED. FAILED test 13

Failed 1/22 tests, 95.45% okay

# Failed test 'atan2' # at t/op/trans.t line 268. # got: 'not ok 1 # not ok 2 # not ok 3 # not ok 4 # not ok 5 # not ok 6 # not ok 7 # not ok 8 # not ok 9 # not ok 10 # not ok 11 # not ok 12 # ok 13 # ok 14 # ok 15 # ok 16 # ' # expected: 'ok 1 # ok 2 # ok 3 # ok 4 # ok 5 # ok 6 # ok 7 # ok 8 # ok 9 # ok 10 # ok 11 # ok 12 # ok 13 # ok 14 # ok 15 # ok 16 # ' # Looks like you failed 1 test of 22. Failed 1/248 test programs. 1/7945 subtests failed. make[1]: *** [testj] Error 255 make: [fulltest] Error 2 (ignored)

Change History

  Changed 6 years ago by whiteknight

  • milestone changed from 0.8.2 to 0.9.0

  Changed 6 years ago by NotFound

  • keywords JIT added
  • component changed from none to core

This problem is also reported in #201, closed as duplicate of this.

The test has been TODOed for jit.

I've made a tiny test: dropping the inline qualifier from the atan NUM NUM NUM opcode the test pass.

Note that the atan2 function used by the opcode on can be a macro.

follow-up: ↓ 4   Changed 6 years ago by cotto

The test in question is passing now. Can this ticket be closed?

in reply to: ↑ 3 ; follow-up: ↓ 5   Changed 6 years ago by jkeenan

Replying to cotto:

The test in question is passing now. Can this ticket be closed?

I would suggest first making sure it's passing on all our target OSes. I'll try it on those I have available (Linux/i386 and Darwin/PPC).

in reply to: ↑ 4 ; follow-up: ↓ 6   Changed 6 years ago by jkeenan

Replying to jkeenan:

I would suggest first making sure it's passing on all our target OSes. I'll try it on those I have available (Linux/i386 and Darwin/PPC).

It's passing for me on Linux/i386 and Darwin/PPC.

$ /usr/local/bin/perl t/harness --gc-debug -j t/op/trans.t
t/op/trans....11/22 
ok 13 - atan2 # TODO broken under JIT TT #201
t/op/trans....ok     
All tests successful.

Test Summary Report
-------------------
t/op/trans (Wstat: 0 Tests: 22 Failed: 0)
  TODO passed:   13
Files=1, Tests=22,  8 wallclock secs ( 0.05 usr  0.03 sys +  1.94 cusr  1.33 csys =  3.35 CPU)

Same output both places. Can we get some reports from Win32 and the *BSDs? 64 platforms?

Thank you very much.
kid51

in reply to: ↑ 5 ; follow-up: ↓ 7   Changed 6 years ago by moritz

Replying to jkeenan:

Same output both places. Can we get some reports from Win32 and the *BSDs? 64 platforms?

===(       1 )==========================================================
#   Failed test 'sin'
#   at t/op/trans.t line 32.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_1.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

===(       2 )==========================================================
#   Failed test 'cos'
#   at t/op/trans.t line 52.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_2.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

===(       3 )==========================================================
#   Failed test 'tan'
#   at t/op/trans.t line 71.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_3.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

===(       4 )==========================================================
#   Failed test 'sec'
#   at t/op/trans.t line 90.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_4.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

===(       5 )==========================================================
#   Failed test 'atan'
#   at t/op/trans.t line 109.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_5.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

===(       6 )==========================================================
#   Failed test 'asin'
#   at t/op/trans.t line 128.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_6.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

#   Failed test 'acos'
#   at t/op/trans.t line 148.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_7.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

===(       8 )==========================================================
#   Failed test 'asec'
#   at t/op/trans.t line 168.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_8.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

#   Failed test 'cosh'
#   at t/op/trans.t line 188.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_9.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

===(      10 )==========================================================
#   Failed test 'sinh'
#   at t/op/trans.t line 208.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_10.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

#   Failed test 'tanh'
#   at t/op/trans.t line 228.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_11.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

===(      12 )==========================================================
#   Failed test 'sech'
#   at t/op/trans.t line 248.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_12.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

#   Failed test 'atan, part 2'
#   at t/op/trans.t line 384.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_14.pasm:2)
# 
# Expected:
# ok 1
# 

#   Failed test 'log2'
#   at t/op/trans.t line 398.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_15.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

===(      16 )==========================================================
#   Failed test 'log10'
#   at t/op/trans.t line 418.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_16.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

#   Failed test 'ln'
#   at t/op/trans.t line 438.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_17.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

#   Failed test 'exp'
#   at t/op/trans.t line 457.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_18.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

#   Failed test 'pow'
#   at t/op/trans.t line 476.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_19.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# ok 3
# ok 4
# ok 5
# ok 6
# ok 7
# ok 8
# ok 9
# ok 10
# ok 11
# ok 12
# ok 13
# ok 14
# ok 15
# ok 16
# 

===(      20 )==========================================================
#   Failed test 'sqrt'
#   at t/op/trans.t line 587.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_20.pasm:2)
# 
# Expected:
# ok 1
# ok 2
# 

#   Failed test 'pow_n_n_ic'
#   at t/op/trans.t line 607.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_21.pasm:1)
# 
# Expected:
# 1
# 2
# 4
# 8
# 16
# 32
# 64
# 128
# 0.5
# 0.25
# 0.125
# 0.0625
# 

#   Failed test 'pow_n_n_i'
#   at t/op/trans.t line 662.
# Exited with error code: 1
# Received:
# Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!
# 
# current instr.: '(null)' pc 0 (/home/moritz/rakudo/parrot/t/op/trans_22.pasm:1)
# 
# Expected:
# 1
# 2
# 4
# 8
# 16
# 32
# 64
# 0.5
# 0.25
# 0.125
# 0.0625
# 0.03125
# 0.015625
# 
# Looks like you failed 21 tests of 22.

                                                                        
t/op/trans....  Dubious, test returned 21 (wstat 5376, 0x1500)
 Failed 21/22 subtests 

===(      22 )==========================================================
Test Summary Report
-------------------
t/op/trans (Wstat: 5376 Tests: 22 Failed: 21)
  Failed tests:  1-12, 14-22
  Non-zero exit status: 21
Files=1, Tests=22,  2 wallclock secs ( 0.04 usr  0.00 sys +  0.61 cusr  0.29 csys =  0.94 CPU)
Result: FAIL

in reply to: ↑ 6 ; follow-up: ↓ 8   Changed 6 years ago by moritz

Replying to moritz:

forgot to mention, this is linux-amd64 on Debian Lenny.

in reply to: ↑ 7   Changed 6 years ago by jkeenan

  • owner set to jkeenan
  • keywords atan2 added

Replying to moritz:

Replying to moritz:

forgot to mention, this is linux-amd64 on Debian Lenny.

1. This ticket was opened for the failure of atan2 in test 13. Paradoxically, that's just about the only thing that is passing in this report.

2. On IRC there were also reports of tests other than atan2 failing under jit for certain OSes.

3. On IRC it was also mentioned that JIT simply wasn't working on 64 bit platforms at all.

For all of the above reasons, I'm going to close this, atan2-focused TT. I encourage those for whom other tests in t/op/trans.t are failing under jit to open TTs focused specifically on the type of math function that is failing, i.e., sinh, tanh and pow.

Thank you very much.
kid51

  Changed 6 years ago by jkeenan

  • status changed from new to assigned

  Changed 6 years ago by jkeenan

  • status changed from assigned to closed
  • resolution set to fixed

  Changed 6 years ago by allison

  • status changed from closed to reopened
  • resolution fixed deleted

  Changed 6 years ago by allison

  • status changed from reopened to closed
  • resolution set to fixed

See related details in TT #530.

Note: See TracTickets for help on using tickets.