On Sat, 19 Jun 2004, felix wrote:
> bear wrote:
> >
> > On Fri, 18 Jun 2004, Felix Winkelmann wrote:
> >
> >
> >>For example: R5RS Scheme has `load'. Effectively that's all what we need,
> >>and `require-extension' is just a thin wrapper over it, probably doing
> >>some module-specific stuff (like an `import', or something similar).
> >
> >
> > Except that it isn't.
> >
> > Large programs (millions of lines of code plus, like an OS kernel
> > or even a large application) simply can't be managed when your
> > only interface is (load). It is silly to even think about
> > developing them interactively.
>
> a) nobody writes such large programs in Scheme (currently)
That doesn't mean that we ought to not consider such large programs.
> b) `load' is not restricted to interactive use
To be useful, it is. It operates at run-time, so you can't effectively
load a file that defines macros or reader syntax, or does anything at
all before run-time. It was furthermore not designed to operate well
with a module system, and it does not: compilers tend to depend on a
great deal of information provided by a module system, and LOAD hides
much of that, such as the set of names that will be defined in the
module.
> > So for the three ecological niches, there are three different
> > optimal solutions. People with different priorities can fight
> > about them forever, fruitlessly, all convinced that the others
> > are "just wrong." And that, yet again, is what I expect to
> > happen here. You've just started round N plus 1 of the *&$%
> > holy war that will not die. Congratulations.
>
> Tell me what PLTs `require' does. It works perfectly with
> a module system. I don't see the problem at all. `require-extension'
> does imply absolutely *nothing* about modules, yet it can be
> compatible with them.
Gah. You are narrow-mindedly thinking _ONLY_ about PLT's module system
when you consider module systems here! It would be just as useful for
me to say 'tell me how to implement REQUIRE or a variant thereof in
Scheme48. It doesn't work at all with a module system. I foresee all
sorts of problems. REQUIRE implies a great deal about modules, and it
can't be compatible with them.' But that's not a useful thing to say,
because I'm not considering anything but Scheme48's module system.
Instead, I shall say that REQUIRE in any form is _not_necessarily_
compatible with all module systems, whereas SRFI 7 _can_always_be_.