The segfaults are mostly gone. Only on parrot there is a Null PMC Access, but
only for two of the four examples. With said two examples there is an (non
segfaulting) error on Moar and JVM as well:
$ perl6 -e 'role S[::N] { N::x }' ## no error on Moar, Parrot and JVM
$ perl6 -e 'sub foo(::N) { N::x }' ## no error on Moar, Parrot and JVM
$ perl6-m -e 'my (::N); N::x'
Cannot call method 'at_key' on a null object
in block <unit> at -e:1
$ perl6-j -e 'my (::N); N::x'
Can not call method 'at_key' on a null object
in block <unit> at -e:1
$ perl6-p -e 'my (::N); N::x'
Null PMC access in find_method('at_key')
in block <unit> at -e:1
$ cat 122716.pl6
role Zero {
constant count = 0;
}
role Suc[::N] {
constant count = 1 + N::count;
}
subset _0 of Zero;
subset _1 of Suc[Zero];
subset _2 of Suc[_1];
say Suc[Suc[Suc[Zero]]]::count;
$ perl6-m 122716.pl6
===SORRY!===
Cannot call method 'at_key' on a null object
$ perl6-j 122716.pl6
===SORRY!===
Can not call method 'at_key' on a null object
$ perl6-p 122716.pl6
===SORRY!===
Null PMC access in find_method('at_key')