2016-03-21

Recovering from a breaking update

The March Quicklisp update has usocket 0.6.4, an update that unfortunately does not build on older versions of SBCL due to IPv6-related symbols. In response, Chun Tian quickly released usocket 0.6.4.1, which builds fine on older SBCLs.

It's only been a few days since the last Quicklisp dist release, so I'm not going to make a new one just for the usocket problem.

If you're hit by this issue, what can you do?

The best option, if available, is to upgrade to a recent SBCL, which has many new and exciting features and works well with the usocket in the latest Quicklisp release.

If that's not feasible, you can also manually get usocket 0.6.4.1 (or newer) from the usocket download page, unpack it in ~/quicklisp/local-projects/, and go from there.

Finally, you can revert to last month's Quicklisp dist. I first wrote about this in "Going back in (dist) time", but here's a short overview:

* (in-package :ql-dist-user)

* (second (available-versions (dist "quicklisp")))
("2016-02-08"
 . "http://beta.quicklisp.org/dist/quicklisp/2016-02-08/distinfo.txt")

* (install-dist (cdr *) :replace t :prompt nil)
lots of output

In particular, the second element of available-versions will always be the second most-recent Quicklisp dist, so that's generally the one to use if you want to go one dist backward.

(Topic for the future: how better prerelease testing will catch these kinds of problems.)

2016-03-18

March 2016 Quicklisp dist update now available

This update, Quicklisp's 66th, is brought to you by me! I've been fortunate to have Clozure sponsor a lot of Quicklisp work in the past, but now I'm self-employed. Working on Quicklisp takes time. In April, I'm going to try to raise a lump sum of money so I can work on a number of get-out-of-beta features, like better download security, provenance info, a manual, etc. Beyond that onetime fundraising, I'd like to enlist more regular monthly supporters for funding ongoing dist updates and maintenance. Do you think Quicklisp is worth it? I'm looking forward to finding out shortly.

If you have any feedback on fundraising, feel free to get in touch.

Back to your regularly scheduled update announcement...

New projects:
  • agm — A high-performance game math library. — MIT
  • cepl — Fast lispy way to work with OpenGL — BSD 2 Clause
  • cepl.camera — A camera implementation for CEPL — BSD 2 Clause
  • cepl.devil — A couple of helper functions to load from devil straight to cepl c-arrays or textures — BSD 2 Clause
  • cepl.sdl2 — SDL2 host for cepl — BSD 2 Clause
  • cepl.skitter — Plumbing to use skitter with cepl — BSD 2 Clause
  • cl-bunny — Common Lisp RabbitMQ client based on IOLib — MIT
  • cl-iterative — Generic iterative algorithm with multiple controls — LGPLv3
  • cl-llvm — CFFI bindings to the LLVM libraries. — MIT
  • cl-ohm — An object-hash mapping for Redis in Common Lisp — MIT
  • cl-sdl2-image — Bindings for sdl2_image using autowrap — MIT
  • cl-strings — A set of utilities for manipulating strings in CL. — MIT
  • cl-tetris3d — Yet another 3D Tetris clone — MIT (also see COPYING file for details)
  • cl-wordcut — Word segmentation tools for ASEAN languages written in Common Lisp — LLGPL
  • cl-zmq — Zero MQ 3 bindings — LGPLv3
  • dartsclemailaddress — Parsing and formatting email addresses (RFC 5322 compliant) — MIT
  • dendrite — Master package for all dendrite packages — BSD 2 Clause
  • documentation-utils — A few simple tools to help you with documenting your library. — Artistic
  • file-local-variable — File-local variable independent from ASDF — LLGPL
  • hu.dwim.bluez — Common Lisp FFI wrapper for libbluetooth, aka Bluez, which is a Linux Bluetooth stack. — BSD or Bugroff
  • hu.dwim.sdl — Common Lisp FFI wrapper for libSDL2. — BSD or Bugroff
  • lambda-gtk — Unspecified — LLGPL
  • legit — CL interface to the GIT binary. — Artistic
  • livesupport — Some helpers that make livecoding with slime/sly a little easier — BSD 2 Clause
  • magicffi — cffi interface to libmagic(3) — Simplified BSD License
  • mito — Abstraction layer for DB schema — LLGPL
  • mito-attachment — Mito mixin class for file management — LLGPL
  • mito-auth — User authorization for Mito classes — LLGPL
  • north — oAuth 1.0a server and client implementation, the successor to South. — Artistic
  • org-sampler — Extract docstrings as Emacs org-mode files — LLGPL 3.latest
  • perfpiece — CL:TIME on steroids. — MIT
  • rt-events — A simple real-time events API. — MIT
  • skitter — An event system for games — BSD 2 Clause
  • snark — The Snark Theorem Prover — MPL 1.1, see file LICENSE
  • trivialib.bdd — BDD and ZDD implementation using Trivia — LLGPL
  • what3words — Describe what3words here — BSD
Updated projectsarchitecture.service-providerarchivebinfixbirchbit-smasherbordeaux-threadsburgled-batteries.syntaxcavemanceramiccffichipzchronicitycl+sslcl-amqpcl-anacl-arrowscl-autowrapcl-charmscl-dbicl-events,cl-fusecl-gambolcl-gobject-introspectioncl-graphcl-itertoolscl-libuvcl-marklogiccl-opsresearchcl-pdfcl-quickcheckcl-rabbitcl-rethinkdbcl-sdl2cl-sdl2-ttfcl-strftimecl-tasuketecl-tgacl-xulclackclack-errorsclaviercloser-mop,clxcolleencontextlcroatoancurry-compose-reader-macroscxml-rngdeedsdelta-debugdjuladocparsereazy-projecteruditeesrapexternal-programfemlispfiltered-functionsfmtfngendlglkithu.dwim.defhu.dwim.perec,hu.dwim.quasi-quotehu.dwim.rdbmshu.dwim.syntax-sugarhu.dwim.utilhu.dwim.web-serverhunchentootia-hash-tableieee-floatsinquisitorintegralintel-hexiolibjskenzolacklakelisp-executablelisp-interface-librarylocal-time,lw-compatmcclimninglenstosicatparenscriptpathname-utilsperiodsplumpplump-sexpproc-parseqlotqt-libsqtoolsqurirtg-mathscalplsdl2kitserapeumsimple-taskssip-hashslimestmxstumpwmsxqltemporal-functions,triviatrivia.balland2006trivial-shellusocketvarjovomwoo.

Removed projects: buffalo (disappeared from github), cl-fgraph (per author's request), cl-quakeinfo (no longer builds on non-Allegro).

To get this update, use (ql:update-dist "quicklisp").

Enjoy!

2016-03-15

February 2016 Quicklisp download stats

Here are the top 100 downloads by raw download count.

 5607 alexandria
 4586 cl-ppcre
 4388 trivial-features
 4119 babel
 3369 split-sequence
 3332 bordeaux-threads
 3268 cl+ssl
 3243 cffi
 3208 anaphora
 2725 closer-mop
 2692 trivial-gray-streams
 2635 trivial-garbage
 2620 let-plus
 2551 flexi-streams
 2524 usocket
 2515 cl-fad
 2491 cl-colors
 2382 cl-base64
 2318 prove
 2286 cl-ansi-text
 2255 cl-utilities
 2238 quri
 2218 chunga
 2203 local-time
 2140 cl-html-parse
 2113 puri
 2102 iterate
 1956 chipz
 1873 nibbles
 1871 drakma
 1799 named-readtables
 1763 ironclad
 1612 cl-interpol
 1551 md5
 1520 trivial-backtrace
 1517 cl-unicode
 1418 slime
 1343 lack
 1336 clack
 1330 trivial-types
 1309 cl-annot
 1295 cl-syntax
 1208 fast-io
 1161 trivial-utf-8
 1134 salza2
 1114 cl-json
 1104 proc-parse
 1092 static-vectors
 1053 hunchentoot
  992 rfc2388
  990 jonathan
  981 parse-number
  965 cl-mysql
  957 fast-http
  916 clx
  911 uiop
  903 xsubseq
  875 metabang-bind
  865 clsql
  836 smart-buffer
  835 ieee-floats
  829 lparallel
  825 osicat
  802 postmodern
  770 closure-common
  766 quicklisp-slime-helper
  759 cxml
  753 log4cl
  699 optima
  686 uuid
  679 mcclim
  672 array-utils
  645 cl-reexport
  644 cl-sqlite
  633 trivial-indent
  631 zpng
  615 http-body
  611 yason
  609 fiveam
  605 trivial-mimes
  602 plump
  589 swap-bytes
  523 symbol-munger
  512 cl-containers
  505 cl-yacc
  502 ningle
  501 vom
  501 simple-date-time
  498 map-set
  494 myway
  490 lisp-unit
  483 lquery
  479 dexador
  476 asdf-system-connections
  473 cl-cookie
  470 function-cache
  466 cl-csv
  466 iolib
  466 metatilities-base
  464 cl-dbi