diff options
author | Andy Wingo <wingo@pobox.com> | 2010-02-19 11:50:51 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2010-02-19 12:10:12 +0100 |
commit | f5b1f76af492f3c398527ee040e8bf09fc438a9a (patch) | |
tree | 5c44d7d45abed83763eb3076addde7d18882c0b9 | |
parent | 706a705eca032f84562ec84ac439b3d4a7ca8c66 (diff) | |
download | guile-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.scm | 14 |
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) |