Recovering from a breaking update

The March Quicklisp update has usocket 0.6.4, an update that unfortunately does not build on older versions of SBCL due to IPv6-related symbols. In response, Chun Tian quickly released usocket, which builds fine on older SBCLs.

It's only been a few days since the last Quicklisp dist release, so I'm not going to make a new one just for the usocket problem.

If you're hit by this issue, what can you do?

The best option, if available, is to upgrade to a recent SBCL, which has many new and exciting features and works well with the usocket in the latest Quicklisp release.

If that's not feasible, you can also manually get usocket (or newer) from the usocket download page, unpack it in ~/quicklisp/local-projects/, and go from there.

Finally, you can revert to last month's Quicklisp dist. I first wrote about this in "Going back in (dist) time", but here's a short overview:

* (in-package :ql-dist-user)

* (second (available-versions (dist "quicklisp")))
 . "http://beta.quicklisp.org/dist/quicklisp/2016-02-08/distinfo.txt")

* (install-dist (cdr *) :replace t :prompt nil)
lots of output

In particular, the second element of available-versions will always be the second most-recent Quicklisp dist, so that's generally the one to use if you want to go one dist backward.

(Topic for the future: how better prerelease testing will catch these kinds of problems.)


  1. Hi Xach,
    Which versions of SBCL are not working?

    1. I think 1.2.5 and older do not have the IPv6 symbols needed for usocket 0.6.4.

    2. Thanks, Debian testing should be fine then. It has SBCL 1.3.1.

  2. Sorry for bring this issue to the community!