FWIW, I have been trying to get https://modules.perl6.org/dist/Object::Trampoline to work with lazy attributes: so far this has gotten me into an infiniloop . Perhaps you can find out why :-)
> On 5 Sep 2018, at 23:10, Simon Proctor <simon.proc...@gmail.com> wrote: > > So I have a thought for how to do lazy attributes without Proxy objects. It > is late so I'll try and poke about at it tomorrow but I think we can Mixin a > role to the Attribute using a trait. > > The role will track if the attribute was set to a value at build and if not > call a block it's given when first read from. This gets round the issue of if > we want to set it to Any. > > I *think* this will work. The stuff I've been doing with Trait::Env would > point that way. > > On Wed, 5 Sep 2018, 19:48 Vadim Belman, <vr...@lflat.org> wrote: > This one is easy to explain. My primary selling point of using Perl6 is its > multithreading capabilities. The final code would have to deal with a really > big number of devices and parallel processing is of a great help here. > Resource-vise it's way more reasonable to have a single process with tens of > threads than tens of processes. Perl5 involvement would level down this > advantage. > > Otherwise, I don't need the whole Moo. Perl6 has enough of good stuff to deal > with. I was only missing laziness and triggers the most. Just added filtering > feature on top of it as Moo lacks it (and for the purpose I had to create > MooX::AtttributeFilter, but that's another story...) > > > 5 вер. 2018 р. о 10:43 Ralph Mellor <ralphdjmel...@gmail.com> написав(ла): > > > > This is another follow up to Vadim's post. > > > > Vadim, you didn't touch upon the `use Moo:from<Perl5>;` approach. > > > > As you noted, you wanted to avoid P5. > > > > And you've already created AttrX::Moo. > > > > So perhaps you see anything related to Inline::Perl5 as doubly moot. > > > > Regardless, I really would love to hear your take on it as an alternative > > approach to the one you've taken even if only to guide someone *else* > > taking that approach. > > > > Likewise anyone else reading this. > > > > ---- > > > > I talked about Inline::Perl5 in my SO commentary. Have you used it? > > > > The basic approach is you just write `use > > Module::Such::As::Moo:from<Perl5>;` and stuff works as you'd expect if the > > module were a P6 module. Behind the scenes it is executing P5 code using > > the usual P5 interpreter and run-time and data, objects, calls, and > > exception handling are automatically mapped to the equivalent P6. (Thanks > > to work done by Stefan Seifert and friends over the last 4 years.) > > > > Going this route, you would just need to figure out how to declare > > attributes on the P6 side such that Moo does its thing on the P5 side. If > > you got that working you'd presumably be able to use P6 to seamlessly > > interoperate with *existing* P5 code that uses Moo objects and would get as > > much as you wanted of Moo's functionality and battle-hardening for free. > > > > You would presumably be able to do a lot more work in P6 with this P5/P6 > > interop than you could with just AttrX::Moo. And the simple :from<Perl5> > > solution would presumably be even more widely interesting to users with Moo > > code and an interest in P6 than a pure P6 AttrX::Moo. > > > > ---- > > > > Which would you say is more true for you: > > > > * You will be ignoring :from<Perl5> for the foreseeable future. If this is > > true it's presumably because you've already seriously explored :from<Perl5> > > and found it wanting and/or you or your company are already fully invested > > in the direction you've taken. Either way, if so, you might perhaps > > experience discussion of it as an unwelcome distraction; please LMK if > > that's the case. > > > > OR > > > > * You prefer to largely ignore :from<Perl5> just for now. (Hopefully you're > > willing to say at least a *little* about your view of it in this > > sub-thread.) > > > > If you haven't tried :from<Perl5> I can't help but wonder if perhaps we let > > you down by not advocating strongly enough for you to explore it. > > > > If you have, I can't help but wonder what you made of it and why you ruled > > out using Moo features in P6 via :from<Perl5>. > > > > So in summary I'm anxious to hear whether you tried :from<Perl5> and found > > it wanting; or we just failed to adequately bring your attention to it; or > > you rejected it from the get go based on your understanding of its > > relevance (or rather irrelevance) to your situation. > > > > -- > > raiph > > Best regards, > Vadim Belman > -- > Simon Proctor > Cognoscite aliquid novum cotidie