[asdf-devel] New OPERATION subclasses in ASDF 3

Faré fahree at gmail.com
Wed Jan 1 20:42:12 UTC 2014

On Wed, Jan 1, 2014 at 2:31 PM, Robert P. Goldman <rpgoldman at sift.info> wrote:
> Recent experience shows that changes leading to ASDF 3 have changed the
> way one must specify new operation classes, in a way that is not
> backward-compatible.  Thanks to Faré for helping me diagnose problems in
> one such system.
> I will be looking into this, and hope to add at least one new test to
> ensure that we are probing this important aspect of ASDF going forward.
> Related to this, does anyone have a good sense of which quicklisp
> systems might contain new operation and component classes?
You could try to install everything in quicklisp, then grep the .asd
and .lisp files for defclass.*operation
See ql-test:install-all-quicklisp-provided-systems in
less -p 'defclass.*operation' $(grep -il 'defclass.*operation' **/*.{asd,lisp})

Victims are:
arnesi and arnesi+ (clean-op, should use traverse, not recurse downward)
asdf-dependency-grovel (dependency-op - now fixed)
autoproject (revert-op, buggy like arnesi's clean-op)
paren-files (parenscript-compile-op)

I leave it to someone else to contact the maintainers (except for
a-d-g, which I hopefully fixed).

Non-Victims follow.

These only act on files, and downward or sideways recursion doesn't apply:
protobuf (proto-to-lisp)
cffi-grovel (process-op)

These don't want downward recursion, and take steps to make the
downward recursion implicit in ASDF 1&2 but an expensive NOP, sideways
recursion is probably a good thing not to apply:
weblocks (wop::test-op, doc-op, make-app-op)
autoproject (simple-system-wide-operation and subclasses, but not revert-op)
deoxybyte-systems (doc-op)
hu.dwim.asdf (develop-op)
qbook (publish-op)

These have clever component-depends-on method to recurse properly:
def-symbol-macro (stat-op)

These have asdf3 semantics, possibly in #+asdf3:
lisp-executable (create-executables-op, sticky-beak-op, ugly)

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
By modern standards, Common Lisp's syntax is rather verbose at the micro level.
But it more than makes up for it at the macro level.

More information about the asdf-devel mailing list