December 2013 Quicklisp dist update now available

New projects: cl-abnf, cl-isaac, cl-olefs, cl-xul, clack-errors, cletris, climc, climon, ernestine, fsvd, lassie, let-over-lambda, stump-touchy-mode-line, xhtmlambda.

Updated projects: 3bmd, antik, buildnode, caveman, cl+ssl, cl-6502, cl-autowrap, cl-bloom, cl-css, cl-curlex, cl-emb, cl-fbclient, cl-gdata, cl-gss, cl-html-parse, cl-indeterminism, cl-libevent2, cl-messagepack, cl-mustache, cl-num-utils, cl-oauth, cl-read-macro-tokens, cl-redis, cl-rethinkdb, cl-rfc2047, cl-rrt, cl-sam, cl-string-match, cl-tuples, cl-who, clack, clfswm, closer-mop, clsql, clsql-helper, com.informatimago, common-lisp-stat, css-selectors, csv-parser, deflate, deoxybyte-io, djula, docbrowser, drakma, drakma-async, elf, f2cl, flexi-streams, function-cache, gbbopen, gendl, hunchentoot, jsown, let-plus, lisp-matrix, lispbuilder, lisphys, listoflist, lowlight, lredis, more-conditions, portableaserve, postmodern, qmynd, quicksearch, repl-utilities, scriptl, sexml, shelly, slime, spatial-trees, spinneret, trivial-channels, trivial-gray-streams, vgplot, weblocks-stores, weblocks-tree-widget, weblocks-utils, wookie, xarray, yason.

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

I also made a few minor updates to the Quicklisp client and bootstrap code:
  • Fix issue #37 (getting NIL instead of a LispWorks TCP stream)
  • Fix issue #75 (non-deterministic ordering in system-index.txt)
  • Fix issue #76 (exporting a symbol that names nothing from QL-MINITAR)
To get the client update, use (ql:update-client). New installs will automatically get the latest code.


November 2013 Quicklisp dist update now available.

New projects: cl-db3, cl-read-macro-tokens, cl-rethinkdb, cl-tidy, envy, hunchentoot-single-signon, qmynd, sxql, trivial-channels, weblocks-examples, weblocks-utils, wookie.

Updated projects: access, antik, asdf-package-system, ayah-captcha, bknr-datastore, buildapp, caveman, cl-6502, cl-annot, cl-async, cl-async-future, cl-autowrap, cl-cairo2, cl-closure-template, cl-date-time-parser, cl-dbi, cl-emb, cl-fastcgi, cl-fbclient, cl-fgraph, cl-fuse, cl-fuse-meta-fs, cl-gdata, cl-glfw3, cl-gss, cl-html-parse, cl-iconv, cl-indeterminism, cl-launch, cl-memcached, cl-messagepack, cl-oauth, cl-parser-combinators, cl-paymill, cl-pdf, cl-randist, cl-secure-read, cl-slice, cl-spark, cl-tuples, clack, clfswm, closer-mop, clsql-fluid, clsql-helper, com.informatimago, common-lisp-stat, commonqt, conduit-packages, contextl, daemon, drakma, dynamic-collect, elf, esrap-peg, fare-quasiquote, fare-utils, fiveam, gbbopen, graph, gsll, hu.dwim.perec, hu.dwim.rdbms, hu.dwim.stefil, hu.dwim.util, hu.dwim.walker, hunchentoot, inferior-shell, inotify, l-math, letrec, lisp-interface-library, lisphys, local-time, lparallel, lquery, lw-compat, macroexpand-dammit, memoize, mgl, mixalot, ningle, open-vrp, opticl, pooler, postmodern, pzmq, quicksearch, readable, repl-utilities, restas, rfc2109, sb-fastcgi, series, shelly, simple-currency, slime, smackjack, snappy, snmp, spatial-trees, spinneret, stmx, string-case, tagger, uiop, vgplot, weblocks, weblocks-stores, weblocks-tree-widget.

Removed projects: xcvb.

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



Forks and Quicklisp

Each project in Quicklisp is drawn from a particular upstream source. For example, clsql comes from http://git.b9.com/clsql.git, vecto comes from http://xach.com/lisp/vecto.tgz, and alexandria comes from git://common-lisp.net/projects/alexandria/alexandria.git.

This information is tracked in a project on github.

If you find a bug in a project, you can report the bug to the maintainer and wait for them to fix it. After it's fixed, the next release of Quicklisp will include the fixed version. (If you're extra-nice, you can submit a patch along with a bug report to get it fixed more quickly.) That doesn't require any intervention or changes in Quicklisp.

What if the maintainer does not fix the problem? There could be a number of reasons for this, including a lack of time, lack of interest, missed communication, etc. The situation might be temporary or permanent. In some cases, the maintainer is unreachable and the project is effectively abandoned. Whatever the case, it may be time for a new maintainer and home for the project. If there is a new home for the project, Quicklisp's tracking information must be updated.

I prefer information about this change to come from the original maintainer. That is, I do not really like to get emails like this:
Hello, the fooble project has a bug that breaks the barble project. Please use my fixed version at ...
I would much rather get an email like this:
Hello, I created the fooble project but will not be working on it any more. The new maintainer is making updates in a new repo at ...
This is next best:
Hello, I contacted the original maintainer of the fooble project and have agreed to become the new maintainer. The new repo is at ...
This isn't feasible if the original maintainer is unavailable or unresponsive for a long period of time. But I would like to see an effort to make this kind of transition before updating Quicklisp. So this kind of email is third best:
Hello, I tried to contact the original maintainer of the fooble project but haven't heard anything back in months. I would like to be the new maintainer and the new repo, with fixes, is at ...

update pjb brings up an important point in a comment: A fork of a project is perfectly fine if given a new name!


October 2013 Quicklisp dist update now available

New projects: asdf-package-system, ayah-captcha, cl-binaural, cl-fgraph, cl-larval, cl-ply, cl-server-manager, cl-spark, curry-compose-reader-macros, drakma-async, draw-cons-tree, filtered-functions, graph, lisphys, mailbox, map-set, oneliner, pooler, readable, simple-currency, smackjack, snappy, spellcheck, tagger.

Updated projects: algebraic-data-library, antik, bt-semaphore, buildnode, caveman, city-hash, cl+ssl, cl-6502, cl-annot, cl-async, cl-async-future, cl-autowrap, cl-bencode, cl-cairo2, cl-closure-template, cl-css, cl-curlex, cl-data-format-validation, cl-dbi, cl-decimals, cl-dot, cl-epmd, cl-erlang-term, cl-fbclient, cl-gdata, cl-grace, cl-gss, cl-iconv, cl-jpeg, cl-markup, cl-memcached, cl-mongo, cl-mssql, cl-opengl, cl-parser-combinators, cl-paymill, cl-portaudio, cl-smtp, cl-test-more, cl-twitter, clack, cleric, clfswm, clinch, closer-mop, clsql-helper, clx, coleslaw, com.google.base, com.informatimago, commonqt, conduit-packages, dartsclhashtree, declt, eos, esrap, external-program, f2cl, firephp, gbbopen, gettext, hh-web, http-parse, lisp-gflags, lisp-interface-library, lisp-unit, log4cl, lparallel, lquery, macroexpand-dammit, marching-cubes, memoize, nibbles, opticl, optima, periods, postmodern, protobuf, py-configparser, quicksearch, rcl, repl-utilities, restas, retrospectiff, shadchen, shelly, sip-hash, slime, stmx, string-case, swank-client, swank-crew, trivial-gray-streams, trivial-ldap, trivial-tco, uiop, vgplot, weblocks, weblocks-stores, weblocks-tree-widget.

Removed projects: weblocks-utils.

I have reverted macroexpand-dammit to its original source, from John Fremlin. Hopefully that will clear up some recent problems.


Wish list: parallel fetching in Quicklisp Controller

Fetching updates for all the projects in Quicklisp takes a long time. For each project it does a "git pull" or "svn update" or equivalent, depending on how the project is managed. It does this one at a time, serially.

There's no reason it couldn't do more than one update at a time. An ideal system would fetch some of the projects in parallel, taking care not to fetch multiple projects from the same site at a time. For example, there are dozens and dozens of github-hosted projects, but the Quicklisp controller should only have one github connection open at a time. Same with common-lisp.net, dwim.hu, bitbucket, and the same for other sites that host multiple projects.

It's possible that lparallel or lfarm could help with this task.

Are you up for adding this feature to quicklisp-controller? Hacks and glory await!

update Orivej Desh has done it! Thanks Orivej!


Quicklisp Controller source now available

Quicklisp Controller, the software I use to create Quicklisp dists, is now on github. It has modest documentation, and isn't really in a state that anyone could casually pick up and use, but it's now available.

I meant to do this last year after my talk at the Boston Lisp Meeting, but procrastinated. No longer. Feel free to check it out.

There's also a smaller, weirder program I use to upload the dist to Amazon: quicklisp-dist.


August 2013 dist update now available

New projects: cl-autowrap, cl-date-time-parser, cl-ledger, cl-paymill, cl-string-match, epigraph, trivial-tco, vgplot.

Updated projects: access, asdf-dependency-grovel, bt-semaphore, cl-6502, cl-async, cl-bencode, cl-cairo2, cl-enchant, cl-fbclient, cl-gendoc, cl-grace, cl-gss, cl-html-parse, cl-opengl, cl-redis, clfswm, closer-mop, clsql-helper, clws, coleslaw, com.informatimago, common-lisp-stat, commonqt, css-selectors, diff, esrap, exscribe, fs-watcher, gbbopen, gendl, hu.dwim.debug, hu.dwim.def, hu.dwim.perec, hu.dwim.quasi-quote, hu.dwim.stefil, hunchentoot, lfarm, lisp-executable, lisp-unit, lquery, macroexpand-dammit, optima, quicksearch, rfc3339-timestamp, shelly, simple-date-time, spinneret, stmx, swank-crew, uiop, uuid, weblocks, weblocks-utils.

Renamed projects: cl-hctsmsl has been renamed hctsmsl.

I built this dist with ASDF 3. In the near future, Quicklisp will provide ASDF 3 on systems where it is not present. Please let me know if you have any trouble loading anything.

If you'd like to search for useful Quicklisp libraries, I encourage you to give Quickdocs a try!


July 2013 Quicklisp dist update now available

New projects: bt-semaphore, cl-dsl, cl-epmd, cl-glfw3, cl-hctsmsl, cl-indeterminism, consix, fs-watcher, lquery, quicksearch, quickutil, towers, weblocks-tree-widget.

Updated projects: advanced-readtable, antik, buildapp, caveman, cl-6502, cl-algebraic-data-type, cl-async-future, cl-closure-template, cl-curlex, cl-data-format-validation, cl-decimals, cl-devil, cl-enchant, cl-erlang-term, cl-fad, cl-fbclient, cl-generic-arithmetic, cl-gss, cl-ltsv, cl-mongo, cl-mssql, cl-murmurhash, cl-openal, cl-protobufs, cl-sanitize, cl-twitter, clack, cleric, clinch, closer-mop, clsql-helper, clsql-orm, colorize, com.informatimago, commonqt, dartsclhashtree, dbus, djula, do-urlencode, docbrowser, drakma, elf, esrap, garbage-pools, gbbopen, gendl, inferior-shell, inotify, lfarm, local-time, log4cl, lparallel, lredis, marshal, new-op, nst, osicat, postmodern, pzmq, restas, rfc2388, rutils, salza2, shadchen, shelly, slime, spinneret, stmx, stringprep, thnappy, uiop, usocket, utilities.print-items, vecto, weblocks, weblocks-stores, weblocks-utils, wuwei, zpb-ttf, zs3.

Removed projects: cl-seek-project.


Top 100 downloads for May, 2013

Here are the top 100 project downloads for May, 2013:
   1971 alexandria
   1642 cffi
   1546 babel
   1523 trivial-features
   1319 trivial-gray-streams
   1274 slime
   1259 cl-ppcre
   1218 trivial-garbage
   1144 cl+ssl
   1058 bordeaux-threads
    972 usocket
    970 flexi-streams
    933 cl-fad
    883 chunga
    806 md5
    794 cl-base64
    766 quicklisp-slime-helper
    756 closer-mop
    711 hunchentoot
    653 drakma
    619 rfc2388
    590 nibbles
    579 iterate
    530 ironclad
    524 clsql
    523 puri
    499 trivial-backtrace
    447 uffi
    424 cl-who
    403 split-sequence
    330 anaphora
    322 named-readtables
    319 salza2
    315 lispbuilder
    296 metabang-bind
    295 cl-vectors
    293 uuid
    286 clack
    285 postmodern
    284 cl-opengl
    280 local-time
    268 trivial-utf-8
    261 clx
    258 zpng
    244 cl-json
    236 cl-smtp
    231 fare-utils
    226 zpb-ttf
    225 parse-number
    224 cl-clon
    223 gbbopen
    221 yason
    221 restas
    218 vecto
    216 cl-cairo2
    208 cl-closure-template
    190 weblocks
    189 parenscript
    189 cl-annot
    188 osicat
    188 cxml
    183 closure-common
    181 optima
    176 trivial-shell
    173 lparallel
    172 esrap
    171 clfswm
    169 cl-unicode
    169 cl-syntax
    169 cl-csv
    166 html-template
    161 trivial-types
    159 lisp-unit
    158 commonqt
    153 metatilities-base
    152 let-plus
    151 bknr-datastore
    150 mcclim
    150 hu.dwim.asdf
    149 cl-routes
    147 portableaserve
    146 contextl
    146 cl-store
    143 com.informatimago
    139 quickproject
    139 asdf-system-connections
    135 ieee-floats
    133 cl-project
    130 data-sift
    130 cl-marshal
    130 caveman
    129 linedit
    129 gsll
    129 antik
    128 cl-utilities
    127 hu.dwim.util
    123 ltk
    121 plokami
    121 f2cl
    120 cl-containers


June Quicklisp dist update available

I was lazy busy enough in May that I failed to make a release. Sorry about that. I made the June release on the 15th, but only now got around to announcing it. So, here are the changes:

New projects: big-string, cl-css, cl-curlex, cl-enchant, cl-geoip, cl-performance-tuning-helper, cl-tcod, cl-template, clache, clinch, clite, clobber, delorean, generators, gettext, inner-conditional, lowlight, new-op, petit.package-utils, policy-cond, pretty-function, rectangle-packing, stmx, track-best, treedb, utilities.print-items, weblocks-stores, weblocks-utils.

Updated projects: 3bmd, antik, array-operations, asdf-finalizers, asdf-project-helper, backports, binary-types, bordeaux-threads, buildnode, cffi, chronicity, cl-6502, cl-algebraic-data-type, cl-async, cl-async-future, cl-cairo2, cl-data-format-validation, cl-dbi, cl-decimals, cl-dot, cl-freetype2, cl-general-accumulator, cl-geocode, cl-glfw, cl-gss, cl-html5-parser, cl-iconv, cl-libxml2, cl-murmurhash, cl-num-utils, cl-openal, cl-prime-maker, cl-protobufs, cl-quakeinfo, cl-rrt, cl-seek-project, cl-selenium, cl-skip-list, cl-slice, cl-tulip-graph, clack, clfswm, closer-mop, clpython, clsql-orm, coleslaw, colorize, com.informatimago, commonqt, css-selectors, dartsclhashtree, defmacro-enhance, djula, doplus, dynamic-collect, fare-mop, fare-utils, fiveam, gbbopen, gendl, gsll, http-parse, hu.dwim.delico, hu.dwim.util, hu.dwim.walker, hunchentoot, intercom, lisp-gflags, lisp-interface-library, lisp-unit, lla, local-time, log4cl, lparallel, make-hash, message-oo, mime4cl, montezuma, more-conditions, mtlisp, optima, pzmq, query-fs, rfc2109, romreader, sclf, sip-hash, slime, spinneret, stp-query, stringprep, toadstool, uiop, weblocks, yaclanapht.

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

If this update breaks any of your software, see Going back in (dist) time.


What's new in Quicklisp this month?

Lisp hero Ben Hyde has done me a big favor and summarized what the new projects in Quicklisp this month are all about.


April 2013 Quicklisp dist update now available

New projects: cl-arff-parser, cl-bayesnet, cl-libpuzzle, cl-one-time-passwords, cl-rrt, cl-secure-read, function-cache, gendl, sha3, trivial-raw-io, yaclanapht.

Updated projects: access, asdf-finalizers, binary-types, binomial-heap, bk-tree, bknr-datastore, buildnode, caramel, cffi, chunga, city-hash, cl+ssl, cl-6502, cl-async, cl-async-future, cl-base32, cl-cairo2, cl-closure-template, cl-csv, cl-decimals, cl-erlang-term, cl-factoring, cl-general-accumulator, cl-gss, cl-i18n, cl-inotify, cl-l10n, cl-libevent2, cl-libxml2, cl-murmurhash, cl-mustache, cl-oauth, cl-pdf, cl-ppcre, cl-protobufs, cl-random, cl-sanitize, cl-seek-project, cl-slice, cl-store, cl-typesetting, clack, cleric, clfswm, closer-mop, clpython, clsql, clsql-helper, codata-recommended-values, coleslaw, collectors, com.google.base, common-lisp-stat, commonqt, css-selectors, doplus, drakma, elf, esrap, f2cl, gbbopen, green-threads, gtk-cffi, ht-simple-ajax, hu.dwim.computed-class, hunchentoot, hyperobject, inotify, kmrcl, lfarm, lift, lisp-interface-library, lisp-unit, lla, log4cl, lparallel, mgl, more-conditions, optima, patron, periods, pileup, plokami, portableaserve, postmodern, rcl, repl-utilities, restas, sb-fastcgi, single-threaded-ccl, sip-hash, slime, temporary-file, trivial-gray-streams, trivial-ldap, twfy, uiop, umlisp, weblocks, xml.location.

Removed projects: genworks-gdl (renamed to "gendl"), printf (depends on smug), pubmed (repo gone), smug (withdrawn per maintainer request).


Updates coming soon

I hope to make a new dist update tomorrow, the 7th of April. In general, I like to make new releases on the first weekend of every month.

I haven't been announcing the past few updates because I wanted to take advantage of a new web service to do so. But development on that service has stalled, so I'll announce tomorrow's update as I usually do.

On an unrelated topic, if you're making a new library that's a CFFI wrapper around a C library, please explain in your README or description what the original C library is for. I've seen a lot of libraries lately that look like this: "This is cl-fribble, a CL wrapper around libfribble." But there's no indication of what libfribble does or why someone would want to use a CL wrapper for it.


Using Quicklisp in interesting ways

Here are a few links with helpful information about using Quicklisp in interesting ways:

I have my own system for fetching and using Quicklisp for my deployable projects, but I haven't refined it enough to write about it yet. How are you using Quicklisp to do neat stuff?


January 2013 dist update now available

New projects: asdf-driver, cl-gambol, cl-mathstats, cl-parallel, cl-randist, cl-rrd, cl-web-crawler, clnuplot, clunit, def-symbol-readmacro, esrap-peg, jenkins, local-package-aliases, marshal, message-oo, read-csv, trivial-octet-streams, xml.location.

Updated projects: access, alexandria, array-operations, asdf-encodings, asdf-utils, cffi-objects, chipz, cl+ssl, cl-6502, cl-abstract-classes, cl-annot, cl-async, cl-cairo2, cl-closure-template, cl-colors, cl-csv, cl-dbi, cl-docutils, cl-enumeration, cl-fastcgi, cl-fbclient, cl-gearman, cl-haml, cl-libevent2, cl-mongo-id, cl-murmurhash, cl-mustache, cl-project, cl-protobufs, cl-s3, cl-sentiment, cl-test-more, cl-unification, clack, clazy, cleric, clfswm, closer-mop, clpython, clsql, clsql-helper, coleslaw, com.informatimago, command-line-arguments, common-lisp-stat, commonqt, data-sift, de.setf.wilbur, defstar, documentation-template, esrap, exscribe, ext-blog, fare-matcher, fare-mop, fare-utils, fast-io, folio, fset, gbbopen, generic-sequences, genworks-gdl, glop, green-threads, gtk-cffi, inferior-shell, ironclad, iterate, let-plus, lisp-executable, lisp-interface-library, lparallel, m2cl, metabang-bind, minheap, nibbles, odd-streams, portableaserve, restas, restas-directory-publisher, rpm, s-base64, s-http-client, s-http-server, s-sysdeps, s-utils, sb-fastcgi, scribble, series, slime, stringprep, trivial-garbage, trivial-ldap, usocket, uuid, weblocks.

Removed projects: lambda-lift.

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