A couple of patches that I found necessary using Lispworks Personal Edition. These should be considered more a proof of concept than polished code.
The first one enables the load-library repl-shorcut by just defining a dummy call-with-compilation-hooks. The second does a better work finding files, IMHO, given that the phisical drive of a file (on windows) is stored as the host component and it is not used to construct the pathname. Of course a pathname expert should review the thing before commit.
$ diff -u swank-lispworks.lisp~ swank-lispworks.lisp --- swank-lispworks.lisp~ 2004-09-07 00:13:30.000000000 +0200 +++ swank-lispworks.lisp 2004-09-05 18:09:44.000000000 +0200 @@ -313,6 +313,7 @@ (loop for (dspec location) in locations collect (list dspec (make-dspec-location dspec location)))))
+ ;;; Compilation
(defmacro with-swank-compilation-unit ((location &rest options) &body body) @@ -327,6 +328,10 @@ (with-swank-compilation-unit (filename) (compile-file filename :load load-p)))
+(defimplementation call-with-compilation-hooks (function) + ;; #'pray instead of #'handler-bind + (funcall function)) + (defun map-error-database (database fn) (loop for (filename . defs) in database do (loop for (dspec . conditions) in defs do
=======================================================================
$ diff -u swank-loader.lisp~ swank-loader.lisp --- swank-loader.lisp~ 2004-09-04 18:19:52.000000000 +0200 +++ swank-loader.lisp 2004-09-05 17:35:52.000000000 +0200 @@ -15,17 +15,10 @@
(defun make-swank-pathname (name &optional (type "lisp")) "Return a pathname with name component NAME in the Slime directory." - (merge-pathnames name - (make-pathname - :type type - :device - (pathname-device - (or *compile-file-pathname* *load-pathname* - *default-pathname-defaults*)) - :directory - (pathname-directory - (or *compile-file-pathname* *load-pathname* - *default-pathname-defaults*))))) + (merge-pathnames (make-pathname :name name :type type) + (or *compile-file-pathname* + *load-pathname* + *default-pathname-defaults*)))
(defparameter *sysdep-pathnames* (mapcar #'make-swank-pathname