Mon, 19 May 1997 23:08:53 -0400 (EDT)

> It doesn't make sense, of course, to turn off versioning for individual
> cons cells that aren't referred to by symbols, because you'd have no
> way to refer to the cons cell in the first place to specify the new
> versioning parameters.

Um, the only cells you can't refer to are garbage.
> I'll rephrase my position so it's immune to the extreme case you cite.
> Versioning should be supported for any object that has a named reference
> to it at a very low level. 

Maybe the versioning should be in the name then.

> Having such a facility supported at the lowest level may facilitate such
> wonders as flexible tracing and reversible execution.  It should not be
> regarded as a "cost" and done away with frivolously, or deferred to a 
> high application level.

If the versioning is only supported for objects which are directly
referred to with a symbol you won't get reversible execution.

For that you'll need versioning on every atom.

On the other hand, this could be nice, but in limited scopes...

(with-reversible-execution ...)


Apart from that, if you're going to have high-level versioning it
should be an api/under-app-control, if you're going to have low level,
it probably should be pervasive