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

Re: REQUIRE and friends

    ... So eventually only the lower-level LOAD got put into the manual, and
    rather than document REQUIRE or *REQUIRE, we just waited hoping that
    once locales really worked, a good proposal for a module system would
    fall into our laps.  It never did.  John Lamping worked on one during
    summer of '84, but than I stopped doing T development, and I don't think
    anyone else has picked up on it.
Bill Ferguson and I designed and implemented a "module system" last year,
and while it certainly doesn't solve all the world's problems, we're
happy with the way it turned out.  It has proved quite useful in preventing
interference among various cooperating "subsystems" (e.g., graphics,
Common Lisp interface, cross-compiler) that need separate read-tables,
syntax-tables, and environments.  In the process, we got rid of
STREAM-READ-TABLE and ENV-SYNTAX-TABLE, and we introduced "workspaces"
(triples consisting of a read-table, a syntax-table, and an environment).
Workspaces are the coin of the realm for EVAL, LOAD, REQUIRE, HERALD,
COMFILE, and various other sorts of transducers.  I'd be happy to send
the documentation to anyone interested.