[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: read tables
From: Gregg Collins <Collins-Gregg>
I have a small complaint about read tables as they currently are
implemented. Specifically, I really regret the lack of a global
read table in T, and the apparent lack of any way to construct
one....
... I submit that this is a violation of the fundamental spirit
of lisp, and request that a way of specifying defaults for character
syntax be provided.
I suppose I don't need to remind people once again that T is not Lisp.
We aren't trying to make life difficult for you; please realize that
the current read table scheme was very carefully considered.
The ideal we're aiming for is an environment which supports
tool-building and large systems. This includes the ability to let
people use each other's software without getting screwed because the
global state that one user's software requires is different from the
global state that another's wants. So it is very important to minimize
the amount of global state, and to make state explicit where otherwise
it wouldn't be. Requiring read tables to be explicitly named is part
of this; this lets any program, whether or not you wrote it, reliably
read S-expressions out of your file. It also allows programs running
in your T (like LOAD) to reliably look at files that aren't yours.
This may be essential to the execution of, say, the T compiler or
even the T system itself.
If you want to change the language, that's fine; the T sources
and the implementation environment are available. But in doing so you
reduce the possibility that you can ever run anyone else's programs.
This reply may not be satisfactory, but the issues are complicated.
Global state has been the bane of Lisp systems, and while controlling
it may seem painful, in the long run life will be much better for
it.