From: Eliot Handelman
Subject: More on partial displacement
Date: 
Message-ID: <9569@phoenix.Princeton.EDU>
Now I have a problem with partially displaced structures -- that is, structures
which share some (but not all) slots.

The only way I can think of guaranteeing that any pair of slots in two
instances of a structure are EQ is by using a displaced array to hold the 
contents of the slot. -- can anyone comment on that? 

Apropos, I notice that fill-pointers are not automatically adjusted in
displaced vectors, at least in KCl and Lucid, eg:

> (setq v1 (make-array 4 :fill-pointer 0))

> (setq v2 (make-array 4 :fill-pointer (fill-pointer v1) :displaced-to v1))

> (vector-push :foo v1)
0

> v1
#(:FOO)

> v2
#()

> (aref v2 0)
:FOO

> (vector-push :baz v2)
0

> v2
#(:BAZ)

> v1
#(:BAZ)

Surely this is the wrong behaviour? How can I make sure that the fill-pointers
are adjusted?