On Fri, 10 Feb 2006, Allison Randal wrote:

> On Feb 10, 2006, at 9:56, Andy Dougherty via RT wrote:
> > 
> > I too had seen this memory problem before on Solaris/SPARC, but I'm
> > pretty sure I saw it even when running t/past_node_5.pir directly.
> > However, trying again today, I'm happy to report that that particular
> > problem seems to be gone.
> 
> Excellent.
> 
> > Of course an awful lot of the tests still
> > fail, but I don't know if that's expected or not.
> 
> All of the test should be passing (at least, they are on other platforms).
> Could you send me more details on the failing tests? Some of the generated
> .out and .pir files would be a good start (running with POSTMORTEM=1).


I don't pretend to remotely understand what the code is attempting to 
do, let alone how it's failing, but the failures vaguely seem to be fairly 
similar.  It looks like 'node.set_node' doesn't actually end up doing 
anything.  So for t/past_2.pir, for example, we have

.sub _main
    load_bytecode 'languages/punie/lib/PAST.pir'
    .local pmc node
    node = new 'PAST::Code'
    $P0 = new PerlString
    $P0 = 'bar'
    $P1 = new PerlArray
    push $P1, $P0
    node.set_node('foo', 42, $P1)
    $P1 = getattribute node, 'source'
    print $P1
    print "\n"
    $P1 = getattribute node, 'pos'
    print $P1
    print "\n"
    $P2 = getattribute node, 'children'
    $P3 = $P2[0]
    print $P3
    print "\n"
    .return ()
.end

and for t/past_2.out, we have

1
1
bar

The other one that looks significantly different is t/past_op_1.pir.  The 
pir file is

.sub _main
    load_bytecode 'languages/punie/lib/PAST.pir'
    .local pmc node
    node = new 'PAST::Op'
    node.set_node('foo', 42, 'bar')
    $P1 = getattribute node, 'source'
    print $P1
    print "\n"
    $P1 = getattribute node, 'pos'
    print $P1
    print "\n"
    $P1 = getattribute node, 'op'
    print $P1
    print "\n"
    .return ()
.end

and the output file is

Null PMC access in get_string()
current instr.: '_main' pc 20 
(/home/doughera/src/parrot/parrot-andy/languages/punie/t/past_op_1.pir:7)

Here's the full output of 'make test'.  It accurately reflects the .out 
files (well, I didn't exhaustively check them all, but the ones I did 
check matched up.)

perl5.6 -Ilib t/harness t/*.t
t/base_cond....ok
t/base_if......ok
t/base_lex.....ok
t/base_pat.....ok
t/base_term....ok
t/io_print.....ok
t/op_goto......ok
t/past.........
#     Failed test (t/past.t at line 44)
#          got: '1
# 1
# bar
# '
#     expected: 'foo
# 42
# bar
# '

#     Failed test (t/past.t at line 44)
#          got: '1
# 1
# bar
# '
#     expected: 'foo
# 42
# bar
# '

#     Failed test (t/past.t at line 44)
#          got: '1
# 1
# bar
# '
#     expected: 'foo
# 42
# bar
# '

#     Failed test (t/past.t at line 44)
#          got: '1
# 1
# bar
# '
#     expected: 'foo
# 42
# bar
# '

#     Failed test (t/past.t at line 44)
#          got: '1
# 1
# bar
# '
#     expected: 'foo
# 42
# bar
# '

#     Failed test (t/past.t at line 44)
#          got: '1
# 1
# bar
# '
#     expected: 'foo
# 42
# bar
# '
# Looks like you failed 6 tests of 7.
dubious
        Test returned status 6 (wstat 1536, 0x600)
DIED. FAILED tests 2-7
        Failed 6/7 tests, 14.29% okay
t/past_node....ok
t/past_op......
#     Failed test (t/past_op.t at line 7)
#          got: 'Null PMC access in get_string()
# current instr.: '_main' pc 20 
(/home/doughera/src/parrot/parrot-andy/languages/punie/t/past_op_1.pir:7)
# '
#     expected: 'foo
# 42
# bar
# '
# './parrot  
"/home/doughera/src/parrot/parrot-andy/languages/punie/t/past_op_1.pir"' failed 
with exit code 43

#     Failed test (t/past_op.t at line 30)
#          got: '<PAST::Op> => { 
#     'source' => undef,
#     'pos' => undef,
#     'op' => 'bar',
#     'children' => []
# }
# '
#     expected: '<PAST::Op> => { 
#     'source' => 'foo',
#     'pos' => '42',
#     'op' => 'bar',
#     'children' => []
# }
# '
# Looks like you failed 2 tests of 2.
dubious
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1-2
        Failed 2/2 tests, 0.00% okay
t/past_val.....
#     Failed test (t/past_val.t at line 7)
#          got: '42
# 42
# bar
# '
#     expected: 'foo
# 42
# bar
# '

#     Failed test (t/past_val.t at line 30)
#          got: '<PAST::Val> => { 
#     'source' => '42',
#     'pos' => '42',
#     'value' => 'bar',
#     'valtype' => undef,
# }
# '
#     expected: '<PAST::Val> => { 
#     'source' => 'foo',
#     'pos' => '42',
#     'value' => 'bar',
#     'valtype' => undef,
# }
# '
# Looks like you failed 2 tests of 2.
dubious
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1-2
        Failed 2/2 tests, 0.00% okay
t/post.........
#     Failed test (t/post.t at line 44)
#          got: '1
# 1
# bar
# '
#     expected: 'foo
# 42
# bar
# '

#     Failed test (t/post.t at line 44)
#          got: '1
# 1
# bar
# '
#     expected: 'foo
# 42
# bar
# '
# Looks like you failed 2 tests of 3.
dubious
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 2-3
        Failed 2/3 tests, 33.33% okay
t/post_node....ok
t/post_op......
#     Failed test (t/post_op.t at line 7)
#          got: 'Null PMC access in get_string()
# current instr.: '_main' pc 20 
(/home/doughera/src/parrot/parrot-andy/languages/punie/t/post_op_1.pir:7)
# '
#     expected: 'foo
# 42
# bar
# '
# './parrot  
"/home/doughera/src/parrot/parrot-andy/languages/punie/t/post_op_1.pir"' failed 
with exit code 43

#     Failed test (t/post_op.t at line 30)
#          got: '<POST::Op> => { 
#     'source' => undef,
#     'pos' => undef,
#     'op' => 'bar',
#     'children' => []
# }
# '
#     expected: '<POST::Op> => { 
#     'source' => 'foo',
#     'pos' => '42',
#     'op' => 'bar',
#     'children' => []
# }
# '
# Looks like you failed 2 tests of 2.
dubious
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1-2
        Failed 2/2 tests, 0.00% okay
t/post_val.....
#     Failed test (t/post_val.t at line 7)
#          got: '42
# 42
# bar
# '
#     expected: 'foo
# 42
# bar
# '

#     Failed test (t/post_val.t at line 30)
#          got: '<POST::Val> => { 
#     'source' => '42',
#     'pos' => '42',
#     'value' => 'bar',
#     'valtype' => undef,
# }
# '
#     expected: '<POST::Val> => { 
#     'source' => 'foo',
#     'pos' => '42',
#     'value' => 'bar',
#     'valtype' => undef,
# }
# '
# Looks like you failed 2 tests of 2.
dubious
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1-2
        Failed 2/2 tests, 0.00% okay
Failed 6/15 test scripts, 60.00% okay. 16/41 subtests failed, 60.98% okay.
Failed Test  Stat Wstat Total Fail  Failed  List of Failed
-------------------------------------------------------------------------------
t/past.t        6  1536     7    6  85.71%  2-7
t/past_op.t     2   512     2    2 100.00%  1-2
t/past_val.t    2   512     2    2 100.00%  1-2
t/post.t        2   512     3    2  66.67%  2-3
t/post_op.t     2   512     2    2 100.00%  1-2
t/post_val.t    2   512     2    2 100.00%  1-2
*** Error code 2
make: Fatal error: Command failed for target `test'

-- 
    Andy Dougherty              [EMAIL PROTECTED]

Reply via email to