Otherwise, once the error system is initialized, a subsequent cold-load error
causes an infinite loop. At least this way there's some information about what
went wrong.
(RUNTIME SAVE/RESTORE)
(RUNTIME STRUCTURE-PARSER)
(RUNTIME SWANK)
- (RUNTIME STACK-SAMPLER)))
+ (RUNTIME STACK-SAMPLER)
+ ;; Last since it turns on runtime handling of microcode errors.
+ ((runtime microcode-errors) initialize-error-hooks!)))
\f
(let ((obj (file->object "site" #t #f)))
(if obj
(cons* continuation
'BOUND-RESTARTS
field-values))))))
+
+(define (initialize-error-hooks!)
+ (set-fixed-objects-item! 'system-error-vector error-handler-vector)
+ (set-fixed-objects-item! 'error-procedure
+ (lambda (datum arguments environment)
+ environment
+ (apply error (cons* datum arguments))))
+ (set-fixed-objects-item! 'compiler-error-procedure error))
\f
;;;; Restart Bindings
default-error-handler)
continuation
argument)))
-
-(set-fixed-objects-item! 'system-error-vector error-handler-vector)
-(set-fixed-objects-item! 'error-procedure
- (lambda (datum arguments environment)
- environment
- (apply error (cons* datum arguments))))
-(set-fixed-objects-item! 'compiler-error-procedure error)
\f
;;;; Variable Errors