[armedbear-cvs] r11812 - trunk/abcl/src/org/armedbear/lisp

Erik Huelsmann ehuelsmann at common-lisp.net
Fri May 1 21:40:11 UTC 2009


Author: ehuelsmann
Date: Fri May  1 17:40:08 2009
New Revision: 11812

Log:
Followup to r11810: revert it and use a different strategy which
works with *all* forms (which load compiled functions); based
on a report by Stas that system compilation doesn't work with r11810.

Modified:
   trunk/abcl/src/org/armedbear/lisp/compile-file.lisp

Modified: trunk/abcl/src/org/armedbear/lisp/compile-file.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/compile-file.lisp	(original)
+++ trunk/abcl/src/org/armedbear/lisp/compile-file.lisp	Fri May  1 17:40:08 2009
@@ -313,24 +313,18 @@
                     (t
 ;;                      (setf form (precompile-form form nil))
                      (note-toplevel-form form)
-                     (let ((new-form (convert-toplevel-form form)))
-                       ;; The converted form depends on the loader
-                       ;; but since we don't own the loader here,
-                       ;; we'll dump the converted form and eval
-                       ;; the original one (which won't depend on the loader
-                       ;; because it doesn't contain a compiled function)
-                       (when (consp new-form)
-                         (dump-form new-form stream)
-                         (%stream-terpri stream)))
-                     (when compile-time-too
-                       (eval form))
-                     (return-from process-toplevel-form)
+                     (setf form (convert-toplevel-form form))
                      )))))))
   (when (consp form)
     (dump-form form stream)
     (%stream-terpri stream))
-  (when compile-time-too
-    (eval form)))
+  ;; Make sure the compiled-function loader knows where
+  ;; to load the compiled functions. Note that this trickery
+  ;; was already used in verify-load before I used it,
+  ;; however, binding *load-truename* isn't fully compliant, I think.
+  (let ((*load-truename* *output-file-pathname*))
+    (when compile-time-too
+      (eval form))))
 
 (declaim (ftype (function (t) t) convert-ensure-method))
 (defun convert-ensure-method (form)




More information about the armedbear-cvs mailing list