Index: slime.el
===================================================================
RCS file: /project/slime/cvsroot/slime/slime.el,v
retrieving revision 1.1008
diff -u -r1.1008 slime.el
--- slime.el	30 Aug 2008 15:33:46 -0000	1.1008
+++ slime.el	9 Sep 2008 09:03:41 -0000
@@ -222,6 +222,11 @@
   :type 'boolean
   :group 'slime-mode)
 
+(defcustom slime-compile-location ""
+  "Where should slime put fasl files"
+  :type 'string
+  :group 'slime)
+
 ;;;;; slime-mode-faces
 
 (defgroup slime-mode-faces nil
@@ -3893,8 +3898,16 @@
 underlined and annotated with the relevant information. The commands
 `slime-next-note' and `slime-previous-note' can be used to navigate
 between compiler notes and to display their full details."
+
   (interactive)
-  (slime-compile-file t))
+  
+  (let ((location (slime-eval 'swank:*binary-location*)))    
+    (slime-eval (list 'cl-user::setf 'swank:*binary-location* slime-compile-location))
+    (unwind-protect 
+         (slime-compile-file t)
+      (slime-eval (list 'cl-user::setf 'swank:*binary-location* location)))))
+  
+
 
 (defun slime-compile-file (&optional load)
   "Compile current buffer's file and highlight resulting compiler notes.
Index: swank-lispworks.lisp
===================================================================
RCS file: /project/slime/cvsroot/slime/swank-lispworks.lisp,v
retrieving revision 1.113
diff -u -r1.113 swank-lispworks.lisp
--- swank-lispworks.lisp	11 Aug 2008 07:39:15 -0000	1.113
+++ swank-lispworks.lisp	9 Sep 2008 09:03:41 -0000
@@ -25,6 +25,7 @@
 (defun swank-mop:compute-applicable-methods-using-classes (gf classes)
   (clos::compute-applicable-methods-from-classes gf classes))
 
+
 ;; lispworks doesn't have the eql-specializer class, it represents
 ;; them as a list of `(EQL ,OBJECT)
 (deftype swank-mop:eql-specializer () 'cons)
@@ -396,7 +397,7 @@
 
 (defimplementation swank-compile-file (filename load-p external-format)
   (with-swank-compilation-unit (filename)
-    (compile-file filename :load load-p :external-format external-format)))
+    (compile-file filename :load load-p :external-format external-format :output-file (symbol-value (find-symbol (string '*binary-location*) :swank)))))
 
 (defvar *within-call-with-compilation-hooks* nil
   "Whether COMPILE-FILE was called from within CALL-WITH-COMPILATION-HOOKS.")
Index: swank.lisp
===================================================================
RCS file: /project/slime/cvsroot/slime/swank.lisp,v
retrieving revision 1.581
diff -u -r1.581 swank.lisp
--- swank.lisp	31 Aug 2008 11:58:01 -0000	1.581
+++ swank.lisp	9 Sep 2008 09:03:41 -0000
@@ -27,6 +27,7 @@
            #:emacs-inspect
            ;;#:inspect-slot-for-emacs
            ;; These are user-configurable variables:
+           #:*binary-location*
            #:*communication-style*
            #:*dont-close*
            #:*log-events*
@@ -662,6 +663,9 @@
 (defvar *dedicated-output-stream-port* 0
   "Which port we should use for the dedicated output stream.")
 
+(defvar *binary-location* "."
+  "path to directory where swank should place fasl files when")
+
 (defvar *communication-style* (preferred-communication-style))
 
 (defvar *dont-close* nil


