[Asdf-devel] ASDF and generated files

Faré fahree at gmail.com
Thu Aug 14 17:41:05 UTC 2014


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 at 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 at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel




More information about the asdf-devel mailing list