[plt-scheme] (provide (all-defined)) and generated temporaries
Matthew Flatt writes:
> At Thu, 10 Jul 2003 03:42:50 -0400 (EDT), Doug Orleans wrote:
> > It seems wrong that generated symbols are leaking out
>
> Yes, it's wrong. I'll fix it.
In case you haven't already tracked down the problem, it looks like
it has nothing to do with modules, it's just that the generated
symbols aren't uninterned:
Welcome to MzScheme version 204.7, Copyright (c) 1995-2003 PLT
> (define-syntax (define-dummy stx)
(syntax-case stx ()
((_ sym exp)
(if (list? (syntax-local-context))
;; Internal definition position; generate a dummy binding.
#`(define #,(car (generate-temporaries #'(sym))) exp)
;; Otherwise, don't clutter the namespace.
#'exp))))
> (let () (define-dummy foo 3) foo1)
3
I only noticed the problem with modules because apparently the counter
used by generate-temporaries starts at 1 for each module, so I was
getting name clashes.
--dougo at ccs.neu.edu