As a status update: An empty EVAL combined with "while 1" still seems to
consume more and more memory (happens on Moar, Parrot and JVM):
$ perl6 -e 'EVAL q[] while 1'
Currently things are as follows:
Moar get's all of this right:
$ perl6-m -e 'UNDO { say "undone" }; die "foo"'
undone
foo
in block at -e:1
$ perl6-m -e 'do { UNDO say "undone"; die "foo" }'
undone
foo
in block at -e:1
$ perl6-m -e 'try { UNDO say "undone"; die "foo" }'
undone
$ perl6-m -e '
There is a passing test in S06-macros/unquoting.t now (cmp. commits
https://github.com/perl6/roast/commit/054665cfb7 and
https://github.com/perl6/roast/commit/d6570538ae).
I'm closing this ticket now.
This works now (output is identical on Moar, Parrot and JVM):
$ perl6 -e 'my $a = 42; END { say $a }'
42
$ perl6 -e 'BEGIN { my $a = 42; END { say $a } }'
42
I added two tests to S04-phasers/end.t with commit
https://github.com/perl6/roast/commit/958f3520e7
I'm closing this ticket now.
# New Ticket Created by "Carl Mäsak"
# Please include the string: [perl #123037]
# in the subject line of all future correspondence about this issue.
# https://rt.perl.org/Ticket/Display.html?id=123037 >
m: my Int @a; @a[4]++; say @a[0]; say @a
rakudo-moar 315ec6: OUTPUT«(Int)(Any) (Any) (