The weekend approaches. Tomorrow I'll continue release engineering for Pugs 6.2.11; much kudos to putter++ and other lambdacamels on #perl6 for continuing bug triaging in the past few days.
I'll also hack with Ingy in realspace; we plan to port his underrated-but-really-good Test::Base to Pugs, so the t/ tree can become more specification-based and easier to maintain.
It's lovely to see Luke getting into Scala's vObj/component systems. I've been studying the vObj as one of the base calculi for Pugs 6.283 for a couple months; although it lacks Perl6's requirement of staged computation (i.e. having the full language in compile time to control macro/inlining/constraints), its treatment of classes and roles is very well rounded.
Furthermore, many of new features in Scala 2 (GADTs, implicit parameters, etc) and the class hierarchy can be imported verbatim to Perl 6.
On the $job front, I ported a simple version of MySQL's extremely handy GROUP_CONCAT() aggregate function to SQLite. The Rico LiveGrid based rendering is now 20x faster, thanks to Jifty::DBI's support for group_by and aggregate functions. (Come to think about it, those were hacked in by yours truly many years ago.) We'll see next week whether it's good enough to run on AIX servers with 250Mhz CPUs...
By the way, Perl 5.8.8 RC1 is out. We can't have a Ponie yet, but the various core improvements produced by Nicholas along the way is already improving camelfolk's lives. For a moment I thought I was looking at perl59delta -- it's an amazing list of enhancements for a point release, especially when compared to perl586delta and perl587delta.
Ever since I ported PGE to Haskell, I've been pondering producing a librules, the equivalent of libpcre for Perl 6 rules, so we wouldn't have to reinvent the engine for each underlying runtime. Similar to pcre (and syck), it needs to interact closely with the host environment, to provide dynamic callbacks and interpolations during a match.
I think it'd make sense to write it in DigitalMars D, one of those faster than C++ languages that happens to maintain native-C linkability, while supporting high-level abstractions like closures, interfaces, mixins and type inferencing. Maybe there'd be time around the lunar new year to download GDC and play with it a bit...
I just discovered D last week. It's what I always wished C++ had been, had they given up on source compatibility with C. It's a little scary that I was just (yesterday) wondering why I haven't heard more about it. But I did find it on my own, so I don't have to add it to the list of "languages that Audrey made me learn" which now includes Scheme, Haskell, Scala, Nice, and OCaml :)
Posted by: dudley | 2006.01.21 at 09:32 PM