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
On 07 Sep 2004 01:01:20 +0200, =?iso-8859-1?q?Eduardo_Mu=F1oz?= emufer@terra.es said:
Eduardo> A couple of patches that I found necessary using Lispworks Eduardo> Personal Edition. These should be considered more a proof of Eduardo> concept than polished code.
Eduardo> The first one enables the load-library repl-shorcut by just Eduardo> defining a dummy call-with-compilation-hooks. The second Eduardo> does a better work finding files, IMHO, given that the Eduardo> phisical drive of a file (on windows) is stored as the host Eduardo> component and it is not used to construct the pathname. Of Eduardo> course a pathname expert should review the thing before Eduardo> commit.
Thanks, I commited your patch for swank-lispworks.lisp. The change to swank-loader.lisp looks right too, but I don't know if I should commit it without any testing on other backends.
__Martin
* Martin Simmons martin@xanalys.com | Thanks, I commited your patch for swank-lispworks.lisp. The change to | swank-loader.lisp looks right too, but I don't know if I should commit it | without any testing on other backends. |
I've tested the change in cmucl, sbcl, lww and clisp and it does the rigth thing on all of them. At least nothing breaks in an obvious way. And we are after 1.0 release, so it's time to break things again :)
On 08 Sep 2004 21:30:14 +0200, =?iso-8859-1?q?Eduardo_Mu=F1oz?= emufer@terra.es said:
Eduardo> * Martin Simmons martin@xanalys.com Eduardo> | Thanks, I commited your patch for swank-lispworks.lisp. The change to Eduardo> | swank-loader.lisp looks right too, but I don't know if I should commit it Eduardo> | without any testing on other backends. Eduardo> |
Eduardo> I've tested the change in cmucl, sbcl, lww and clisp and it Eduardo> does the rigth thing on all of them. At least nothing breaks Eduardo> in an obvious way. And we are after 1.0 release, so it's Eduardo> time to break things again :)
Thanks, I've merged it.
__Martin