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 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) b) `load' is not restricted to interactive use
I think that it all comes down to a clash between development styles. I think any "requirement" or "extension" or "module" language that doesn't support separate compilation misses the point, but that's at least partly because I'm more interested in large applications. Other people, including you apparently, think that a system that's hard to use from the command line is too ugly for words.
What nonsense. Nobody is talking about command-lines here. `load' is not necessarily restricted to source code (see R5RS), and many implementations extend it to load compiled code. Additionally, `load' was merely an example. I use an equivalent of `require-extension' with separate compilation, daily. I haven't yet found any problems with it. Extending it to handle separately compiled modules is not a problem.
And yet others will consider it broken if it's not an enclosing form, which allows definitions to be made in multiple different environments in the same input stream, but which can't be used from the command line because you want results before you type the closing paren on the enclosing form.
Huh? What are you talking about?
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. cheers, felix