Some time ago, Ben Wing wrote...
|+
| What you say about the way magic specifiers appear at the Lisp level is correct.
However, I
| really don't think you should add needless extra parameters to any specifier
functions.
| Instead, just decide that specifier-fallback definitely does not copy a specifier that
it
| returns, and maybe add a read only flag to specifiers if you don't want the ghost
specifiers
| to be modified except during initialization time. For that matter, there would be no
need to
| call copy-tree at all if it were possible to mark conses and vectors (and strings) as
| read-only. This should be possible using minimal tag bits, and I think it would be a
great
| feature to add as it would eliminate a lot of other places where lists are copied
solely to
| avoid possible malicious code modifying them. Kyle? You could simulate this in the
non-
| minimal tag bits case by allocating read-only conses in their own frob blocks, and
probably
| figure out a way to hack the flag into strings and vectors.
Ok, in the meantime, while there are no "read-only lrecords", I'll do
read-only specifiers.
Kirill