summaryrefslogtreecommitdiff
path: root/module/system/vm/trap-state.scm
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2013-11-21 16:45:03 +0100
committerAndy Wingo <wingo@pobox.com>2013-11-21 16:45:03 +0100
commita222cbc9d147c0649b5b4621579de977a690b213 (patch)
tree05e3befc413d9a2f0320a3f68bca110d2e14c00d /module/system/vm/trap-state.scm
parent972275eee5326b4628f207996e14e0040fb94256 (diff)
downloadguile-a222cbc9d147c0649b5b4621579de977a690b213.tar.gz
No more VM objects visible to Scheme
* libguile/vm.h: * libguile/vm.c (scm_the_vm): Don't expose to Scheme. (scm_vm_p): Remove, as it is not needed. * module/system/vm/vm.scm: Remove the-vm and vm? exports. * doc/ref/api-coverage.texi (Code Coverage): * test-suite/tests/coverage.test: * module/system/vm/coverage.scm (with-code-coverage): Don't take a VM argument. Adapt documentation and tests. * module/ice-9/command-line.scm: Remove the-vm autoload. * module/system/vm/trace.scm (trace-calls-to-procedure): (trace-calls-in-procedure): (trace-instructions-in-procedure): (call-with-trace): Remove #:vm kwarg, and adapt to trap changes. * module/system/vm/trap-state.scm (the-trap-state): Rework to use a parameter underneath instead of a weak key on (the-vm). * module/system/vm/traps.scm (new-disabled-trap): (new-enabled-trap): Remove vm argument. (trap-at-procedure-call): (trap-in-procedure): (trap-instructions-in-procedure): (trap-at-procedure-ip-in-range): (trap-at-source-location): (trap-frame-finish): (trap-in-dynamic-extent): (trap-calls-in-dynamic-extent): (trap-instructions-in-dynamic-extent): (trap-calls-to-procedure): (trap-matching-instructions): Remove vm keyword arguments. * test-suite/tests/control.test ("unwind"): Adapt test. * test-suite/tests/eval.test (test-suite): Remove the-vm import.
Diffstat (limited to 'module/system/vm/trap-state.scm')
-rw-r--r--module/system/vm/trap-state.scm16
1 files changed, 8 insertions, 8 deletions
diff --git a/module/system/vm/trap-state.scm b/module/system/vm/trap-state.scm
index 78ccb8d89..464740bcd 100644
--- a/module/system/vm/trap-state.scm
+++ b/module/system/vm/trap-state.scm
@@ -146,19 +146,19 @@
;;;
-;;; VM-local trap states
+;;; Per-thread trap states
;;;
-(define *trap-states* (make-weak-key-hash-table))
+;; FIXME: This should be thread-local -- not something you can inherit
+;; from a dynamic state.
-(define (trap-state-for-vm vm)
- (or (hashq-ref *trap-states* vm)
- (let ((ts (make-trap-state)))
- (hashq-set! *trap-states* vm ts)
- (trap-state-for-vm vm))))
+(define %trap-state (make-parameter #f))
(define (the-trap-state)
- (trap-state-for-vm (the-vm)))
+ (or (%trap-state)
+ (let ((ts (make-trap-state)))
+ (%trap-state ts)
+ ts)))