Short update today, as tomorrow $job resumes and I need to catch enough sleep -- unfortunately having to miss the midnight-#parrotsketch session yet again.
This afternoon I checked in a 10-minutes hack to src/rules/, the beginning of librules, a C-based implementation for the operator precedence parser (the token half of the Perl 6 parsing cycle), in an attempt to enhance the PIR-based PGE::Match and PGE::OPTable's performance, and provide a common layer for PIR/P5/Hs-based Rules implementations to call into.
The current design is heavily influenced by libsyck, and currently I use Judy arrays for sparse arrays and hashes, because the C API is so extremely sane. I also plan to use them for the Haskell runcore, to replace the atrociously slow IntMap-based array implementation. The other missing piece of this new-runtime puzzle is string-buffer-fragments, but that's for another day...
In other news, I checked in an updated version of cognominal's Siva PMC as pugscapture.pmc, a PMC that implements the invocant/sequence/mapping structure within a Capture object. As Match objects are conceptually just a subclass of it, it may also prove to be useful for that purpose as well. Plus XML tag/children/attributes, as well as a lot of other things.
Anyway, that's it for now. See you tomorrow. :-)
FYI: Recent work on Haskell bindings for Judy
judy-devel
2006-04-06 21:06
http://sourceforge.net/mailarchive/forum.php?thread_id=10123741&forum_id=45736
Posted by: poxy bowsy | 2006.04.19 at 02:41 AM
poxy: Yeah, I've talked with John, and he sent me the Judy1 code; once I get some cycles I'll port the other three Judy data types over and start using them in Pugs.
Posted by: Audrey T | 2006.04.19 at 09:27 AM