[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]

The problem of versioning cursors: solved in Chartreuse


I've just been thinking about versioning and the problem of orthogonal
persistence: In general, I want to be able to quit the client/shut my
computer down, maybe even switch to a different machine, and then
continue my work where I have left off-- including being able to undo my
latest changes. However, in the old GZZ implementation we had two
different mechanisms for versioning, the (backward-diff) undo list in
memory and the (forward-diff) version list on the harddisk. Earlier on,
everything the user did was saved to the disk; we ran into problems with
this mainly because every single cursor move was versioned, and this
generated too much unwanted data.

In Chartreuse (GZigZag 0.8.0), we could potentially use a nice quick
hack to get around this problem, when we have a cleaner separation of
the primitive slices into clientspace and userspace and window state.
Then, we can simply forget old window states (expunge the blocks) and
yet version every change of the userspace. -- Probably not something we
want to do before the release of 0.8.0, but I think an idea worth considering.

- Benja