[Asdf-devel] ASDF and generated files

R. Mattes rm at mh-freiburg.de
Thu Aug 14 21:42:05 UTC 2014


On Thu, 14 Aug 2014 13:41:05 -0400, Faré wrote
> Dear Ralf,

Hello,

> congratulations for maintaining Common Music!
> How does it compare to OpenMusic, these days?

Oh no, I'm not maintaining the current Common Music (v3).
I'mk trying to keep Common Music v2 in an operational shape (CMv3/Grace
moved to an embedded Scheme (s7) and away from Object Oriented
Programming). There are still quite some folks out there using CMv2, and
the book "Notes from the Metalevel" by Rick Taube uses version 2 as well.

> Is this where the code is? I see nothing related to ASDF there:
> http://sourceforge.net/p/commonmusic/code/HEAD/tree/trunk/

You'd need to look at branches/cm2 ...

> Regarding ASDF, I propose that you emulate the way cffi-grovel does it.
>
> (defclass cm-scheme-file (cl-source-file) ((type :initform "scm")))
> (defclass cm-scheme-to-lisp-op (non-propagating-operation))
>
> (defmethod output-files ((o cm-scheme-to-lisp-op) (c cm-scheme-file))
>  ...)
> (defmethod perform ((o cm-scheme-to-lisp-op) (c cm-scheme-file)) ...)
> (defmethod component-depends-on ((o compile-op) (c cm-scheme-file))
>  `((cm-scheme-to-lisp-op ,c) ,@(call-next-method)))
> (defmethod input-files ((o compile-op) (c cm-scheme-file)) ...)
>
> If your scheme to cl transformation itself depends on other files,
> then instead of non-propagating-operation, make it something
> appropriate,
> i.e. a selfward-operation on prepare-cm-scheme-to-lisp-op or something.

Thank you, this, together with Robert Brown's hints, is very helpful.


Cheers, RalfD





More information about the asdf-devel mailing list