Add require of scheme/promise for force.

Handle call-with-values more appropriately.

original commit: 589ba9d77a6d120f5cf0ebcc926518db69d391bf
This commit is contained in:
Sam Tobin-Hochstadt 2008-07-07 16:43:12 -04:00
parent 13384db457
commit ea5d2b8f5f
2 changed files with 18 additions and 16 deletions

View File

@ -7,7 +7,8 @@
(only-in scheme/list cons? take drop add-between last)
(only-in rnrs/lists-6 fold-left)
'#%paramz
(only-in scheme/match/runtime match:error))
(only-in scheme/match/runtime match:error)
scheme/promise)
@ -415,17 +416,16 @@
[(-Input-Port Sym) -String])]
[copy-file (-> -Pathlike -Pathlike -Void)]
[bytes->string/utf-8 (-> -Bytes -String)]
;; language
[(expand '(this-language))
Sym
string-constants/string-constant]
;; make-promise
;; make-promise
[(cadr (syntax->list (expand '(delay 3))))
(-poly (a) (-> (-> a) (-Promise a)))
scheme/promise]
;; qq-append
;; qq-append
[(cadr (syntax->list (expand '`(,@'() 1))))
(-poly (a b)
(cl->*

View File

@ -213,17 +213,19 @@
(identifier? #'nm)
#`(list #'nm ty)]
[(e ty extra-mods ...)
#'(list (let ([new-ns
(let* ([ns (make-empty-namespace)])
(namespace-attach-module (current-namespace)
'scheme/base
ns)
ns)])
(parameterize ([current-namespace new-ns])
(namespace-require 'scheme/base)
(namespace-require 'extra-mods) ...
e))
ty)]))
#'(let ([x (list (let ([new-ns
(let* ([ns (make-empty-namespace)])
(namespace-attach-module (current-namespace)
'scheme/base
ns)
ns)])
(parameterize ([current-namespace new-ns])
(namespace-require 'scheme/base)
(namespace-require 'extra-mods) ...
e))
ty)])
;(display x) (newline)
x)]))
(syntax->list #'(e ...))))]))
;; if t is of the form (Pair t* (Pair t* ... (Listof t*)))