
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