Christopher C. Stacy <email@example.com> wrote:
| I have never heard of this OBSTACK of which you speak.
I suspect he meant either OBLIST or OBARRAY, predecessors to the
modern per-package internal hash-table of symbols. From Graham's
"On Lisp" <http://www.paulgraham.com/lib/paulgraham/onlisp.pdf>,
Packages are Common Lisp's way of grouping code into modules.
Early dialects of Lisp contained a symbol-table, called the oblist,
which listed all the symbols read so far by the system. Through
a symbol's entry on the oblist, the system had access to things
like its value and its property list. A symbol listed in the oblist
was said to be interned.
Recent dialects of Lisp have split the concept of the oblist
into multiple packages. Now a symbol is not merely interned,
but interned in a particular package. ...
And page 12 of Gabriel and Steele's "Evolution of Lisp" (the "uncut"
version <http://www.dreamsongs.com/NewFiles/HOPL2-Uncut.pdf>) says:
In 1971, Jon L White (sic) changed the representation of the data
structure that maps names (strings) to symbols from a list to a
hash table [White, 19691982]; thus the traditional OBLIST (list of
objects, that is, named atoms) of Lisp 1.5 was renamed the OBARRAY.
This signaled a move to a more careful choice of data structures
to optimize size or speed. Later implementations of Lisp relied
even more heavily on hash tables for parts of their implementations.
The introduction of the OBARRAY marked an important step in the
increase of sophistication of Lisp implementors.
Rob Warnock <firstname.lastname@example.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607