4 ms·
They deliberately forgot to steal the syntactic part. :) The P6 project assumed it's possible to create hygienic lisp style macros without homoiconicity. In fa
by raiph 12y ago
They deliberately forgot to steal the syntactic part. :)
The P6 project assumed it's possible to create hygienic lisp style macros without homoiconicity. In fact it's always been known that it's theoretically possible to create lisp style macros without homoiconicity, but it's usually been considered too darned difficult. P6 has definitely not blinked in the face of "difficult" but it currently looks likely that they'll fail to get there (strong lisp style macro features) this year. See 007 for the experimental sandbox created this year by the lead macro designer:
https://github.com/masak/007 https://github.com/masak/007
http://masak.github.io/007/ http://masak.github.io/007/
(And maybe enjoy his toy lisp in P6: https://github.com/masak/ipso https://github.com/masak/ipso)
> Do you have links about influnce of CLOS MOP in Perl6 ? For what it's worth I do love Perl6 efforts like first class grammar/rules.
Here's an email written by Stevan Little in 2005. He was the lead designer of key elements of P6' OO, and the creator of Moose, the leading OO system in P5:
> I also borrowed many ideas from CLOS (in particular from book "The Art of the MetaObject Protocol"). CLOS is more like what you describe, where standard-class is the metaobject to define classes. I see this as mapping to the MetaClass, and our Class as being something akin to the find-class generic function in CLOS.
There's lots of bits like that scattered around the net.
I'm not sure if 6model was influenced by CLOS and it's technically not part of P6 as I understand it but it seems to be in the same space from an intentional point of view. In combination with P6's OO semantics it means it may well be practical at last to pass full blown objects back and forth among arbitrary OO languages in a high performance way. Again, doc is very hard to come by but here's what I've found:
https://github.com/jnthn/6model/blob/master/overview.pod https://github.com/jnthn/6model/blob/master/overview.pod
- cbd1984 12y ago"Hygienic" macros are more annoying than they're worth.
- raiph 12y agoThe P6 design supports both hygienic and non-hygienic macros because they concluded there were strong use cases for both. I think the Rakudo devs implemented hygienic macros first because they were expecting them to be more difficult than non-hygienic.