On Jun 2, 2009, at 10:32 AM, Derick Eddington wrote:
ERR5RS retains load, and to install libraries, it uses load.
Without saying much about how load recognizes libraries IIRC.
Sometimes
people say "loading libraries", which means installing libraries in a
running Scheme system. Ikarus, Larceny, and Ypsilon (and maybe
others)
all install any libraries whose forms are evaluated in the interaction
environment (e.g. typed in the REPL or load'ed),
You wouldn't be surprised if all these systems did it differently.
Ikarus, for example, defines "library" as a keyword exported from
the (ikarus) library. The behavior of finding a (library ---) form
in a definition context is to install the library. It's body, btw,
is treated as a datum which screws up hygiene, or macros that expand
to libraries, etc., and that's why I'm not likely to keep it as it
is. Other systems may have "load" do special thing when it sees a
form starting with the "library" symbol (you can easily check by
defining library to something else). They may also only treat an
unbound library keyword especially so that it does not appear to be
a reserved keyword (which would be civilized since scheme doesn't
have reserved keywords). Or they may treat the top-level as having
states: first, you can only do libraries, then you can do an import,
then you can do definitions and expressions. These are all different
ways of handling libraries using load, eval, and friends.
Aziz,,,