Camille Troillard writes:
> I have not been convinced Quicklisp would be useful for my needs at
> least in its current state. My biggest problem with Quicklisp is that
> you can't be sure when a component will be updated. This is important
> for reliability reasons, if a library is used in several projects, you
> want to keep the one that worked with your code until you decide to
> update your work.
Quicklisp does actually have provisions to lock in a set of consistent
versions, but unfortunately it's poorly documented. The only way to know
about it is from reading the source code, which is not an acceptable
form of documentation IMO.
Quicklisp will never update libraries on its own. It must always be
triggered by (ql:update-dist "quicklisp") or (ql:update-all-dists).
What is more likely to happen is that different installations of
Quicklisp have differing sets of libraries; by default, Quicklisp
installation will grab the latest dist. So you might have computer A
with quicklisp dist "2012-08-11" from when you started a project in
August, but computer B has quicklisp dist version "2012-12-23" with
newer libraries, and computer C has an even more recent version
However, you can synchronize which sets of libraries are in use across
multiple computers like so:
Find out which version you want to lock to, by running the following on
the "critical" system:
(ql-dist::canonical-distinfo-url (dist "quicklisp"))
This will yield something like
on the systems which should use the same sets of libraries, use this:
:prompt nil :replace t)
(inhibit-subscription (dist "quicklisp"))
That is one way to ensure that each system with Quicklisp is using the
same set of libraries, and that nothing is updated even if
(ql:update-dist "quicklisp") is called.
I would also like to add a system for exporting a set of
Quicklisp-supplied libraries to a directory structure so they can be
bundled up by some other non-Quicklisp process, e.g. for delivery in an
application, so Quicklisp is not needed at build- or run-time.
There are a number of other things to improve to make this process
smoother. I'm slowly working on them.
Hope this helps,
Lisp Hug - the mailing list for LispWorks users