Re: Add CLEAN-OP to ASDF?

Christophe Rhodes <[email protected]> Tue, 30 Dec 2008 08:36:31 +0000
Newsgroups gmane.lisp.cclan.general
Message-ID <[email protected]>
Robert Goldman <[email protected]> writes:

> E.M. Baringer's Arnesi library has an ASDF clean-op in its src/asdf.lisp
> file (thanks to fe[nl]ix on #lisp for the pointer).  Is there any reason
> this operation could not be imported into the core ASDF distribution?
> Cleaning out old FASLs seems like a very nice thing to have.

The usual argument against is that clean-op is philosophically wrong:
the output-files of which operation should it clean?

I'm no longer sure that that argument holds water: the operation
itself can know, by virtue of referring to the operation it's cleaning
up for.  Something like

(defclass clean-op (operation)
  ((clean-for :initarg :clean-for))
  (:default-initargs :clean-for (make-instance 'load-op)))

Now (asdf:oos 'asdf:clean-op ...) will do the right thing, and those
with special requirements can additionally do things like
  (asdf:oos 'asdf:clean-op ... :clean-for (make-instance 'test-op))
or similar.

This probably isn't going to be a straightforward import of Marco's
code (though maybe it is, I don't know); on the other hand, if this
functionality were available in this form I would be happy.

Best,

Christophe

------------------------------------------------------------------------------