summaryrefslogtreecommitdiff
path: root/module/language/tree-il
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2013-06-27 12:20:36 +0200
committerAndy Wingo <wingo@pobox.com>2013-06-27 22:02:43 +0200
commit0fcc39a0a962e44d509dbb659529165c7ce5b91d (patch)
treee47c3cb0809e7857122346e3d3e58f9a6fb3e556 /module/language/tree-il
parentbc056057c85162b609437e68ec4eb55839682853 (diff)
downloadguile-0fcc39a0a962e44d509dbb659529165c7ce5b91d.tar.gz
remove @call-with-values memoizer
* libguile/memoize.h: * libguile/expand.c (scm_sym_at_call_with_values): Remove. * libguile/memoize.c (memoize, m_call_values, unmemoize): Adapt to memoize call-with-values primcalls. * module/ice-9/boot-9.scm (call-with-values): Expand to a call-with-values primcall. * module/language/tree-il/compile-glil.scm (flatten-lambda-case): Expect call-with-values primcall, without the @, and fall back to a normal call. * module/language/tree-il/peval.scm (peval): Match bare call-with-values. * module/language/tree-il/primitives.scm (*interesting-primitive-names*): (*multiply-valued-primitives*): Remove @call-with-values.
Diffstat (limited to 'module/language/tree-il')
-rw-r--r--module/language/tree-il/compile-glil.scm5
-rw-r--r--module/language/tree-il/peval.scm2
-rw-r--r--module/language/tree-il/primitives.scm7
3 files changed, 6 insertions, 8 deletions
diff --git a/module/language/tree-il/compile-glil.scm b/module/language/tree-il/compile-glil.scm
index 3f289c24d..2aad6a1f2 100644
--- a/module/language/tree-il/compile-glil.scm
+++ b/module/language/tree-il/compile-glil.scm
@@ -432,7 +432,7 @@
(make-glil-call 'return 1)
(make-glil-call 'return/values len)))))))
- ((@call-with-values ,producer ,consumer)
+ ((call-with-values ,producer ,consumer)
;; CONSUMER
;; PRODUCER
;; (mv-call MV)
@@ -443,7 +443,8 @@
(case context
((vals)
;; Fall back.
- (comp-tail (make-primcall src 'call-with-values args)))
+ (comp-tail
+ (make-call src (make-toplevel-ref #f 'call-with-values) args)))
(else
(let ((MV (make-label)) (POST (make-label)))
(if (not (eq? context 'tail))
diff --git a/module/language/tree-il/peval.scm b/module/language/tree-il/peval.scm
index a7504fdf8..662adb493 100644
--- a/module/language/tree-il/peval.scm
+++ b/module/language/tree-il/peval.scm
@@ -1115,7 +1115,7 @@ top-level bindings from ENV and return the resulting expression."
(simplify-conditional
(make-conditional src c (for-tail subsequent)
(for-tail alternate))))))
- (($ <primcall> src '@call-with-values
+ (($ <primcall> src 'call-with-values
(producer
($ <lambda> _ _
(and consumer
diff --git a/module/language/tree-il/primitives.scm b/module/language/tree-il/primitives.scm
index 212910620..4036b7ede 100644
--- a/module/language/tree-il/primitives.scm
+++ b/module/language/tree-il/primitives.scm
@@ -37,7 +37,7 @@
;; if appropriate.
(define *interesting-primitive-names*
'(apply
- call-with-values @call-with-values
+ call-with-values
call-with-current-continuation
call/cc
dynamic-wind
@@ -181,7 +181,7 @@
;; Primitives that don't always return one value.
(define *multiply-valued-primitives*
'(apply
- call-with-values @call-with-values
+ call-with-values
call-with-current-continuation
call/cc
dynamic-wind
@@ -448,9 +448,6 @@
(define-primitive-expander acons (x y z)
(cons (cons x y) z))
-(define-primitive-expander call-with-values (producer consumer)
- (@call-with-values producer consumer))
-
(define-primitive-expander call/cc (proc)
(call-with-current-continuation proc))