Index: ChangeLog
===================================================================
RCS file: /project/slime/cvsroot/slime/ChangeLog,v
retrieving revision 1.1214
diff -u -r1.1214 ChangeLog
--- ChangeLog	11 Sep 2007 19:31:45 -0000	1.1214
+++ ChangeLog	12 Sep 2007 18:20:53 -0000
@@ -1,3 +1,10 @@
+2007-09-12  Christophe Rhodes  <csr21@cantab.net>
+
+	Make ASDF:LOAD-OP (and SBCL REQUIRE) happy with swank.asd
+
+	* swank.asd: Define and use a CL-SCRIPT-FILE class for loading as
+	source, even with ASDF:LOAD-OP.
+
 2007-09-11  Tobias C. Rittweiler  <tcr@freebits.de>
 
 	* swank-loader.lisp: Aways compile-file `contrib/swank-asdf.lisp'
Index: swank-loader.lisp
===================================================================
RCS file: /project/slime/cvsroot/slime/swank-loader.lisp,v
retrieving revision 1.72
diff -u -r1.72 swank-loader.lisp
--- swank-loader.lisp	11 Sep 2007 19:30:53 -0000	1.72
+++ swank-loader.lisp	12 Sep 2007 18:20:54 -0000
@@ -18,7 +18,6 @@
 ;;   (defparameter swank-loader::*fasl-directory* "/tmp/fasl/")
 ;;   (load ".../swank-loader.lisp")
 
-
 (cl:defpackage :swank-loader
   (:use :cl)
   (:export :load-swank
Index: swank.asd
===================================================================
RCS file: /project/slime/cvsroot/slime/swank.asd,v
retrieving revision 1.4
diff -u -r1.4 swank.asd
--- swank.asd	12 Jul 2006 20:25:23 -0000	1.4
+++ swank.asd	12 Sep 2007 18:20:54 -0000
@@ -19,10 +19,30 @@
 ;; This code has been placed in the Public Domain.  All warranties
 ;; are disclaimed.
 
+(defpackage :swank-loader
+  (:use :cl))
+
+(in-package :swank-loader)
+
+(defclass cl-script-file (asdf:source-file) ())
+
+(defmethod asdf:perform ((o asdf:compile-op) (f cl-script-file))
+  t)
+(defmethod asdf:perform ((o asdf:load-op) (f cl-script-file))
+  (mapcar #'load (asdf:input-files o f)))
+(defmethod asdf:output-files ((o asdf:compile-op) (f cl-script-file))
+  nil)
+(defmethod asdf:input-files ((o asdf:load-op) (c cl-script-file))
+  (list (asdf:component-pathname c)))
+(defmethod asdf:operation-done-p ((o asdf:compile-op) (c cl-script-file))
+  t)
+(defmethod asdf:source-file-type ((c cl-script-file) (s asdf:module))
+  "lisp")
+
 (asdf:defsystem :swank
+    :default-component-class cl-script-file
     :components ((:file "swank-loader")))
 
-(defpackage :swank-loader)
-(defparameter swank-loader::*source-directory*
+(defparameter *source-directory*
   (asdf:component-pathname (asdf:find-system :swank)))
 
