Projet Pijul, un système de contrôle de versions


Pierre-Étienne Meunier, . 16 mai 2024 10:00 8B-232 limd
Abstract:

Comment un résultat de catégories a inspiré une solution aux problèmes de performance de Darcs. Darcs est un système de contrôle de versions sorti en 2005, basé sur des patchs, ce qui le rendait extrêmement simple à utiliser et particulièrement rigoureux, en particulier dans sa gestion des conflits. Seul problème, il prenait parfois un temps exponentiel en la taille de l'histoire pour son opération la plus courante (appliquer des patchs). Je vous expliquerai comment nous avons résolu le problème, en utilisant des catégories et des structures de données purement fonctionnelles, pour concevoir un algo en temps logarithmique pour tous les cas (sauf un cas dégénéré en temps linéaire).

Le résultat est un système déterministe (ce qui le distingue de tous les autres outils de contrôle de versions), facile à apprendre et à utiliser, tout en passant à des échelles qu'aucun autre système de contrôle de versions distribué ne peut atteindre.