Update of /cvsroot/sbcl/sbcl/src/cold
In directory usw-pr-cvs1:/tmp/cvs-serv3270/src/cold
Modified Files:
shared.lisp
Log Message:
0.7.4.2:
merged patch from Antonio Martinez (sbcl-devel 22 May 2002)...
...more full-featured restarts in COMPILE-STEM so that it can
be less painful to resume compilation after fixing a
minor problem
...DECLARE IGNORE so that old CMU CL works as xc host again
Index: shared.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/cold/shared.lisp,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -d -r1.26 -r1.27
*** shared.lisp 3 May 2002 14:59:15 -0000 1.26
--- shared.lisp 26 May 2002 20:28:27 -0000 1.27
***************
*** 164,190 ****
;; Try to use the compiler to generate a new temporary object file.
! (multiple-value-bind (output-truename warnings-p failure-p)
! (funcall compile-file src :output-file tmp-obj)
! (declare (ignore warnings-p))
! (cond ((not output-truename)
! (error "couldn't compile ~S" src))
! (failure-p
! (if ignore-failure-p
! (warn "ignoring FAILURE-P return value from compilation of ~S"
! src)
! (unwind-protect
! (progn
! ;; FIXME: This should have another option,
! ;; redoing compilation.
! (cerror "Continue, using possibly-bogus ~S."
! "FAILURE-P was set when creating ~S."
! obj)
! (setf failure-p nil))
! ;; Don't leave failed object files lying around.
! (when (and failure-p (probe-file tmp-obj))
! (delete-file tmp-obj)
! (format t "~&deleted ~S~%" tmp-obj)))))
! ;; Otherwise: success, just fall through.
! (t nil)))
;; If we get to here, compilation succeeded, so it's OK to rename
--- 164,198 ----
;; Try to use the compiler to generate a new temporary object file.
! (flet ((report-recompile-restart (stream)
! (format stream "Recompile file ~S" src))
! (report-continue-restart (stream)
! (format stream "Continue, using possibly bogus file ~S" obj)))
! (tagbody
! retry-compile-file
! (multiple-value-bind (output-truename warnings-p failure-p)
! (funcall compile-file src :output-file tmp-obj)
! (declare (ignore warnings-p))
! (cond ((not output-truename)
! (error "couldn't compile ~S" src))
! (failure-p
! (if ignore-failure-p
! (warn "ignoring FAILURE-P return value from compilation of ~S"
! src)
! (unwind-protect
! (restart-case
! (error "FAILURE-P was set when creating ~S."
! obj)
! (recompile ()
! :report report-recompile-restart
! (go retry-compile-file))
! (continue ()
! :report report-continue-restart
! (setf failure-p nil)))
! ;; Don't leave failed object files lying around.
! (when (and failure-p (probe-file tmp-obj))
! (delete-file tmp-obj)
! (format t "~&deleted ~S~%" tmp-obj)))))
! ;; Otherwise: success, just fall through.
! (t nil)))))
;; If we get to here, compilation succeeded, so it's OK to rename
|