2011-10-29

Quicklisp software updates available

Last night I uploaded a new version of the Quicklisp client, and an update to the bootstrap file quicklisp.lisp. You can update your local version of the client with (ql:update-client).

The new client has a few notable changes.

First, Douglas T. Crosher sent patches to enable Quicklisp to bootstrap and run on Scieneer Common Lisp. Thanks, Douglas!

Second, software archives are now checked for size validity before use. Some people have run into trouble with corrupted downloads, but Quicklisp didn't detect the problem very early. It led to obscure, hard-to-debug errors. The new size check will present a more obvious error and a useful restart. (A future update will add content digest checks.)

Third, a new command, (ql:where-is-system "foo"), will return the pathname of the directory in which the system foo is defined. This is useful for determining from where a particular system is loading.

If you have any questions or comments, feel free to email me or discuss things on the Quicklisp mailing list.

Happy Quicklisping!

2011-10-01

October 1 Quicklisp dist update now available

I've updated the Quicklisp dist again. Here are the differences relative to the last update:

New projects: chemical-compounds, chtml-matcher, cl-anonfun, cl-autorepo, cl-gene-searcher, cl-kanren-trs, cl-langutils, cl-scrobbler, cl-speedy-queue, cl-stdutils, cl-tuples, com.google.base, doplus, gtk-cffi, hh-aws, hh-redblack, lisa, lisp-gflags, periodic-table, recursive-regex, trivial-types, and unicly.

Updated projects: 3bmd, antik, bknr-datastore, caveman, cl+ssl, cl-2d, cl-closure-template, cl-csv, cl-docutils, cl-enumeration, cl-l10n, cl-libxml2, cl-mime, cl-mssql, cl-opengl, cl-openid, cl-pattern, cl-project, cl-redis, cl-syntax, cl-test-more, cl-unicode, clack, clsql, clsql-orm, csv-parser, drakma, elephant, external-program, fare-matcher, fare-utils, gbbopen, glaw, glop, gsharp, gsll, hu.dwim.logger, hu.dwim.partial-eval, hu.dwim.perec, hu.dwim.quasi-quote, hu.dwim.rdbms, hu.dwim.util, iterate, linedit, lredis, parse-js, postmodern, protobuf, rutils, shuffletron, slime, thread-pool, trivial-utf-8, usocket, wuwei, and yason.

Removed projects: cl-soap, hu.dwim.wui, m2cl, and symbolicweb.

To get the update, use (ql:update-dist "quicklisp").

Enjoy!

Slow news month

I don't post very frequently in this blog. I tend to save it for longer announcements and other things. I do post somewhat more frequently to my twitter account, @quicklisp. If you want little bits of Quicklisp trivia delivered more frequently, try following along there.

2011-08-02

Going back in (dist) time

So you updated Quicklisp with (ql:update-dist "quicklisp"), and now a library you depended on is broken. It returns 42 from a function that previously returned 21, or maybe the API changed in an important incompatible way. Now your project is stalled and you have to figure out how to make things work again.

Quicklisp is designed with this situation in mind. Old project sources are kept around in indefinitely, and at a permanent URL, so you can go back to old sets of projects.

The user interface needs to be cleaned up, but here's how it works today:

* (use-package :ql-dist)
* (available-versions (dist "quicklisp"))
(("2011-07-30" . "http://beta.quicklisp.org/dist/quicklisp/2011-07-30/distinfo.txt") 
 ("2011-06-19" . "http://beta.quicklisp.org/dist/quicklisp/2011-06-19/distinfo.txt") 
 ("2011-05-22" . "http://beta.quicklisp.org/dist/quicklisp/2011-05-22/distinfo.txt") 
 ("2011-04-18" . "http://beta.quicklisp.org/dist/quicklisp/2011-04-18/distinfo.txt") 
 ("2011-03-20" . "http://beta.quicklisp.org/dist/quicklisp/2011-03-20/distinfo.txt") 
 ("2011-02-19" . "http://beta.quicklisp.org/dist/quicklisp/2011-02-19/distinfo.txt") 
 ("2011-01-10" . "http://beta.quicklisp.org/dist/quicklisp/2011-01-10/distinfo.txt") 
 ("2010-12-07" . "http://beta.quicklisp.org/dist/quicklisp/2010-12-07/distinfo.txt") 
 ("2010-11-07" . "http://beta.quicklisp.org/dist/quicklisp/2010-11-07/distinfo.txt") 
 ("2010-10-07" . "http://beta.quicklisp.org/dist/quicklisp/2010-10-07/distinfo.txt"))
* (install-dist "http://beta.quicklisp.org/dist/quicklisp/2011-06-19/distinfo.txt" :replace t)
lots of output

That set of commands will revert to the June, 2011 Quicklisp dist. So if your project critically depends on the versions you got in June, you can always go back to it.

2011-07-30

Two updates today: new client and July dist

There are two updates available for Quicklisp users today.

The first is a client update. The new client has a tiny but important fix with how it displays what changes will be made for a dist update. Before, lingering temporary files could interfere and it could give an alarming report that most projects were being removed. With the fix in place, the report now gives accurate information about which projects have been added, updated, and removed. To get the client update, use (ql:update-client) and restart your Lisp.

The second is the July Quicklisp dist update. Here's what you'll see when you update:

Changes from quicklisp 2011-06-19 to quicklisp 2011-07-30:
  New projects:
    blackthorn-engine-3d-20110730-hg
    cl-inflector-20110730-git
    cl-random-20110730-git
    cl-selenium-0.4
    clsql-fluid-20110730-darcs
    clsql-orm-20110730-git
    collectors-20110730-git
    com.informatigo.rdp-20110730-git
    elf-20110730-git
    lla-20110730-git
    telnetlib-20110730-git

  Updated projects:
    babel-20101107-darcs -> babel-20110730-git
    buildnode-20110619-git -> buildnode-20110730-git
    caveman-20110619-git -> caveman-20110730-git
    cl-2d-20110619-git -> cl-2d-20110730-git
    cl-closure-template-20110619-git -> cl-closure-template-20110730-git
    cl-creditcard-20110522-git -> cl-creditcard-20110730-git
    cl-decimals-20110619-git -> cl-decimals-20110730-git
    cl-glfw-20110619-git -> cl-glfw-20110730-git
    cl-json-20101006-darcs -> cl-json-20110730-darcs
    cl-l10n-20110219-darcs -> cl-l10n-20110730-darcs
    cl-mediawiki-20110522-git -> cl-mediawiki-20110730-git
    cl-mongo-20110619-git -> cl-mongo-20110730-git
    cl-num-utils-20110619-git -> cl-num-utils-20110730-git
    cl-odesk-20110619-git -> cl-odesk-20110730-git
    cl-openal-20110522-git -> cl-openal-20110730-git
    cl-openid-20110619-darcs -> cl-openid-20110730-darcs
    cl-pattern-20110619-git -> cl-pattern-20110730-git
    cl-project-20110619-git -> cl-project-20110730-git
    cl-twitter-20110619-git -> cl-twitter-20110730-git
    cl-uglify-js-20110418-git -> cl-uglify-js-20110730-git
    clack-20110619-git -> clack-20110730-git
    cleric-20110619-git -> cleric-20110730-git
    closer-mop-20110619-darcs -> closer-mop-20110730-darcs
    clpython-20110619-git -> clpython-20110730-git
    clsql-20110619-git -> clsql-20110730-git
    com.informatigo-20110522-git -> com.informatigo-20110730-git
    css-selectors-20110619-git -> css-selectors-20110730-git
    dbus-20110219-git -> dbus-20110730-git
    eos-20101006-git -> eos-20110730-git
    external-program-20110522-git -> external-program-20110730-git
    gbbopen-20110619-svn -> gbbopen-20110730-svn
    glaw-20110619-git -> glaw-20110730-git
    glop-20110219-git -> glop-20110730-git
    group-by-20110619-git -> group-by-20110730-git
    gsll-20110418-git -> gsll-20110730-git
    hu.dwim.wui-20110320-darcs -> hu.dwim.wui-20110730-darcs
    hyperobject-20101006-git -> hyperobject-20110730-git
    kmrcl-20101006-git -> kmrcl-20110730-git
    let-plus-20110619-git -> let-plus-20110730-git
    lredis-20110110-git -> lredis-20110730-git
    ltk-0.91 -> ltk-0.96
    m2cl-20110619-git -> m2cl-20110730-git
    mcclim-20110522-cvs -> mcclim-20110730-cvs
    modf-20110619-git -> modf-20110730-git
    paiprolog-20110418-git -> paiprolog-20110730-git
    parse-js-20110320-git -> parse-js-20110730-git
    parse-number-1.0 -> parse-number-1.2
    portableaserve-20101006-cvs -> portableaserve-20110730-cvs
    rfc2388-binary-20110320-darcs -> rfc2388-binary-20110730-darcs
    rucksack-20110522-cvs -> rucksack-20110730-cvs
    s-protobuf-20101006-git -> s-protobuf-20110730-git
    s-xml-20101006-http -> s-xml-20110730-cvs
    slime-20110619-cvs -> slime-20110730-cvs
    snmp-6.0.1 -> snmp-6.0.2
    symbolicweb-20110418-git -> symbolicweb-20110730-git
    trivial-garbage-20101006-darcs -> trivial-garbage-20110730-git
    umlisp-20110418-git -> umlisp-20110730-git
    uuid-20110320-http -> uuid-20110730-http
    weblocks-20110619-hg -> weblocks-20110730-hg

  Removed projects:
    blackthorn-engine-20110522-hg
    elephant-20110110-darcs

blackthorn-engine has been replaced with blackthorn-engine-3d, a new project by the same author. elephant has been removed because it hasn't worked on SBCL for several months now, and patches for the problem have been ignored. As far as I can tell, Elephant is effectively unmaintained.

The metadata from the June dist caused problems with installing f2cl and GBBopen. The July dist has been updated to fix all known problems. If you have any trouble installing any project, please let me know.

Enjoy!

2011-07-28

Work in progress: Quicklisp project documentation

I've been working on a project to automatically gather and publish all the documentation available for projects that are part of Quicklisp. It's not done, but I thought I'd share the work in progress.

2011-05-23

May Quicklisp dist update available

I just published a new version of the Quicklisp dist. New in this version are buildnode, cl-buchberger, cl-creditcard, cl-match, cl-tk, com.informatigo, common-lisp-actors, css-selectors, floating-point, group-by, lambda-gtk, method-versions, place-utils, qbook, symbol-munger, talcl, and thnappy.

To get the update, use (ql:update-dist "quicklisp").