Controlling fasl location
Max Mikhanosha
max at openchat.com
Mon Jun 17 15:03:12 UTC 2013
Here is what I been using for a few years, C-c C-k output goes to the
same place as asdf. Note I don't remember why it does this through
find-symbol, but I it could be that Slime not always had the
*FASL-PATHNAME-FUNCTION* thing, and I wanted it to work on both new
and old slime.. You can probably convert find-symbol to defvar or
such.
;; Make C-c C-k in SLIME also use the correct directory
(let (fasl-finder-sym)
(when (and (find-package :swank)
(setq fasl-finder-sym
(find-symbol "*FASL-PATHNAME-FUNCTION*" :swank))
(null (symbol-value fasl-finder-sym)))
(set fasl-finder-sym
(lambda (path options)
(declare (ignore options))
(let ((fasl-path
(asdf:apply-output-translations (compile-file-pathname path))))
(when fasl-path
(ensure-directories-exist fasl-path)
fasl-path))))))
At Sun, 16 Jun 2013 15:39:38 -0700,
Paul Bowyer wrote:
>
> Hello Helmut,
>
> I found this link on the slime-developer mailing list and I wondered if
> it is usable and if so, how would I implement it? I don't have a lot of
> experience fiddling with slime's internals.
> http://article.gmane.org/gmane.lisp.slime.devel/8378/match=fasl
>
> Is there some other convenient way to set the location for fasl files
> from within a slime session so that when I do a compile/load, the fasl
> goes to the same location as the output from asdf. Currently the output
> from asdf goes to one place, and the output from compile/load goes to my
> source directory.
>
> I'm looking for a simple function call that would pass a pathname or
> would return to the default if no pathname was passed or maybe just a
> variable that I can set from within a slime session that would do the
> job. I only want this to to happen for some projects and not happen for
> others that don't yet use asdf.
>
> Thanks,
>
> Paul Bowyer
>
>
More information about the slime-devel
mailing list