Fix bootstrap unassigned variable problem in without-stepping.
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Tue, 27 Aug 1991 01:22:21 +0000 (01:22 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Tue, 27 Aug 1991 01:22:21 +0000 (01:22 +0000)
v7/src/runtime/global.scm
v8/src/runtime/global.scm

index 631e3fd3cedee906c7cc89df7368fe3b08e5d0c6..15c5075e5dd8ec97ba734768130a978d6eb945fe 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/global.scm,v 14.25 1991/08/26 20:28:01 markf Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/global.scm,v 14.26 1991/08/27 01:22:21 jinx Exp $
 
 Copyright (c) 1988-91 Massachusetts Institute of Technology
 
@@ -258,25 +258,27 @@ MIT in each case. |#
                 (cdr bucket)
                 (cons (car bucket) accumulator))))))))
 
-;;; without-stepping restores the stepper hooks to the state
-;;; encountered on each entry to the thunk. It might be better to
-;;; restore the hooks to the initial state. I flipped a coin.
-(define without-stepping
-  (let ((microcode-vector-stepper-slot
-        (fixed-objects-vector-slot 'stepper-state)))
+;; WITHOUT-STEPPING restores the stepper hooks to the state
+;; encountered on each entry to the thunk. It might be better to
+;; restore the hooks to the initial state. I flipped a coin.
 
+(let-syntax ((ufixed-objects-slot
+             (macro (name)
+               (fixed-objects-vector-slot name))))
+
+  (define (without-stepping thunk)
     (define (get-stepper-hooks)
-      (vector-ref (get-fixed-objects-vector) microcode-vector-stepper-slot))
-
-    (lambda (thunk)
-      (let ((old-stepper-hooks)
-           (null-hooks (hunk3-cons #f #f #f)))
-       (dynamic-wind
-        (lambda ()
-          (set! old-stepper-hooks (get-stepper-hooks))
-          ((ucode-primitive primitive-return-step 2) unspecific null-hooks))
-        thunk
-        (lambda ()
-          ((ucode-primitive primitive-return-step 2)
-           unspecific
-           old-stepper-hooks)))))))
\ No newline at end of file
+      (vector-ref (get-fixed-objects-vector)
+                 (ufixed-objects-slot stepper-state)))
+
+    (let ((old-stepper-hooks)
+         (null-hooks (hunk3-cons #f #f #f)))
+      (dynamic-wind
+       (lambda ()
+        (set! old-stepper-hooks (get-stepper-hooks))
+        ((ucode-primitive primitive-return-step 2) unspecific null-hooks))
+       thunk
+       (lambda ()
+        ((ucode-primitive primitive-return-step 2)
+         unspecific
+         old-stepper-hooks))))))
\ No newline at end of file
index ceebe73425b0896ad487fecd143b2e640cf290fe..88ed91dff1864c1347f63cc068d773fa9c640713 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/global.scm,v 14.25 1991/08/26 20:28:01 markf Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/global.scm,v 14.26 1991/08/27 01:22:21 jinx Exp $
 
 Copyright (c) 1988-91 Massachusetts Institute of Technology
 
@@ -258,25 +258,27 @@ MIT in each case. |#
                 (cdr bucket)
                 (cons (car bucket) accumulator))))))))
 
-;;; without-stepping restores the stepper hooks to the state
-;;; encountered on each entry to the thunk. It might be better to
-;;; restore the hooks to the initial state. I flipped a coin.
-(define without-stepping
-  (let ((microcode-vector-stepper-slot
-        (fixed-objects-vector-slot 'stepper-state)))
+;; WITHOUT-STEPPING restores the stepper hooks to the state
+;; encountered on each entry to the thunk. It might be better to
+;; restore the hooks to the initial state. I flipped a coin.
 
+(let-syntax ((ufixed-objects-slot
+             (macro (name)
+               (fixed-objects-vector-slot name))))
+
+  (define (without-stepping thunk)
     (define (get-stepper-hooks)
-      (vector-ref (get-fixed-objects-vector) microcode-vector-stepper-slot))
-
-    (lambda (thunk)
-      (let ((old-stepper-hooks)
-           (null-hooks (hunk3-cons #f #f #f)))
-       (dynamic-wind
-        (lambda ()
-          (set! old-stepper-hooks (get-stepper-hooks))
-          ((ucode-primitive primitive-return-step 2) unspecific null-hooks))
-        thunk
-        (lambda ()
-          ((ucode-primitive primitive-return-step 2)
-           unspecific
-           old-stepper-hooks)))))))
\ No newline at end of file
+      (vector-ref (get-fixed-objects-vector)
+                 (ufixed-objects-slot stepper-state)))
+
+    (let ((old-stepper-hooks)
+         (null-hooks (hunk3-cons #f #f #f)))
+      (dynamic-wind
+       (lambda ()
+        (set! old-stepper-hooks (get-stepper-hooks))
+        ((ucode-primitive primitive-return-step 2) unspecific null-hooks))
+       thunk
+       (lambda ()
+        ((ucode-primitive primitive-return-step 2)
+         unspecific
+         old-stepper-hooks))))))
\ No newline at end of file