diary @ telent

Later#

Wed Jan 30 19:51:16 2002

Topics: lisp sbcl

Later ...

On Saturday, Simon (who would get a link to his real homepage, only it appears to have turned into something else) turned up, so time for the impromptu tour of Oxford's Historic Buildings.

Well, some of them. We only had the afternoon available, so I picked an unrepresentative subset plus the Norrington Room at Blackwells. And it rained, which is not unusual for the area at this time of year.

A lot of the time since then has been spent hitting (and where possible, fixing) small bugs in SBCL PPC. Flaoting point traps and endianness; suddenly I know more about IEEE 754 than I (a) ever felt the need to, or (b) did after a month studying numerical analysis at university. Which is, actually, still not much. Kahan looks like an amazingly cool guy, though.

In between that I've been looking for file descriptor leaks in Araneida. I can't find any way to trigger them on demand, and I can't find out what causes them, and they're still happening. Bah. I thought common lisp was supposed to be good for robust systems?

Not a terribly successful week, code-wise#

Sun Feb 3 05:12:17 2002

Topics: sbcl

Not a terribly successful week, code-wise.

SBCL Alpha 0.7 has a bug whereby setf of (get 'nil 'anything) will cause all error reporting henceforth to break, which apart from anything else means it can't be used to build itself. Discovered this when attempting to rebuild with -dynamic so that I could use clg with it.

SBCL PPC (still 0.6.13) doesn't build itself either, blowing up in second genesis when it attempts to load a specialised array with an element size of 0. I suspect we may still be having byte ordering issues.

Raymond Wiker's CLX for SBCL works nicely, though. It had most of a working set of dependencies for db-sockets already, so sent him some code to open the stream to $DISPLAY and thereby remove its foreign code dependency.

ftx13, out now#

Mon Feb 4 13:20:19 2002

Topics: lisp

ftx13, out now.

One down#

Mon Feb 4 23:07:47 2002

Topics:

One down.

While I'm here i think I might have a look at some of the other outstanding Alpha bugs. (sqrt single-float-positive-infinity) is, bizarrely, 0.0. I suspect the floating point traps are more than a little b0rked too

Completely b0rked, yup#

Wed Feb 6 02:17:57 2002

Topics: lisp

Completely b0rked, yup. It's using the #defines for IEEE rounding/trap/exception settings, but attempting to set the hardware fpcr with them directly instead of using ieee_set_fp_control() and friends. Not surprisingly, this doesn't work. Nor does it work in CMUCL for Linux/Alpha (at least, on my computer). I'm at a loss to see how it could have worked on OSF1^WDigital Unix^W^WTru64 either, but I think we just trust that it did.

The man at the guitar shop phoned yesterday, so I went round to visit today. It looks like this; up close, bits of it look like this, this, and this. Now all I have to do is learn to play it. Easy.

OK, so suddenly everybody has an opinion on .NET; it seems like I may as well give you mine too. Here goes

The Deblog seems to be offline, so I replaced it with lemonodor - which I've been meaning to link to for a while, but was looking for another word to add to the first sentence.

Well, let's see#

Sat Feb 9 03:28:57 2002

Topics: alpha sbcl

Well, let's see. Now we're using the software fp_control register, with ffi calls to read and write it using ieee_[sg]et_fp_control(). We've lost the ability to set the rounding mode, but the evidence so far available suggests that only insane people want to do that anyway. The rest appears to be working, except that in sigfpe-handler we're using the current fp_control instead of the one in the sigcontext. This is because (according to grep *.[chS], anyway) the kernel appears not to ever fill in the sc_fp_control slot in the sigcontext. The one I looked at certainly didn't seem to contain the right answer.

OK, so we have more-working-than-it-was Alpha floating point, at least. In fact, as we actually look up which trap went off when we get a SIGFPE, we presently have more featured fp support on Alpha than we do on x86. Someone who cares can fix up x86 equivalently.

The Phoenix was showing Spinal Tap last night. Definitely worth watching

Last Monday (i.e two days following the previous entry here) I had#

Wed Feb 20 11:21:25 2002

Topics: sbcl cliki asdf

Last Monday (i.e two days following the previous entry here) I had a sufficiently unpleasant experience trying to port a package with a homebrew system definition utility that I vowed to finish asdf - or at least, to get it to the point where it actually does anything useful. A week and a bit later, and here we almost are. It has a (minimal) test suite and everything. Look also at my proposed ASDF System standard, which I'm trying to get the cCLan guys to adopt for the next version of cCLan. It uses tar files! It's not Debian-specific! It's really good!

The only real system it's been tried with is db-sockets, which is probably not the simplest system ever to have started with (foreign objects and some weird pre-processing needed). But it appears that pretty much everything I've written in CL that actually works requires db-sockets, so there wasn't a lot of option.

What else? Not a lot. Christophe got SPARC SBCL working and Bill Newman got it merged, so I'm lagging there as PPC is still 0.6.13-based and still has whatever that odd build problem was. Also haven't sent patches for the Alpha fp fixes yet. If anyone other than me is actually using SBCL on an Alpha, this would be a good time for him/her to apply peer pressure.

Oh, and Araneida in fact didn't have a file descriptor leak. The leak in that application turned out to be in the cheesy SMTP client code it also uses. Yay. Don't need to restart that every three weeks any more, then.

Not really getting on too well with this "Finish things"#

Mon Feb 25 13:17:09 2002

Topics: lisp asdf

Not really getting on too well with this "Finish things" resolution, as asdf is now lingering around while I occupy my time with something else. My excuse for this is that asdf tickles a bug in clisp so we can reasonably wait for that to get fixed first. Actually, my real excuse is that GnuCash is now really annoying me and I need to replace it with something I understand, that doesn't keep adjusting the values in my split transactions, and that has more support for VAT. The thought of tying my invoicing and accounting together with something stronger than shell scripts is also kind of appealing.

I'm also looking into WAP. 4 lines of text is an information-poor channel; when considering that in any situation where one might visit a WAP site one could instead, say, make a voice call and have a much better user experience, it's going to be hard to make a sufficiently compelling application. Anyone have any worthwhile WAP sites they can recommend to me? The nearest thing I've found is the Railtrack site, which on a good day is marginally faster than phoning the enquiries line might have been.

Or was, anyway. Since my phone came back from the repair shop with all its bookmarks erased, I can't find the URL for the Railtrack site any more - it seems to be registration-only now. Bad Kizoom! No URL!

Everyone else has already linked to this, but never mind. JavaLobby has an article on .NET which echoes fairly well my own position. They have included rather more pro-java partisan arguing than I would have liked, but to their credit they do seem to have coined the term ``skinnable language''

Note: In countries where the use of Bluetooth#

Mon Feb 25 16:31:16 2002

Topics:

Note: In countries where the use of Bluetooth wireless technology is not allowed, you must ensure that the Bluetooth function is set to Off.

Ericsson Mobile Phone T39m User's Guide. Well, it made me laugh

Everyone knows that accountancy is dull#

Tue Feb 26 11:47:08 2002

Topics: lisp

Everyone knows that accountancy is dull. That notwithstanding, writing Rosemary (working title for my bookkeeping system which is clearly not Sage) over the last few days has been real fun. It's a rare opportunity to write a real Lisp program without having to worry about whether it will run on clisp.

The magic part of programming is when you make a change, run it, and see it do something that it didn't last time. All the specifications and test cases in the world are just nowhere near as compelling as actual running code. Programming. It's Better than Text.

This instant gratification is one of the reasons that I like Lisp: I can write a function and call it. No test harnesses or stubs, no compilation waits, no having to restart the session from the beginning and go through all the same steps as last time to recreate the bug. Interactive development is the future (and the present, and for some lucky people that never shut up about it, also the distant past)

And if it doesn't work, or it's ugly (and the first few drafts probably will be, unless you're superhuman), or you see a better way to do it - you revise it. This is reason #2: Lisp does not get in your way when you change your mind after the fact - and when you learn to relax and take advantage of that, instead of feeling guilty for not getting it right the first time, that's when you start to Win Big.

Here endeth the lesson. I'll save the lectures on macros and CLOS for another time.

Araneida works with asdf#

Sat Mar 2 02:18:11 2002

Topics: sbcl cliki asdf

Araneida works with asdf. Total porting time required: about ten minutes (I had to do other fixes to make it work with sbcl 0.7 as well, but they needed doing anyway).

Created an experimental non-vendor-aligned cClan archive network. See mail to cclan-list and node creation instructions. So far it has one and a half sites (ftp.linux.org.uk and sourceforge, the latter in a client-only role) and dummy files, but we'll get some content up soon. Probably db-sockets/araneida/cliki, at a guess ...