X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-load.lisp;h=4a819e9bae8a3212e5d8557b8fd83f0456816610;hb=c6f5bc9d26b4f3d46c1d9947b5ea5a3514c802b3;hp=48b3fc394a18f5dd8e1cc4646f3fd159c67d2cf2;hpb=d51e3da4e408b17398f8219d490ec8c10812dfcf;p=sbcl.git diff --git a/src/code/target-load.lisp b/src/code/target-load.lisp index 48b3fc3..4a819e9 100644 --- a/src/code/target-load.lisp +++ b/src/code/target-load.lisp @@ -47,17 +47,18 @@ (if pathname (let* ((info (sb!c::make-file-source-info pathname (stream-external-format stream))) - (sb!c::*source-info* info) - (sb!c::*source-paths* (make-hash-table :test 'eq))) + (sb!c::*source-info* info)) (setf (sb!c::source-info-stream info) stream) (sb!c::do-forms-from-info ((form current-index) info) - (sb!c::find-source-paths form current-index) - (eval-form form current-index))) + (sb!c::with-source-paths + (sb!c::find-source-paths form current-index) + (eval-form form current-index)))) (let ((sb!c::*source-info* nil)) (do ((form (read stream nil *eof-object*) (read stream nil *eof-object*))) ((eq form *eof-object*)) - (eval-form form nil))))))) + (sb!c::with-source-paths + (eval-form form nil)))))))) t) ;;;; LOAD itself @@ -117,7 +118,9 @@ (return-from load (if faslp (load-as-fasl stream verbose print) - (load-as-source stream :verbose verbose :print print)))))) + (sb!c:with-compiler-error-resignalling + (load-as-source stream :verbose verbose + :print print))))))) ;; Case 1: stream. (when (streamp pathspec) (return-from load (load-stream pathspec (fasl-header-p pathspec))))