diff --git a/tools/setup.lisp b/tools/setup.lisp index 7c781afd43469950023ae3de9888b64cf9955a31..1d47ca97565e479763c6aa2b4f12ea441ffd5925 100644 --- a/tools/setup.lisp +++ b/tools/setup.lisp @@ -175,34 +175,37 @@ (ext:format-universal-time nil (get-universal-time)) name) (catch 'blow-this-file - (cond - (*interactive* - (if assem - (c::assemble-file src :output-file obj) - (compile-file src :error-file nil :output-file obj)) - (when load - (load name :verbose t))) - (t - (handler-bind ((error #'(lambda (condition) - (format *error-output* "~2&~A~2&" - condition) - (when proceed - (format *error-output* "Proceeding...~%") - (continue)) - (format *error-output* "Aborting...~%") - (handler-case - (let ((*debug-io* *error-output*)) - (debug:backtrace)) - (error (condition) - (declare (ignore condition)) - (format t "Error in backtrace!~%"))) - (format t "Error abort.~%") - (return-from comf)))) + (with-simple-restart + (continue "Blow this file") + (cond + (*interactive* (if assem (c::assemble-file src :output-file obj) (compile-file src :error-file nil :output-file obj)) (when load - (load name :verbose t))))))))) + (load name :verbose t))) + (t + (handler-bind + ((error #'(lambda (condition) + (format *error-output* "~2&~A~2&" + condition) + (when proceed + (format *error-output* "Proceeding...~%") + (continue)) + (format *error-output* "Aborting...~%") + (handler-case + (let ((*debug-io* *error-output*)) + (debug:backtrace)) + (error (condition) + (declare (ignore condition)) + (format t "Error in backtrace!~%"))) + (format t "Error abort.~%") + (return-from comf)))) + (if assem + (c::assemble-file src :output-file obj) + (compile-file src :error-file nil :output-file obj)) + (when load + (load name :verbose t))))))))))