Re: ASDF depends-on / do-first
Richard M Kreuter <[email protected]> Tue, 26 Jun 2007 20:23:24 -0400
| Newsgroups | gmane.lisp.cclan.general |
|---|---|
| Message-ID | <[email protected]> |
Andreas Fuchs <[email protected]> writes: > Kilian Sprotte wrote: >> >> what is the difference between :in-order-to and :do-first then? Or >> what is so special about :do-first? > > I think it's just the order in which they are processed in TRAVERSE. > in-order-to forms seem to be done before do-first is, but do-first > needs to happen before the actual operation (iiuc). I'm guessing that the DO-FIRST slot was either a quick hack or a vestigial remnant of something. There's also something weird about the handling of the :DO-FIRST initarg: whereas IN-ORDER-TO dependencies are merged with some dependencies inferred from the :DEPENDS-ON keyword, the DO-FIRST slot is unconditionally set to a value that doesn't involve the :DO-FIRST keyword argument. It's hard to say whether this is a bug or design. Anyhow, by inspection, altering PARSE-COMPONENT-FORM to leave the DO-FIRST slot set to NIL and to treat the :DEPENDS-ON argument as signifying the dependency list, ((compile-op (compile-op <component names>)) (compile-op (load-op <component names>)) (load-op (load-op <component names>))) seems to cause TRAVERSE to produce a differently-ordered, but probably equivalent plan for each of COMPILE-OP and LOAD-OP, so it's likely that whatever DO-FIRST is supposed to be could be left out of a future ASDF-like defsystem facility. -- RmK ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/