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:
- def!struct/csubtypep
- After printing /about to SETF GETHASH SB-NAMES in
DEFINE-STORAGE-BASE it jumps to some random address that doesn't
appear in the map file, which contains a relative jump instruction
with offset 0 - infinite loop
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 troubleYou 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