120
move and copy insertion points must be inactive when moved into their own source
region. This is essential to resolve global conflicts, as discussed in Section 3.3.4.
3. A deletion region is the area covered by a deletion operation. These are represented
as ranges in the set of Palimpsest addresses.
4. Copy source regions need no special handling, since they do not exert any direct ef-
fect on the parts of the sequence they overlap.
5. Move source regions are more complex because they delete the contents of their
scope, but must delete exactly that portion not deleted by a higher-priority move
operation. A move source region is an attempt to “sieze” the data in its scope; where
move sources overlap, only one move can claim the shared region.
The goal is quick access to a particular point in a P-sequence, and the subsequent enu-
meration of its contents from that point on. This reflects the needs of text editors since
most text-based sequence processing is sequential, even though random access is still impor-
tant (especially in the implementation of move, as we shall see).
The following sections describe the implementation of a Palimpsest store that maintains
several auxiliary data structures to represent:
1. The data content of the sequence;
2. The destinations of move and copy operations;
3. The addresses of the destinations of all changes, in sequential order;
4. The set of ranges that are deleted by a change set;
5. The set of ranges that are moved by some operation in a change set.
6.4 Sequence content storage
An important part of representing Uis to maintain a single structure representing the
content of the sequence. This is a sequential list containing data directly inserted by inser-
move and copy insertion points must be inactive when moved into their own source
region. This is essential to resolve global conflicts, as discussed in Section 3.3.4.
3. A deletion region is the area covered by a deletion operation. These are represented
as ranges in the set of Palimpsest addresses.
4. Copy source regions need no special handling, since they do not exert any direct ef-
fect on the parts of the sequence they overlap.
5. Move source regions are more complex because they delete the contents of their
scope, but must delete exactly that portion not deleted by a higher-priority move
operation. A move source region is an attempt to “sieze” the data in its scope; where
move sources overlap, only one move can claim the shared region.
The goal is quick access to a particular point in a P-sequence, and the subsequent enu-
meration of its contents from that point on. This reflects the needs of text editors since
most text-based sequence processing is sequential, even though random access is still impor-
tant (especially in the implementation of move, as we shall see).
The following sections describe the implementation of a Palimpsest store that maintains
several auxiliary data structures to represent:
1. The data content of the sequence;
2. The destinations of move and copy operations;
3. The addresses of the destinations of all changes, in sequential order;
4. The set of ranges that are deleted by a change set;
5. The set of ranges that are moved by some operation in a change set.
6.4 Sequence content storage
An important part of representing Uis to maintain a single structure representing the
content of the sequence. This is a sequential list containing data directly inserted by inser-