Dear Ralf,
congratulations for maintaining Common Music! How does it compare to OpenMusic, these days?
Is this where the code is? I see nothing related to ASDF there: http://sourceforge.net/p/commonmusic/code/HEAD/tree/trunk/
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.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org drug, n: A substance that, injected into a rat, produces a scientific paper.
On Thu, Aug 14, 2014 at 12:41 PM, Ralf Mattes rm@mh-freiburg.de wrote:
Hello, dear ASDF developers,
I'm currently trying to port some old lisp code (Common Music) to ASDF3[1]. Common Music's source is written in Scheme, the Common Lisp version is generated from the Scheme code. Unfortunately CM's current asdf file is littered with executable code (not only compiling inoking the Scheme->Lisp compiler but also calling (non-portable) shell scripts etc. This is unfortunate since many asdf operations will trigger this code. Hence my attempt to rewrite the asdf and transfer the scheme->lisp part into a second asdf system. Unfortunately I can't find any documentation on how to implement such a code transformation. I can create a new component class scheme-file but what methods do I need to implement? Where can I call the function that actually compiles a scheme file to lisp (Common Music's scheme->lisp compiler works on files).
TIA Ralf Mattes
Footnotes: [1] my main goal is to make Common Music distributable by quicklisp.
Asdf-devel mailing list Asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel