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 ]

richardc (1662)

  (email not shown publicly)

Journal of richardc (1662)

Thursday July 17, 2003
10:38 AM

evolving - Wednesday 16th July, 2003

[ #13506 ]

Installed perl5.8.1-RC2 on the laptop and started to turn a bandaid I'd made for PadWalker into a proper fix.

After much study of the newly refactored pad.[ch] code I'm starting to settle on the notion that PadWalker is relying on bugs which no longer exist. There's probably a very small fix to be made, mostly in documentation explaining the change in behaviour, I just have to spend a little more time uncovering it.

10:36 AM

evolving - Tuesday 15th July, 2003

[ #13505 ]

Shaved a tiny amount off the Devel::LeakTrace overhead by calling on malloc a lot less. From 2.65 seconds down to 2.59 for a simple for (1..1000) {++$x} loop. Only 2.3% by my sums, but it all counts.

Released 0.04 to CPAN.

Tuesday July 15, 2003
04:47 AM

evolving - Monday 14th July, 2003

[ #13458 ]

Met up with some of Fotango folks for lunch in the park. Heard of many wonderous things from oscon, including getting a better notion of how ponie is going to happen.


I came away with the seeds of something in my brain. We were talking a little about parsing pod when Paul commented on how much of a pain it was to author compared to textile.

I'm not sure just how the dots got crossed to the notion of a textile->pod filter, I blame the hot hot sun unless Paul wants to take the credit/blame. Anyhow, just using a textile parser and then writing some emitting code seemed like it should just work, so I opened the box.

Reading the source to Text::Textile caused the loss of sight in my left eye. Prolonged exposure to regexes whose only mission in life is to generate html does that to me.

Similar examination of Text::WikiFormat made my other eye twitch, though it seems to at least be pluggable in what it'll emit. I've got a mental bookmark to come back to it, but first some calming C eye balm.


Backfilled this, though I've not been doing much, writing it up makes it feel a little more substantial and reminds me what I should be doing.


Pulled the hugely destructive set_plugins code out of Siesta::List to find that only 3 test scripts failed. Sadly they're the important ones for list administration, but maybe I can just fill the gap with dolls heads and wax.


Did some light work on Mariachi to pull some of the speed back by allowing the more costly options to be disabled.

04:46 AM

evolving - Saturday 12th July, 2003

[ #13457 ]

Spent a couple of hours installing -dev packages to get a build of Galeon back onto my machine.

At some point in the recent past debian unstable updated the core mozilla packages, which conflicted Galeon out of the park. This is considered ungood.

Building from source is also ungood.

The wrongs have this time made a right, as I now have my presentation platform (Galeon and Device::Ericsson::AccessoryMenu) working again with just over a week till YAPC::Europe

04:43 AM

evolving - Friday 11th July, 2003

[ #13456 ]

Started to port the Siesta schema over to Postgres. Ran into naming problems - user is a reserved word in Postgres land.

Ranted a bit, to provoke a show of hands.


Note to future self: never upgrade modules while you've got a large set of uncommitted code on the go. Class::DBI 0.93 was far too tempting, but with a partly reworked schema, on a new RDBMS, I should have just resisted.

04:42 AM

evolving - Thursday 10th July, 2003

[ #13455 ]

Plodding on with getting Siesta to a releasable state.

Noticed while fecking around with the defer queue that the prefs aren't structured right. Resolved to rework little bits of the design using Postgres to check that all the foreign key constraints would work.

Friday June 27, 2003
12:35 PM

evolving - Thursday 26th June, 2003

[ #13106 ]

Started working over the Siesta web frontend. I hate developing web stuff, but it's one of the last few things that just have to be built.


Remembered to release Mariachi 0.4, now with added slowness.


Started to think again on Devel::LeakTrace. Realised I was rampantly over-calling malloc for the most common cases and so shaved those a bit.

Timings went from:

% time perl -Mblib -MDevel::LeakTrace -e 'for (1..1000) {++$x}'
  leaked SV(0x8140de0) from -e line 1
  leaked SV(0x8140e1c) from -e line 1
  perl -Mblib -MDevel::LeakTrace -e 'for (1..1000) {++$x}'  3.34s user 0.02s system 100% cpu 3.355 total


% time perl -Mblib -MDevel::LeakTrace -e 'for (1..1000) {++$x}'
  leaked SV(0x8140de0) from -e line 1
  leaked SV(0x8140e1c) from -e line 1
  perl -Mblib -MDevel::LeakTrace -e 'for (1..1000) {++$x}'  2.65s user 0.01s system 101% cpu 2.613 total

So a nice fat 25% speedup in a few easy steps.

Of course it's still burning way too many cycles in maintaining all the state. Compare the instant timings of an unladen perl.

% time perl -e 'for (1..1000) {++$x}'
  perl -e 'for (1..1000) {++$x}'  0.00s user 0.00s system 0% cpu 0.000 total

Should tuits present themselves I'm going to see if Judy arrays really work well as they claim to, since they're potentially better suited for this than the existing use of GHashes.


Nope, Judy is slower:

% time perl -Mblib -MDevel::LeakTrace -e 'for (1..1000) {++$x}'
  leaked SV(0x8140de0) from -e line 1
  leaked SV(0x8140e1c) from -e line 1
  perl -Mblib -MDevel::LeakTrace -e 'for (1..1000) {++$x}'  4.28s user 0.01s system 100% cpu 4.278 total

That and the API is weird.

12:34 PM

evolving - Monday 23rd June, 2003

[ #13105 ]

Reworked my makereadme script to make use of the META.yml that Module::Build generates, and fixed up a distribution bungle in the File::Find::Rule beta.

12:34 PM

evolving - Sunday 22nd June, 2003

[ #13104 ]

Returned to the land of plentiful wire-free bandwidth.

Released a development snapshot of File::Find::Rule, which puts me on the road to doing a full release.

Andy really wants to see a release by the 1st, since my svn version now papers over that damned thinko. I await a borrow of his time machine so that I can change the preceding 10 releases and fix his article for him.

Monday June 23, 2003
03:17 AM

evolving - Friday 20th June, 2003

[ #13003 ]

Confirmed my Siesta talk for YAPC::Europe, and acknowledged arrangements for travel.


Played about with making Devel::LeakTrace not be such a drag factor.

My first idea was to simply spool out the information about all allocated SVs on every new line, rather than updating hashes on the fly. That was really fast, for the simple case, but for a more complex script the file grew and ate all my diskspace in a couple of seconds.

The next plan is to use a pair of bitvectors to gate the GHash updates since for a lot of lines new SVs won't be getting allocated.