On 3/17/10 Mar 17 -6:47 PM, Juan Jose Garcia-Ripoll wrote: > On Thu, Mar 18, 2010 at 12:25 AM, Juan Jose Garcia-Ripoll > <[email protected] > <mailto:[email protected]>> wrote: > > On Thu, Mar 18, 2010 at 12:21 AM, Juan Jose Garcia-Ripoll > <[email protected] > <mailto:[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
Is there any chance that you could somehow have run afoul of the package surgery at the top of asdf.lisp? I.e., could you have compiled /your/ PERFORM method into the ASDF package somehow before the package magic at the head of asdf.lisp destroyed it? I confess that I can't say I understand how that package surgery in the eval-when will work. I believe it's going to be something like this: 1. compile asdf.lisp --- original ASDF package, if any, is destroyed by ENSURE-PACKAGE 2. compile asdf-ecl.lisp 3. load asdf.fasl --- package destroyed again 4. load asdf-ecl.fasl Is it possible that somehow the compilation of asdf-ecl is recording some information about the package that is somehow damaged by the package surgery? Just a wild guess. _______________________________________________ asdf-devel mailing list [email protected] http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
