Month of April 2005

SBCL 0.8.21, as announced on cl.l

SBCL 0.8.21, as announced on cl.l. last Friday. Emphasis added since:


The Steel Bank Common Lisp development team is proud to announce the release of SBCL 0.8.21. This release marks the beginning of a period of stabilisation towards 0.9 and eventually 1.0, as well as the usual crop of bug fixes (some of them quite long-standing, notably the PROG2 issue which has been with us seemingly forever)

SBCL is an Open Source compiler and runtime system for ANSI Common Lisp. It provides an interactive environment including an integrated native compiler, a debugger, and many extensions.

  • Notable changes

  • Now possible to set global optimization policy, startup package, readtable, etc, in startup files, as they're read with READ and EVAL instead of LOAD as before

  • debugger changes - less mess in backtraces - removed redundant TOPLEVEL restart - many kinds of functions have more legible printed representation and are more amenable INSPECT. - SIGSEGV in foreign code handled more gracefully on x86 and x86-64
  • Improved SB-INTROSPECT for needs of SLIME

  • thread support for non-NPTL systems has been removed - locking is buggy and unreliable. A threaded SBCL build will now warn at startup and refuse to create new threads, unless futex support is detected in the kernel

  • Updates to the x86-64 backend

  • Many bug fixes

- PROG2 returns the primary value of its first argument, as per ANSI - (TYPEP X '(MEMBER ...)) no longer returns a list in compiled code - LOAD binds LOAD-PATHNAME to the merged pathname - more bugs revealed by Paul Dietz' test suite: check the NEWS file for details

  • For more information and downloads

http://www.sbcl.org/platform-table.html

The sources will compile under almost any sufficiently-ANSI CL, or you can wait for binaries which are currently being uploaded for various platforms.

A total of one person spotted this and thought it unusual enough to ask about. Next year our April Fool will be less subtle, I promise.

Some brief feedback on my weekend in Amsterdam

Some brief feedback on my weekend in Amsterdam.

  • The Friday Night Skate was cool. Started slow, got faster, then a short sprint around a park somewhere, then got a little slower again as it returned to the road, but still quite a comfortable pace. Marshals were competent, and didn't get obviously lost - although I had absolutely no idea where I was at all, so they could possibly have been lost but covering it well. And many of the road surfaces in Amsterdam (excepting the brick-paved roads) are absolutely gorgeous - but when skating between tramlines one does realise pretty quickly why the double-push was invented in Holland. Met Marc Battyani and his wife Ann about five minutes after the skate started - they identified me by my ILC02 tshirt - so we skated together after that. We didn't hang round much with the skaters afterwards as we went to meet up with some of the other conference attendees and eat Chinese instead.

  • Didn't do much of anything on Saturday. Lie-in, coffee, visit Rijksmuseum - what part of it was actually open - then food, wander around in lovely warm sunshine (which continued throughout the weekend), back to hotel, sudden realisation that the organised dinner was at 1730 not 1930 as I'd thought, rushed out again. Dinner. Then to Robert Strandh's hotel to talk about Climacs (quote of the weekend - "I've been pronouncing that as `Cleemacs'" - Luke Gorrie) and McCLIM incremental redisplay. Apparently it presently still suffers from redisplaying in larger increments than would ideally be the case.

  • Sunday was the actual meeting, pretty tightly-packed with talks and I was almost surprised to find that all of the talks were good. Special mention for Luke's SLIME talk, simply because he'd written his own presentation software in elisp, and for Peter Seibel, who is a very entertaining speaker. PGP fingerprint exchange happened between talks: I think I have now verified id and fingerprints of everyone who sent me their key beforehand so if you're one of them and reading this, expect to be getting encrypted mail from me in the next few days as and when I get around to it.

  • Actually, I confess I was not paying 100% attention in demonstration of Lispworks' stepper during the first talk, because I was also hacking pthreads sbcl to see if I could make it run on x86 as well as x86-64. I did, so look out for some interesting stability-reducing cvs committage soon. I tend to think that single-stepping to find bugs is an admission of defeat - this is not a reflection on the value of a stepping tool so much as an admission that there are many past occasions I've been defeated in this way (usually with assembler not lisp, admittedly), and so having such tools demonstrated to me at length smarts a bit.

  • (Happily, Sunday was also the day that SBCL 0.9 was released. We had intended it that way, but the actual release happened independently of anything done by anyone at the meeting, so this is a triumph of scheduling if nothing else)

  • Monday was just airports and shuttle buses and trains and stuff, and a renewed attempt to get useful suspend support on this laptop. I think I have it working with Software Suspend 2 now, after doing some really quite ugly stuff to get all of usb and all of pcmcia and all of the atmel modules to be unloaded on suspend. It sort of hangs dhcping eth0 on resume though (interruptable with C-c, but still ugly), which is sucky, but I have too little battery left to find out what's causing that. Some discover/hotplug/ifplugd interaction, perhaps.

In summary, then:

  • Things I'm already using I still think are cool: sbcl, slime.

  • Things I know little or nothing about and now believe to be cool: Climacs, Practical Common Lisp.

  • Things which have no intrinsic coolness value but are nevertheless going to be required: weak references.

  • Other things I need to do soon: buy new wheels.

telent netowrks

Geeky stuff about what I do. Many include Lisp, Android, Javascript, Linux and matters arising. For my other personality (less tech and more skating/cycling), see coruskate