The primary goal is to get the object space and metamodel figured out and integrated to the base runtime for 6.28.0. Stevan mentioned he will have some spare time to gobby/subethaedit with me; I'm looking forward to it.
Also, because Liz is known as the Queen of Threads of Perl, obra asked me
to work out the currently unspecced
with her. As @Larry's forte is on language ergonomics, it makes a lot of sense
to hand off the more specialized part to domain experts.
To avoid the too-tired-to-journal-anymore problem, I'm switching to journal every day before hacking, instead of after it. Sorry for the lapse in the past few days; part of it was due to traveling, but also because Programming Ruby (deadtree edition) is much too enjoyable. Larry evidently took lots of good ideas from Matz, and grokking Ruby makes it much easier to see the power behind the dynamic, runtime-typed part of Perl 6.
The Copehagen.pm meeting was a lot of fun. I chatted with Anton about putting a tag-based search interface, akin to DebTags, for CPAN and/or FreeBSD ports; he started prototyping that night, producing a set of tags summarized from package descriptions -- we'll see if this idea plays out or not.
Back at NPW, sky had this great idea of using something akin to B::Generate -- but written in C/Haskell -- to speed up the currently very slow Perl5 backend, by generating optimized OP trees directly from Perl6/PIL tree, without going through the Perl 5 source level again. This may raise Perl5 into a production-worthy runtime of Perl6 code, which would be a Very Good thing. It is also conceivable to hack more Perl6-support OP codes into Perl5, either via dynamically-loaded XS runtime augmentation, or by hacking them into Perl 5.10 itself. More details later...
Okay, enough words. Time to code. See ya!
In 3 hours I'll be travelling to Copenhagen, stay there for a few days and meet cph.pm folks, then to Brussels on this weekend.
The fears project, a self-administered group therapy initiated by Juerd, is absolutely wonderful.
I'm halfway through the PickAxe book, and also immersing myself on PyPy notes; expect more massive sync/push when I get somewhat more stable network connection. See ya!
Last night I got a most amazing Black Camel award from Amsterdam.pm, with shining hues and a beautiful shape. Also got some work done with Larry on Tuple syntax for Perl6.
On the plane from Amsterdam to Stockholm, kane synced with me about his ideas of 6PAN, mostly centered around multiversioning, dist-time metadata, dpkg-based installation info, as well as policy files for resolving multiple versions and sources of the same module. All in all very fruitful -- details later.
There's a social meeting for early arrivers at Bagpiper's Inn, but sadly I'm probably going to miss it and sleep. See you tomorrow...
Suggestion welcome -- I'm going to present all four of them again in the coming week at Nordic Perl Workshop, and probably again in OSDC Australia, so there are plenty of chances of tuning.
Got many people signed up for committer bits -- dconway (who'd like to hack the mariner poem before I present it with him in OSDC), sky, liz, schuyler, among other very cool folks. Woot!
So I get to enjoy the first restful sleep in many nights. Of course, there is still one unfinished talk to go -- people are expecting it to be a instant Pugs hacking boot course for Haskell, which is kinda hard to do in 45 minutes -- though I'll manage somehow. See you!
scook0 valiantly demagicalized pairs. This means
foo($thing) now always pass
$thing positionally to
&foo, even if
$thing happens to be a
On the flip side,
foo(bar => $baz) now always passes
$baz by the name
bar, even if
Pairs. Hurray for sanity!
iblech then proceeded to update PIL2JS accordingly, which means that PIL2JS is the first backend which fully supports demagicalized pairs -- it passes all of the 26 tests of
Stevan hacked in a minimal parser for Perl6-style class declaration for the Perl5 metamodel, to test out the eventual integration with PIL2. We bounced a couple ideas at #perl6 about serializing compile-time class objects, but sleep deprivation starts kicking in. As putter so wisely put, one probably should not get burnt out at the beginning of a conference, so I'll catch some sleep now. See ya!
However, I did manage to get more than half of presentations done, and plan to pound on the rest of them tonight. I'll bbiab...
Suggestions welcome... I'm going to do some more slidehacking now.
By the way, chip++ for coming to #perl6 to discuss how Parrot should provide efficient lexical pads, OUTER:: and CALLER:: access, and related issues like the BEGIN blocks. It's really nice to resume that continuation from Vienna!
You can take a look at my work in progress; note that the code snippets are not in preformatted layouts as they should be. But try to "view source" and move the mouse cursor on top of the canvas -- you'll be positively surprised.
45 minutes is not anywhere enough to get people acquainted with both Haskell's syntax and practical uses, so the slides are very concise. Suggestions welcome!
On the lightning talk front, I collaborated with Allison over SubEthaEdit, as the Gobby site still does not offer a OSX binary package. We adapted the first two stanzas, reviewed another four, and left the remaining six untouched. The text is in the pugs tree as docs/talks/larry_mariner.txt. Making an epic-esque poem of Perl is quite challenging; it would be impossible without Allison's strong poetic cluefulness. But we still need much help from fellow wordsmiths...
After Euro OSCON, I'll be in Stockholm for Nordic Perl Workshop. A month after that, I'll be in Australia for OSDC 2005, hopefully finding some time to work with Damian, as well as visiting dons (of hs-plugins/yi fame) in Sydney.
Hmm, it's well past 5am, so no changelogging for today... See you tomorrow!
Today I wade through the code in perl5/ (i.e., the Perl5 and JS runtime engines), to prepare for the renovated container/object runcore. The Perl5 runtime's hook with metamodel was very enlightening, and fglock's meticulous TODO comments helped much. Also iblech's JS runtime is so concise, it looks almost like poetry. *smile*
I then turned to read theory.pod for the third time, which is a good summary of GADTs and generics in a Perl6 setting -- but whenever I start to think about how to reconcile it with optional dynamicness, my head starts throbbing. No wonder why Larry spent much time mulling over it, and I sympathize luqui's conflicted feeling a lot. Still, I think here formalization still helps, not hinders, so I look forward to spend some time with @Larry next week to hammer this out.
On the metamodel front, stevan attempted to steer Perl6's OO model toward Smalltalk/CLOS/Ruby from the Java/C++ direction, proposing that we drop class method inheritance and instead embrace eigenclasses, per-instance methods and roles as the True Way of doing things. Damian wondered how can we tell people to do away with the perl5 idiom of inheritable class-method
new, and the discussion continues... Personally I think having a certain kind of Class that supports inheritable class methods can work out, but I'm not sure; fortunately, stevan volunterred to experiment and report back.
eric256 continued to make examples more pugs and runnable, and uncovered a bug that makes pugs too eagerly handle
-p in the script's argument list.
iblech added proper exception for division/modulo-by-zero to PIL2JS, a complete set of bit operators, fixed evaluation order so the indices are evaluated before the array/hash, and converted more p6l discussions into somewhat saner and certainly more tractable tests.
There's more, but I need to sleep. Ciao!