diary at Telent Netowrks

There are people (well, there's one particular person using an RSS#

Wed, 31 Dec 2003 14:26:29 +0000

There are people (well, there's one particular person using an RSS aggregator called rawdog) grabbing the rss feed for my rambles every twenty minutes. Right through the night, too. Which seems a trifle excessive to me, but hey, it's getting a 304 every time, so no big deal.

Means I probably should tweak the Analog configuration, though, if I want its lovely statistics to be at all meaningful.

I see that LWN has got its predictions for what happens to Linux in#

Wed, 31 Dec 2003 16:56:22 +0000

I see that LWN has got its predictions for what happens to Linux in 2004 up. Inspired by that, I'm going to make some predictions of my own about Lisp in 2004

I don't know if this is something that Livejournal users can tell#

Thu, 01 Jan 2004 00:41:00 +0000

I don't know if this is something that Livejournal users can tell already for themselves, but just in case it's useful: I see http://www.livejournal.com/users/dan_b_feed/ in my referrer log. If this helps you with "friends lists" or however that stuff works, please feel free.

Remember what I said before#

Thu, 01 Jan 2004 15:32:27 +0000

Remember what I said before Christmas about GC frobbing? With the new simpler region allocation policy described there, but no changes to static space usage :

Evaluation took: 30.413 seconds of real time 30.354383 seconds of user run time 0.058991 seconds of system run time 0 page faults and 4939776 bytes consed. NIL

and in fact we can easily double that again by disabling the check for read-only objects and dumping everything in static space, so it looks like the write barrier stuff does make a difference. So why is CMUCL doing in 13 seconds what takes us 30 (the easy answer is "it has a better object/region allocation policy", obviously, but better why?) and how much faster would it be if it were also to remove purify-into-static-space?

In happier news, while thinking about tidying up today I found a Brian Aldiss novel I apparently haven't read yet.

I lied#

Thu, 01 Jan 2004 21:09:25 +0000

I lied. Well, I was mistaken: in the course of tidying up purify so that I might understand it, I managed to break it. !(a && !b) is not, De Morgan will happily tell you, the same thing as (!a && b). Doh. I was copying a whole bunch of stuff (constant boxed vectors, or possibly unboxed inconstant vectors) to static space that should have been happy in read-only space. So static space was up to 9.5Mb from its normal 5, hence the extra time spent checking it. If it takes an approximate extra 10s to GC when there's an extra 5Mb of static space to check, this also goes some way to explain why CMUCL is faster: in 18e it only has 2.5Mb of static space, so that's 5s off the GC time, leading us to predict that it should take about 15s. It's actually a bit under (13s) but that's only a couple of seconds still to claw back, then.

All times are to execute (time (dotimes (i 400) (gc)))

For a change I decided to google "dan_b" instead of some other#

Fri, 02 Jan 2004 00:19:43 +0000

For a change I decided to google "dan_b" instead of some other variation on my name, and stumbled across (among other things) an irc log from 1998

<lilo> it seems to me we do this for the fun of it, and for things we can use
<esr> lilo, I don't play politics and I don't spend *any* time trying to tear down or disband anybody else.  I wish 
everybody would realises that that shit is a waste of time.
<lilo> some of us definitely do :)

I remember watching this at the time. I don't remember if it was before or after VA, but I'm guessing it was before.

More RSS fun#

Fri, 02 Jan 2004 11:54:46 +0000

More RSS fun. Apparently weblog rss feeds should have items in reverse chronological order, just like the weblogs they syndicate. So, I switched mine around. Also added the first sentence of each item as the item title: this will fall down in cases where my rather poor heuristics for detecting sentences, or in entries where my inverted pyramid has overbalanced. Apologies to anyone using an RSS client which will therefore decide that these are all brand new entries and make them read all my old entries again.

If anyone would like to recommend a GUI RSS aggregator for Linux that's not (a) Straw, or (b) Emacs-based, please feel free. There's nothing particularly wrong with Straw, but I worry whether the debugging messages it spits out from time to time are caused by problems with it or problems with my rss.

I have just come back from my first rollerblading in three years or#

Sat, 03 Jan 2004 02:22:36 +0000

I have just come back from my first rollerblading in three years or so. It was more fun than I remembered, and obviously not as difficult: I only fell over once, which evasive manoeuvre was more or less planned, and involved comparatively* little loss of skin. Oxford may not have a worthwhile Hyde Park equivalent, but it still has more smooth pavement than I'd realised.

OK, you'd rather have heard about some kind of low-level SBCL hacking or something. Bad luck.

*compared to, say, last Sunday morning, when I fell over - sober, which is more than I am now - while showering, and cut my head on the corner of the towel rail.

Hello world#

Wed, 28 Jan 2004 01:36:52 +0000

Hello world

... hello trees, hello flowers, hello sky ...

The novelty of being back on the internet has still not entirely#

Wed, 28 Jan 2004 14:52:42 +0000

The novelty of being back on the internet has still not entirely subsided.

I am working on a 64 bit SBCL for the AMD64 (formerly x86-64, née Hammer) architecture. So far it makes it successfully through make-host-1 (the cross-compiler) and make-target-1 (the runtime), and all the offsets and suchlike that genesis spits out look correct - all the ones I've checked, at least. Before anyone gets too excited, though, it is without question utterly broken in several important ways: not least that I haven't taught it how to generate code for the 64 bit registers, or taught gencgc about all the interesting new types and widths

I can't help feeling it would be nice if something could be automated to dig the information that gencgc needs from Lisp.

TODO list as soon as I take a break from this:

Some progress on AMD64: the cross-compiler has managed to#

Fri, 30 Jan 2004 00:58:48 +0000

Some progress on AMD64: the cross-compiler has managed to cross-compile something

; compiling file "/opt/home/dan/src/sourceforge/sbcl/src/code/show.lisp" (written 02 OCT 2002 06:09:17 AM):
; compiling top level form: 
; compiling function SB!INT::CANNOT-/SHOW: 
; recognizing DEFUN CANNOT-/SHOW
; compiling top level form: 
; compiling top level form: 
; compiling DEFMACRO /SHOW: 
; compiling top level form: 

The code that it's generating is, I have no doubt, seriously bogus, but hey At that point it fails with

debugger invoked on a SIMPLE-ERROR in thread 27960:
    failed AVER: "(NOT (EQ SIZE QWORD))"

which comes from the MOV case for big immediate constants which checks they're not 64 bit immediate constants - seems that at leastg one of them is. On the basis of the bits of amd64 manual I've read so far it seems that I can only load a 64 bit constant into rax and not into any other register, which is a shame, because the backtrace says it wanted to use rbx. Perhaps it's bedtime.

<rtoy3> It compiles!  Ship it!

I'm shortly going to be a normal person again#

Fri, 30 Jan 2004 10:13:57 +0000

I'm shortly going to be a normal person again. On the sofa next to me is a written offer letter from clara.net in which they describe a money-making scheme requiring only 40 hours of my time each week in exchange for which they will transfer funds directly into my bank account once a month. Which seems like a pretty neat idea compared to the more usual "do some work, invoice for it, wait a month, phone customer to enquire whereabouts of cheque, wait two weeks, pay cheque into bank" arrangement, and I wonder if it will catch on more widely.

Answers to FAQ: (1) in London. Yes, I probably will move back there. (2) A certain amount of trepidation, but flexitime makes it not so bad, and I can use chemical crutches in the form of unlimited free coffee to cushion the blow. (3) AFAICS the contract doesn't allow it, although it's hard to tell how some of the clauses group: it's written in legal English and there are no commas anywhere. Perhaps it only forbids moonlighting when the business is "competing or tending to compete with the Business of the Company"