#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/conpar.scm,v 14.3 1988/06/21 04:21:49 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/conpar.scm,v 14.4 1988/06/22 21:24:16 cph Exp $
Copyright (c) 1988 Massachusetts Institute of Technology
(define (parser/restore-dynamic-state type elements state)
(make-restore-frame type elements state
- (vector-ref elements 0)
+ ;; Possible problem: the dynamic state really
+ ;; consists of all of the state spaces in
+ ;; existence. Probably we should have some
+ ;; mechanism for keeping track of them all.
+ (let ((dynamic-state (vector-ref elements 0)))
+ (if (eq? system-state-space
+ (state-point/space dynamic-state))
+ dynamic-state
+ (parser-state/dynamic-state state)))
(parser-state/fluid-bindings state)
(parser-state/interrupt-mask state)
(parser-state/history state)
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/runtime.pkg,v 14.6 1988/06/22 21:09:42 jrm Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/runtime.pkg,v 14.7 1988/06/22 21:23:58 cph Exp $
Copyright (c) 1988 Massachusetts Institute of Technology
set-current-dynamic-state!
set-fluid-bindings!
translate-to-state-point)
+ (export (runtime continuation-parser)
+ state-point/space
+ system-state-space)
(initialization (initialize-package!)))
(define-package (runtime stream)
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/version.scm,v 14.6 1988/06/21 05:51:30 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/version.scm,v 14.7 1988/06/22 21:25:16 cph Exp $
Copyright (c) 1988 Massachusetts Institute of Technology
(define (initialize-package!)
(add-identification!
"Microcode" microcode-id/version microcode-id/modification)
- (add-identification! "Runtime" 14 6))
\ No newline at end of file
+ (add-identification! "Runtime" 14 7))
\ No newline at end of file
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/wind.scm,v 14.1 1988/06/13 12:00:51 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/wind.scm,v 14.2 1988/06/22 21:24:34 cph Exp $
Copyright (c) 1988 Massachusetts Institute of Technology
(current-dynamic-state))
((ucode-primitive set-fixed-objects-vector!) fixed-objects)))
+(define-structure (state-point (type vector)
+ (initial-offset 1)
+ (constructor false)
+ (conc-name state-point/))
+ (before-thunk false read-only true)
+ (after-thunk false read-only true)
+ (nearer-point false read-only true)
+ (distance-to-root false read-only true))
+
+(define (state-point/space point)
+ (let ((next (state-point/nearer-point point)))
+ (if (positive? (state-point/distance-to-root point))
+ (state-point/space next)
+ next)))
+
(define-primitives
execute-at-new-state-point
translate-to-state-point
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/conpar.scm,v 14.3 1988/06/21 04:21:49 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/conpar.scm,v 14.4 1988/06/22 21:24:16 cph Exp $
Copyright (c) 1988 Massachusetts Institute of Technology
(define (parser/restore-dynamic-state type elements state)
(make-restore-frame type elements state
- (vector-ref elements 0)
+ ;; Possible problem: the dynamic state really
+ ;; consists of all of the state spaces in
+ ;; existence. Probably we should have some
+ ;; mechanism for keeping track of them all.
+ (let ((dynamic-state (vector-ref elements 0)))
+ (if (eq? system-state-space
+ (state-point/space dynamic-state))
+ dynamic-state
+ (parser-state/dynamic-state state)))
(parser-state/fluid-bindings state)
(parser-state/interrupt-mask state)
(parser-state/history state)
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/runtime.pkg,v 14.6 1988/06/22 21:09:42 jrm Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/runtime.pkg,v 14.7 1988/06/22 21:23:58 cph Exp $
Copyright (c) 1988 Massachusetts Institute of Technology
set-current-dynamic-state!
set-fluid-bindings!
translate-to-state-point)
+ (export (runtime continuation-parser)
+ state-point/space
+ system-state-space)
(initialization (initialize-package!)))
(define-package (runtime stream)