Just to followup on #parrotsketch reports earlier today.

PGE is failing tests 34 and 35 in t/compilers/pge/03-optable.t
in the pdd25cx branch.  I did some checking on it and get some
slightly bizarre results -- in particular, the results differ
depending on whether the resulting PIR is run from the test
script or standalone.

When doing "prove t/compilers/pge/03-optable.t", I get incorrect
output, but when running the (generated) t/compilers/pge/03-optable_34.pir
file directly, the output is correct.

Output from "prove -v t/compilers/pge/03-optable.t", tests 34-35:

    #   Failed test 'top-level stop token'
    #   in t/compilers/pge/03-optable.t at line 179.
    #          got: 'infix:;(circumfix:( )(infix:;(term:a, term:b)), term:d)
    # '
    #     expected: 'circumfix:( )(infix:;(term:a, term:b)) (pos=5)
    # '
    not ok 34 - top-level stop token
    not ok 35 - top-level stop token
    
    #   Failed test 'top-level stop token'
    #   in t/compilers/pge/03-optable.t at line 179.
    #          got: 'infix:;(infix:,(term:a, term:b), term:c)
    # '
    #     expected: 'infix:,(term:a, term:b) (pos=3)
    # '

Output from "parrot t/compilers/pge/03-optable_34.pir":

    circumfix:( )(infix:;(term:a, term:b)) (pos=5)

Output from "parrot t/compilers/pge/03-optable_35.pir":

    infix:,(term:a, term:b) (pos=3)

So, whatever is causing the test to produce the incorrect output is 
sensitive to how Parrot is being invoked.  This leads me to believe 
it's not anything in PGE itself but rather something about Parrot.
(In particular, the OPTable code isn't detecting the stop token for
some reason.)

Hope this helps,

Pm

Reply via email to