On a more serious note, miyagawa and I continued hacking on JSON::Syck,
running into weird Perl 5 XS issues left and right. But our persistence
prevailed: with a simple C-based pre-/post-processor to handle JSON's lack
of whitespace after comma and colons, JSON::Syck now supports full JSON
[Dump] JSON.pm: 44 wallclock secs (38.20 usr + 0.00 sys = 38.20 CPU) @ 2618.12/s (n=100000)
[Dump] JSON::Syck: 14 wallclock secs (13.12 usr + 0.00 sys = 13.12 CPU) @ 7619.05/s (n=100000)
[Load] JSON.pm: 66 wallclock secs (46.11 usr + 0.01 sys = 46.12 CPU) @ 2168.39/s (n=100000)
[Load] JSON::Syck: 12 wallclock secs ( 9.63 usr + 0.03 sys = 9.66 CPU) @ 10347.62/s (n=100000)
Ingy finally released YAML.pm 0.50, the first major release in almost four years to the pure-perl YAML implementation. Aside from a huge set of functionality improvements, it also comes with a comprehensive test suite to eliminate corner cases that the earlier YAML.pm versions were notorious of.
However, the rigorous refactoring did run against Perl 5's method call overhead (which I'd like to eliminate with Sixxy.pm), so the benchmark numbers differed by 20-40x this time:
[Dump] YAML.pm: 308 wallclock secs (285.05 usr + 0.06 sys = 285.12 CPU) @ 350.73/s (n=100000)
[Dump] YAML::Syck: 13 wallclock secs (13.29 usr + 0.00 sys = 13.29 CPU) @ 7524.99/s (n=100000)
[Load] YAML.pm: 474 wallclock secs (422.63 usr + 0.05 sys = 422.69 CPU) @ 236.58/s (n=100000)
[Load] YAML::Syck: 12 wallclock secs (10.95 usr + 0.04 sys = 10.98 CPU) @ 9103.84/s (n=100000)
Gaal and clkao worked on Pugs release engineering, by repairing "make smoke" and ensuring that the JSPerl5 backend did pass its usual 80%+ share of subtests. I've also briefed Ingy about Pugs's OpTable/Rules implementation, though I wonder if he'll find sufficient cycle to read through Programming in Haskell...
Unfortunately, I had to leave the hackathon early tonight, as I have three consecutive $job days of Jifty hacking from tomorrow on. As of this writing, the hackathoners are still going strong in Chupei... Happy hacking, folks!