On Friday 22 February 2008 16:50:35 Mitchell N Charity wrote: > languages/perl6/perl6 --target=past gives no output with -e CODE. > r25997 on fedora 8, x86_64. > > # works > $ languages/perl6/perl6 -e 'say(3);' > 3 > > # works > $ echo -n 'say(3);' > deleteme.pm; languages/perl6/perl6 --target=past > deleteme.pm > # ...big past output... > > # doesn't work > $ languages/perl6/perl6 --target=past -e 'say(3);' > # no output at all
Confirmed on 32-bit Linux, confirmed also with perl6.pbc. The problem's not in pbc_to_exe; it's in PCT, specifically HLLCompiler. The attached patch fixes things. It's slightly quick and dirty. A better solution is to clean up compile() further to handle adverb combinations. However, this patch works. -- c
--- compilers/pct/src/PCT/HLLCompiler.pir (revision 26008) +++ compilers/pct/src/PCT/HLLCompiler.pir (local) @@ -712,7 +714,8 @@ self.'version'() goto end eval_line: - self.'eval'($S0, adverbs :flat :named) + result = self.'eval'($S0, adverbs :flat :named) + goto save_output .end