Perl6-Pugs

 view release on metacpan or  search on metacpan

docs/notes/multi_method_dispatch/mmd.kwid  view on Meta::CPAN

[16:49] nothingmuch: if it cannot catch improper use, then it will generate a fallback MMD
[16:49] nothingmuch: which will really be a guard
[16:49] nothingmuch: this way true MMD can be avoided
[16:49] nothingmuch: by JITting it
[16:50] autrijus: I think I understand.
[16:50] nothingmuch: since JIT is in effect, we can know as much as possible too
[16:50] autrijus: this is all at VM level right?
[16:50] nothingmuch: yes
[16:50] nothingmuch: this entire process is on the compiled byte code
[16:50] autrijus: can you look at how parrot's mmd already works?
[16:50] nothingmuch: the compiler simply has to provides the things to MMD on
[16:50] autrijus: and augment/compare its design
[16:50] nothingmuch: i will read up on it
[16:50] nothingmuch: yes, i'll try
[16:50] autrijus: that way I can bring your proposal to Leo
[16:51] nothingmuch: but first, i have to bike while there is light
[16:51] autrijus: because that's ultimately what needs to happen for pugs/parrot to run
[16:51] autrijus: okay. take care!
[16:51] nothingmuch: true
[16:51] nothingmuch: anyway, we'll see later
[16:51] nothingmuch: i just wanted another person churning the idea
[16:51] autrijus: thanks for sharing this with me :)
[16:51] nothingmuch: and not saying "no stupid"
[16:51] autrijus: I'll try to read up too
[16:51] nothingmuch: i
[16:51] nothingmuch: i'll spam stevan too
[16:51] nothingmuch: and part of my grand master plan is to bring this up with my MMD proposal
[16:52] nothingmuch: to prove that I thought about it, and that I"m not just bullcrapping the "it could be optimized" argument
[16:52] nothingmuch: anywho, please do read Class::Events
[16:52] nothingmuch: i think it's some of the most beautiful code i've ever written
[16:52] autrijus: ok. what do you need for me to make it ext/ ?
[16:52] nothingmuch: it's concise, efficient, and extensible
[16:52] nothingmuch: i need delegation
[16:52] autrijus: just "handles" ?
[16:52] autrijus: that's all?
[16:52] nothingmuch: and I need 'role foo is extended { }'
[16:52] nothingmuch: and true MMD
[16:53] autrijus: what does "is extended" mean?
[16:53] nothingmuch: for example, see the way that 'method notify' is appended to Class::Events::Publisher
[16:53] nothingmuch: bassically it means 'glue this def to the end of the class'
[16:53] nothingmuch: in perl 5 it's not necessary
[16:53] autrijus: and how is pugs mmd currently failing?
[16:53] nothingmuch: you could no-op it for now
[16:53] nothingmuch: i don't know, I haven't used pugs mmd yet
[16:53] nothingmuch: anyway, the nice examples in Class::Events are two fold: the way that get_notification optimizes for named events
[16:54] autrijus: pugsmmd should just work
[16:54] autrijus: "is extended" is noop
[16:54] autrijus: (for now)
[16:54] autrijus: so you just need delegation. good
[16:54] nothingmuch: and the way named events get a pretty syntax, which will make it all efficient too
[16:54] nothingmuch: huraah!
[16:54] nothingmuch: and this delegation is a simple form, btw
[16:54] nothingmuch: anyway, i'm off,it's already 17:00
[16:54] autrijus: I'm a bit uncomfortable seeing it in modules/ :)
[16:54] nothingmuch: but I shall return energized and motivatred
[16:54] autrijus: please write some t/
[16:54] nothingmuch: i will do that soon
[16:54] autrijus: and I'll see about delegation
[16:54] nothingmuch: ti's not even valid perl yet
[16:54] autrijus: nod. cool, take care, see you in a bit
[16:55] nothingmuch: it's just been a very busy weekend, and I didn't want to keep that to myself alone



( run in 0.606 second using v1.01-cache-2.11-cpan-5c0b1e786e0 )