[darcs-devel] camp conflictors aka RepoPatchV3
Benjamin Franksen
ben.franksen at online.de
Fri Sep 7 17:31:49 UTC 2018
Hi Everyone
I am happy to announce that I finally managed to iron out the last bugs
from my implementation of camp conflictors in Darcs. All unit and
quickcheck tests pass with -q10000, for both V1 and FileUUID prims.
The patch history is still a huge mess. I'll clean that up and then send
a rebased bundle.
The last bug I found and fixed is interesting in that it is also in the
camp paper and in the camp implementation; however, it seems Ian already
suspected it: there is a comment in the camp code (at
camp-core/Camp/Patch/Catch.hs:126) that says:
-- XXX I think this is wrong: Some of (invert qEffect')
-- might be able to commute through p?
That comment, though at first rather cryptic to me, with hindsight
actually says it all (and the fix, while not obvious to arrive at, is
quite simple).
Many thanks Ian: you are a genius. I really feared that some of the
unproven assumptions in your theory might fail when put to large scale
property testing. But it really looks as if everything works out nicely
and we can now concentrate on what's missing(*): how to design painless
conversion to the new format; and a clean implementation of conflict
resolution according to the spec I arrived at recently.
Cheers
Ben
(*) There are a few engineering problems that also need to be solved for
a full integration up to the command level. A major one is that our
generic Prim interfaces currently do not allow to /introduce/ primitive
patches with "names" (UUIDs) because they are pure.
More information about the darcs-devel
mailing list