[darcs-users] Pijul 0.1

Florent Becker florent.becker at ens-lyon.org
Thu Oct 1 17:27:16 UTC 2015

Dear darcs acolytes,

Pierre-Étienne Meunier and myself are honoured to present version 0.1 of
Pijul. Pijul is a draft of a prototype of an implementation of Samuel
Mimram and Cinzia Di Giusto's theory of patches.

Where can I learn more? Where can I find this pijul?

Pijul's homepage is http://pijul.org ; its sources are found at "darcs
get http://pijul.org". Both are a bit rough at the moment, but should
improve rapidly, maybe with your help…

There is a mailing list (pijul at pijul.org), and an irc channel is
available on irc.freenode.net, channel #pijul

Currently, pijul has a preliminary implementation of darcs' basic

What is a pijul, and how do I pronounce it?

A pijul is a south american bird (Crotophaga sulcirostris), a relative
of the cuckoo. In contrast with its parasitic cousin, the pijul lays
her eggs in a communal nest, where they are incubated by the whole

Pijul is thus pronounced as in spanish, IPA [pijul], or aproximately
pee-hhOOl (the hh is the sound at the end of scottish 'loch').

What is the Di Giusto-Mimram Patch Theory?

Pijul's patch theory originates in this paper:
http://arxiv.org/abs/1311.3903 .

Darcs' patch theory is centered around patches, with two primitive
operations, /commutation/ and /inversion/. Compared to this, pijul's
theory revolves around files (i.e., states of the working directory at a
given point in time) as well as patches, with a /merge/ operation
between patches. In contrast with git, this merge operation is
well-defined and has all expected properties: in technical terms, it is
a /pushout/ in a category where files are the objects, and patches are
the arrows. As a consequence of this, to ensure all diverging pairs of
patches have a merge, the set of files is extended to contain normal
files as well as /files in a conflicted state/. These conflicted files
are /rendered/ into the working directory by pijul as files with
conflict markings.

Thanks to this categorical construction, the Pijul version of most
algorithms used in darcs is conceptually simple and efficient.

What colour should the bikeshed be?


Pierre-Étienne Meunier and Florent Becker

More information about the darcs-users mailing list