New projects: cartesian-product-switch, cl-cheshire-cat, cl-grace,
coleslaw, com.clearly-useful.iterator-protocol,
com.clearly-useful.protocols, com.clearly-useful.sequence-protocol,
formlets, glu-tessellate, infix-dollar-reader, lambda-lift, optima,
place-modifiers, pzmq.
Updated projects: [work in progress]
Removed projects: cl-adt, glu-tessellation.
To get this update, use (ql:update-dist "quicklisp").
2012-09-11
2012-08-15
Library problems and a partial fix
If you upgraded to the latest Quicklisp dist and tried to load certain libraries, you might find yourself staring at an infinite loop of "Loading asdf..."
This was caused by how Quicklisp handles missing libraries. The general process is something like this:
This was caused by how Quicklisp handles missing libraries. The general process is something like this:
- Try to load library "foo"
- Handle a asdf:missing-dependency error specifying library "bar"
- Load library "bar"
- Go back to step 1
The problem in this case was that the missing library in question was ASDF, but it wasn't a plain old missing dependency; certain libraries now depend on a specific (and very recent) version of ASDF. The condition was in fact of type asdf:missing-dependency-of-version (a subtype of asdf:missing-dependency), and Quicklisp didn't handle it specially. So it would get the error, load ASDF, try again, get the error, load ASDF, try again...forever.
I've just updated the Quicklisp client code to deal with this specific situation properly, and more generally avoid trying to load the same library multiple times. It fixes the problem of the infinite looping (now you get a clear error related to a version dependency problem), and you can get the updated version by calling (ql:update-client) and restarting your session.
Problems remain, though. The required version of ASDF is extremely new, only a month old. It is not available through Quicklisp, and even if your implementation has bundled it, you must make sure to update to the most recent version of your implementation to get it.
Why isn't it available through Quicklisp? ASDF is not a normal library. I can't point Quicklisp at a tarball or git repo and just keep it up to date like other libraries. It's a fundamental part of what Quicklisp does, and I would rather provide (as a last resort) an old, apparently-stable version and let implementations provide newer versions if they are needed for critical bug fixes. I do not want to see projects depend on ASDF as an evolving bucket of utility functions. In fact, I'd like to see ASDF go away, replaced by something better, and anything that makes libraries and applications depend on ASDF more rather than less is, to me, a bad thing. (This includes like asdf:system-relative-pathname in your Lisp source code. There are plenty of ways to avoid it.)
Unfortunately, some libraries do use ASDF as a utility library, and they require a very recent version of ASDF. For some people, code that worked in July will stop working until they jump through some unpleasant hoops. I hate to see that. Quicklisp is about eliminating those hoops.
I'll try to figure out the best way forward. I hope it will involve changes to how ASDF is used by some libraries, but it might also involve changes to how Quicklisp provides ASDF updates. I'll keep you posted.
2012-08-11
August 2012 update now available
New projects: Open-VRP, able, arnesi+, asdf-finalizers, asdf-utils, cgn, cl-epoch, cl-fbclient, cl-nxt, clsql-helper, clx-cursor, clx-truetype, daemon, dartsclhashtree, dartsclsequencemetrics, glu-tessellation, letrec, ltk, make-hash, map-bind, mop-utils, romreader, stp-query, submarine, synonyms.
Updated projects: access, asdf-dependency-grovel, asdf-encodings, backports, caveman, cffi-objects, cl-6502, cl-blapack, cl-csv, cl-dbi, cl-docutils, cl-gdata, cl-i18n, cl-llvm, cl-mediawiki, cl-murmurhash, cl-opengl, cl-openstack, cl-permutation, cl-project, cl-protobufs, cl-quickcheck, clack, clfswm, closer-mop, clsql-orm, clx-xkeyboard, com.informatimago, command-line-arguments, conduit-packages, coretest, docbrowser, exscribe, fare-matcher, fare-memoization, fare-utils, floating-point, gbbopen, genworks-gdl, glop, gtk-cffi, hh-web, inferior-shell, lisp-interface-library, lparallel, meta, nibbles, ningle, postmodern, quid-pro-quo, quux-time, repl-utilities, rutils, scribble, sexml, shadchen, sip-hash, slime, symbol-munger, trivial-garbage, uri-template, weblocks, xcvb, zs3.
No projects were removed from this update.
To get the update, use (ql:update-dist "quicklisp").
2012-07-25
Ltk woes
Ltk seems like a fantastic idea. I don't personally use it, but I like that there's a fairly simple and easy option for people who want to make a GUI with Common Lisp.
Unfortunately, it doesn't build on SBCL any more. SBCL exports sb-ext:exit (eventually replacing sb-ext:quit), and a package in Ltk triggers a package lock conflict because of it. I've emailed Peter Herth about the build failure, but a few months have passed and the problem persists.
Does anyone who reads this blog use Ltk? Would you be upset if Ltk is dropped from Quicklisp until the issue is fixed?
Unfortunately, it doesn't build on SBCL any more. SBCL exports sb-ext:exit (eventually replacing sb-ext:quit), and a package in Ltk triggers a package lock conflict because of it. I've emailed Peter Herth about the build failure, but a few months have passed and the problem persists.
Does anyone who reads this blog use Ltk? Would you be upset if Ltk is dropped from Quicklisp until the issue is fixed?
2012-07-09
Version numbers in ASDF system definitions
An ASDF system definition can have a :version option. Only one format is supported: one or more integers separated by dots.
These are valid ASDF system versions: "42", "1.8", "2.0.61". These are invalid ASDF system versions: "v1.0", "2.0b", "2004-08-01", "1.0-SNAPSHOT".
If you load a system with an invalid version string, ASDF gives a warning: WARNING: Invalid version "FOO" for component "bar"
If you want to include a version in your ASDF system, please use a valid format. If your software's versioning can't fit into that kind of format, consider putting it in a different field, like :description.
These are valid ASDF system versions: "42", "1.8", "2.0.61". These are invalid ASDF system versions: "v1.0", "2.0b", "2004-08-01", "1.0-SNAPSHOT".
If you load a system with an invalid version string, ASDF gives a warning: WARNING: Invalid version "FOO" for component "bar"
If you want to include a version in your ASDF system, please use a valid format. If your software's versioning can't fit into that kind of format, consider putting it in a different field, like :description.
2012-07-03
July 2012 update now available
This update took longer than I wanted it to. It's been a really busy summer for non-hacking-related stuff, I had some trouble with ZS3 and Ironclad, and Ltk is broken on the latest SBCL. Those things, and more, kept pushing things further and further back, but I think things are as good as they can be for now.
New: asdf-encodings, backports, cl-6502, cl-factoring, cl-libusb, cl-neo4j, cl-nxt, cl-openstack, cl-permutation, cl-plumbing, cl-primality, cl-protobufs, clx-xkeyboard, coretest, hh-web, lisp-interface-library, parse-float, pythonic-string-reader, recur, single-threaded-ccl, sip-hash.
Updated: bknr-datastore, bordeaux-threads, btrie, caveman, chanl, checkl, cl+ssl, cl-cairo2, cl-clon, cl-csv, cl-data-format-validation, cl-dbi, cl-decimals, cl-docutils, cl-gd, cl-gdata, cl-glfw, cl-haml, cl-launch, cl-murmurhash, cl-project, cl-rmath, cl-test-more, cl-tuples, cl-unicode, cl-yahoo-finance, clack, clfswm, closer-mop, clws, com.informatimago, computable-reals, docbrowser, donuts, esrap, exscribe, external-program, f2cl, fare-utils, fiveam, gbbopen, genworks-gdl, glop, hinge, inferior-shell, ironclad, linedit, lisp-executable, log4cl, lparallel, madeira-port, magicffi, meta, mtlisp, nibbles, opticl, parse-number, postmodern, queues, reader-interception, relational-objects-for-lisp, repl-utilities, restas, rpm, rutils, scribble, sheeple, slime, spinneret, split-sequence, static-vectors, trivial-dump-core, trivial-garbage, weblocks, wuwei, x.fdatatypes, xcvb.
Removed: hh-web-tags.
To get this update, use (ql:update-dist "quicklisp") in your REPL.
Enjoy!
2012-05-31
Boston Lisp Meeting 2012-05-17
Fare took this photo of my Quicklisp presentation at the Boston Lisp Meeting two weeks ago. That's RMS in the background; he asked a topical question about my licensing policy. Fare's entire set is available on Picasa.
I hope to publish the slides and source code soon. Audio recording equipment was present, but I don't know if there will be audio available.
Subscribe to:
Posts (Atom)