[R6RS] Re: strawman module syntax
Thu Jul 8 08:11:56 EDT 2004
At Thu, 08 Jul 2004 10:56:57 +0200, Michael Sperber wrote:
> Matthew, could you expand on
> the rationale of distinguishing between "Unix-style relative path"
> and "OS-specific absolute path" in <path-spec>?
Most of the time, you want a simple syntax for referring to relative
paths, and the Unix conventions (as adopted for URLs) work fine.
Meanwhile, a programmer writing completely unportable code (in the
sense of "doesn't port to any other filesystem, much less OS") might
want to break away from the Unix conventions --- maybe to specify a
drive in Windows, or a file whose name contains "/" in old Mac OS.
> - In MzScheme, I really hate the restriction that, in the language
> designation, I can only put a <require> and not a <require-spec>.
> Matthew---could you expand on why this is so?
> To make a long story short: I think that module *interfaces*, not
> definitions should have globally unique meanings, and that the
> implementation for any given interface should be determined at
> compile/link time. This would mirror the way cc/ld works, and I
> think it's the way to go.
In case there's any doubt that I still disagree, I stand by my previous
> Here is the syntax:
> <config form> -> <interface def> | <module def>
> <interface def> -> (DEFINE-INTERFACE <identifier> <interface exp>)
Why doesn't an interface have a language or import spec? Shouldn't the
syntax for defining an interface be macro-extensible? And then there's
the question of defining a macro that generates interface
In general, this points to the reason that I advocate only `module' at
the top level. The top level isn't extensible (no macros can expand to
top-level `module'), so I think it's important to have as little there
as possible, and move everything else into the extensible world.
More information about the R6RS