[darcs-users] poll: how can we help you contribute to darcs?
apfelmus
apfelmus at quantentunnel.de
Sat Aug 2 10:47:09 UTC 2008
Eric Kow wrote:
>
> "I would contribute to darcs if only..."
... patch theory were defined rigorously.
It seems to me that the core of darcs is not well-understood. I mean, the darcs
developer have come amazingly far with the informal model you described in [1]
(for darcs 1, what about darcs 2 ?), but ultimately, it's lacking a well-defined
semantics. For instance, in a commutation X Y <-> Y1 X1 , what exactly does it
mean for Y1 and X1 "to perform the same change as Y and X"? Why exactly is the
trivial choice Y1:=X and X1:=Y wrong? What about "meaningless" changes? For
instance, given the file
1 apples
2 bananas
3 beer
4 cookies
5 rice
a "meaningless" change would be the patch
M = delete line 1; add "apples" as first line
This patch does not nothing with the file, but it has quite an effect when
commuted with a patch
N = change line 1 to "pears"
If Y1 is a valid choice for a commutation, so is M Y1 ; but why would that be
wrong? Of course, it's "intuitive" that this is wrong and it's apparently
possible to hack some code together is supposed to do "the right thing", but I
doubt that it's well-understood. IMHO this is the root of the algorithmic
problems in darcs.
I think that the litmus test for "well-defined semantics" is being able to
create a toy version of darcs. I mean, I am able to implement Simply Typed
Lambda Calculus or Hindley-Milner Type Inference in a spare evening because it's
well-defined in various papers but I am unable to implement the
Roundy-Arjan-Ganesh Patch Formalism over a free weekend because it involves
undocumented magic that I don't understand.
[1]: http://en.wikibooks.org/wiki/Understanding_darcs/Patch_theory
Regards,
apfelmus
More information about the darcs-users
mailing list