[asdf-devel] Cache? Translations? How to get rid of them?

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Sat Mar 13 11:01:09 UTC 2010


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.

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.

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

$ cat ~/lib/ecl-10.3.1/serve-event.asd

(DEFSYSTEM "serve-event" :CLASS ASDF::PREBUILT-SYSTEM :LIB "SYS:serve-event"
:COMPONENTS ((:COMPILED-FILE "serve-event")))

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

> (asdf::output-translations)

((#P"/Users/jjgarcia/lib/ecl-10.3.1/" #P"/Users/jjgarcia/lib/ecl-10.3.1/")
 (#P"/**/*.*"
  #P"/Users/jjgarcia/.cache/common-lisp/ecl-10.3.1-darwin-x86/**/*.*"))

Is there no rational way to prevent the translation of system directories
without breaking the cache system?

(defclass prebuilt-system (system)
  ((static-library :accessor prebuilt-system-static-library :initarg :lib)))

(defmethod output-files ((o lib-op) (c prebuilt-system))
  (list (compile-file-pathname (prebuilt-system-static-library c) :type
:lib)))

(defmethod perform ((o lib-op) (c prebuilt-system))
  (car (output-files o c)))

(defmethod component-depends-on ((o lib-op) (c prebuilt-system))
  nil)

(defmethod bundle-sub-operations ((o lib-op) (c prebuilt-system))
  nil)

(defmethod bundle-sub-operations ((o monolithic-lib-op) (c prebuilt-system))
  (error "Prebuilt system ~S shipped with ECL can not be used in a
monolithic library operation." c))

(defmethod bundle-sub-operations ((o monolithic-bundle-op) (c
prebuilt-system))
  nil)

-- 
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20100313/456cc166/attachment.html>


More information about the asdf-devel mailing list