Relocating asdf fasl cache

73budden . budden73 at gmail.com
Thu Oct 15 11:12:32 UTC 2015


Hi! I make a "portable file release" of my software. I want that user could just
unpack archive to some "my" directory and than have the software completely
independent from any other possible CL installations on this computer.
I found (too) many words about output translations in asdf manual, but
I was unable to find out how I will do what I need.

My solution and relevant portions in my .sbclrc (for SBCL) follow:

(require :uiop)
(setf uiop::*user-cache* #P"c:/clcon/fasl-cache/asdf/")
(require 'asdf)
;;; The following lines added by ql:add-to-init-file:
#-quicklisp
(let ((quicklisp-init "c:/clcon/quicklisp/setup.lisp"
                                       ))
  (when (probe-file quicklisp-init)
    (load quicklisp-init)))
; swank is handled separatedly (maybe irrelevant to asdf, but relevant
; to task of creating "portable file releases"
(load (merge-pathnames "swank-loader.lisp" (ql:where-is-system :swank)))
(setq swank-loader::*fasl-directory* "c:/clcon/fasl-cache/swank/")
(swank-loader:init)

Problem with current docs is that *user-cache* is mentioned in docs, but
it is not stated _when_ the default is calculated. This variable have no default
value, but it has a function which calculates it. It is not evident
when this function
is called. So I needed an experiment. I even don't know when value I supplied
will be reset back to hard-coded value.

If you find it useful, you can consider including it into asdf
doc/wiki/FAQ, or address
me to the appropriate place.

Thank you!



More information about the asdf-devel mailing list