September 29th, 2012

A followup from Anton

From: Anton Vodonosov <>
Subject: Re: combining load failures with dependencies information to
 priorities fixes

Xach, could you please arrange the following
clarification to be forwarded to Planet Lisp? It's necessary
in particular to restore/confirm good names of ECL and Closer to MOP?

When I posted the first message in this thread and
CC'ed Xach, I wanted to present the results
cl-test-grid may provide, but I forgot that the results
deal with failures, and without proper explanation
it may cast shadow of bad impression onto someone's
hard work.

In this case ECL and Closer to MOP were mentioned
in context of large table of failures.

First of all. The absolute minority of the compile-load
failures presented in the report are bugs in ECL (if any).

The failures may be classified by their cause into:
- CL implementation bugs
- library bugs
- library intentionally supports only limited
  set of CL implementations
- absence of certain foreign library
  on the test system.

By priority for the lisp implementation maintainer:

1. CL implementation bugs are of course of interest
   for the maintainer.

   Here I want to say how they are handled in ECL.
   Of course, ECL can not be bug free, especially
   taken into account that in the recent years it saw
   major changes (fully rewritten Lisp-to-C compiler,
   newly introduced bytecode compiler, refactoring
   of multi-threading infrastructure, performance
   improvements and lot of other improvements).

   But when critical bugs are found, they are usually
   fixed very quickly. This demonstrates the great level
   of control Juan Jose has on the ECL code base.

2. Bugs in basic widely used libraries as alexandria;
   portability layers like closer-mop, usocket,
   bordeaux-threads; important libraries as
   hunchentoot or drakma.

   This is not the area of direct "responsibility"
   for the CL implementation developer who didn't started
   the project and didn't make a commitment to
   support it.

   I put "responsibility" into quotes because very
   often we deal with open source projects, which
   are provided AS IS. No-one is obliged to provide
   support. The applies also to the library author.

   Of course, CL implementation developer might
   be interested to support such important libraries
   to achieve wider adoption of his CL implementation.
   The library author is also usually interested.
   And the users of the library, who want to develop
   applications on the given CL implementation are
   also interested to see the library fixed on this CL

   So, this is an area where interest of various parties
   overlaps and we may hope the issue will be fixed
   (depending the time available for these parties
   and presence of necessary knowledge).

   Speaking particularly about Closer to MOP on ECL.
   ECL has improved MOP support recently, but the API
   changes are not backward compatible. According
   to the Pascal's comment in his blog, now Closer to MOP
   will need a lot less code to support ECL. But migration to the
   new API will take some development time.

3. Compile/load failures which do not need to be fixed.

   For a library developer it is often the only possible
   or at least the most reasonable solution to support
   limited set of CL implementations, because supporting
   and testing on every CL requires more time than available.
   If there is a library named "my-html-utils" which is
   only used by "my-web-application" and the library
   author works with one particular CL implementation,
   there is no need to bother neither the library author,
   nor other community members with requests to port
   the library onto other CL implementations.

   What we can do is to collect and provide information
   about what works where, and the author will decide
   himself. Or maybe the first user, who whats to
   employ the library on a different implementation
   will port it.   

   I assume that the failures in the category 3 might
   constitute the majority of all the failures.

4. Absence of foreign library on the test system.
   I plan to adjust cl-test-grid agent in the future
   so that CFFI errors will be recognized and
   stored as a special status, so that we will be
   able to exclude them from report + maybe collect
   the list of foreign libraries used by whole Quicklisp.
   But it's not the highest priority, the reports
   in the current form allow to make lot of useful

That's it. I hope it clarifies any doubts about the
quality of work done by ECL and Closer to MOP developers.

And also on my intentions. I don't call the developers
to spend even more of their time. Other way around.
We should anticipate the fact that developers time is
very limited. If we all be realistic and stay within
limits of possible the results will be more satisfying.
I hope that presence of information will allow to
save developers energy by helping them to choose
areas where the efforts will give maximum outcome;
to decide also what may be avoided.

The load failures + dependencies report was build for
ECL first because it was Juan Jose's proposal to
combine them together to prioritize problems.

I've just published similar reports for some
other CL implementations I have:

Best regards,
- Anton