[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: put library <body> at top-level
Tony Garnock-Jones wrote:
Per Bothner wrote:
A Scheme-specific packaging format is neither needed nor sufficient.
Some kind of packaging is needed to bundle up multiple expressions into
a single library, whether it's explicit parenthesisation or implicit in
the boundaries of the containing construct.
Should this SRFI mention all the various kinds of containers, files and
file-like constructs that can appear in all the different variants and
versions of operating systems big and small? Should it mention MIME?
Should it require MIME? Should it mention the .zip format? Should it
All of this complexity can be avoided if you use Scheme data structures
to aggregate Scheme data structures, without reference to
operating-system specific (and possibly even absent) constructs such as
files and directories.
But that is not an option. The whole point of separate modules is so
you *can* have them in separate "files" or "units" or whatever.
Using a "Scheme data structure" to aggregate all one's libraries is
just not useful. And if you can't aggregate all your libraries in a
single file, there is no particular gain in aggregating more than one.
That's not true - the separation is purely logical. Imagine a Scheme
that was image-based, like a Smalltalk, with an in-core representation
of its own source-code and an editor for these in-core data structures.
Scheme source code is not S-expressions. (No comments, for one thing.)
Each unit of source code is still a discrete sequence of characters.
There is still no point in having multiple libraries in the same
My proposal is fully compatible with this kind of environment.
> I was not talking about a collection of libraries: I was talking about a
> collection of forms contained within a single library. I am advocating
> S-expressions for aggregating forms within a library - you are
> advocating using a file to aggregate forms within a library.
Well, I'm advocating that a file contains a sequence of S-expressions
which together define a library.