Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

autrijus (1505)

  (email not shown publicly)

Journal of autrijus (1505)

Sunday April 24, 2005
02:11 PM

Day 83: Mature optimisation.

[ #24351 ]
I rested for most of today, recovering from the drawn-out-until-7am release process last night. Still, I managed to check in an optimization I planned for quite a while now, namely changing the data structure for symbol table from a List into a Map. It speeded up Pugs tremendously -- anywhere from 2x to 5x! I like obra's description of this as a mature optimization. This large refactoring has deepened my understanding on abstracted data types, and Pugs will no doubt continue move toward them.

We have had make optimized for a while now, and coupled with this new change, the interpreter mode is finally approaching real-world useful performance. The make smoke target (which generates a beautiful smoke.html matrix) builds optimized by default, and I'm thinking about making it the default for make for the next release.

Corion checked in the first new failing test after 6.2.1, namely that map { $_ => uc($_) } @x auto-collapses the block into a hash, which is actually mandated by the current Synopses. I have tentatively fixed that bug by taking the omission of trailing comma a hint to not collapse the block, and submitted a proposal on p6l about it.

With Lemmih's help on #haskell, Corion implemented -s and -z file tests for Win32. Corion also added, refactored and cleaned up lots of tests, and is making another round of test cleanups as I'm writing this...

bsb played some more with junctions, noticing that the chained ^ operator has signature of Any; it should be Any|Junction like other junctive constructors. It's now fixed.

iblech repaired the Turing Machine (qotw-regular-24.p6), and fixed some more typos in the ChangeLog.

gaal added timing data to our YAML-powered make smoke harness run.

That's it for today. See you tomorrow!

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.