link@prodigy:/var/tmp/tinder/parrot$ uname -a
SunOS prodigy 5.9 Generic_117171-14 sun4u sparc SUNW,Ultra-4
link@prodigy:/var/tmp/tinder/parrot$ gcc -v
Reading specs from
/usr/lhttp://r01.webmail.aol.com/compose-message.aspx?version=_SRV_1_0_0_12281_#ocal/lib/gcc-lib/sparc-sun-solaris2.9/3.3.1/specs
Configured with: ../gcc-3.3.1/configure --prefix=/usr/local
--enable-languages=c,c++ --disable-libgcj --with-as=/usr/ccs/bin/as
--with-ld=/usr/ccs/bin/ld
Thread model: posix
gcc version 3.3.1
trans.t is failing for both jit and other cores
link@prodigy:/var/tmp/tinder/parrot$ perl t/harness --gc-debug
--running-make-test t/op/trans.t
t/op/trans....ok 12/19
t/op/trans....NOK 13# Failed test (t/op/trans.t at line 307)
# got: '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
# not 0.000000ok 17
# '
atan N4, -0.0, -0.0
.fp_eq (N4, -3.1415926, EQ17)
print "not "
print N4
EQ17: print "ok 17\n"
end
There seems to be an extra unintended print in the last test.
Helpfully this shows solaris thinks atan -0 , -0 is 0
A large number of tests are failing when run with the jit but not with
other cores
(trans.t is also failing under jit but was disabled before running
make fulltest)
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
imcc/t/reg/spill.t 5 1280 9 5 55.56% 3 6-9
imcc/t/syn/bsr.t 1 256 13 1 7.69% 8
imcc/t/syn/file.t 4 1024 12 4 33.33% 5-8
imcc/t/syn/objects.t 3 768 11 3 27.27% 2-3 9
imcc/t/syn/pcc.t 27 6912 47 27 57.45% 1-2 4-7 9 11-27 32-33 40
t/dynclass/pyclass.t 3 768 6 3 50.00% 2 5-6
t/dynclass/pyfunc.t 4 1024 4 4 100.00% 1-4
t/op/debuginfo.t 1 256 8 1 12.50% 5
t/op/gc.t 4 1024 19 4 21.05% 10-11 13-14
t/op/interp.t 4 1024 11 4 36.36% 7-10
t/op/string_cclass.t 6 1536 6 6 100.00% 1-6
t/pmc/coroutine.t 8 2048 13 8 61.54% 1 4 6-10 12
t/pmc/delegate.t 4 1024 9 4 44.44% 2 6 8-9
t/pmc/eval.t 11 2816 11 11 100.00% 1-11
t/pmc/exception.t 1 256 30 1 3.33% 21
t/pmc/hash.t 1 256 36 1 2.78% 9
t/pmc/mmd.t 16 4096 26 16 61.54% 1-4 7-8 10-17 24-25
t/pmc/namespace.t 2 512 14 2 14.29% 13-14
t/pmc/nci.t 8 2048 56 8 14.29% 38-45
t/pmc/object-meths.t 7 1792 28 7 25.00% 11 13-15 23-24 28
t/pmc/objects.t 10 2560 62 10 16.13% 29-31 48-52 55-56
t/pmc/pmc.t 1 256 23 1 4.35% 5
t/pmc/sub.t 14 3584 51 14 27.45% 3-4 7 17-20 29-34 48
t/pmc/sys.t 1 256 1 1 100.00% 1
5 tests and 68 subtests skipped.
Failed 24/126 test scripts, 80.95% okay. 146/2231 subtests failed,
93.46% okay.
The failures seem to have a few distinct types
1. Null PMC access
t/op/debuginfo.................ok 4/8
t/op/debuginfo.................NOK 5# Failed test (t/op/debuginfo.t at
line 116)
# 'ok 1
# ok 2
# ok 3
# Null PMC access in find_method()
# current instr.: 'Test1 :: foo' pc -1 ((unknown file):-1)
# called from Sub 'Test1 :: main' pc -1 ((unknown file):-1)
# '
# doesn't match '/^ok 1
# ok 2
# ok 3
# Method 'nosuchmethod' not found
# current instr.: 'Test1 :: foo' pc (\d+|-1) \(.*?:(\d+|-1)\)
# called from Sub 'Test1 :: main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
# '
# './parrot -j --gc-debug
"/var/tmp/tinder/parrot/t/op/debuginfo_5.pir"' failed with exit code 43
t/op/debuginfo.................ok 8/8# Looks like you failed 1 test of
8.
t/op/debuginfo.................dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 5
Failed 1/8 tests, 87.50% okay (less 3 skipped tests: 4 okay, 50.00%)
2. Functions not found
t/pmc/exception................ok 20/30
t/pmc/exception................NOK 21# Failed test (t/pmc/exception.t
at line 460)
# got: 'MMD function __add not foundfor types (1, -100)
# current instr.: 'b :: b11' pc -1 ((unknown file):-1)
# called from Sub 'main' pc -1 ((unknown file):-1)
# '
# expected: 'ok 1
# 99
# '
# './parrot -j --gc-debug
"/var/tmp/tinder/parrot/t/pmc/exception_21.pir"' failed with exit code 1
t/pmc/exception................ok 30/30# Looks like you failed 1 test
of 30.
t/pmc/exception................dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 21
Failed 1/30 tests, 96.67% okay
3. Seg faults
4. No obvious error message but output does not match expected output
Peter
Don't remember doing all this edge case trig stuff in school.
Nick
psinn...@aol.com wrote:
> Building from parrot_2005-06-01_151500.tar.gz on solaris
> trans.t is failing for both jit and other cores
> link@prodigy:/var/tmp/tinder/parrot$ uname -a
> SunOS prodigy 5.9 Generic_117171-14 sun4u sparc SUNW,Ultra-4
> # not 0.000000ok 17
> # '
> atan N4, -0.0, -0.0
> .fp_eq (N4, -3.1415926, EQ17)
> print "not "
> print N4
> EQ17: print "ok 17\n"
> end
> There seems to be an extra unintended print in the last test.
Nope, that's intended ;-)
> Helpfully this shows solaris thinks atan -0 , -0 is 0
As Nick G. said, Solaris isn't the only system that show this error.
The big question is what to do:
- document it as faling on these systems
- implement a workaround for these systems
...
What does Perl5 do in such cases?
leo
It asks Steve Peters.
:-)
Nicholas Clark
> Building from parrot_2005-06-01_151500.tar.gz on solaris
>
> link@prodigy:/var/tmp/tinder/parrot$ uname -a
> SunOS prodigy 5.9 Generic_117171-14 sun4u sparc SUNW,Ultra-4
>
> link@prodigy:/var/tmp/tinder/parrot$ gcc -v
> Reading specs from
> /usr/lhttp://r01.webmail.aol.com/compose-message.aspx?version=_SRV_1_0_0_12281_#ocal/lib/gcc-lib/sparc-sun-solaris2.9/3.3.1/specs
> Configured with: ../gcc-3.3.1/configure --prefix=/usr/local
> --enable-languages=c,c++ --disable-libgcj --with-as=/usr/ccs/bin/as
> --with-ld=/usr/ccs/bin/ld
> Thread model: posix
> gcc version 3.3.1
>
> trans.t is failing for both jit and other cores
>
> link@prodigy:/var/tmp/tinder/parrot$ perl t/harness --gc-debug
> # not 0.000000ok 17
> # '
>
> atan N4, -0.0, -0.0
> .fp_eq (N4, -3.1415926, EQ17)
> print "not "
> print N4
> EQ17: print "ok 17\n"
> end
>
> There seems to be an extra unintended print in the last test.
> Helpfully this shows solaris thinks atan -0 , -0 is 0
Yes. See config/init/hints/solaris.pl for further details. In brief, for
Sun's compilers, we can use -xlibmieee. I don't know an an equivalent
flag for gcc.
I don't know if The only change in the compilation process. The only
change in the linking stage is that the -xlibmieee flag forces the
inclusion of /opt/SUNWspro/SC4.2/lib/values-xi.o instead of
/opt/SUNWspro/SC4.2/lib/values-xa.o. I don't see an equivalent
replacement one can make in the gcc specs file.
--
Andy Dougherty doug...@lafayette.edu