I must admit that after four hours fighting with this I am right now a bit pissed off, so please forgive the tone of the message.<br><br>ASDF has introduced a new caching system which alters the names of all output files. This is making me mad because I am trying to implement pre-built ASDF components for ECL and ASDF insists on changing the value of output-files and input-files, looking for those prebuilt files at the location of the cache.<br>
<br>What I have added so far is an extension to the system class, with hardcoded locations for prebuilt files (see below), so that I can store a single file<br clear="all"><br>$ cat ~/lib/ecl-10.3.1/serve-event.asd <br><br>
(DEFSYSTEM "serve-event" :CLASS ASDF::PREBUILT-SYSTEM :LIB "SYS:serve-event" :COMPONENTS ((:COMPILED-FILE "serve-event")))<br><br>Now the problem is that when I try to use these systems ASDF insists on translating the library file pathname "SYS:serve-event" to a cached name which does not exist. I have tried adding a TRUENAME around the output of OUTPUT-FILES, so that the return value reflects the full path, but ASDF insists in changing the name. I have tried hardcoding a system location, like SBCL does, but ASDF insists on appending its own translation<br>
<br>> (asdf::output-translations)<br><br>((#P"/Users/jjgarcia/lib/ecl-10.3.1/" #P"/Users/jjgarcia/lib/ecl-10.3.1/")<br> (#P"/**/*.*"<br> #P"/Users/jjgarcia/.cache/common-lisp/ecl-10.3.1-darwin-x86/**/*.*"))<br>
<br>Is there no rational way to prevent the translation of system directories without breaking the cache system?<br><br>(defclass prebuilt-system (system)<br> ((static-library :accessor prebuilt-system-static-library :initarg :lib)))<br>
<br>(defmethod output-files ((o lib-op) (c prebuilt-system))<br> (list (compile-file-pathname (prebuilt-system-static-library c) :type :lib)))<br><br>(defmethod perform ((o lib-op) (c prebuilt-system))<br> (car (output-files o c)))<br>
<br>(defmethod component-depends-on ((o lib-op) (c prebuilt-system))<br> nil)<br><br>(defmethod bundle-sub-operations ((o lib-op) (c prebuilt-system))<br> nil)<br><br>(defmethod bundle-sub-operations ((o monolithic-lib-op) (c prebuilt-system))<br>
(error "Prebuilt system ~S shipped with ECL can not be used in a monolithic library operation." c))<br><br>(defmethod bundle-sub-operations ((o monolithic-bundle-op) (c prebuilt-system))<br> nil)<br><br>-- <br>
Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://juanjose.garciaripoll.googlepages.com">http://juanjose.garciaripoll.googlepages.com</a><br>