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!