[asdf-devel] errors in ASDF

Faré fahree at gmail.com
Tue Feb 18 03:28:09 UTC 2014

On Mon, Feb 17, 2014 at 8:47 PM, Anton Vodonosov <avodonosov at yandex.ru> wrote:
> I've been testing ASDF and unfortunately detected errors:
TL;DR: All fixed in

Thanks a whole lot for your testing, once again!

> 1. Required method PERFORM not implemented for
>    operation #<STANDARD-CLASS CFFI-GROVEL::PROCESS-OP {599AF195}>,

Aha! Back in ASDF 2.28.x (while ASDF 3 was in beta),
I made PERFORM error out by default, instead of NOP out like before.
This was good, because operations were not propagated anymore
into nonsensical combinations, so this would give good error messages
to detect which needed PERFORM methods were missing,
or which nonsensical actions were generated in the plan.
Now that we reinstated the legacy propagation of operations
that are not either explicitly propagated or not propagated,
such nonsensical actions are generated again, and
the proper default should be to NOP again in this case, not error out.
Happily, when instantiating the operation itself,
there will be a warning regarding this backward compatible behavior.
As usual "if it's not backwards, it's not compatible".

Fixed, with test case.

> 2. New ASDF breaks ECL for Quicklisp. The problem nails down
>    to (require 'sockets). This form works for ECL unless new ASDF is loaded.
>    To reproduce at cl-test-grid.cloud.efficito.com machine:
>    rlwrap ~/lisps/ecl-bin-13.5.1/bin/ecl -norc
>    (require 'sockets)
>    ;;; Loading #P"/home/testgrid/lisps/ecl-bin-13.5.1/lib/ecl-13.5.1/sockets.fas"
>    ------ compare with:
>    rlwrap ~/lisps/ecl-bin-13.5.1/bin/ecl -norc -load ~/asdf/build/asdf.lisp
>    (require 'sockets)
>    ASDF could not load sockets because
>    In function MAPCAR, the value of the second argument is
>    which is not of the expected type LIST.
I'm not sure how this ever worked, if it did.
The input-files method was all wrong,
ever since a refactoring that happened in the 2.26.x days,
after merging asdf-bundle into ASDF.
I suppose it was previously overridden by a generic method
that returned NIL, that I removed recently in a cleanup.

Fixed. I didn't try hard to add a refined test, but
I did add a (require 'sockets) to test-bundle.script,
which at least would have caught this regression.

NB: the latest ECL fails test-program.script, but
I believe it's a bug in ECL.

PS: if you have time for a test with ASDF-USER :use'ing :UIOP...

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Calling a Communist a liar is pretty frustrating. How do you insult a pig by
calling it a pig? Communists are not bound by our morality. They say that any
crime, including lying, is moral if it advances the cause of socialism.
	— Ronald Reagan

More information about the asdf-devel mailing list