Make promise.ss use #%kernel directly -- this way mzscheme does not

depend on scheme/base.

svn: r10424
This commit is contained in:
Eli Barzilay 2008-06-23 14:32:27 +00:00
parent 3619ab2062
commit 04b97ff977

View File

@ -1,4 +1,8 @@
#lang scheme/base
(module promise '#%kernel
(#%require "private/small-scheme.ss" "private/more-scheme.ss" "private/define.ss"
(rename "private/define-struct.ss" define-struct define-struct*)
(for-syntax '#%kernel "private/stxcase-scheme.ss"))
(#%provide lazy delay force promise?)
;; This module implements "lazy promises" and a `force' that is iterated
;; through them.
@ -14,9 +18,6 @@
;; promise values), and `force'+`lazy' are sufficient for implementing
;; the lazy language.
(require (for-syntax scheme/base))
(provide lazy delay force promise?)
(define (promise-printer promise port write?)
(let loop ([p (promise-val promise)])
(cond [(reraise? p)
@ -37,7 +38,7 @@
[else
(display "#<promise!(values" port)
(let ([fmt (if write? " ~s" " ~a")])
(for ([x p]) (fprintf port fmt x)))
(for-each (lambda (x) (fprintf port fmt x)) p))
(display ")>" port)])))
(define-struct promise (val)
@ -126,3 +127,5 @@
[else (apply values p)]))
;; different from srfi-45: identity for non-promises
promise))
)