With help from the amazing GHC profiler, I added strictness annotation to our core data types, turned them into unboxed types with
-funbox-strict-fields, threw in a thin cache for
Parser.hs, and now Pugs is 2x faster again! Our smokers are reporting that, for the first time in many weeks,
make test is faster than compiling Pugs itself. That is a clear sign: we need more tests!
kcwu and machack666 brought up the
life.p6 breakage to our attention; following that, Juerd and I discussed many corner cases in Perl 6 syntax; we posted them on p6l to get rulings. The current reduction rule repaired
life.p6, but introduced complications that confounded both of us.
Juerd also noted that
print (3) + 4 now prints 7 (note the space between
(3)), to the joy of newbies everywhere. It's now implemented in Pugs as well.
After lots of test refactoring and cleaning up last night, Corion crosses to the lambda side today, and fixed the
division by zero bug caused by splicing an empty array (thanks to Stevan for adding that test!). He is also making
1 % 0 raise the proper
Illegal modulus zero exception, instead of a uncatchable failure.
mkirank implemented the tic-tac-toe game for Pugs, and Stevan promptly checked it in for him; Stevan also updated the
t/README file to better reflect the current smoking and testing practices.
scw updated the debian port, and our helpful gnome iblech continued to add svn properties, adding back missing EOLS, and repair out of date comments.
See you tomorrow!