22 Research from 2009
This chapter preserves experiments with spatial representations of operations from 2009. The set-operation
subchapters date from July. The restored Subversion history dates the creation of CompSetOp3.cpp and
CompSetOp4.cpp to revision 617 on 8 July 2009, described as “Two new ways to allow for
composite operations on sets”.
Historical overview (editorial note): The experiments followed the atomic
set operations of August 2005. Instead of transforming a temporal list
of insertions and deletions, they sought a compact per-key state with a commutative merge and an efficient
RFactor. CompSetOp3 retained two vector-time-like summaries for insertions and causally deleted
insertions. CompSetOp4 tried to reuse the efficient representation for integer offsets. On
14 July 2009, revision 620 documented its intention-preservation failure, in which a deletion could remove
a concurrent insertion, and recorded the suggested replacement approach in cxOperation/SetOps.
The later layered cxOperation/SetOps files were created during the repository restructuring
of 23 April 2010. Revision 1000 on 19 July 2010 described that implementation as probably redundant because
set changes were by then treated as boolean assignments. The source comments were moved to the website in
December 2021. They record successive design experiments rather than current production algorithms.
Vector-operation development (editorial note): The same SVN history shows the early
cxOperation/VectorOps files by revision 701 on 27 August 2009. Revision 861 on 15 December
factored the vector IT algorithms into VectorOT, generalized the insertion representation for
vector<T> fields, and substantially revised VectorOps. This was the beginning of the
implementation lineage continued in 2010, extracted into cxOT in 2019, and documented retrospectively on
the website in 2021.