On Tue Mar 20 02:03:58 2012, masak wrote: > <moritz> r: ENTER { say 1 } > <p6eval> rakudo b2505b: OUTPUT«1» > <moritz> r: KEEP { say 1 } > <p6eval> rakudo b2505b: OUTPUT«1» > <moritz> r: UNDO { say 1 } > <p6eval> rakudo b2505b: ( no output ) > > So far, so good. But: > > <moritz> r: UNDO { say 'undone' }; die 'foo' > <p6eval> rakudo b2505b: ( no output ) > <moritz> that doesn't look right :/ > * masak submits rakudobug > <masak> expected output: 'undonefoo at blablabla' > <moritz> r: do { UNDO say "undone"; die "foo" } > <p6eval> rakudo b2505b: OUTPUT«foo in block <anon> at /tmp/zh8VsY8sVT:1» > <masak> r: try { UNDO say "undone"; die "foo" } > <p6eval> rakudo b2505b: OUTPUT«undone»
Also: <moritz> n: do { UNDO say "undone"; die "foo" } <p6eval> niecza v15-4-g1f35f89: OUTPUT«undoneUnhandled exception: foo [...] <masak> r: sub foo { UNDO say "undone"; fail }; foo; say "alive" <p6eval> rakudo b2505b: OUTPUT«alive»