Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Parrot on Solaris

7 views
Skip to first unread message

psinn...@aol.com

unread,
Jun 1, 2005, 10:41:42 PM6/1/05
to perl6-i...@perl.org, Psinn...@aol.com
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
--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

Nick Glencross

unread,
Jun 2, 2005, 5:57:51 AM6/2/05
to Perl 6 Internals, psinn...@aol.com
This is the exact same behaviour that you get under cygwin on Windows. I
assumed that the extra print was added by someone who had previously
been doing an investigation.

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

Leopold Toetsch

unread,
Jun 2, 2005, 6:22:28 AM6/2/05
to psinn...@aol.com, perl6-i...@perl.org, ch...@pobox.com, ni...@ccl4.org
psinn...@aol.com <psinn...@aol.com> wrote:
> 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

> # 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

Nicholas Clark

unread,
Jun 2, 2005, 6:32:07 AM6/2/05
to Steve Peters, perl6-i...@perl.org, psinn...@aol.com, ch...@pobox.com

It asks Steve Peters.

:-)

Nicholas Clark

Andy Dougherty

unread,
Jun 2, 2005, 10:29:50 AM6/2/05
to Perl6 Internals
On Wed, 1 Jun 2005 psinn...@aol.com wrote:

> 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

0 new messages