From 9c8fc3ce8674334fd043ab5b78165d91cb60a07a Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 7 Apr 2003 18:49:06 +0000 Subject: [PATCH] . original commit: 4b2b98288993435ba91bb6b8f0b213904f4642c2 --- collects/mzlib/unit.ss | 2 +- collects/tests/mzscheme/unit.ss | 13 +++++++++++++ collects/tests/mzscheme/unitsig.ss | 19 +++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/collects/mzlib/unit.ss b/collects/mzlib/unit.ss index c4b436e..fdf3dac 100644 --- a/collects/mzlib/unit.ss +++ b/collects/mzlib/unit.ss @@ -809,7 +809,7 @@ . imports)))]) (if global? (syntax (let-values ([(tagged-export ...) invoke-unit]) - (namespace-variable-binding 'tagged-export tagged-export) + (namespace-set-variable-value! 'tagged-export tagged-export) ... (void))) (syntax (define-values (tagged-export ...) invoke-unit)))))))])))]) diff --git a/collects/tests/mzscheme/unit.ss b/collects/tests/mzscheme/unit.ss index 4c8a17d..486f668 100644 --- a/collects/tests/mzscheme/unit.ss +++ b/collects/tests/mzscheme/unit.ss @@ -590,4 +590,17 @@ #f y) x)) +(test 55 'namespace + (parameterize ([current-namespace (make-namespace)]) + (namespace-variable-bind/invoke-unit + (x) + (unit + (import) + (export x) + + (define-syntax (five stx) #'55) + (define x five))) + (eval 'x))) + + (report-errs) diff --git a/collects/tests/mzscheme/unitsig.ss b/collects/tests/mzscheme/unitsig.ss index 3f6bad9..17a6f37 100644 --- a/collects/tests/mzscheme/unitsig.ss +++ b/collects/tests/mzscheme/unitsig.ss @@ -570,5 +570,24 @@ (test #t struct-accessor-procedure? (go foo-bar (- make-foo))) (test #t struct-mutator-procedure? (go set-foo-bar! (- make-foo)))) +;; Definitions and namespace: +(test 12 + 'def-val + (let () + (define-values/invoke-unit/sig (foo) + (unit/sig (foo) + (import) + (define foo 12))) + foo)) +(test 120 + 'namespace + (parameterize ([current-namespace (make-namespace)]) + (namespace-variable-bind/invoke-unit/sig + (foo) + (unit/sig (foo) + (import) + (define foo 120))) + (eval 'foo))) + (report-errs)