[slime-cvs] CVS slime

mbaringer mbaringer at common-lisp.net
Wed Sep 27 22:52:26 UTC 2006


Update of /project/slime/cvsroot/slime
In directory clnet:/tmp/cvs-serv4425

Modified Files:
	swank-loader.lisp 
Log Message:
(compile-files-if-needed-serially): Don't ignore compile-time errors
but drop into a debugger (it's not a slime debugger but it's certainly
better than ignoring the error).


--- /project/slime/cvsroot/slime/swank-loader.lisp	2006/04/13 10:41:59	1.59
+++ /project/slime/cvsroot/slime/swank-loader.lisp	2006/09/27 22:52:26	1.60
@@ -142,22 +142,26 @@
       (dolist (source-pathname files)
         (let ((binary-pathname (binary-pathname source-pathname
                                                 fasl-directory)))
-          (handler-case
-              (progn
-                (when (or needs-recompile
-                          (not (probe-file binary-pathname))
-                          (file-newer-p source-pathname binary-pathname))
-                  (ensure-directories-exist binary-pathname)
-                  (compile-file source-pathname :output-file binary-pathname
-                                :print nil :verbose t)
-                  (setq needs-recompile t))
-                (load binary-pathname :verbose t))
-            #+(or)
-            (error ()
-              ;; If an error occurs compiling, load the source instead
-              ;; so we can try to debug it.
-              (load source-pathname))
-            ))))))
+          (when (or needs-recompile
+                    (not (probe-file binary-pathname))
+                    (file-newer-p source-pathname binary-pathname))
+            ;; need a to recompile source-pathname, so we'll
+            ;; nede to recompile everything after this too.
+            (setq needs-recompile t)
+            (ensure-directories-exist binary-pathname)                  
+            (multiple-value-bind (output-file warningsp failurep)
+                (compile-file source-pathname :output-file binary-pathname
+                              :print nil
+                              :verbose t)
+              (declare (ignore output-file warningsp))
+              (when failurep
+                ;; If an error occurs compiling, load the source
+                ;; instead so we can try to debug it (this next
+                ;; call should, unless things are really broken,
+                ;; signal an error).
+                (format *error-output* ";; ERROR wihle compiling ~S." source-pathname)
+                (load source-pathname))))
+          (load binary-pathname :verbose t))))))
 
 #+(or cormanlisp ecl)
 (defun compile-files-if-needed-serially (files fasl-directory)




More information about the slime-cvs mailing list