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]