diary at Telent Netowrks

So yesterday was accounts day two; all that remains now is to drop#

Fri, 30 Nov 2001 21:01:41 +0000

So yesterday was accounts day two; all that remains now is to drop the invoices in the post, and everything else can go to the real accountants up in London.

Back to train-to-Sunbury goodness today, to be followed by more of the same next week. In the meantime, some significant portion of weekend is probably going to be FTX13 time, and maybe setting up cliki.{org,net}. First, though, I need to get some food and finish the bottle of wine I started yesterday while it's still drinkable.

FTX13 November issue is due out tomorrow#

Sun, 02 Dec 2001 18:05:57 +0000

FTX13 November issue is due out tomorrow. You can see the preview now at https://ww.telent.net/lisp/free-the-x3j-thirteen/2001.11.html (not at all an easily guessable URL, no). To be honest, it's looking a bit short if anything. I'm sure something else must have happened this month...

I fell asleep in the bath last night; so much of the natural oil#

Mon, 03 Dec 2001 08:50:08 +0000

I fell asleep in the bath last night; so much of the natural oil in my skin has leached out that I suspect I'm no longer waterproof. Memo to self: avoid going out in rain.

At Didcot station they now have an automated system to apologise for the late running of trains. It apologised for the late running of this particular train approximately every three minutes until the train had stopped at the platform, so some two-bit computer somewhere is clearly feeling extremely repentant.

They also have payphones with small LCDs displaying "BT PAYPHONE WELCOME". Welcome what? Careful drivers?

30 minutes of laptop use and it's down to 65% battery remaining, which is moderately suboptimal. Turns out to be the fault of pump(8), which is spinning on the CPU because I took its network card away. Sigh. If I wanted to have to run programs before removing PCMCIA cards, I'd run Windows.

Some anonymous contributor linked to the preview release of FTX13#

Mon, 03 Dec 2001 19:56:26 +0000

Some anonymous contributor linked to the preview release of FTX13 from the relevant CLiki page. The only reason I hadn't was that I forgot to, so I think that's reasonable. Wish they'd left their name, though.

BSM (whose web site I will not link to, because it's useless) tell me that I'm going to have to pay for tomorrow's driving lesson even though I attempted to ring on Saturday to cancel it (there was nobody there). Not entirely happy about that.

Still using emacs 21. Still haven't got as far as trying ilisp with it yet.

Enough about Emacs 21#

Tue, 04 Dec 2001 09:51:31 +0000

Enough about Emacs 21. I think it's staying.

Last Saturday I rented Soylent Green on video, and didn't actually get as far as watching it becuase it turned out that Monty Python and the Holy Grail was on, then when that finished that Brazil was following it.

Brazil is seriously excellent, by the way.

Having failed to return the video on time anyway, I decided I might as well watch it. Not altogether impressed; it all seems a little implausible. If there are 40m people in New York, they can't all be remarkably well-nourished and living in apartments the size of the one that Charlton Heston got - that's bigger than my flat in London was.

It's hard to be significantly immersed in net "culture"(sic) without learning how this film ends even if you never see it, so I can't say if it would have been surprising. The friend I was watching it with (hi, Judith) guessed the ending correctly ahead of time, so I expect it probably wasn't.

And if scientists can't invent a convincing artificial strawberry jam in the next forty years, what good are they?

Oh, wait. I don't like strawberry jam anyway.

Bah#

Wed, 05 Dec 2001 08:39:59 +0000

Bah. I have five copies of UncommonSQL lying around the place, and none of them sufficiently recent to work with the application I actually want to use with it. At times like these one wishes for competitively priced pervasive wireless coverage across the UK rail network.

If, perhaps, less fervently than one wishes for competitively priced rail tickets.

Double bah#

Wed, 05 Dec 2001 20:06:26 +0000

Double bah. I thought I'd grabbed a working uncommonsql, but it turns out to be the one with really dodgy MySQL alien declarations in it that only really work on Alpha. Between the API and the permissions system (it's flexible, just like jelly is flexible) I really am thinking about moving this stuff to Postgres. UncommonSQL is rather better set up with Postgres too, which would be a bonus.

Complete lack of diary entries for the past week demonstrates#

Thu, 13 Dec 2001 18:43:45 +0000

Complete lack of diary entries for the past week demonstrates quite clearly that I've not been on trains much recently.

Sunbury project finished for the year. Lisp web project (the thing I needed UncommonSQL for) also substantially finished and waiting for installation 'at risk' time to be scheduled. Time to do some free software again, and this time it's SBCL PPC.

Convinced myself that the pseudo-atomic mechanism does work after all. Unusually, it uses two registers: ALLOC says whether we're in a PA section, NL3 says whether it was interrupted. At end of PA section, we add NL3 (which is a big number) to ALLOC, then conditionally trap to the run-pending-signal code if ALLOC is big enough to be negative. Don't yet see why we need two registers, though. Don't know what happens if we get a signal in foreign code either, but I doubt that's allowed inside a PA section. NL3 is $6, ALLOC is $17

Which is nice to know, but doesn't get us any closer to solving the actual bug we're currently seeing.

On the advice of some people on IRC (sure, yeah, I do everything#

Fri, 14 Dec 2001 12:28:44 +0000

On the advice of some people on IRC (sure, yeah, I do everything they tell me to. Except when it conflicts with the instructions of my toaster) I recently installed spamassassin (there's a Debian package in unstable). It has a point scoring system with a whole slew of "looks like spam" rules, then tags the spam with a special header so that I can filter it accordingly

SPAM: -------------------- Start SpamAssassin results ----------------------
SPAM: This mail is probably spam.  The original message has been altered
SPAM: so you can recognise or block similar unwanted mail in future, using
SPAM: the built-in mail filtering support in your mail reader.
SPAM: 
SPAM: Content analysis details:   (31.2 hits, 5 required)
SPAM: Hit! (0.1 points)  Subject: contains a question mark
SPAM: Hit! (2 points)    From: does not include a real name
SPAM: Hit! (3 points)    Forged From: line claiming to be from hotmail.com
SPAM: Hit! (2 points)    Invalid Date: header (no timezone)
SPAM: Hit! (1.6 points)  From: ends in numbers
SPAM: Hit! (2 points)    BODY: /GUARANTEE/
SPAM: Hit! (1.9 points)  BODY: /opt-in/i
SPAM: Hit! (2 points)    BODY: /(?:wish to|click to|To) remove yourself/
SPAM: Hit! (3.9 points)  BODY: /subject.*remove/i
SPAM: Hit! (2 points)    BODY: /mailto:\S+\?subject=[3D=\s"']*remove/is
SPAM: Hit! (2 points)    BODY: /\n\n.*mailto:\S+\?subject=/is
SPAM: Hit! (3 points)    Listed in Razor, see http://razor.sourceforge.net/
SPAM: Hit! (2 points)    Received via a relay in relays.ordb.org
SPAM:                    [RBL check: found relay 48.19.93.203.relays.ordb.org.]
SPAM: Hit! (3.7 points)  Subject contains a unique ID number
SPAM: 
SPAM: -------------------- End of SpamAssassin results ---------------------

Well, yes. There are very few reasons to pretend to be from Hotmail.

So, progress on SBCL PPC#

Sun, 16 Dec 2001 00:22:52 +0000

So, progress on SBCL PPC. Turns out to be an assembler routine which was jumping into the middle of EQL instead of starting at the beginning. EQL expects to use 16 bytes of number stack; by joining half way through we were omitting to allocate it, but freeing it as normal.

Why we were jumping into the middle of EQL, I don't know. The assembler routines were calculating their offsets in a way that would have been correct if static-function-offset did what its docstring says it should have done. However it doesn't, and various other stuff (basically, the generation of cold-sbcl.map) seems to depend on it working as implemented

- (inst j code-tn - (- ( function-code-offset word-bytes) function-pointer-type)) + (inst j code-tn 0) +;; (- ( function-code-offset word-bytes) function-pointer-type))

Now we have some problem with EQUALP instead, which will probably turn out to be related. From my cvs log entry: "I'm always reluctant to claim that code found in cmucl could not possibly have worked. Still not sure how this did, though. "

Yes, it was related#

Sun, 16 Dec 2001 04:45:05 +0000

Yes, it was related. Not only do we need to jump to the right address, but we need to set r19 (reg_Code) to the Function object for that address. Now, owing to really bad address punning on the part of the CMUCL PPC port, we can actually use the Function object as a place to jump to. We just weren't - instead we were using the raw-address slot in the Fdefn object. This stuff is non-obvious to me, really.

I think I actually spent most of the weekend, and of Monday, in#

Wed, 19 Dec 2001 08:25:05 +0000

I think I actually spent most of the weekend, and of Monday, in bed. There was no really good reason for this; I just didn't feel that I wanted to get up. By Monday night I'd changed my mind and got up, and it was Tuesday evening before I next slept. So, I woke up today at 5am, which means I get to see daylight today. Definite improvement.

More SBCL raw address fun: I checked what CMUCL did, and on PPC it does in fact store the Function address in the Fdefn raw-address slot - so requires none of the alterations to jump instruction sequences we've been having to do. So we could potentially even revert them. This also fixes the make-random-state bug that I'd previously kludged my way past.

Current issues:

The Today programe reported this morning that "scientists" have found -#

Fri, 21 Dec 2001 14:32:39 +0000

The Today programe reported this morning that "scientists" have found - or possibly just invented, I'm not sure - SSSAD, or Sub-Syndromic Seasonal Affective Disorder. Which is to say, there is now a label for people who feel a bit low in winter but not low enough to actually reasonably claim there's something wrong with them - in which case they would actually (be|have) SAD. Great news!

It was an incentive to get out of bed, anyway. That and the prospect of Desert Island Discs

Saw LoTR on Wednesday - didn't everyone? I've only read the book once, and that was a couple of years ago, so I can't comment on the fidelity of the film. I will say: pro: they left out the poetry; con: some of the falling masonry in Moria landed in completely implausible ways - it acted like it was made from polystyrene foam. The rest of it - well, go and see it yourself and make your own mind up. I enjoyed it.

The problem - or indeed, the opportunity - with buying CDs for Christmas is that I find other CDs that I want. So, I seem to have ended up with another Billy Bragg (Don't Try This At Home) and simian (chemistry is what we are).

SBCL hacking is going to take a hiatus over Christmas. Presently I still have exactly the same problems as I had on Wednesday, but I'm closer to finding out what causes the DEFINE-STORAGE-BASE one: it attempts to call a structure slot accessor out-of-line at that point. These are implemented as closures over the structure instance, and there appears to be something wrong with our closure calling strategy. The magic 'jump to a Function object' trick depends in part on the second word in a Function being a relative branch to the actual code (an offset of #x18 bytes to skip the header) - which is the case for all normal functions but seems not to be for closures; instead they have a relative branch with offset 0. So, loop: see loop.

We're living in a North Sea Bubble
We're trying to spend our way out of trouble

You keep buying these things but you don't need them
But as long as you're comfortable it feels like freedom

Twas the day before Christmas &c &c#

Mon, 24 Dec 2001 15:50:41 +0000

Twas the day before Christmas &c &c ...

Postgres seems to have improved radically since I last used it. Back in the 6.x days it had a knack for blowing up, usually at inconvenient times like Friday nights just as we were about to leave for the pub. Today, though, It's tolerably fast, it has manual pages, and its UncommonSQL bindings actually work out of the box. Admittedly UncommonSQL doesn't itself work out of the box with SBCL, but the necessary patches are fairly obvious and will be going back to OnshoreD as soon as I'm Back.

The Onshore UncommonSQL CVS repo now supports SBCL#

Fri, 28 Dec 2001 22:22:55 +0000

The Onshore UncommonSQL CVS repo now supports SBCL.

As predicted six weeks ago:#

Sat, 29 Dec 2001 19:38:12 +0000

As predicted six weeks ago:

Happy New Year#

Tue, 01 Jan 2002 16:49:54 +0000

Happy New Year