Re: [Scheme-reports] "module" vs. "library" Denis Washington (04 Jul 2011 18:02 UTC)
Re: [Scheme-reports] "module" vs. "library" John Cowan (05 Jul 2011 00:39 UTC)
Re: [Scheme-reports] "module" vs. "library" Andre van Tonder (05 Jul 2011 01:31 UTC)
Re: [Scheme-reports] "module" vs. "library" John Cowan (05 Jul 2011 04:06 UTC)
Re: [Scheme-reports] "module" vs. "library" Denis Washington (07 Jul 2011 16:06 UTC)
Re: [Scheme-reports] "module" vs. "library" John Cowan (07 Jul 2011 17:53 UTC)
Re: [Scheme-reports] "module" vs. "library" Denis Washington (07 Jul 2011 18:30 UTC)
Re: [Scheme-reports] "module" vs. "library" Alaric Snell-Pym (08 Jul 2011 09:49 UTC)
Re: [Scheme-reports] "module" vs. "library" Denis Washington (08 Jul 2011 10:13 UTC)
Re: [Scheme-reports] "module" vs. "library" Alaric Snell-Pym (08 Jul 2011 10:46 UTC)
Re: [Scheme-reports] "module" vs. "library" Eli Barzilay (08 Jul 2011 14:16 UTC)
Re: [Scheme-reports] "module" vs. "library" Aaron W. Hsu (05 Jul 2011 04:46 UTC)
Re: [Scheme-reports] "module" vs. "library" John Cowan (05 Jul 2011 04:53 UTC)
Re: [Scheme-reports] "module" vs. "library" Andre van Tonder (05 Jul 2011 13:47 UTC)
Re: [Scheme-reports] "module" vs. "library" Alex Shinn (05 Jul 2011 14:20 UTC)
Re: [Scheme-reports] "module" vs. "library" Andy Wingo (05 Jul 2011 22:01 UTC)
Re: [Scheme-reports] "module" vs. "library" Alex Shinn (05 Jul 2011 23:21 UTC)
Re: [Scheme-reports] "module" vs. "library" Eli Barzilay (06 Jul 2011 03:33 UTC)
Re: [Scheme-reports] "module" vs. "library" John Cowan (05 Jul 2011 17:11 UTC)
Re: [Scheme-reports] "module" vs. "library" Andre van Tonder (05 Jul 2011 22:07 UTC)
Re: [Scheme-reports] "module" vs. "library" Alex Shinn (05 Jul 2011 23:22 UTC)
Re: [Scheme-reports] "module" vs. "library" John Cowan (08 Jul 2011 03:31 UTC)

Re: [Scheme-reports] "module" vs. "library" Alex Shinn 05 Jul 2011 14:19 UTC

On Tue, Jul 5, 2011 at 10:46 PM, Andre van Tonder <andre@het.brown.edu> wrote:
> On Tue, 5 Jul 2011, John Cowan wrote:
>
>> It's not a feature subset of it, because R6RS doesn't have `include`.
>
> Why is INCLUDE conflated with the module language?  It is really an orthogonal
> concept.

Include has nothing to do with the motivation for the
module system.

The rationale is that we want room for future extensions -
e.g. the ability to have an import-lazy declaration (i.e. autoload),
or first-class interfaces and units, or versioned libraries, etc.
These are all things which must be handled at the module
level, so imported syntax is not an option.  However, the
R6RS module system is very rigid.  A module takes the
exact form of

  (library name (export ...) (import ...) body ...)

which leaves no room extension.  For example, if you
simply declare that import-lazy is a new optional form
that can occur at the beginning of the body, it conflicts
with any existing uses of import-lazy.

So as a purely syntactic convenience we wrap the body in
a separate form, and avoid any namespace conflicts.

This is orthogonal to the means by which the module
syntax is extended, the most likely contenders being
purely syntactic (i.e. module is just a macro) or with
some sort of meta-language as in Racket or Scheme48.
We don't need to specify this in WG1 (if ever).

--
Alex

_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports