On Thu, Mar 18, 2010 at 12:25 AM, Juan Jose Garcia-Ripoll < [email protected]> wrote:
> On Thu, Mar 18, 2010 at 12:21 AM, Juan Jose Garcia-Ripoll < > [email protected]> wrote: > >> Narrowing down the problem, TRAVERSE now adds the LIB-OP operation to all >> components of a system. I added a method >> >> (defmethod perform ((operation lib-op) (c component)) >> nil) >> >> but this method gets overriden by a more specific one which is provided by >> asdf.lisp >> >> (defmethod perform ((operation operation) (c source-file)) >> (sysdef-error >> "~@<required method PERFORM not implemented ~ >> for operation ~A, component ~A~@:>" >> (class-of operation) (class-of c))) >> >> This method was the cause of all problems. >> > > There is obviously something awry going on here because now I realize that > this is not more specific, but less -- lib-op <= operation Anyway, I will > leave this for tomorrow as I am obviously not fit for this anymore. > This time I leave for bed, but while looking at the screen I think I found the problem: packages. The two symbols, PERFORM in one and in another file are different. I think this has to do with the way symbols are interned / uninterned during the compilation phase itself. A symptom is that loading the sources *.lisp everything works just fine. Another one is that the debugger prints the offending method as #:PERFORM Juanjo -- Instituto de FĂsica Fundamental, CSIC c/ Serrano, 113b, Madrid 28006 (Spain) http://tream.dreamhosters.com
_______________________________________________ asdf-devel mailing list [email protected] http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
