summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2010-02-19 11:50:51 +0100
committerAndy Wingo <wingo@pobox.com>2010-02-19 12:10:12 +0100
commitf5b1f76af492f3c398527ee040e8bf09fc438a9a (patch)
tree5c44d7d45abed83763eb3076addde7d18882c0b9
parent706a705eca032f84562ec84ac439b3d4a7ca8c66 (diff)
downloadguile-f5b1f76af492f3c398527ee040e8bf09fc438a9a.tar.gz
fluid-ref / fluid-set! compile to dynref/dynset
* module/language/tree-il/primitives.scm: Resolve fluid-ref and fluid-set! as primitives, and thence to dynref/dynset.
-rw-r--r--module/language/tree-il/primitives.scm14
1 files changed, 14 insertions, 0 deletions
diff --git a/module/language/tree-il/primitives.scm b/module/language/tree-il/primitives.scm
index 48cb03c04..4f8364224 100644
--- a/module/language/tree-il/primitives.scm
+++ b/module/language/tree-il/primitives.scm
@@ -61,6 +61,8 @@
variable-bound?
;; args of variable-set are switched; it needs special help
+ fluid-ref fluid-set!
+
struct? struct-vtable make-struct struct-ref struct-set!
bytevector-u8-ref bytevector-u8-set!
@@ -421,6 +423,18 @@
(make-lexical-ref #f 'post POST)))))))
(hashq-set! *primitive-expand-table*
+ 'fluid-ref
+ (case-lambda
+ ((src fluid) (make-dynref src fluid))
+ (else #f)))
+
+(hashq-set! *primitive-expand-table*
+ 'fluid-set!
+ (case-lambda
+ ((src fluid exp) (make-dynset src fluid exp))
+ (else #f)))
+
+(hashq-set! *primitive-expand-table*
'prompt
(case-lambda
((src tag thunk handler)