Fire is step THREE! | github.com/perl6/toolchain-bikeshed | Channel logs: irclog.perlgeek.de/perl6-toolchain/today | useful prior art: metacpan.org/pod/CPAN::Meta::Spec
Set by moderator on 16 March 2016.
02:25 pnu joined 06:59 domidumont joined, FROGGS joined 07:04 domidumont joined 11:25 domidumont1 joined 12:54 sufrostico joined 13:08 sufrostico joined 14:12 FROGGS joined
ugexe does inheritence work different during SETTING? it seems like im getting unexpected inheritance/compose differences from what i get from a golf 16:21
a little more specifically a named parameter not getting set through the constructor of all the appropriate roles/classes 16:22
role Foo { has $.foo; multi submethod BUILD(:$!foo) { nextsame; }; }; role Bar { has $.bar; multi submethod BUILD(:$!bar) { nextsame; }; }; class Baz does Foo does Bar { method new($positional, *%_) { self.bless(:foo($positional), |%_); }; }; say Baz.new(1, bar => 2); 16:23
something like this
in SETTING the above needs to have `proto` for each BUILD though, which seems to muck it up 16:25
17:10 sufrostico joined 17:12 Kassandry joined 17:33 tony-o joined 17:56 domidumont joined
nine In the SETTING you don't get protos generated automatically for you. That happens only in user level code which is why few know that multis actually need protos :) 18:57
ugexe yeah i see. are there any other little gotchas like that you know of? or do i just need to hit them as i go... 18:59
perlpilot ugexe: you could write them down for others. I think those things are mostly just in the collective consciousness of the people who hack on things 19:00
nine ugexe: can't think of anything right now except for that you of course have to keep in mind the order in which core classes are placed in the generated source 19:03
19:06 lizmat joined 19:08 FROGGS joined 20:19 lizmat joined
ugexe gist.github.com/ugexe/e09c4af4910d17319216 21:45
The commit link in the description is rakudo with the old Distribution stuff completely replaced (s/Distribution::Interface/Distribution/ from last time). The gist shows how to invoke the 2 supplied Distribution implementations: Distribution::Hash and Distribution::Path
I'm not sure the invocations are ideal though. I was hoping to design it so you invoke with the source of `meta` data as well as the `Storage` type/role to be used (contains method .content) to map any paths in the `meta` to a IO::Handle, but i'm not sure this is it
unfortunately `role Foo[::FulfillsInterface] does FulfillsInterface does SomeInterfaceContract { }` doesnt work, hence the BUILDALL bit 21:49