Re: Could there be a way to disable LOAD-PREFERENCES?
Richard M Kreuter <[email protected]> Thu, 13 Mar 2008 17:29:55 -0400
| Newsgroups | gmane.lisp.cclan.general |
|---|---|
| Message-ID | <[email protected]> |
"Robert P. Goldman" <[email protected]> writes: (I think I forgot to reply to this, or maybe forgot to CC the list.) > Richard M Kreuter wrote: > >> So I think there are two problems: >> >> * calling OPERATE to extend ASDF in a .asd file occurs during the >> execution of FIND-SYSTEM, which the user can call separately from >> OPERATE, >> >> * even when loading the .asd file is a result of a top-level call to >> OPERATE, there's no protocol to communicate information between >> outer and inner calls to OPERATE. >> >> I don't have a simple suggestion for how to deal with this right now, >> but I do have a complex, two-part solution whose consequences I >> haven't yet worked out (so if anybody sees a problem, please speak >> up!): >> >> (1) First, establish a protocol whereby inferior calls to OPERATE >> receive outer calls' initargs. Here's one such protocol: have >> OPERATE bind some special variable, say, *SUPERIOR-OPERATION*, to >> the operation instance it constructs. Then, whenever >> *SUPERIOR-OPERATION* is an operation, have OPERATE supply >> *SUPERIOR-OPERATION*'s initargs as arguments to operations it >> constructs after any other supplied args, so that inferior >> invocations of OPERATE inherit superior invocations' initargs. So >> passing down a :LOAD-PREFERENCES initarg will "just" occur, so to >> speak. > > Isn't there already a partial solution like this in place? > > That is, when you create subsidiary *operations* they get initargs > from the parent operations (see make-sub-operation). The problem I'm talking about above is that some .asd files contain things like this (eval-when (:compile-toplevel :load-toplevel :execute) (asdf:operate 'asdf:load-op "some-asdf-extension")) In these cases, the system being loaded by an inferior call to OPERATE will receive only the initargs in the file. These OPERATE calls are not part of the planning done by TRAVERSE, but side effects of LOADing .asd files. Regards, Richard ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/