[plt-scheme] (require... ) expanded from a macro
At Sun, 22 Oct 2006 05:09:29 +0300, "Dan Muresan" wrote:
> What works in PLT is adding (require "plt-fix.scm") at the top of
> main.scm. That way I can use the IDE features.
Some of them will work, mostly. Compared to module-based programs,
there are technical limits (of the halting-problem variety) to how much
DrScheme can support programs that are not in `module'.
You probably know this, but I repeat it every once in a while to make
sure we're all on the same page.
> However, (require ...) throws off other implementations. Of course, if
> PLT had SRFI-0 built-in, I could just say
>
> (cond-expand (plt (require "plt-fix.scm")))
>
> and live with one codebase.
>
> Tell me again why this behavior cannot be implemented in PLT? Surely
> PLT "knows its own name". If this behaviour can be emulated by a
> "user-space" macro, surely it could be supported natively.
You're right that there's no technical reason.
I think this is the only example where MzScheme lacks a popular feature
simply because it's a poor solution that we reject on principle. (I can
think of cases where we reject a language feature because it would harm
other parts of the language, but that doesn't apply in this case.)
Normally, we err on the side of providing too much.
R6RS provides a good solution. The `library' form of R6RS is not
everything that I (or anyone else I know) would like, but it's at least
a sound approach, and we'll support it.
Matthew