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

Recent Comments