This now gives a segfault on Moar and Parrot and an internal error on JVM: debian7$ perl6-m --version # same rakudo version for perl6-p and perl6-j This is perl6 version 2015.01-6-g25da7a9 built on MoarVM version 2015.01-5-ga29eaa9
debian7$ perl6-m -e 'class A {}; class B is A { has $!x = 5; our method foo(A:) { say $!x } }; &B::foo(A.new)' Segmentation fault debian7$ perl6-p -e 'class A {}; class B is A { has $!x = 5; our method foo(A:) { say $!x } }; &B::foo(A.new)' Segmentation fault debian7$ perl6-j -e 'class A {}; class B is A { has $!x = 5; our method foo(A:) { say $!x } }; &B::foo(A.new)' P6opaque representation does not support attributes in method foo at -e:1 in block <unit> at -e:1 The segfault seems to happen while saying $!x -- if I remove that the code runs fine: debian7$ perl6-m -e 'class A {}; class B is A { has $!x = 5; our method foo(A:) { say "alive" } }; &B::foo(A.new)' alive The above happens on Debian 7 (64 bit). Interestingly on FreeBSD 10.1 (64 bit) there is no segfault with Parrot (Moar and JVM behave as on Debian): freebsd10.1$ perl6-p -e 'class A {}; class B is A { has $!x = 5; our method foo(A:) { say $!x } }; &B::foo(A.new)' No such method 'gist' for invocant of type 'NQPMu' in sub say at gen/parrot/CORE.setting:16823 in sub say at gen/parrot/CORE.setting:16815 in method foo at -e:1 in block <unit> at -e:1 freebsd10.1$ perl6-p --version This is perl6 version 2015.01-7-gf120204 built on parrot 7.0.1 revision RELEASE_7_0_1 The Rakudo version is a few commits newer than in the first examples, but I don't think that is relevant, since on Debian even the latest Rakudo on Parrot segfaults: debian7$ perl6-p -e 'class A {}; class B is A { has $!x = 5; our method foo(A:) { say $!x } }; &B::foo(A.new)' Segmentation fault debian7$ perl6-p --version This is perl6 version 2015.01-10-g5dd603b built on parrot 7.0.1 revision RELEASE_7_0_1