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
implementation.
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
conclusions.
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:
http://common-lisp.net/project/cl-test-grid/abcl-load-failures.htmlhttp://common-lisp.net/project/cl-test-grid/acl-load-failures.htmlhttp://common-lisp.net/project/cl-test-grid/ccl-load-failures.htmlhttp://common-lisp.net/project/cl-test-grid/cmucl-load-failures.htmlhttp://common-lisp.net/project/cl-test-grid/sbcl-load-failures.htmlhttp://common-lisp.net/project/cl-test-grid/ecl-load-failures.htmlBest regards,
- Anton