Implement compiled code reference trap errors.
authorChris Hanson <org/chris-hanson/cph>
Thu, 11 Aug 1988 03:15:17 +0000 (03:15 +0000)
committerChris Hanson <org/chris-hanson/cph>
Thu, 11 Aug 1988 03:15:17 +0000 (03:15 +0000)
v7/src/runtime/uerror.scm
v7/src/runtime/version.scm

index e4a43399e62c2b9ce14f7139755918a5e4593b80..1bb4a2143f64be6e08419f9061fd01fed19a7c02 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/uerror.scm,v 14.4 1988/08/05 20:49:33 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/uerror.scm,v 14.5 1988/08/11 03:13:57 cph Exp $
 
 Copyright (c) 1988 Massachusetts Institute of Technology
 
@@ -436,6 +436,14 @@ MIT in each case. |#
                 (internal-apply-frame/operator frame))
           repl-environment))))
 
+    (define (define-reference-trap-handler error-type frame-type)
+      (define-error-handler error-type frame-type true
+       (lambda (condition-type frame)
+         (make-error-condition
+          condition-type
+          (list (stack-frame/ref frame 1))
+          (stack-frame/ref frame 2)))))
+
     (define-standard-frame-handler 'UNBOUND-VARIABLE 'EVAL-ERROR
       standard-frame/variable? variable-name)
 
@@ -456,6 +464,21 @@ MIT in each case. |#
     (define-internal-apply-handler 'UNBOUND-VARIABLE 0 2
       (ucode-primitive environment-link-name))
 
+    (define-reference-trap-handler 'UNBOUND-VARIABLE
+      'COMPILER-REFERENCE-TRAP-RESTART)
+
+    (define-reference-trap-handler 'UNBOUND-VARIABLE
+      'COMPILER-SAFE-REFERENCE-TRAP-RESTART)
+
+    (define-reference-trap-handler 'UNBOUND-VARIABLE
+      'COMPILER-ASSIGNMENT-TRAP-RESTART)
+
+    (define-reference-trap-handler 'UNBOUND-VARIABLE
+      'COMPILER-UNASSIGNED?-TRAP-RESTART)
+
+    (define-reference-trap-handler 'UNBOUND-VARIABLE
+      'COMPILER-OPERATOR-LOOKUP-TRAP-RESTART)
+
     (define-internal-apply-handler 'BAD-ASSIGNMENT 0 2
       (ucode-primitive environment-link-name))
 
@@ -468,6 +491,12 @@ MIT in each case. |#
     (define-internal-apply-handler 'UNASSIGNED-VARIABLE 0 1
       (ucode-primitive lexical-reference))
 
+    (define-reference-trap-handler 'UNASSIGNED-VARIABLE
+      'COMPILER-REFERENCE-TRAP-RESTART)
+
+    (define-reference-trap-handler 'UNASSIGNED-VARIABLE
+      'COMPILER-OPERATOR-LOOKUP-TRAP-RESTART)
+
     (define-expression-frame-handler 'BAD-FRAME 'ACCESS-CONTINUE true
       access-environment)
 
index 943390065b309384379ae164febc33a84c52ce8d..3cf03770a9b337954630b4d5a041b16d1a652cb4 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/version.scm,v 14.17 1988/08/05 20:59:16 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/version.scm,v 14.18 1988/08/11 03:15:17 cph Exp $
 
 Copyright (c) 1988 Massachusetts Institute of Technology
 
@@ -45,7 +45,7 @@ MIT in each case. |#
                     '()))
   (add-system! microcode-system)
   (add-event-receiver! event:after-restore snarf-microcode-version!)
-  (add-identification! "Runtime" 14 17))
+  (add-identification! "Runtime" 14 18))
 
 (define microcode-system)