[R6RS] Re: strawman module syntax
Michael Sperber
sperber
Sat Jul 10 09:59:59 EDT 2004
>>>>> "Matthew" == Matthew Flatt <mflatt at cs.utah.edu> writes:
>> There's just too much variety in the way Scheme systems work---an
>> interactive environment, to-C compilers, incremental compilers, what
>> have you.
Matthew> In my view, this is precisely *the* problem for R6RS. Nothing else
Matthew> matters in comparison.
I'd be all the happier if it can be done, I'm just skeptical.
Matthew> Indeed, the success of `module' within PLT Scheme --- to make all of
Matthew> our tools work consistently --- is the only reason that I [used to]
Matthew> think I have anything to offer R6RS.
Matthew> But you already know all that. Can you be more specific about what
Matthew> could go wrong --- maybe a specific scenario?
Sure. But note that I don't see this as really as "going wrong" per
se.
Consider the problem of just running an application within MzScheme.
I can do the following:
- env PLTCOLLECTS=...: mzscheme -mqvL <file> <collection>
- env PLTCOLLECTS=...: drscheme &
... then either load the source file into the editor, or type
(require (lib "<file>" "<collection>")) into the editor window, type
"Execute"
So there's already two.
Another kind of system might require me to prefix this with an
explicit batch-compilation step.
Also, depending on how far we go with the specification, there's the
issue of laying out the code conretely in a file system/.jar-like
file/database whatever.
I have the feeling there's been a misunderstanding, not a difference
in opinion. Does this make things clearer?
Matthew> I count macros as "first-order data". The expansion half goes in the
Matthew> signature, and the run-time half (free variables in the template) go in
Matthew> the implementation. (This is like Alan's "First-Class Macros have
Matthew> Type", though I think he muddied terminology with the phrase
Matthew> "first-class macros".)
OK, just checking ...
>> Also, there are other aspects about the proposal I posted---could you
>> comment on those?
Matthew> I've commented on the places where I strongly disagree, I think, so
Matthew> other things seem fine.
Great.
Another issue with your original proposal. You repeatedly mentioned
how important it is to be able to macro-expand into REQUIRE and
PROVIDE forms. But didn't you take away that ability by surrounding
the code with BEGIN/INCLUDE/whatever? (That is how Scheme 48 works,
so we may have read different semantics into the syntax.)
--
Cheers =8-} Mike
Friede, V?lkerverst?ndigung und ?berhaupt blabla
More information about the R6RS
mailing list