2010-12-14
Client update today
To get the update, evaluate (ql:update-client). Please let me know if you run into any trouble with the new code.
2010-12-07
December Quicklisp dist update now available
To get the updated projects, use (ql:update-dist "quicklisp") or (ql:update-all-dists).
I've made three dist releases so far, once per month. The next update will likely take longer than just one month. I will be spending more time adding features to the client and getting it ready to make an official, non-beta release.
Unfortunately, SBCL 1.0.45 and newer have a compiler bug that interferes with building CLX. 1.0.44 does not have the problem; if you want to use CLX or projects based on it (e.g. McCLIM), you should avoid 1.0.45.
Here's a list of new or updated projects; for the full list of projects and systems, see the Quicklisp releases page.
- asdf-install-20101207-git
- cells-20101207-git
- chillax-20101207-git
- clon-1.0b16
- cl-closure-template-20101207-git
- cl-couch-20101207-darcs
- cl-fad-0.6.4
- cl-geocode-20101207-git
- cl-gpu-20101207-git
- cl-gtk2-20101207-git
- cl-iconv-20101207-git
- cl-m4-20101207-git
- cl-mongo-20101207-git
- cl-mssql-0.0.2
- cl-mw-20101207-git
- cl-org-mode-20101207-git
- cl-popen-20101207-git
- cl-prevalence-20101207-hg
- cl-proc-20101207-darcs
- cl-quakeinfo-20101207-git
- cl-quickcheck-20101207-git
- cl-skip-list-20101207-git
- cl-sqlite-20101207-git
- cl-stm-20101207-http
- cl-store-20101207-darcs
- cl-twitter-20101207-git
- cl-uglify-js-20101207-git
- cleric-20101207-git
- clfswm-20101207-svn
- clsql-20101207-git
- commonqt-20101207-git
- csv-parser-20101207-http
- curly-20101207-darcs
- deflate-20101207-git
- fare-utils-20101207-git
- folio-20101207-git
- fsbv-20101207-git
- gbbopen-20101207-svn
- glaw-20101207-git
- glop-20101207-git
- gsd-20101207-git
- gsll-20101207-git
- hemlock-20101207-git
- hu.dwim.asdf-20101207-darcs
- hu.dwim.def-20101207-darcs
- hu.dwim.serializer-20101207-darcs
- hu.dwim.stefil-20101207-darcs
- hu.dwim.syntax-sugar-20101207-darcs
- hu.dwim.util-20101207-darcs
- inotify-20101207-git
- js-v0.10.11-git
- latex-table-20101207-git
- lispbuilder-20101207-svn
- loopless-20101207-git
- manardb-20101207-git
- monkeylib-foo-20101207-git
- monkeylib-macro-utilities-20101207-git
- monkeylib-markup-html-20101207-git
- monkeylib-markup-20101207-git
- monkeylib-pathnames-20101207-git
- monkeylib-prose-diff-20101207-git
- monkeylib-test-framework-20101207-git
- monkeylib-utilities-20101207-git
- parse-js-20101207-git
- pileup-20101207-git
- plokami-20101207-git
- postmodern-20101207-git
- prepl-20101207-git
- protobuf-20101207-git
- proton-20101207-git
- relational-objects-for-lisp-20101207-darcs
- restas-directory-publisher-20101207-git
- restas-20101207-git
- rpc4cl-0.3.1
- sb-vector-io-20101207-git
- screamer-20101207-git
- sequence-iterators-20101207-darcs
- slime-20101207-cvs
- spartns-1.4.3
- st-json-20101207-git
- sw-mvc-20101207-git
- symbolicweb-20101207-git
- testbild-20101207-git
- weblocks-20101207-hg
If you have any questions or comments, please email me or contact the Quicklisp mailing list.
2010-12-04
Quicklisp downtime today (December 4)
Today I will make the transition from my personal Amazon account to a new, Quicklisp-only Amazon account. With that transition, it will be easier to use your many generous donations (thank you, Quicklisp users!) specifically for Quicklisp-related expenses.
The transition also means that the availability of beta.quicklisp.org might be interrupted over the next day or so. The quickstart file, quicklisp.lisp, will be unavailable for bootstrapping, and you will not be able to fetch any project archive files for installation.
Sorry for any inconvenience it causes. I started Quicklisp in part because website and version control outages made it hard to get Lisp software in a predictable, reliable way. I hope this short period of transition will be the last Quicklisp outage for a long time.
2010-11-23
New projects in the next dist update
Yes, asdf-install.
2010-11-17
The devil's guide to Quicklisp projects
Stuart Overton asked me "How can I make my projects Quicklisp-friendly?"
Here are some answers to the opposite question: How can you make your projects Quicklisp-hostile?
- Use a name that someone else is already using
- Use SourceForge
- Require extra steps to build, like running a shell script, make, ./configure, etc. outside of the asdf infrastructure
- Require libraries (especially foreign libraries) that are hard to find, hard to build, or both
- Bundle third-party libraries with your project; make sure they are either several versions out of date or locally modified in incompatible ways (stealth forking!)
- Make symlinks a critical part of the build process
- Your project name (cl-foo) should differ from its primary system name (foo, or even better, quux)
- System names should not be boring, so try using mixed-case or exotic characters for your system file names
- Make sure there are multiple forks of the project on github, the original one isn't the canonical one any more
- Depend on your own personal utility library, which is clearly better in many respects than the twelve other utility libraries already available
- Include none of README, INSTALL, LICENSE, COPYING
- Use your implementation's MOP and FFI directly instead of Closer to MOP and CFFI
- Make releases at most once or twice per decade
- Make your system definition be just a thin loader for your complicated loader script, which uses none of the defsystem's infrastructure or configuration
2010-11-14
"Old" notes
So here's how QuickLisp could work.
- archives (tarballs) are built from version control or release
tarballs on a given date, probably the first day of the month
- they are uploaded to
http://a.quicklisp.org/source/<sha1>/<system>.tgz
-
e.g. http://a.quicklisp.org/source/53354a603e4dfa58a62f53ac871d62315fb9cf20/vecto.tgz
- nah, just go with a date:
- http://a.quicklisp.org/source/2010-05/vecto.tgz
- a dependency file shows the system dependencies:
- vecto: cl-vectors zpng zpb-ttf
- ...
- an index file maps system names to URLs:
- vecto: http://a.quicklisp.org/2010-05/vecto.tgz
- zpng: http://a.quicklisp.org/2010-05/zpng.tgz
- there are default index/dependency files at
http://a.quicklisp.org/index.txt and
http://a.quicklisp.org/dependencies.txt
- publishing the latest index creates two files: the default index
files, and year-month/index.txt year-month/dependencies.txt
- so there's a metaindex.txt that points to previous versions of
the index files
- you can choose previous indexes if they work well for you, or if
there's some kind of glitch with the defaults
- no archive file is ever deleted
- authors can provide their own system map and dependency files, so
if jimbob wants to hook into the infrastructure, he provides an
index file that points to his package, a dependency file that
explains the dependencies, and the tarball itself. If there are a
number of dependencies that aren't part of the main quicklisp
archive, they can all be listed.
- some way of prioritizing conflicting information...
- metadata for archives: origin (git, darcs, cvs, svn, etc) and date
fetched, system files contained within, etc
Note that I hadn't decided against WackyCaps for the name yet! The official Quicklisp name now is "Quicklisp", not "QuickLisp."
2010-11-13
Client update, ASDF updated to 2.010
- CMUCL rename-file behavior worked-around
- Windows CCL init file specified more correctly
- HTTP User-Agent string reflects the implementation and version better
2010-11-11
Volunteer moderators needed
Your duty would be to check your mail for moderation notices and allow any non-spam messages through via the Google Groups moderation web interface. This isn't an editorial position - anything that isn't obvious spam should be allowed. The mail volume has been pretty low, with a handful of messages per week.
Ideal moderators would be in a different timezone than me and check email on weekends and holidays. Anyone in Europe, Asia, Australia, etc, feel like volunteering? If so, please drop me an email.
2010-11-10
Project download statistics
714 alexandria
596 babel
520 trivial-features
503 cffi
450 cl-ppcre
423 trivial-gray-streams
404 usocket
403 flexi-streams
398 bordeaux-threads
393 slime
386 cl+ssl
371 chunga
370 cl-base64
361 cl-fad
339 md5
327 quicklisp-slime-helper
323 trivial-backtrace
321 rfc2388
317 hunchentoot
293 salza2
289 puri
285 closer-mop
225 anaphora
224 parenscript
221 cl-who
207 trivial-garbage
201 iterate
193 cl-vectors
190 zpng
177 asdf-system-connections
174 zpb-ttf
173 uffi
173 metabang-bind
170 split-sequence
164 vecto
163 cl-json
162 cl-containers
161 metatilities-base
159 fare-utils
156 weblocks
156 fare-matcher
148 drakma
144 cl-cont
143 closure-common
140 moptilities
138 f-underscore
137 trivial-timeout
136 metatilities
135 clsql
133 cxml
It's important to note that this doesn't distinguish between projects that were downloaded to satisfy some other project's dependency list and projects that were explicitly requested.
2010-11-07
November Quicklisp dist update
There are a few updates and changes I'd like to highlight.
The Weblocks version in the October Quicklisp dist had a performance issue that meant page display was very slow. I believe that issue has been fixed in the version in this update. If you try Weblocks with Quicklisp, please keep an eye out for any lingering performance problems.
Nikodemus recently updated alexandria to lock its package when using SBCL. That means certain kinds of definitions on alexandria symbols from outside the alexandria package signal an error. That triggered a cascade of updates in projects that depend on alexandria; a typical problem was unwitting redefinition of certain alexandria symbols like appendf and make-keyword.
cl-l10n is now included in Quicklisp. It no longer requires a shell script to fetch its Unicode data files. The data files are now part of a new CL project called cl-l10n-cldr. Thanks to Attila Lendvai for making this Quicklisp-friendly change.
There have been a few project removals as well. teepeedee2 does not work with the new Parenscript 2.2, and its author, John Fremlin, indicated he would not track Parenscript updates. Rather than include a project that doesn't build, I have left teepeedee2 out of the dist. Kenny Tilton's cells no longer compiles on SBCL because it relies on an Allegro-specific keyword for make-hash-table. He indicated he wouldn't make updates just to make it work on SBCL, so at the moment, it is not included in the dist. If you're happily using cells or teepeedee2 with Quicklisp, you can keep using them by not updating your dist. update Kenny just updated Cells and it builds again, so it'll be in the next dist update.
I missed a few project updates, including cl-proc and cl-clon. They will be included in the next dist update. If there are other projects you want to see included in Quicklisp, please create an issue for it on GitHub.
Finally, last week I put out a request for donations on twitter. The generosity of Quicklisp users has been remarkable, and I was able to purchase enough new computer bits and pieces to get a very fast Quicklisp build and test server. It's about twice as fast as doing builds on a Linux VM on my Macbook, and that improved performance helped me get this dist update up faster. A big thank you to everyone who has contributed! If haven't contributed but you'd like to, see the Donate button on www.quicklisp.org.
2010-11-03
Updates coming within the week
New projects:
beirc-20101103-cvs
chronicity-v0.2.6
cl-bencode-20101103-git
cl-crc64-20101103-git
cl-l10n-cldr-20101103-darcs
cl-l10n-20101103-darcs
cl-sphinx-20101103-git
cl-test-more-20101103-git
cl-uglify-js-20101103-git
cl-v4l2-20101103-git
clfswm-20101103-svn
css-lite-20101103-git
gbbopen-20101103-svn
hu.dwim.wui-20101103-darcs
hunchentoot-auth-20101103-git
hunchentoot-cgi-20101103-git
hunchentoot-vhost-20101103-git
loopless-20101103-git
manardb-20101103-git
nuclblog-20101103-git
pileup-20101103-git
restas-directory-publisher-20101103-git
restas-20101103-git
sb-cga-20101103-git
xml-match-20101103-git
Updated projects:
alexandria-20101006-git -> alexandria-20101103-git
aromyxo-20101006-git -> aromyxo-20101103-git
babel-20101006-darcs -> babel-20101103-darcs
blackthorn-engine-20101006-hg -> blackthorn-engine-20101103-hg
chillax-20101006-git -> chillax-20101103-git
cl-closure-template-20101006-git -> cl-closure-template-20101103-git
cl-devil-20101006-git -> cl-devil-20101103-git
cl-glfw-20101006-git -> cl-glfw-20101103-git
cl-jpeg-20101006-http -> cl-jpeg-20101103-http
cl-mongo-20101006-git -> cl-mongo-20101103-git
cl-opengl-20101006-git -> cl-opengl-20101103-git
cl-pdf-20101006-svn -> cl-pdf-20101103-svn
cl-random-20101006-git -> cl-random-20101103-git
cl-routes-20101006-git -> cl-routes-20101103-git
cl-skip-list-20101006-git -> cl-skip-list-20101103-git
cl-smtp-20101006-http -> cl-smtp-20101103-http
cl-syslog-20101006-http -> cl-syslog-20101103-http
cl-zmq-20101006-git -> cl-zmq-20101103-git
clon-20101006-git -> clon-20101103-git
closer-mop-20101006-darcs -> closer-mop-20101103-darcs
closure-common-20101006-git -> closure-common-20101103-git
clpython-20101006-git -> clpython-20101103-git
cxml-stp-2008-11-30 -> cxml-stp-20101103-git
cxml-20101006-git -> cxml-20101103-git
dbus-20101006-git -> dbus-20101103-git
eager-future-20101006-darcs -> eager-future-20101103-git
f2cl-20101006-cvs -> f2cl-20101103-cvs
fare-matcher-20101006-git -> fare-matcher-20101103-git
fare-utils-20101006-git -> fare-utils-20101103-git
folio-20101006-git -> folio-20101103-git
glaw-20101006-git -> glaw-20101103-git
glop-20101006-git -> glop-20101103-git
gsll-20101006-git -> gsll-20101103-git
hu.dwim.asdf-20101006-darcs -> hu.dwim.asdf-20101103-darcs
hu.dwim.computed-class-20101006-darcs -> hu.dwim.computed-class-20101103-darcs
hu.dwim.logger-20101006-darcs -> hu.dwim.logger-20101103-darcs
hu.dwim.perec-20101006-darcs -> hu.dwim.perec-20101103-darcs
hu.dwim.rdbms-20101006-darcs -> hu.dwim.rdbms-20101103-darcs
hu.dwim.stefil-20101006-darcs -> hu.dwim.stefil-20101103-darcs
hu.dwim.syntax-sugar-20101006-darcs -> hu.dwim.syntax-sugar-20101103-darcs
hu.dwim.util-20101006-darcs -> hu.dwim.util-20101103-darcs
hu.dwim.walker-20101006-darcs -> hu.dwim.walker-20101103-darcs
iolib-0.7.1 -> iolib-0.7.3
js-20101006-git -> js-20101103-git
lift-20101006-git -> lift-20101103-git
linedit-20101006-cvs -> linedit-20101103-git
lispbuilder-20101006-svn -> lispbuilder-20101103-svn
lla-20101006-git -> lla-20101103-git
montezuma-20101006-svn -> montezuma-20101103-svn
parenscript-2.1 -> parenscript-2.2
parse-js-20101006-git -> parse-js-20101103-git
plokami-1.4 -> plokami-20101103-git
postmodern-20101006-git -> postmodern-20101103-git
quicklisp-slime-helper-20101006-git -> quicklisp-slime-helper-20101103-git
quickproject-20101006-git -> quickproject-20101103-git
scribble-20101006-git -> scribble-20101103-git
shuffletron-20101006-git -> shuffletron-20101103-git
slime-20101006-cvs -> slime-20101103-cvs
st-json-20101006-darcs -> st-json-20101103-git
stefil-20101006-http -> stefil-20101103-darcs
sw-mvc-20101006-git -> sw-mvc-20101103-git
symbolicweb-20101006-git -> symbolicweb-20101103-git
tpapp-utils-20101006-git -> tpapp-utils-20101103-git
uffi-20101006-git -> uffi-20101103-git
weblocks-20101006-hg -> weblocks-20101103-hg
yason-20101006-svn -> yason-20101103-git
zip-20101006-cvs -> zip-20101103-cvs
If there are projects you want to see added, please open a GitHub issue for them.
2010-10-09
Quicklisp beta now available
Quicklisp client and bootstrap code is also now available on the Quicklisp github page.
2010-10-02
Quicklisp beta and survey
I also created a 10-question survey to find out more about people who might use Quicklisp. If you use CL, would you please take the time to fill it out?
2010-09-24
Quicklisp projects: what's missing?
- 3b-swf
- 3bil
- adw-charting
- alexandria
- anaphora
- archive
- arnesi
- aromyxo
- array-operations
- asdf-system-connections
- asn.1
- babel
- binary-types
- binge
- bknr-datastore
- black-tie
- blackthorn-engine
- bordeaux-fft
- bordeaux-threads
- buildapp
- calispel
- cells
- cffi
- ch-image
- ch-util
- chillax
- chipz
- chunga
- cl+ssl
- cl-base64
- cl-cairo2
- cl-cli-parser
- cl-closure-template
- cl-colors
- cl-cont
- cl-containers
- cl-ctrnn
- cl-data-format-validation
- cl-devil
- cl-difflib
- cl-docutils
- cl-dot
- cl-fad
- cl-fftw3
- cl-ftp
- cl-gd
- cl-geometry
- cl-graph
- cl-growl
- cl-gtk2
- cl-heap
- cl-heredoc
- cl-html-diff
- cl-i18n
- cl-interpol
- cl-irc
- cl-irregsexp
- cl-jpeg
- cl-jpl-util
- cl-json
- cl-lex
- cl-libxml2
- cl-m4
- cl-markdown
- cl-modlisp
- cl-mongo
- cl-ncurses
- cl-num-utils
- cl-oauth
- cl-openal
- cl-opengl
- cl-pdf
- cl-photo
- cl-png (new)
- cl-ppcre
- cl-prevalence
- cl-qprint
- cl-random
- cl-rcfiles
- cl-redis
- cl-routes
- cl-rss
- cl-s3
- cl-sasl
- cl-skip-list
- cl-smtp
- cl-soap
- cl-sqlite
- cl-store
- cl-typesetting
- cl-unicode
- cl-unification
- cl-utilities
- cl-vectors
- cl-webdav
- cl-who
- cl-xmpp
- cl-yacc
- cl-zmq
- clem
- cleric
- clon
- clonsigna
- closer-mop
- closure-common
- closure-html
- clot
- clouchdb
- clpython
- clsql
- cluck
- clws
- clx
- colorize
- command-line-arguments
- conduit-packages
- conium
- contextl
- cxml-rng
- cxml-rpc
- cxml-stp
- cxml
- date-calc
- declt
- defsystem-compatibility
- documentation-template
- drakma
- dynamic-classes
- eager-future
- eos
- esrap
- evol
- external-program
- f-underscore
- f2cl
- fare-csv
- fare-matcher
- fare-utils
- fcgi
- ffa
- fft
- fiveam
- flexi-streams
- flexichain
- folio
- fsbv
- fset
- garbage-pools
- genhash
- getopt
- glaw
- glop
- graphic-forms
- graylex
- gsd
- gsll
- gtfl
- gzip-stream
- hemlock
- ht-simple-ajax
- html-encode
- html-template
- hu.dwim.asdf
- hu.dwim.common-lisp
- hu.dwim.common
- hu.dwim.computed-class
- hu.dwim.def
- hu.dwim.defclass-star
- hu.dwim.delico
- hu.dwim.logger
- hu.dwim.partial-eval
- hu.dwim.perec
- hu.dwim.quasi-quote
- hu.dwim.rdbms
- hu.dwim.reiterate
- hu.dwim.serializer
- hu.dwim.stefil
- hu.dwim.syntax-sugar
- hu.dwim.util
- hu.dwim.walker
- hunchentoot
- hyperobject
- ie3fp
- ieee-floats
- imago
- incf-cl
- iolib
- irc-logger
- ironclad
- iterate
- jpl-queues
- js
- jsown
- jwacs
- kmrcl
- l-math
- levenshtein
- lift
- linedit
- lisp-magick
- lisp-on-lines
- lisp-unit
- lispbuilder
- lla
- lml
- lml2
- local-time
- log5
- ltk
- lw-compat
- magicffi
- mcclim
- md5
- mel-base
- meta
- metabang-bind
- metacopy
- meta-sexp (new)
- metatilities-base
- metatilities
- micmac
- mime4cl
- misc-extensions
- mixalot
- montezuma
- moptilities
- mt19937
- mw-equiv
- named-readtables
- net-telent-date
- net4cl
- npg
- nst
- oct
- odd-streams
- ods4cl
- okra
- osicat
- parenscript
- parse-declarations
- parse-js
- parse-number
- patron
- pcall
- pg
- pipes
- pithy-xml
- plexippus-xpath
- plokami
- png-read
- portable-threads
- portableaserve
- postmodern
- postoffice
- prepl
- protobuf
- psgraph
- ptester
- pubmed
- puri
- py-configparser
- py-configvalidator (new)
- quicklisp-slime-helper
- quickproject
- rcl
- regex
- relational-objects-for-lisp
- retrospectiff
- reversi
- rfc2109
- rfc2388-binary
- rfc2388
- rfc3339-timestamp
- rlc
- rpc4cl
- rt
- rucksack
- rutils
- s-base64
- s-http-client
- s-sysdeps
- s-utils
- s-xml-rpc
- s-xml
- salza2
- sclf
- scribble
- series
- sheeple
- simple-date-time
- simple-finalizer
- simpsamp
- skippy
- slime
- smtp4cl
- snmp
- soundex
- spatial-trees
- split-sequence
- st-json
- static-vectors
- stefil
- string-case
- sw-db
- sw-http
- sw-mvc
- sw-stm
- symbolicweb
- tbnl
- teepeedee2
- tilde
- tinaa
- tpapp-utils
- trees
- trivial-backtrace
- trivial-features
- trivial-garbage
- trivial-gray-streams
- trivial-http
- trivial-ldap
- trivial-shell
- trivial-timeout
- trivial-utf-8
- ucw
- uffi
- umlisp-orf
- umlisp
- unit-test
- unix-options
- until-it-dies
- url-rewrite
- usocket-udp
- usocket
- utils-kt
- uuid
- vcs-tree
- vecto
- verrazano
- weblocks
- wiki-parser
- xarray
- xlunit
- xmls
- xptest
- xuriella
- yaclml
- yason
- zcdb
- zlib
- zpb-exif
- zpb-ttf
- zpng
- zs3
2010-09-20
Kind words from Jorge Tavares
One passage that struck me:
No more worries about how to install a library and dependencies. After a while, you even start installing things just for the fun of it!
I used to try to install libraries by hand only to find they had a number of dependencies, and those dependencies had dependencies, and they were sometimes unavailable, hard to find, time-consuming to install, etc. But now, when wearing my Quicklisp Library Hunter hat, I'm delighted to find things that have dependencies that aren't in Quicklisp already. That means I have an opportunity to grow Quicklisp with a set of new, hopefully-useful libraries. The more dependencies, the better! It's taken a source of pain and turned it into a source of excitement, and that's helped avoid burnout working on Quicklisp.
2010-09-03
Hans Hübner on Quicklisp
...I thought I'd give Quicklisp a spin. After all, parsing some XML and sending HTTP requests are no big deal in Common Lisp either, and an OAuth library is available, too. With Quicklisp, all it should take was write some glue code to connect DRAKMA, CXML, cl-ppcre and cl-oauth. Installing the bunch should be a matter of loading quicklisp.lisp, then typing (ql:quickload `("drakma" "cxml" "cl-ppcre" "cl-oauth")) and watching the show scroll by.
And hey, it worked right away. I even embedded a web server in the gateway application so that it can be monitored by the system status monitors provided by my hosting provider. All in all, rewriting the thing in Common Lisp and deploying it took no longer than two hours, and the source is not significantly longer than the Clojure version either. Furthermore, the new gateway properly deals with non-ASCII characters. Embarrassingly, the Clojure gateway was buggy in that respect and never properly twittered the titles of my own blog posts. Thanks, Zach!
I hope other people find it just as easy.
2010-08-30
Quicklisp chat on freenode
2010-08-16
Quicklisp introduction screencast
Andreas Fuchs kindly made a auto-playing playlist for both parts.
2010-07-27
Boston Lisp Meeting slides
2010-07-08
Twitter, github, etc.
I've set up a number of sites for the Quicklisp project:
There isn't much to see anywhere, yet, but I've added some of my project metadata to quicklisp-projects on github.