Client update available: silent mode, improved system manifests, and more

Yesterday I uploaded a new version of the Quicklisp client code. (The client is the software responsible for fetching and managing Quicklisp-provided libraries.)

To get the update, use (ql:update-client).

Here's what's new:
  • ql:quickload has a new :silent option. When true, ql:quickload produces no printed output to *standard-output*. Thanks to Aaron France for implementing it.
  • ql:write-asdf-manifest-file now includes systems from the local-projects directories. Thanks to AndrĂ© Miranda for fixing issue #83 by implementing it. The old behavior is available by using new new :exclude-local-projects argument.
  • ql-minitar now understands pax extended file headers. Library archives that have files with very long names (currently only Antik) are now unpacked properly.
  • ql-dist:clean no longer tries to delete file pathnames as though they were directories.


December 2014 Quicklisp dist update now available

New projects:
  • arc-compat — Arc compatible package for CL — Artistic
  • array-utils — A few utilities for working with arrays. — Artistic
  • blackbird — A promise implementation for Common Lisp. — MIT
  • cl-acronyms — A program that expands an acronym based on grammatical rules. — MIT
  • cl-ca — cellular automaton library — Public Domain
  • cl-libuv — Low-level libuv bindings for Common Lisp. — MIT
  • cl-rabbit — Simple RabbitMQ interface for Common Lisp using CFFI — MIT
  • cl-webkit — Interface to the WebKit2 Document Object Model — MIT
  • cl-xspf — Common Lisp API for reading and writing XSPF. — Lisp Lesser GNU General Public License
  • classimp — Common Lisp/CFFI bindings for Open Asset Import Library (http://assimp.sourceforge.net/) — Unspecified
  • croatoan — Common Lisp bindings for ncurses. — MIT
  • dweet — A dweet.io client for Common Lisp — MIT
  • eazy-gnuplot — Super Duper Doopa Booka Lispy Gnuplot library — LLGPL
  • eazy-project — Generate and Manage a Project — LLGPL
  • exponential-backoff — An implementation of the exponential backoff algorithm — MIT
  • gcm — Google Cloud Messaging (GCM) library for Common Lisp — MIT
  • genhash — Generic hashtable code — Public Domain
  • hspell — Hspell bindings for Common Lisp. — MIT
  • introspect-environment — Small interface to portable but nonstandard introspection of CL environments. — WTFPL
  • lambdalite — A functional, relational Lisp database — MIT
  • mk-string-metrics — efficient implementations of various string metric algorithms — MIT
  • scalpl — Bitcoin exchange API & market maker — public domain
  • utilities.print-tree — Simple facilities for printing tree structures in an easy to read way. — LLGPL
  • woo — A non-blocking HTTP server written in Common Lisp — MIT
  • wu-sugar — Defines '&' for string concatenation and provides a few other useful functions. — BSD
  • xecto — Xecto is a simple parallel vector-processing library — BSD
Updated projects: architecture.service-provider, asdf-linguist, asteroids, avatar-api, babel, basic-binary-ipc, caveman, chunga, cl-ana, cl-async, cl-async-future, cl-autowrap, cl-cffi-gtk, cl-closure-template, cl-conspack, cl-enumeration, cl-fad, cl-freetype2, cl-fuse, cl-gd, cl-gendoc, cl-glfw3, cl-inflector, cl-json, cl-libevent2, cl-logic, cl-mediawiki, cl-opengl, cl-pass, cl-plplot, cl-ppcre, cl-quickcheck, cl-read-macro-tokens, cl-rethinkdb, cl-rlimit, cl-sdl2, cl-unicode, cl-who, clack, clazy, clip, clod, closer-mop, clsql-helper, clss, coleslaw, colleen, com.informatimago, commonqt, consix, crane, curry-compose-reader-macros, daemon, dbus, defpackage-plus, documentation-template, drakma, drakma-async, eco, envy, esrap, esrap-liquid, external-program, fast-http, fast-io, flexi-streams, form-fiddle, fset, gbbopen, gendl, glyphs, green-threads, hdf5-cffi, helambdap, hunchensocket, hunchentoot, iolib, jsown, lass, local-time, log4cl, lquery, mcclim, mel-base, mgl-pax, modularize-interfaces, myway, new-op, ningle, plump, plump-tex, policy-cond, pp-toml, prove, pzmq, qlot, qmynd, qtools, quri, readable, restas, rock, sdl2kit, serapeum, sheeple, slime, smug, spinneret, staple, stumpwm, sxql, telnetlib, towers, trivial-ldap, trivial-mimes, trivial-raw-io, utilities.print-items, verbose, vom, weblocks, weblocks-stores, weblocks-tree-widget, weblocks-utils, websocket-driver, wookie, xhtmlambda, yason, zs3.

Removed projects: cl-api, cl-binaural, cl-proc, lisp-magick, okra.

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

This Quicklisp update is supported by my employer, Clozure Associates. If you need commercial support for Quicklisp, or any other Common Lisp programming needs, it's available via Clozure Associates.


November 2014 Quicklisp dist update now available

New projects:
  • 1am — A minimal testing framework. — MIT
  • cl-rlimit — Common lisp interface to unix rlimit -- ensure the performance of your program! — LLGPL
  • corona — Isolated, reproducible virtual development environments. — MIT
  • defpackage-plus — Extensible DEFPACKAGE with version support — BSD-2-Clause
  • fast-http — A fast HTTP protocol parser in Common Lisp — MIT
  • fiasco — A Common Lisp test framework that treasures your failures. A logical continuation of the Stefil test framework. — BSD 2-clause
  • form-fiddle — A collection of utilities to destructure lambda forms. — Artistic
  • global-vars — Define efficient global variables. — MIT
  • http-body — HTTP POST data parser for Common Lisp — BSD 2-Clause
  • hunchensocket — WebSockets for Hunchentoot — MIT
  • lambda-fiddle — A collection of functions to process lambda-lists. — Artistic
  • local-time-duration — local-time-duration: Simple duration functionality on top of local-time — MIT
  • myway — Sinatra-compatible routing library. — LLGPL
  • qtools — A collection of tools to aid in development with CommonQt. — Artistic
  • quri — Yet another URI library for Common Lisp — BSD 3-Clause
  • rock — Asset manager for Common Lisp. — MIT
  • session-token — Simple session token generation library — BSD license: you can do anything you want with it (but no warranty).
  • trivial-arguments — A simple library to retrieve the lambda-list of a function. — Artistic
  • trivial-extract — Extract .tar/.tar.gz/.zip files. — MIT
  • with-c-syntax — with-c-syntax is a fun package which introduces the C language syntax into Common Lisp. — WTFPL
  • xsubseq — Efficient way to manage "subseq"s in Common Lisp — BSD 2-Clause
Updated projects: asteroids, buildapp, chirp, cl-algebraic-data-type, cl-ana, cl-arrows, cl-async, cl-autowrap, cl-bert, cl-case-control, cl-conspack, cl-dbi, cl-erlang-term, cl-mustache, cl-read-macro-tokens, cl-store, cl-virtualbox, clack, cleric, clfswm, clip, closer-mop, clsql-helper, clss, clx, coleslaw, colleen, crane, crypto-shortcuts, deferred, defmacro-enhance, dissect, drakma-async, esrap-liquid, event-glue, gbbopen, glyphs, graph, hdf5-cffi, helambdap, hh-web, humbler, ironclad, lass, lfarm, lisp-executable, lisp-gflags, lparallel, lquery, lredis, mcclim, method-combination-utilities, mgl-pax, modularize, modularize-hooks, modularize-interfaces, okra, optima, petit.string-utils, pgloader, plump, plump-sexp, plump-tex, postmodern, prove, ratify, rcl, readable, rutils, serapeum, shelly, slime, smug, softdrink, south, staple, stumpwm, trivial-benchmark, trivial-download, trivial-indent, trivial-mimes, trivial-signal, trivial-thumbnail, uiop, universal-config, vecto, verbose, weblocks, weblocks-stores, weblocks-tree-widget, yason.

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


October 2014 Quicklisp dist update now available

New projects:
  • cl-cffi-gtk — cl-cffi-gtk is a Lisp binding to the GTK+ 3 library. — LLGPL
  • cl-gobject-introspection — Binding to GObjectIntrospection — BSD
  • cl-libsvm — CFFI wrapper for LIBSVM — MIT
  • cl-virtualbox — Control VirtualBox from Common Lisp — MIT
  • dissect — A small lib for introspecting the call stack and active restarts. — Artistic
  • event-emitter — Event mechanism for Common Lisp objects — BSD 2-Clause
  • plump-sexp — Turning SEXPs into a Plump DOM and back. — Artistic
  • plump-tex — Rudimentary parser turning TeX-like syntax into a Plump DOM. — Artistic
  • prove — Yet another unit testing framework for Common Lisp — MIT
  • softdrink — Tools to inline or extract CSS into/from HTML. — Artistic
  • trivial-thumbnail — Tiny library to create image thumbnails with imagemagick. — Artistic
  • websocket-driver — WebSocket protocol handler — BSD 2-Clause
Updated projects: asteroids, avatar-api, babel, basic-binary-ipc, caveman, cffi, checkl, cl-ana, cl-async, cl-autowrap, cl-base58, cl-charms, cl-cli, cl-cli-parser, cl-conspack, cl-dbi, cl-dot, cl-gdata, cl-gss, cl-locatives, cl-mediawiki, cl-opengl, cl-project, clack, clip, closer-mop, clss, coleslaw, colleen, com.informatimago, cqlcl, datafly, dbus, djula, docbrowser, drakma, dynamic-mixins, fast-io, floating-point, gbbopen, gendl, graph, hdf5-cffi, lisp-executable, lisp-interface-library, lisp-unit2, mel-base, metabang-bind, mgl-pax, micmac, modularize-hooks, modularize-interfaces, nibbles, osicat, pg, plump, postmodern, quickproject, ratify, restas, rucksack, rutils, s-xml, scriptl, serapeum, shelly, smug, spinneret, staple, stumpwm, trivial-download, trivial-mimes, trivial-signal, universal-config, utils-kt, yason.

Removed projects: cl-test-more, phemlock.

cl-test-more hasn't really been removed. It's been renamed to prove.

I removed phemlock by request; it represents an old, dead branch of development, hosted on CVS. You can still get hemlock through Quicklisp by loading one of hemlock.tty, hemlock.qt, or hemlock.clx, all provided by the hemlock project on gitorious.

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


September 2014 Quicklisp dist update now available

New projects:
  • asteroids — An improved asteroids game with sounds —  DWTFYF
  • avatar-api — Get avatars from Gravatar, Google+ and others. — MIT
  • cl-pass — Password hashing and verification library. — MIT
  • cl-xkeysym — Human readable mappings of xkeysym values. — GNU General Public License
  • cqlcl — CQLv2 binary protocol — BSD
  • dynamic-mixins — Simple dynamic class mixing without manual permutations — BSD-2-Clause
  • eco — Fast, flexible, designer-friendly templates. — MIT
  • hdf5-cffi — hdf5-cffi is a CFFI wrapper for the HDF5 library. — BSD
  • humbler — A Tumblr API interface — Artistic
  • interface — A system for defining interfaces. — BSD 3-clause (See LICENSE)
  • lass — Lisp Augmented Style Sheets. Compiles LASS to CSS. — Artistic
  • parameterized-function — Compile-time parameterized functions. — BSD 3-clause (See LICENSE)
  • ratify — A collection of utilities to ratify, validate and parse inputs. — Artistic
  • serapeum — Utilities beyond Alexandria. — MIT
  • template — A library for templates and template functions. — BSD 3-clause (See LICENSE)
  • utm — Library for converting back and forth between latitude/longitude and UTM, supporting several datums. — ISC (BSD-like)
Updated projects: bknr-datastore, caveman, cl-ana, cl-async, cl-conspack, cl-css, cl-gendoc, cl-gss, cl-inflector, cl-oauth, cl-olefs, cl-quickcheck, cl-redis, cl-sdl2, cl-tld, clip, closer-mop, coleslaw, colleen, crane, crypto-shortcuts, function-cache, gbbopen, hermetic, hu.dwim.walker, let-over-lambda, lisp-unit2, lquery, mel-base, mexpr, mgl-pax, modularize, modularize-hooks, modularize-interfaces, mpc, open-vrp, pgloader, plump, policy-cond, protobuf, qmynd, repl-utilities, restas, scriptl, shelly, smug, software-evolution, south, staple, stumpwm, trivial-mimes, weblocks-tree-widget.

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

Just as a friendly reminder, Quickdocs is a great way to find libraries in Quicklisp. I don't run the site and it's not an official part of Quicklisp, it's just a great project that uses Quicklisp's metadata to build a really useful service. So check it out!


August 2014 dist update now available

New projects:
  • cl-ixf — Tools to handle IBM PC version of IXF file format — WTFPL
  • cl-mpi — Common Lisp bindings for the Message Passing Interface (MPI) — MIT
  • cl-tokyo-cabinet — Common Lisp interface to Tokyo Cabinet via CFFI. — New BSD
  • clip — An HTML templating engine using Plump. — Artistic
  • crypto-shortcuts — Shorthand functions for common cryptography tasks. — Artistic
  • deferred — A simple library allowing you to write code using deferred libraries. — Artistic
  • mexpr — Macro for infix math expressions. — LLPGL
  • modularize — A modularization framework — Artistic
  • modularize-hooks — Generic hooks and triggers extension for modularize. — Artistic
  • modularize-interfaces — Programmatical interfaces extension for Modularize — Artistic
  • petit.string-utils — A petit tool box about string modification — MIT
  • qlot — A project-local library installer for Common Lisp — MIT
  • staple — A tool to generate documentation about Lisp projects through an HTML template. — Artistic
  • trivial-benchmark — Some simple benchmarking helper functions — Artistic
  • trivial-indent — A very simple library to allow indentation hints for SWANK. — Artistic
  • trivial-mimes — Tiny library to detect mime types in files. — Artistic
  • trivial-signal — Unix signal handling library. — Public Domain
Updated projects: 3bmd, access, alexandria, architecture.hooks, architecture.service-provider, arnesi+, asdf-finalizers, bit-smasher, black-tie, caveman, chanl, cl+ssl, cl-ana, cl-autowrap, cl-charms, cl-cli, cl-csv, cl-custom-hash-table, cl-dbi, cl-dot, cl-gss, cl-indeterminism, cl-larval, cl-launch, cl-libevent2, cl-opengl, cl-project, cl-qrencode, cl-rethinkdb, cl-sdl2, cl-slp, cl-spark, cl-syntax, cl-test-more, cl-voxelize, cl-yaclyaml, clack, clfswm, clhs, clobber, closer-mop, closure-html, clsql-orm, clss, coleslaw, collectors, colleen, common-lisp-stat, conduit-packages, crane, css-selectors, daemon, datafly, defmacro-enhance, djula, docbrowser, drakma-async, equals, esrap, f2cl, fare-quasiquote, function-cache, gbbopen, graph, hash-set, hermetic, http-parse, hu.dwim.perec, inferior-shell, iolib, let-over-lambda, listoflist, lla, lol-re, marching-cubes, memoize, more-conditions, multiple-value-variants, ningle, nuclblog, optima, packet, parse-number, petit.package-utils, plump, postmodern, purl, qmynd, racer, rutils, scriptl, sdl2kit, shelly, slime, software-evolution, spatial-trees, stumpwm, sxql, trivial-gray-streams, uiop, weblocks-stores, weblocks-utils.

Not included in the summary above: I was able to get gtk3 into my test build environment, so gtk-cffi should now be fully available in Quicklisp. If you have the gtk3 C libraries installed, give it a try and let me know how it goes.

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



July 2014 Quicklisp dist update now available

New projects:
  • bit-smasher — Common Lisp library for handling bit vectors, bit vector arithmetic, and type conversions. — MIT
  • cl-cli — Command line parser — WTFPL
  • cl-voxelize — Cl-voxelize is a library to convert polygon models into voxel models for particle-based physics simulation. — LLGPL
  • equals — Generic Equality and Comparison for Common Lisp — MIT
  • hash-set — An implementation of the hash-set data structure. — Unlicense
  • mpc — Monadic Parser Combinators for Common Lisp. MPC tries to be simple and practical while being powerful, well documented and fairly performant. A friendly fork of Drew Crampsies _Smug_ library. — GNU Affero General Public License
  • pp-toml — TOML parser — LLGPL
  • printv — printv: a batteries-included tracing and debug-logging macro — Apache 2.0
  • purl — Parse and print URLs as described in RFC 1738. — GNU AGPL
  • software-evolution — programmatic modification and evaluation of extant software — GPL V3
  • south — Simple OaUTH library for oAuth1.0 — Artistic
Updated projects: 3bmd, access, aws-sign4, btrie, caveman, chirp, cl-ana, cl-async, cl-autowrap, cl-charms, cl-colors, cl-conspack, cl-coroutine, cl-ftp, cl-fuse-meta-fs, cl-html5-parser, cl-ltsv, cl-mustache, cl-plplot, cl-ply, cl-project, cl-qrencode, cl-rdfxml, cl-rethinkdb, cl-sdl2, cl-xul, clack, closer-mop, clsql-helper, coleslaw, colleen, com.informatimago, conium, contextl, crane, datafly, drakma-async, esrap, function-cache, gbbopen, glyphs, hctsmsl, ieee-floats, lisp-interface-library, lisp-unit2, marching-cubes, mime4cl, ningle, packet, paiprolog, plump, protobuf, racer, readable, repl-utilities, rutils, sexml, shelly, slime, spinneret, talcl, trivial-ldap, vgplot, weblocks, weblocks-utils, wookie.

SBCL 1.2.1 changed some internals that SLIME 2.7 relied on. This update includes SLIME 2.8, which works fine with SBCL 1.2.1.

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



June 2014 dist update now available

New projects:
  • aws-sign4 — Common Lisp library for Amazon Web Services signing version 4 — GNU General Public Licence 3.0
  • cl-coroutine — CL-COROUTINE is a coroutine library for Common Lisp. It uses CL-CONT continuations library in its implementation. — LLGPL
  • cl-crc64 — Computes 64-bit cyclic redundancy checks — BSD
  • cl-qrencode — QR code 2005 encoder in Common Lisp — Unspecified in system file
  • cl-riff — Reads Resource Interchange File Format (RIFF) files. — Unspecified in system file
  • cl-tld — Extracts the TLD(Top Level Domain) from domain — Public Domain
  • cl-wav — Reads Wave Audio File Format, WAV files. — Unspecified in system file
  • event-glue — A simple framework for event-based architectures. — MIT
  • json-streams — Common Lisp library for reading and writing JSON. — GNU General Public Licence 3.0
  • lisp-invocation — Invoking Lisp subprocesses from Lisp — MIT
  • racer — Renamed Abox and Concept Expression Reasoner — BSD 3
  • smug — SMUG: Simple Monads Uber Good — Unspecified in system file
  • squirl — Common Lisp port of the Chipmunk 2d physics library — MIT
Updated projects: bknr-web, cffi, cl-6502, cl-ana, cl-async, cl-async-future, cl-autowrap, cl-cairo2, cl-charms, cl-closure-template, cl-glfw3, cl-html5-parser, cl-launch, cl-mustache, cl-permutation, cl-protobufs, cl-reexport, cl-rethinkdb, cl-sdl2, cl-spark, cl-test-more, cl-xul, clickr, clos-fixtures, closer-mop, clss, coleslaw, colleen, com.informatimago, common-lisp-actors, crane, csv-parser, data-table, drakma-async, function-cache, gbbopen, gendl, graph, helambdap, ieee-floats, iolib, lisp-unit2, lquery, more-conditions, plump, postmodern, qmynd, repl-utilities, slime, stumpwm, trivial-download, verbose, vgplot, vom, weblocks, weblocks-stores, weblocks-utils, yason.

To get this update, use (ql:update-dist "quicklisp"). Enjoy!


May 2014 Quicklisp dist update now available

New projects:
  • cl-conspack — CONSPACK implementation for Common Lisp — NewBSD
  • cl-mock — Mocking library — Simplified BSD License
  • cl-pattern — ML-like Pattern Matching for Common Lisp — LLGPL
  • cl-reexport — Cl-reexport makes a package reexport symbols which are external symbols in other packages. — LLGPL
  • cl-sl4a — SL4A lisp bridge — BSD-style
  • clos-fixtures — ASDF-loadable fixtures for CLOS classes — MIT
  • clss — A DOM tree searching engine based on CSS selectors. — Artistic
  • glyphs — Glyphs to reduce Common Lisp verbosity — GPLv3
  • mgl-pax — Exploratory programming tool and documentation generator. — MIT, see COPYING.
  • universal-config — Library to provide a universal configuration layer. — Artistic
  • vom — A tiny logging utility. — MIT
Updated projects: 3bmd, alexandria, asdf-linguist, basic-binary-ipc, cells, city-hash, cl-algebraic-data-type, cl-ana, cl-async, cl-autowrap, cl-bert, cl-bibtex, cl-charms, cl-cron, cl-date-time-parser, cl-emb, cl-freetype2, cl-html5-parser, cl-launch, cl-mustache, cl-permutation, cl-plplot, cl-protobufs, cl-rethinkdb, cl-sdl2, cl-tcod, cl-tuples, clack, cleric, clinch, closer-mop, clsql-helper, clsql-orm, codata-recommended-values, coleslaw, collectors, colleen, com.google.base, com.informatimago, commonqt, crane, dbus, drakma, dynamic-collect, fare-quasiquote, fast-io, flexi-streams, gbbopen, gendl, helambdap, http-parse, hu.dwim.perec, hunchentoot, inferior-shell, inner-conditional, ip-interfaces, lfarm, lisp-gflags, lisp-matrix, local-time, lol-re, lparallel, lquery, more-conditions, named-readtables, nibbles, nst, optima, pgloader, plump, policy-cond, protobuf, quux-time, random, romreader, rutils, sdl2kit, sip-hash, slime, snappy, spinneret, static-vectors, stumpwm, swank-client, swank-crew, swap-bytes, sxql, symbol-munger, talcl, trivial-gray-streams, trivial-ldap, uiop, verbose, weblocks-stores, wookie.

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

Last month, there were some reports of people getting a badly-sized-local-archive error during update. I haven't seen that myself on this month's update, but it is safe to choose the delete-and-retry restart when that happens. It may get you past the error.


April 2014 dist update now available

New projects:
  • asdf-linguist — ASDF extensions. — MIT
  • cl-base58 — An implementation of base58 for Common Lisp — MIT
  • cl-data-frame — Data frames for Common Lisp. — BOOST
  • cl-influxdb — Common lisp binding for InfluxDB — MIT
  • cl-logic — Boolean algebra package — GNU GPLv3
  • cl-slp — Common Lisp OpenSLP package — BSD
  • cl-splicing-macro — Deforms macros in a way, that they can capture surrounding s-exps for their expansion. — GPL
  • colleen — IRC bot with a modular framework. — Artistic
  • crane — An ORM for Common Lisp. — MIT
  • dartsclmessagepack — Implementation of the message pack exchange format — MIT
  • datafly — Lightweight database library. — BSD 3-Clause
  • lol-re — Small set of wrappers around CL-PPCRE in spirit of Let Over Lambda. — GPL
  • packet — Simple binary serialization library. — BSD
  • piping — A library to enable simple message pipelines. — Artistic
  • plump — An X/HTML parser that aims to be as lenient as possible. — Artistic
  • sdl2kit — A utility kit for SDL2 — MIT
  • verbose — A logging framework using the piping library. — Artistic
Updated projects: architecture.service-provider, asdf-encodings, asdf-package-system, caveman, chirp, cl+ssl, cl-6502, cl-ana, cl-async, cl-async-future, cl-autowrap, cl-charms, cl-glfw3, cl-html5-parser, cl-i18n, cl-isaac, cl-lastfm, cl-launch, cl-libevent2, cl-mathstats, cl-mustache, cl-olefs, cl-permutation, cl-plplot, cl-protobufs, cl-read-macro-tokens, cl-rethinkdb, cl-sdl2, cl-syntax, cl-syslog, clack, clem, cletris, clfswm, clinch, closer-mop, clx-truetype, coleslaw, common-lisp-stat, dartsclhashtree, dbus, define-json-expander, defmacro-enhance, djula, drakma-async, envy, exscribe, fare-quasiquote, femlisp, fset, gbbopen, gordon, graph, hermetic, hh-web, hu.dwim.logger, hu.dwim.perec, hu.dwim.stefil, hu.dwim.web-server, iolib, iterate, jsown, lassie, lisp-interface-library, local-time, lparallel, more-conditions, ningle, optima, pgloader, policy-cond, qmynd, quicksearch, quid-pro-quo, reversi, romreader, scribble, scriptl, shelly, simple-date-time, slime, stumpwm, sxql, tagger, thnappy, torta, trivial-gray-streams, vgplot, weblocks, weblocks-stores, weblocks-utils, wookie.

Removed projects: def-symbol-readmacro.

I removed def-symbol-readmacro because it depends on a library (iterate-keywords) I can't easily fetch.

To install this update, use (ql:update-dist "quicklisp").



March 2014 dist update now available

New projects: chirp, cl-flowd, defvariant, delta-debug, random.

Updated projects: access, alexandria, architecture.hooks, asdf-dependency-grovel, asdf-encodings, babel, caveman, cffi, cffi-objects, cl+ssl, cl-6502, cl-algebraic-data-type, cl-ana, cl-autorepo, cl-autowrap, cl-blapack, cl-charms, cl-colors, cl-data-format-validation, cl-dbi, cl-emb, cl-erlang-term, cl-indeterminism, cl-isaac, cl-lastfm, cl-launch, cl-murmurhash, cl-nxt, cl-olefs, cl-plplot, cl-prime-maker, cl-qprint, cl-quickcheck, cl-randist, cl-rethinkdb, cl-sdl2, cl-sendmail, cl-smtp, cl-syslog, cl-yaclyaml, cl-zmq, clache, clack, clack-errors, cletris, clfswm, climc, climon, clinch, closer-mop, clsql, coleslaw, com.informatimago, common-lisp-stat, dartsclhashtree, define-json-expander, defmacro-enhance, defstar, drakma, elf, ernestine, esrap-liquid, fare-memoization, fare-quasiquote, fare-utils, firephp, fnv, fset, gbbopen, gendl, graph, gtk-cffi, hu.dwim.def, hu.dwim.logger, hu.dwim.util, inferior-shell, integral, iolib, jsown, lambda-reader, lisp-matrix, lisp-unit2, lisp-zmq, lla, lquery, mcclim, monkeylib-prose-diff, more-conditions, optima, paiprolog, pgloader, postmodern, projectured, qmynd, repl-utilities, rutils, scribble, secure-random, single-threaded-ccl, slime, stumpwm, sxql, teepeedee2, trivial-channels, trivial-gray-streams, trivial-ldap, vgplot, weblocks, weblocks-examples, weblocks-stores, weblocks-utils, wookie, xml.location.

To update your libraries, use (ql:update-dist "quicklisp"). Enjoy!


Init files for Quicklisp

Certain files in ~/quicklisp/local-init/ are loaded (with cl:load) during Quicklisp initialization. Files matching "*.cl" or "*.lisp" and that do not start with a "." are loaded in cl:string< order of their names. (If two files foo.lisp and foo.cl both exist, the order in which they are loaded is undefined.)

This feature has been present for a long time, but I haven't used it myself and haven't written about it. If you try it and encounter any problems, please let me know.


February 2014 Quicklisp dist update now available


New projects: architecture.service-provider, cl-ana, cl-cron, cl-sdl2, cl-yaclyaml, define-json-expander, esrap-liquid, hermetic, hu.dwim.web-server, integral, montezuma, projectured, secret-values, swap-bytes, trivial-download.

Updated projects: antik, asdf-package-system, asdf-system-connections, buildapp, caveman, chanl, cl+ssl, cl-autowrap, cl-bacteria, cl-csv, cl-dbi, cl-emb, cl-epmd, cl-erlang-term, cl-i18n, cl-isaac, cl-larval, cl-murmurhash, cl-mustache, cl-olefs, cl-permutation, cl-ppcre, cl-project, cl-quickcheck, cl-redis, cl-rmath, cl-smtp, cl-syslog, cl-test-more, cl-webdav, clack, clack-errors, cleric, clinch, closer-mop, clsql-helper, collectors, commonqt, envy, fare-quasiquote, gbbopen, glaw, glop, group-by, http-parse, hu.dwim.asdf, hu.dwim.rdbms, hunchentoot, hunchentoot-cgi, ieee-floats, inferior-shell, iolib, iterate, lisp-gflags, lisp-unit2, local-time, lparallel, mcclim, mel-base, more-conditions, osicat, pgloader, policy-cond, portableaserve, postmodern, protobuf, pzmq, repl-utilities, rfc2109, rutils, sclf, smackjack, spinneret, stumpwm, sxql, teepeedee2, trivial-gray-streams, vgplot, weblocks-stores, wookie.

Removed projects: none


To get this or any future update, use (ql:update-dist "quicklisp").

To install exactly this version, use:

  (ql-dist:install-dist "http://beta.quicklisp.org/dist/quicklisp/2014-02-11/distinfo.txt" :replace t)

To revert to the previous version after update, use:

  (ql-dist:install-dist "http://beta.quicklisp.org/dist/quicklisp/2014-01-13/distinfo.txt" :replace t)

For more information about reverting, see Going back in (dist) time.


  • Montezuma is back in Quicklisp after it was adopted by sharplispers and patched to build on the latest SBCL
  • iolib has been updated from 0.7.0 to the current git; there are substantial changes, including using g++ to grovel constants and requiring an external C library (libfixposix)
  • system metadata indexes have been generated with a new program, so please let me know if you have any problems loading anything
Feel free to send me feedback via zach@quicklisp.org or the Quicklisp mailing list.



Recovering from yesterday's update

Yesterday's client update has a problem. If you upgrade from an existing installation, a critical file named client-info.sexp is missing. Its absence causes errors when trying to update again.

On SBCL, the error looks like this:

    error opening #P".../client-info.sexp":
      No such file or directory

On Clozure CL, it looks like this:

    > Error: No such file or directory : #P".../client-info.sexp"

Other implementations present similar error messages.

If you are encountering this problem, evaluate this:

(ql-http:fetch "http://beta.quicklisp.org/client/2014-01-28/client-info.sexp" (ql-setup:qmerge "client-info.sexp"))

If you aren't having any problems, there's no need to use this bit of code.

After fetching client-info.sexp, you should be able to evaluate (ql:update-client) without encountering any errors.

I've uploaded a fixed version of the client that compensates for the missing file, so future updates should not signal this missing file error. If you have any problems or issues with Quicklisp, please feel free to email me, email the mailing list, or discuss it on freenode #quicklisp.



Client update now available, and a bit of GPG

Client updates

edit There is a problem with the update. If you're having a problem related to client-info.sexp, I'll post a fix shortly. Sorry about the hassle!

The Quicklisp client updates I described last week are now part of Quicklisp. If you install Quicklisp from scratch with today you will be using the new client versioning system. To update an existing Quicklisp installation, use(ql:update-client).

This update provides several new options in quicklisp-quickstart:install:
  • :dist-url can be used to specify the initial dist version to use at installation time. Valid URLs can be obtained from an existing Quicklisp installation by evaluating one of the new functions (ql:dist-url "quicklisp") or (ql:available-dist-versions "quicklisp")
  • :client-url can be used to specify the initial client version to use at installation time. Valid URLs can be obtained from an existing Quicklisp installation by evaluating one of the new functions (ql:client-url) or (ql:available-client-versions)
There is also a new function, (ql:install-client :url url), that can be used to change the client version of an existing Quicklisp installation.

The ability to easily install (or go back to) a known-working client sets the stage for a pretty big Quicklisp client change. In the next few days I'm going to update Quicklisp to require ASDF 3, which it will fetch automatically if needed. If that change breaks your project, you will have a safety net: you can always go back to the previous version of the Quicklisp client. (If it breaks too many projects, Quicklisp itself will go back to a previous version of ASDF.)

If you have any trouble with this new Quicklisp setup, please let me know at xach@clozure.com. You can also discuss it on the mailing list or talk to me in realtime (if I'm around) in #quicklisp on freenode.

GPG signatures

I have created a new GPG key, release@quicklisp.org, for signing Quicklisp-related programs and metadata. You can get the key from various keyservers, i.e. "gpg --keyserver pgp.mit.edu --recv-keys 028B5FF7", or from http://beta.quicklisp.org/release-key.txt.

Here are some examples of signed files:
In general, if a the file at URL "http://beta.quicklisp.org/whatever" has a signature, it is the same URL with ".asc" appended, e.g. "http://beta.quicklisp.org/whatever.asc". If you fetch both files, you can verify the signature with "gpg --verify whatever.asc whatever".

The Quicklisp client code does not yet verify signatures, but you may use these signatures to independently verify the Quicklisp code and metadata you have fetched. A future Quicklisp update will provide more built-in cryptographic verification.



Consistent configuration with Quicklisp

I've been working on two new capabilities in Quicklisp. The default setup won't change, but there will be new options to use when you need them.

First, the quickstart process (downloading and loading quicklisp.lisp) will let you select exactly which dist to use at installation time.

If your project critically depends on the state of the Quicklisp library world from July, you can get your project development environment set up almost instantly with the correct version at installation time. (This was always possible after installation, but now you can skip a number of tedious manual steps.)

Second, you can also choose what version of the Quicklisp client software to use at installation time. You can also install an older version after initial installation.

This has been difficult to do in the past without saving the software and keeping track of it yourself. But now you can use a specific version with a simple option at installation time or a single function call after installation.

What are these capabilities for?

If you're starting a new project, it's reasonable to use the latest of everything – Quicklisp and libraries together. That's the default setup of Quicklisp. But the Quicklisp code and the libraries change over time. If you install Quicklisp fresh on another computer, or update Quicklisp on your original computer, it may bring different code and newer libraries that interact with your project in unexpected ways. It's good to have both an easy way to make a new install with a configuration consistent with your original installation, and a way to go back to that consistent configuration if an update goes wrong.

This work is nearly done, but needs some testing to knock off the rough edges. If you're interested in helping me test things out, please send me an email at xach@clozure.com. edit If you'd like to see the code, it's in the "versions" branches of https://github.com/quicklisp/quicklisp-client/ and https://github.com/quicklisp/quicklisp-bootstrap/.

The work has been supported by my employer, Clozure Associates. If you need Quicklisp support or enhancement, or have other Lisp consulting needs, get in touch!


January 2014 Quicklisp dist update now available

New projects: basic-binary-ipc, cl-bacteria, helambdap, lisp-unit2, pgloader.

Updated projects: access, asdf-dependency-grovel, asdf-package-system, buildapp, buildnode, caveman, cl-annot, cl-autowrap, cl-containers, cl-csv, cl-dbi, cl-emb, cl-enumeration, cl-erlang-term, cl-fbclient, cl-html-parse, cl-html5-parser, cl-inflector, cl-isaac, cl-libevent2, cl-memcached, cl-mustache, cl-ppcre, cl-project, cl-randist, cl-redis, cl-sam, cl-smtp, cl-test-more, cl-unification, cl-xul, clack, clem, clfswm, clinch, clsql-helper, collectors, com.informatimago, command-line-arguments, css-selectors, data-table, def-symbol-readmacro, deoxybyte-gzip, deoxybyte-io, deoxybyte-systems, deoxybyte-unix, deoxybyte-utilities, envy, esrap, exscribe, fare-quasiquote, flexi-streams, fset, function-cache, gbbopen, graph, group-by, http-parse, hunchentoot, hunchentoot-auth, hunchentoot-cgi, let-over-lambda, lisp-executable, lisp-interface-library, lisp-matrix, lisp-unit, lispbuilder, moptilities, more-conditions, new-op, ningle, nuclblog, portableaserve, postmodern, pzmq, qmynd, repl-utilities, rpm, sb-fastcgi, scribble, sha3, sxql, symbol-munger, vecto, vgplot, weblocks-stores, wookie, xarray, xhtmlambda, zs3.

There were more removed projects than usual this month. Here's a breakdown of what they are and why.

  • asdf-install was removed because I think the value in making old tutorials work has disappeared
  • cgn was removed because it no longer builds in SBCL and I am unable to find someone who can fix it
  • cl-cron was removed because its website disappeared and I was unable to contact the author about it
  • cl-prolog and cl-tokyo-cabinet were removed because an underlying library changed and broke them, and there was no response to an issue I opened
  • fare-matcher was removed at Fare's request; "Everyone should be using OPTIMA"
  • hunchentoot-vhost was removed because Cyrus said it's obsolete and there's no reason to keep publishing it
  • montezuma was removed because it doesn't build in SBCL and I am unable to find anyone who cares enough to fix it

This month marked the first time I made a pre-update dist available for testing, and it helped me find a number of issues before they made it into this "official" release.

Many thanks to Anton Vodonosov, Fare, and Dave Cooper for help and feedback when preparing the update this month. Any problems that remain are my fault.

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


Invitation: promote a project

There are nearly a thousand projects in Quicklisp. Is there an important one you think is underappreciated or overlooked, despite its novelty, quality, or utility?

If you'd like to promote a Quicklisp-provided project on this blog, giving an overview of what it's for and how it might help accomplish something useful or interesting, please email me at zach@quicklisp.org for details.


A dist for testing

Last month I published a dist update when a few libraries weren't working well together. A few days later, after discussing things with the maintainers involved and crossing my fingers, I published a new dist update that worked better.

This month, I'm making a new dist under a different URL specifically for pre-release testing. If you want to test your project or library against the next update of Quicklisp, this is for you.

The test dist is called "qlalpha". It's available like so:

(in-package ql-dist)
(disable (dist "quicklisp"))
(install-dist "http://alpha.quicklisp.org/dist/qlalpha.txt" 
              :prompt nil :replace t) 

From then on, all updates will pull from the "qlalpha" dist, rather than the main "quicklisp" dist. You can use it with ql:quickload to load and test Quicklisp libraries.

To switch back:

(in-package ql-dist)
(disable (dist "qlalpha"))
(enable (dist "quicklisp"))

If you have any questions about how this works, or have any feedback about things that look likely to break in the next update, please feel free to discuss it on the Quicklisp mailing list.