From d90fbaeff469b7accd3cc408e1bbda664a25670b Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 19 Nov 2012 07:50:31 -0700 Subject: [PATCH] scheme/gui/base: fix module-attach problem in `make-gui-base-namespace' The `scheme/base' module had become unreachable from the `mred' module. While that normally would be a good thing, it lead to troublesome multiple instantiations of `scheme/base' that caused problems for attaching further modules to the namespace. --- collects/mred/private/mred.rkt | 1 + collects/tests/gracket/racket-ns.rkt | 9 +++++++++ collects/tests/gracket/scheme-ns.rkt | 9 +++++++++ 3 files changed, 19 insertions(+) create mode 100644 collects/tests/gracket/racket-ns.rkt create mode 100644 collects/tests/gracket/scheme-ns.rkt diff --git a/collects/mred/private/mred.rkt b/collects/mred/private/mred.rkt index 8f49d9fc2a..cbfb16d740 100644 --- a/collects/mred/private/mred.rkt +++ b/collects/mred/private/mred.rkt @@ -3,6 +3,7 @@ define-namespace-anchor namespace-anchor->empty-namespace make-base-empty-namespace) + (only scheme/base) (only scheme/class) ; so that `make-gui-namespace' attaches them racket/class racket/draw racket/snip file/resource diff --git a/collects/tests/gracket/racket-ns.rkt b/collects/tests/gracket/racket-ns.rkt new file mode 100644 index 0000000000..85b065eed7 --- /dev/null +++ b/collects/tests/gracket/racket-ns.rkt @@ -0,0 +1,9 @@ +#lang racket/base +(require racket/gui/base + racket/gui/dynamic) +;; Don't change this program to use `racket'; ths point +;; is to test `racket/gui/base' exports + +(let ([ns ((gui-dynamic-require 'make-gui-namespace))] + [orig-ns (current-namespace)]) + (namespace-attach-module orig-ns 'racket/base ns)) diff --git a/collects/tests/gracket/scheme-ns.rkt b/collects/tests/gracket/scheme-ns.rkt new file mode 100644 index 0000000000..2c445ba90a --- /dev/null +++ b/collects/tests/gracket/scheme-ns.rkt @@ -0,0 +1,9 @@ +#lang scheme/base +(require scheme/gui/base + scheme/gui/dynamic) +;; Don't change this program to use `racket'; ths point +;; is to test `scheme/gui/base' exports + +(let ([ns ((gui-dynamic-require 'make-gui-namespace))] + [orig-ns (current-namespace)]) + (namespace-attach-module orig-ns 'scheme/base ns))