As a status update: There is still a Null PMC access with Parrot. With Moar and
JVM everything seems fine:
$ perl6-p -e 'sub a is DEPRECATED((sub { "a" })()) { }; a();'
===SORRY!===
Null PMC access in get_bool()
$ perl6-j -e 'sub a is DEPRECATED((sub { "a" })()) { }; a();' ## identical
output
As a status update: This seems to be specific to the REPL. Executing the code
from the command line throws a typed exception X::Export::NameClash (output is
identical for perl6-m and perl6-j):
$ perl6-p -e 'constant %a is export = 5 => 5; constant %a is export = 5 => 5'
===SORRY!=== Error while
As a status update: There is still a Null PMC access with Parrot and the errors
with Moar and JVM don't look that good as well:
$ perl6-p -e 'sub a is export { "a" }; say EXPORT::ALL'
===SORRY!===
Error while compiling op callstatic (source text: "say EXPORT::ALL"): Null PMC
access in find_metho
I can't reproduce the Null PMC access anymore:
$ cat 118407.pm6
sub abc() is export { say "hello" }
$ perl6-p
> require("118407.pm6") "&abc"; abc();
Trying to import symbols &abc from '118407.pm6', but it does not export anything
> require("118407.pm6") "abc"; abc();
Trying to import symbols ab
Rakudo gets it right now:
$ perl6-m -e 'say (-300...300 X+> -5...5)'
===SORRY!=== Error while compiling -e
Operators '...' and 'X+>' are non-associative and require parentheses
at -e:1
--> say (-300...300 X⏏+> -5...5)
expecting any of:
postfix
infix stopper
infix or
This is still the same as in 2012:
$ perl6 -e 'say not(0) + 1'
False
$ perl6 -e 'say (not 0) + 1'
2
I added a test (fudged "todo") in S03-operators/precedence.t with commit
https://github.com/perl6/roast/commit/156e7e7f474169601d7a6b53fcd20e43ea181609
A typed exception X::Syntax::NonAssociative is now thrown.
$ perl6-m -e 'say [+] "08:12:23".split(":") Z* 60 X** reverse ^3'
===SORRY!=== Error while compiling -e
Operators 'Z*' and 'X**' are non-associative and require parentheses
at -e:1
--> say [+] "08:12:23".split(":") Z* 60 X⏏** reverse ^