[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: problems with rationale & design

This page is part of the web mail archives of SRFI 55 from before July 7th, 2015. The new archives for SRFI 55 contain all messages, not just those from before July 7th, 2015.

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

> > 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_.