2011-11-06
November Quicklisp updates
Survey
I'm conducting a new Quicklisp survey. I'd like to find out the best way to reach the most people when there is Quicklisp news to share. It's one question, so if you can, please go fill it out.
Client Update
There's a new Quicklisp client available. You can get it with (ql:update-client). The new version will take effect after you restart your Lisp.
This client has a feature that I think will be very helpful: any directory created in ~/quicklisp/local-projects/ will be automatically scanned for system files. There's no need to run an additional command to reconfigure ASDF.
For example, if there's a library that isn't part of Quicklisp, you can try it out with something like this in a shell:
$ cd ~/quicklisp/local-projects/
$ git clone git://github.com/xach/format-time.git
And something like this in a REPL:
* (ql:quickload "format-time")
There is no need to update your ASDF source registry or initialize it manually after adding new projects. This should simplify the directions authors can provide to people who want to try their projects.
There are a few things to keep in mind with this new feature:
First, you can't just symlink something into ~/quicklisp/local-projects/; for some Lisps (CLISP, ECL) that works, for others (SBCL, ClozureCL) it doesn't. I hope to eliminate that limitation soon.
Also, only projects created in the top level of the directory are automatically scanned. Directories created or modified below the top level do not trigger an automatic scan. You can initiate a manual scan with (ql:register-local-projects), though.
Finally, projects in ~/quicklisp/local-projects/ take precedence over both systems in the ASDF source registry and systems in Quicklisp. I'm not sure I'll keep that ordering if it causes problems.
This feature is a work in progress, so I appreciate any feedback, positive or negative.
Dist Update
I've updated the Quicklisp dist. You can get the update with (ql:update-dist "quicklisp").
Here's a summary of the changes this month:
New projects: able, asdf-dependency-grovel, autoproject, binascii, cgn, cl-apple-plist, cl-generic-arithmetic, cl-launch, cl-prolog, cl-rmath, cl-tokyo-cabinet, data-sift, deoxybyte-gzip, deoxybyte-io, deoxybyte-systems, deoxybyte-utilities, exscribe, fare-mop, lparallel, queues, text-query, thread.comm.rendezvous, xcvb, xml-emitter.
Updated projects: alexandria, antik, blackthorn-engine-3d, buildnode, caveman, chipz, cl+ssl, cl-2d, cl-closure-template, cl-csv, cl-inflector, cl-langutils, cl-match, cl-mediawiki, cl-num-utils, cl-oauth, cl-odesk, cl-quickcheck, cl-random, cl-scrobbler, cl-stomp, cl-test-more, cl-tuples, cl-twitter, cl-uglify-js, clack, clawk, clfswm, closer-mop, clsql-orm, collectors, com.google.base, command-line-arguments, contextl, css-selectors, data-table, doplus, elf, fare-utils, gbbopen, glop, group-by, gsll, gtk-cffi, hu.dwim.defclass-star, hu.dwim.reiterate, hu.dwim.stefil, hu.dwim.util, hunchentoot, hunchentoot-cgi, latex-table, lisp-gflags, lla, meta, metatilities-base, nibbles, parse-js, plokami, postmodern, protobuf, recursive-regex, restas, restas-directory-publisher, rfc2388, rpc4cl, rutils, screamer, simple-date-time, slime, symbol-munger, talcl, tap-unit-test, trivial-types, uri-template.
Removed projects: cl-webkit, tilde, webfunk.
cl-webkit has been removed because it now requires a version of the webkit library that I haven't been able to test. I hope to restore it next month. tilde has been removed because it's an unnecessary sbcl-only library; SBCL supports "~" in pathnames without any patches now. And webfunk no longer builds with the latest Hunchentoot.
Hunchentoot has a big update this month, the first new release in more than a year. It has a few backwards-incompatible changes. Affected projects in Quicklisp (except for webfunk) have been updated. However, you might find that your own Hunchentoot-using projects are affected by the changes. If that's problematic, you can either avoid updating Quicklisp, or if you've already updated, you can go back to a previous version.
As usual, if you have any questions or comments about Quicklisp updates, feel free to email me or discuss things on the Quicklisp mailing list.
Happy Lisping!
2011-11-03
A word of warning
I will update the Quicklisp dist within a few days. The update will include a fairly major update to Hunchentoot, one that changes the public Hunchentoot API in a few backwards-incompatible ways.
All Quicklisp libraries that depend on Hunchentoot have been updated, if needed, to work with the API changes. However, if you have a private or local project that depends on Hunchentoot, you may find that it needs to be updated to work with the new version.
If, for whatever reason, you don't want to use the new Hunchentoot, you can always use Quicklisp's ability to go back in time to the previous version.
This is the first big backwards-incompatible update of its kind for such a major project, so if you run into problems or have feedback, please let me know. Feel free to email me or contact the Quicklisp mailing list.
All Quicklisp libraries that depend on Hunchentoot have been updated, if needed, to work with the API changes. However, if you have a private or local project that depends on Hunchentoot, you may find that it needs to be updated to work with the new version.
If, for whatever reason, you don't want to use the new Hunchentoot, you can always use Quicklisp's ability to go back in time to the previous version.
This is the first big backwards-incompatible update of its kind for such a major project, so if you run into problems or have feedback, please let me know. Feel free to email me or contact the Quicklisp mailing list.
2011-11-01
Project download statistics
Here are the top 100 Quicklisp downloads for the past three months:
Note that this does not distinguish between projects explicitly requested and projects implicitly fetched to satisfy dependencies.
2131 alexandria 1964 babel 1742 trivial-garbage 1630 slime 1583 usocket 1512 trivial-features 1501 bordeaux-threads 1482 cl-ppcre 1476 cffi 1390 trivial-gray-streams 1386 cl+ssl 1226 closer-mop 1192 rfc2388 1154 flexi-streams 1105 cl-fad 1074 cl-base64 1048 chunga 965 anaphora 953 md5 925 quicklisp-slime-helper 918 puri 910 trivial-backtrace 892 hunchentoot 763 split-sequence 720 cl-json 668 iterate 654 salza2 630 cl-who 613 drakma 612 clsql 606 uffi 596 named-readtables 589 metabang-bind 571 parenscript 543 zpb-ttf 479 metatilities-base 465 weblocks 460 zpng 458 local-time 421 cl-vectors 412 vecto 410 cxml 402 fare-utils 397 fare-matcher 397 cl-opengl 395 ironclad 391 parse-number 376 lispbuilder 375 asdf-system-connections 368 f-underscore 366 cl-containers 365 s-xml 359 clx 358 arnesi 357 osicat 313 closure-common 307 html-template 295 postmodern 294 fiveam 285 mcclim 284 cl-cont 272 moptilities 264 iolib 262 trivial-timeout 254 metatilities 218 kmrcl 217 rucksack 207 quickproject 207 portableaserve 202 cl-utilities 202 closure-html 196 cl-yacc 195 trivial-utf-8 183 clack 181 s-sysdeps 177 cl-annot 175 uuid 173 ltk 172 elephant 171 cl-oauth 165 ieee-floats 164 gsll 163 trivial-shell 162 spatial-trees 162 restas 161 cl-unicode 157 hu.dwim.asdf 153 flexichain 153 cl-gtk2 151 cl-prevalence 148 linedit 148 cl-cairo2 147 cl-routes 146 cl-colors 143 cl-test-more 138 fsbv 133 cl-num-utils 132 lisp-unit 129 cl-modlisp 126 cl-store
Note that this does not distinguish between projects explicitly requested and projects implicitly fetched to satisfy dependencies.
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!
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!
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.
Subscribe to:
Posts (Atom)