Day 239: Hacking Starts.

autrijus on 2005-10-30T12:32:40

I arrived safely at Liz and Wendy's place, a lovely house in Echt, Netherlands. In the next 9 days, I'll be hacking nonstop on Pugs, before flying to Helsinki and finally back to Taiwan.

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 Synopsis 17 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.

I read that Matz suggests at the RubyConf roundtable that io and Haskell are the two language most worthy to learn at this moment. Indeed, I like io a lot -- it has a "JavaScript distilled" feeling -- but I plan to hold off writing something in it after this current Hackathon.

Speaking of JavaScript, Bredan blogged about our short encounter in Tallinn. It is entirely possible that the JavaScript backend may prove to be the most important one, especially if SpiderMonkey do get first-class continuation support from Rhino, as Bredan had suggested, which will make performance and memory use much more practical. (Indeed, if JavaScript2 does survive the standardization process, it is entirely possible that it may become the next Ruby, because writing programs that runs at both client and server side is a strong motivation -- the same reason to keep Pugs targetable to multiple backends.)

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! :)