I think this has been a "Software Hates Me Day". One of those days where, starting from a tiny thing you need to fix, it just threads on worse and worse into an endless stream of bugs and segfaults.
The first problem was XML::LibXML. No big deal, but I needed to upgrade from my previous version for some new features. That all went well.
Except for the fact that the latest isn't compatible with AxKit 1.5. Hmmm. That's a problem because I didn't want to upgrade from 1.4 right away but instead to take the time to check that all the sites worked well under the new release. On the other hand, I need to push myself to upgrade at some point because otherwise I know that I'll never do it. So, despite good advice from Kip, I upgraded.
That's where I started being unlucky. There are two features that I needed in AxKit that should have been in 1.5. One of them is a patch that I sent a fair while ago, and that already had to be committed twice because it had disappeared. Well, for some reason it disappeared yet again (the AxKit::Plugin::DisableXSLTParams which I released today depends on it). No big deal, I took the patch from my mail archive, applied it, and committed to CVS yet again (this is the new apache.org CVS, I hope it dislikes my patch less).
All fine and rosy. That is, until I need to debug some weird new behaviour and decide to use a new undocumented feature to see the intermediate results of my transformations.
Not to be discouraged, and due to the fact that I can't really know where the bug is without that new feature (the site the bug appeared in is the one I talk about in my previous log, so it's awfully complex), I decide to track down the segfault. It takes me a fair while but I eventually spot it. Good. Fix applied, and committed to CVS (if you want to use AxKit::reset_stylesheets() to stop further processing of your data you can now do it, using the CVS version).
But of course, it turns out that the bug isn't in AxKit at all. So it's all good and well, I've contributed to the Open Source community an extra little bit, but now I need to get my work done.
Turns out that the bug was in my XSLT. Daniel Veillard's libxslt is truly excellent and fast, but the problem is that it doesn't exactly report errors in a very detailed way. And when bugs are fixed that happen to make whatever used to work now wrong it isn't exactly very helpful. I'm glad I had a strike of inspiration here because I could have looked for that bug of mine for ages.
Aaaaaaaanyway. It's now 10pm and I can start working at last (after cooling down a few minutes in front of use Perl of course). If XML, XSLT, and AxKit hadn't saved me literally weeks of work since I started using them I guess I'd be rather pissed off. Oh well, I've had days like that with pretty much anything I've used before, I guess it could be much worse.