That smells like a bug in ECL. This works: rlwrap ecl -norc -eval \ "'(#.(require :asdf) #.(format t \"~S~%\" (asdf:asdf-version)) #.(asdf:load-system :sockets))" "2.26.6" This doesn't: rlwrap ecl -norc -load asdf/build/asdf.lisp -eval "'(#.(require :asdf) #.(format t \"~S~%\" (asdf:asdf-version)) #.(asdf:load-system :sockets))" "2.30.3" No defined method for ASDF/ACTION:PERFORM on compiling #<compiled-file "sockets" "sockets">. If I just query from rlwrap /home/testgrid/lisps/ecl-bin-12.12.1/bin/ecl -norc -load asdf/build/asdf.lisp I get: (COMPUTE-APPLICABLE-METHODS #'asdf:perform (list (make-instance 'asdf:compile-op :force t) (asdf:find-component :sockets "sockets"))) (#<standard-method PERFORM (#<The STANDARD-CLASS ASDF/OPERATION:OPERATION> #<The STANDARD-CLASS ASDF/COMPONENT:COMPONENT>)> #<standard-method PERFORM (#<The STANDARD-CLASS ASDF/OPERATION:OPERATION> #<The STANDARD-CLASS ASDF/COMPONENT:COMPONENT>)> #<standard-method PERFORM (#<The STANDARD-CLASS ASDF/OPERATION:OPERATION> #<The BUILT-IN-CLASS T>)> #<standard-method PERFORM (#<The BUILT-IN-CLASS T> #<The STANDARD-CLASS ASDF/BUNDLE:COMPILED-FILE>)>) (describe (car (last (COMPUTE-APPLICABLE-METHODS #'asdf:perform (list (make-instance 'asdf:compile-op :force t) (asdf:find-component :sockets "sockets")))))) #<standard-method PERFORM (#<The BUILT-IN-CLASS T> #<The STANDARD-CLASS ASDF/BUNDLE:COMPILED-FILE>)> is an instance of class STANDARD-METHOD it has the following instance slots THE-GENERIC-FUNCTION: #<standard-generic-function ASDF/ACTION:PERFORM> LAMBDA-LIST: (O C) SPECIALIZERS: (#<The BUILT-IN-CLASS T> #<The STANDARD-CLASS ASDF/BUNDLE:COMPILED-FILE>) QUALIFIERS: NIL THE-FUNCTION: #<compiled-closure 09de3510> DOCSTRING: NIL PLIST: NIL KEYWORDS: NIL (asdf:perform (make-instance 'asdf:compile-op :force t) (asdf:find-component :sockets "sockets")) Condition of type: SIMPLE-ERROR No defined method for ASDF/ACTION:PERFORM on compiling #<compiled-file "sockets" " sockets"> The method that ought to match is this: (defmethod perform (o (c compiled-file)) (declare (ignorable o c)) nil)) Interestingly, that part of the code hasn't changed since ASDF 2.26.6, which works as seen above. However, if I change it to: (defmethod perform ((o operation) (c compiled-file)) (declare (ignorable o c)) nil)) then it works again! And so that is my workaround for 2.30.5. I don't know what causes ECL to not match that method. Is it the new EVAL-WHEN around it? In any case, I believe it's a bug in ECL. —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org If six billion people have both more food and more forest than their three billion parents did; if the prices of copper, wheat and natural gas are going down, not up; if there are 20 times more carcinogens in three cups of organic coffee than in daily dietary exposure to the worst pesticide both before and after the DDT ban; if renewable resources such as whales are more easily exhausted than non-renewables such as coal; if lower infant mortality leads to falling populations, not rising ones, then perhaps we need to think differently about what sustainability means. Perhaps the most sustainable thing we can do is develop new technology, increase trade and spread affluence. — Matt Ridley On Fri, Feb 22, 2013 at 2:07 PM, Anton Vodonosov <avodonosov@yandex.ru> wrote:
22.02.2013, 22:38, "Anton Vodonosov" <avodonosov@yandex.ru>:
Results for ECL, lisp-to-c compiler: http://common-lisp.net/project/cl-test-grid/asdf/asdf-diff-16.html
Most of the systems fails with the same error: Unhandled SERIOUS-CONDITION of type SIMPLE-ERROR is signaled: No defined method for ASDF/ACTION:PERFORM on compiling #<compiled-file "sockets" "sockets">
The problem nails down to usocket.asd depending on :sb-bsd-sockets. It ma be reroduced lik this:
lisps/ecl-bin-12.12.1/bin/ecl -norc -load asdf/build/asdf.lisp (asdf:operate 'asdf:load-op :sb-bsd-sockets)
Condition of type: SIMPLE-ERROR No defined method for ASDF/ACTION:PERFORM on compiling #<compiled-file "sockets" "sockets">
Available restarts:
1. (RETRY) Retry compiling #<compiled-file "sockets" "sockets">. 2. (ACCEPT) Continue, treating compiling #<compiled-file "sockets" "sockets"> as having been successful. 3. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
Broken at LAMBDA. In: #<process TOP-LEVEL>. File: #P"/home/testgrid/asdf/build/asdf.lisp" (Position #306038)