2012-02-08

February dist update now available


New projects: city-hash, cl-dbi, cl-gdata, cl-portaudio, cl-variates, clesh, clhs, dlist, monkeylib-json, monkeylib-parser, napa-fft3, parseltongue, persistent-tables, random-access-lists, shadchen, swank-client, toadstool, trivial-dump-core.

Updated projects: alexandria, babel, blackthorn-engine, blackthorn-engine-3d, caveman, chipz, cl-2d, cl-azure, cl-cairo2, cl-csv, cl-decimals, cl-dropbox, cl-enumeration, cl-i18n, cl-libxml2, cl-llvm, cl-mongo, cl-mssql, cl-murmurhash, cl-mysql, cl-num-utils, cl-oauth, cl-project, cl-random, cl-redis, cl-scribd, cl-twitter, cl-unification, cl-yahoo-finance, clack, clazy, clfswm, closer-mop, collectors, com.informatimago, com.informatimago.rdp, css-lite, drakma, ext-blog, gbbopen, gtfl, gtk-cffi, ht-simple-ajax, hu.dwim.util, js, latex-table, lift, linedit, lisp-on-lines, lla, lparallel, manifest, metabang-bind, metatilities-base, misc-extensions, mixalot, monkeylib-markup, monkeylib-markup-html, monkeylib-pathnames, monkeylib-prose-diff, monkeylib-utilities, parenscript, perfpiece, png-read, priority-queue, protobuf, quickproject, rutils, shuffletron, slime, toot, yason, zs3.

Removed projects: monkeylib-foo.

2012-01-09

Recent Quicklisp bugs

My CDB changes to the Quicklisp clients caused a few subtle problems.

First, the system CDB file was built with incorrect keys. That could lead to a spurious SYSTEM-NOT-FOUND error when trying to use ql:quickload something.

Second, the CDB files were not cleared out when updating dist metadata. The CDB indexes would point to old systems and software even after everything was meant to be updated.

If you run into a Quicklisp problem that seems like it might be related to these issues, here's a way to fix things:

  1. (ql:update-client) to make sure you have the latest client
  2. Restart your Lisp
  3. (in-package #:ql-dist-user)
  4. (map nil 'delete-file (directory (relative-to (dist "quicklisp") "*.cdb")))
At that point the CDB files should automatically regenerate with the correct data, and will be properly updated during the next dist update.

Sorry for the hassle!

2012-01-08

January client and dist updates

There's an updated Quicklisp client available now. This version fixes up several problems with the support for looking up metadata in CDB files. To get the new client, use (ql:update-client).

I've also updated the software available in Quicklisp. To get the update, use (ql:update-dist "quicklisp").

New projects:

  • bitfield-schema - SIMPLE-BIT-VECTOR low level routines and convenient eDSL over it.
  • cl-bloom - Simple Bloom filters with efficient hashing.
  • cl-dropbox - Common Lisp Client for the Dropbox API.
  • cl-gpu
  • cl-murmurhash - 32-bit version of MurmurHash3.
  • cl-rsvg2 - Bindings for RSVG Library.
  • cl-sam
  • cl-scribd - Commong Lisp Client for the Scribd API.
  • cl-yahoo-finance - CL interface to Yahoo's finance API
  • computable-reals - Computable real numbers.
  • deoxybyte-unix
  • do-urlencode - Percent Encoding (aka URL Encoding) library
  • ext-blog - A BLOG engine which supports custom theme
  • image - An image-drawing with some drawing primitives
  • kl-verify - A library to generate simple verify code picture
  • lisp-executable - Library for defining and creating executables that can be called from the Unix shell.
  • pettomato-deque - A set of double-ended queue implementations.
  • pettomato-indexed-priority-queue - A binary heap based priority queue implementation with efficient support for find, update, replace, and delete operations.
  • priority-queue - A priority queue for Common Lisp.
  • restas.file-publisher - A restas module which can publish static files
  • stumpwm - A tiling, keyboard driven window manager
Updated projects: 3b-swf, 3bil, 3bmd, babel, bknr-datastore, cl-azure, cl-csv, cl-data-format-validation, cl-docutils, cl-fluidinfo, cl-llvm, cl-locale, cl-marshal, cl-oauth, cl-opengl, cl-quickcheck, cl-stomp, cl-string-complete, clack, clfswm, closer-mop, clpmr, clsql, cobstor, collectors, data-table, deoxybyte-gzip, deoxybyte-io, deoxybyte-systems, diff, doplus, fare-utils, gbbopen, gtk-cffi, hu.dwim.asdf, hu.dwim.delico, hu.dwim.logger, hu.dwim.perec, hu.dwim.rdbms, hu.dwim.reiterate, hu.dwim.stefil, hu.dwim.syntax-sugar, hu.dwim.util, hu.dwim.walker, idna, let-plus, lhstats, linedit, lisp-unit, lla, manifest, mime4cl, mixalot, monkeylib-html, relational-objects-for-lisp, restas, restas-directory-publisher, rfc2388, sclf, shuffletron, slime, static-vectors, stem, thread-pool, toot, trivial-features, trivial-garbage, uffi, wuwei, xcvb, yason, zcdb.

Removed projects: cl-bson-tim.

If you have a project that is available in Quicklisp, please check your system definition. Make sure it has useful metadata in it, like :description, :author, and :license. Several systems have empty description strings; for me, that's worse than a missing description.

SLIME has been updated with a new wire protocol. Please report any SLIME issues to the SLIME maintainers.

If you have any problems getting or using Quicklisp updates, let me know by email or on the Quicklisp mailing list.

2012-01-03

Speeding up system info

Quicklisp uses two text files for information about project releases (releases.txt) and systems (systems.txt). Whenever information about a system was needed (for example, where its system file can be found), both files were loaded completely, from scratch.

I made it that way because it was pretty easy. People immediately noticed that it was also pretty slow, especially when using (asdf:load-system "...") instead of (ql:quickload "..."). The penalty for frequent loading and reloading of the metadata got worse as the number of Quicklisp systems grew.

Today I released a client update that can load metadata from a fast on-disk hash table, a CDB file. The big flat files are converted to CDB once, as needed, and thereafter getting metadata is super-speedy. On my laptop, the improvement for lookups is about 100x; your results will depend on the speed of your disk.

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

If this change causes you any trouble, please let me know via the Quicklisp mailing list.

UPDATE: This change causes trouble. I'm going to put out a fix as soon as I can. Please don't update; if you did update, you can revert with something like this:

    cd ~/quicklisp/
    wget http://beta.quicklisp.org/quickstart/quicklisp-2011111500.tgz
    tar xzvf quicklisp-2011111500.tgz
    rm -rf ~/.cache/common-lisp/

UPDATE 2: I can't reproduce the trouble I saw earlier. If you run into trouble, let me know. I really need cases I can reproduce to fix things.

UPDATE 3: Thanks to Mike Clarke, I found a serious problem with the CDB scheme. A fix will be available within a day or two.

2011-12-05

Project download stats for November

Here are some stats for the top 50 project downloads in November:
   1950 alexandria
   1203 slime
   1126 cl+ssl
   1033 babel
    936 usocket
    907 trivial-features
    904 rfc2388
    902 bordeaux-threads
    899 hunchentoot
    889 cffi
    849 trivial-garbage
    828 closer-mop
    820 trivial-gray-streams
    789 cl-ppcre
    703 flexi-streams
    665 cl-fad
    620 iterate
    612 cl-base64
    591 quicklisp-slime-helper
    579 chunga
    499 puri
    488 md5
    480 trivial-backtrace
    470 drakma
    426 split-sequence
    412 metatilities-base
    365 anaphora
    340 cl-who
    327 fare-utils
    313 salza2
    297 cl-json
    292 metabang-bind
    280 uffi
    273 named-readtables
    257 clsql
    242 parenscript
    237 zpb-ttf
    230 asdf-system-connections
    227 zpng
    210 postmodern
    208 fare-matcher
    201 cl-vectors
    200 ironclad
    196 vecto
    190 cl-opengl
    189 clx
    182 arnesi
    169 osicat
    168 parse-number
    167 cl-containers
This report only shows "raw" download figures. It does not distinguish between projects downloaded directly by user request and projects downloaded automatically as dependencies.

2011-12-03

December Quicklisp dist update now available

There's a new Quicklisp dist update for December. You can get it by evaluating (ql:update-dist "quicklisp"). Here's the breakdown of the changes this month:

New projects: access, cl-adt, cl-fluidinfo, cl-inotify, cl-kyoto-cabinet, cl-locale, cl-marshal, cl-package-locks, cl-string-complete, de.setf.wilbur, lambda-reader, lhstats, macroexpand-dammit, manifest, monkeylib-html, monkeylib-text-languages, monkeylib-text-output, myweb, pal, perfpiece, toot.

Updated projects: able, alexandria, buildapp, caveman, cl-annot, cl-anonfun, cl-closure-template, cl-csv, cl-data-format-validation, cl-generic-arithmetic, cl-mongo, cl-num-utils, cl-odesk, cl-random, cl-rcfiles, cl-redis, cl-sanitize, cl-syntax, cl-tk, clack, closer-mop, clsql, clx, com.google.base, data-table, doplus, exscribe, f2cl, fare-csv, fare-matcher, fare-mop, fare-utils, folio, fset, gbbopen, hu.dwim.syntax-sugar, hunchentoot, idna, let-plus, linedit, lisp-gflags, lla, lparallel, meta, misc-extensions, monkeylib-binary-data, monkeylib-foo, monkeylib-macro-utilities, monkeylib-markup, monkeylib-markup-html, monkeylib-pathnames, monkeylib-prose-diff, monkeylib-utilities, opticl, parenscript-classic, parse-js, place-utils, postmodern, protobuf, quickproject, restas, rutils, salza2, scribble, skippy, st-json, static-vectors, talcl, trivial-types, vecto, wu-decimal, wuwei, xcvb, yason, zcdb, zpb-exif, zpb-ttf, zpng, zs3.

Removed projects: ch-util, clg, loopless, weblocks.

A bit more on a few of the removed projects: ch-util is Cyrus Harmon's personal utilities library. He updated his other projects to use Alexandria instead. That means there are now only 12 personal utility libraries in Quicklisp instead of 13. That's a trend I hope to see continue. clg is a binding to Gtk+, but in fact it never quite built, and this month I took it out entirely. loopless was removed at the request of the author. And weblocks no longer builds with Hunchentoot 1.2.x. Despite several days of trying to find someone, anyone to comment on how it might get fixed, I didn't hear any feedback. Here's hoping it's just a temporary communication breakdown and weblocks will be available in some future Quicklisp dist update.

I did not include the very latest version of SLIME from CVS this month. There were major changes in SLIME's communication mechanism this month, and there was a flurry of activity just before today's release, and I didn't want to risk bundling it up at a bad time.

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

Enjoy!

2011-12-01

Hunchentoot and Weblocks

Hunchentoot development has picked up after a lengthy hiatus, and some of the recent changes have affected other projects. For the most part, projects have been adapted to work, but there's a big exception: Weblocks.

Weblocks does not build with Hunchentoot 1.2.2 because it references hunchentoot:*default-handler*, which doesn't exist any more. I reported the problem on the mailing list, but haven't gotten a response yet.

Do you use Weblocks? Can you help adapt it to the new Hunchentoot? If it isn't updated sometime soon, I won't be able to include it in Quicklisp in the future. (You can always go back in time, if you have to.)