Almost every month
cl-test-grid detects various regressions in CL ecosystem.
Like this month:
And in general:
https://common-lisp.net/project/cl-test-grid/ql/
I have problem
reporting all these regressions to interested parties. Studying why
something fails, searching for right person to report, formulating and
submitting bug reports - all that easily takes more than a full
working day.
Also, sometimes it's
not necessary a bug from the library maintainer point of view, for example if his
library fails on CLISP because CLISP ships with old ASDF, maybe this
maintainer doesn't care. But maybe those who depends on this library care. So, it's not
always obvious whether the situation requires to disturb people.
That's why I created
this blog. I mean it as a low volume notification channel - mostly a notice with
reports once a month when the tests are finished, and a summary of
what I understand about the failures. Then, if people are interested in particular
failures, they can ask and I will help to investigate and explain why exactly something
fails.
I hope this will
help to effectively fix important failures and keep the community aware about the
factors causing fluctuations of quality in CL ecosystem.
Now about this month
regressions.
First of all, I
usually build two diff reports.
One is grouped by
lisp implementation first and then by library:
Another one is
grouped by library first and then by lisp impl:
Both reports show
the same data, just arranged differently.
The most noticeable
regressions in quicklisp 2015-12-18 comparing to the previous
release:
- bordeaux-threads uses UIOP without specifying :depends-on :uiop in the .asd file; in result on lisp implementations where ASDF doesn't include UIOP, bordeaux-threads (and libraries depending on it) fail to load
- iolib rejects ASDF < 3.1, so fails to load (and prevents libraries using it from loading) on lisps with elder ASDF
- cl+ssl declares FFI binding for function SSL_CTX_set_default_verify_dir which is absent in the latest stable OpenSSL release, and only present in OpenSSL master. c+ssl doesn't use this function, the ffi declaration was added just to allow others to invoke it. Still, cl+ssl fails to load on CMUCL because CMUCL actually checks for foreign symbol to be present when FFI declaration is processed. Other lisps we tested are unaffected. This problem is fixed already in cl+ssl git.
- As usually, more and more libraries start to use new ASDF features, for example keywords :home, :at. These libraries and their dependencies fail to load on elder ASDF.
- croatoan library starts using sb-ext:posix-getenv thus fails on non-sbcl lisps (hint: use uiop:getenv instead)
- rutils (and depending libs) fail on ABCL and ECL with "No such method for PRINT-OBJECT"
- several libraries fail on ECL with "* is not a valid type specifier"
- com.informatimago.common-lisp.telnet fails on CMUCL with "The value of the :SLOT-NAME initarg, US, is a constant and so cannot be bound."
If you're interested in
some specific failure or need help investigating something, just ask in the comments or
on the mailing list.