back
17 comments
An implementation based on this can be seen in pijul¹.

¹ https://pijul.org/

Pijul isn't really an "implementation" of that, for many reasons, including the fact that the paper doesn't show an algorithm to implement.

However, Pijul was inspired by this, with a number of differences, including support for line deletions (which changes everything) and multiple files, which cause many more conflict types.

Darcs was another major source of inspiration.

Heh. Warming up to writing a “I wish people would not use the adjective ‘categorical’ in a maths context because it implies Category Theory”. Reads abstract...”Oh, it is Category Theory. Wow, that’s a cool application.” <Starts Reading>
First of all categorical in a math context does not always refer to category theory. In logic a theory is called categorical in K if it has only one model of cardinality K up to isomorphism.

Second, is this really a common problem? People using the word categorical in a math context without mean either category-theoretical or the meaning in logic? Do you have an example?

I am same morphism on same object
Counterpoint: How many words are left that aren't overloaded in a mathematical context?
Assuming that by "word" you mean a finite string over a non-empty alphabet, then there are infinitely many - only a finite subset of them have mathematical definitions :) .
Would not every word also denote a regular expression, thereby having a mathematical definition?
CS is full of proofs that use all possible words or word sequence. The real test is if somebody actually wrote it in an undecipherable wikipedia page.
How does this paper relate to https://en.wikibooks.org/wiki/Understanding_Darcs/Patch_theo... ("Understanding Darcs/Patch theory")?
The pijul manual has a few comments about the differences¹ at a high level. The paper itself has a few comments too, if you scan for the paragraphs around the string "[10]" which is the reference for Roundy's work.

¹ https://pijul.org/manual/why_pijul.html

Slightly off-topic; has anyone created programming language who operations are version-control commands?
I once made a prototype lisp interpreter where you could call previous versions of definitions. A fun experiment, but I didn't carry it further.

Unison is a language/platform that incorporates some ideas from version control, but I don't know how far along they are.

Yeah, I'm doing that. :)

I've got this pure functional language and rather than deal with impure IO I just assume a git repo as a data oracle and then file and string operations are all nice and pure!

Instead of regular IO you operate on 3-tuples of (hash, offset, length) where the hash is the git hash of a data blob, and offset and length specify a subset of the bytes in it.

Conceptually these 3-tuples represent lists of ints but the runtime is free to do whatever is most efficient in terms of representing and processing them "under the hood".

Let us know if you get something public you can show!
Cheers! Will do.