I'm not sure when it got fixed, but the same code now is working without any issues, should we close the ticket?
On Tue, 26 Apr 2016 06:20:45 -0700, [email protected] wrote: > This is yet another compile time closure serialisation bug. I made a > list > of all of them I could find: > > https://rt.perl.org/Public/Bug/Display.html?id=125634 > <https://rt.perl.org/Public/Bug/Display.html?id=126818> > https://rt.perl.org/Public/Bug/Display.html?id=126818 > https://rt.perl.org/Public/Bug/Display.html?id=127034 > https://rt.perl.org/Public/Bug/Display.html?id=127112 > <https://rt.perl.org/Public/Bug/Display.html?id=127858> > https://rt.perl.org/Public/Bug/Display.html?id=127858 > <https://rt.perl.org/Public/Bug/Display.html?id=127860> > https://rt.perl.org/Public/Bug/Display.html?id=127860 > https://rt.perl.org/Public/Bug/Display.html?id=127959 > > and added this one to the list :) > > On Sun, Apr 24, 2016 at 5:02 AM Pierre VIGIER <perl6-bugs- > [email protected]> > wrote: > > > # New Ticket Created by Pierre VIGIER > > # Please include the string: [perl #127959] > > # in the subject line of all future correspondence about this issue. > > # <URL: https://rt.perl.org/Ticket/Display.html?id=127959 > > > > > > > Hi > > > > Basically, i have a trait that add a method to a class if applied to > > an > > attribute > > it's working well > > however, if i try to 'use' a class that uses that trait, i have a > > strange > > error: > > Missing serialize REPR function for REPR SCRef > > > > To show case the issue, here is a dummy module, that export a trait > > "mytrait". > > That trait if applied to any attribute of a class, will add a new > > method > > nn to the class that returns 'nn'. > > (the original module is AttrX::Lazy, just wanted to trimdown the code > > base) > > > > file mytraitmodule.pm6 contains that trait > > > > you can see that tiny trait in action with the following: > > > PERL6LIB=$PWD perl6 -e 'use mytraitmodule; class Foo { has $!att is > > mytrait; }; say Foo.new().nn()' [22:18:23] > > > nn > > > > The trait is working fine. > > > > Now, if i create a class in a separate file, that does the same > > thing, and > > load the class, for the class see file myclass.pm6 > > and i just try to use that new class, with a simple code like: > > > PERL6LIB=$PWD perl6 -e 'use myclass;' > > [22:18:12] > > ===SORRY!=== > > Missing serialize REPR function for REPR SCRef > > > > You see the issue, really strange, the trait is working by itself, > > but > > it's impossible to load a class that uses that trait > > > > RabidGravy on IRC told me to add a no precompilation statement on top > > of > > the file having the role to temporary solve the issue, and i can > > confirm it > > is working. > > > > Content of the files: > > myclass.pm6: > > -------------------- > > unit class myclass; > > use mytraitmodule; > > > > has $!bar is mytrait; > > -------------------- > > > > > > mytraitmodule.pm6: > > -------------------- > > unit module mytraitmodule; > > my role rrHOW { > > method compose(Mu \type) { > > type.^add_method('nn', method (Mu:D:) { return 'nn' ; } ); > > callsame; > > } > > } > > > > multi trait_mod:<is>(Attribute:D $attr, :$mytrait! ) is export { > > $attr.package.HOW does rrHOW; > > } > > -------------------- > > > > > > Pierre > >
