Commit Briefs

aa8d6f0a79 Neels Hofmeyr

Revert "Remove __linux__ shim" (neels/wip2)

This reverts commit 4db88d74a79c9f7a3b792d21e337d36621a2370a.



cba7b80d0c Neels Hofmeyr

add test010, test011


821ad23d0d Neels Hofmeyr

Only print (unified) header in unified format.


22a35b5947 Neels Hofmeyr

Remove unused `arbitrary_info'.


23d855f8c8 Neels Hofmeyr

diff_divide_myers_forward(): less indent by 'continue'


26c524e8b8 Neels Hofmeyr

diff_output_unidiff(): less indent by 'continue'


0c8f9ca838 Neels Hofmeyr

Compat goo for gmake/glibc/Linux


4db88d74a7 Neels Hofmeyr

Remove __linux__ shim


dd853333d0 Neels Hofmeyr

Kill unused variables


Branches

Tags

This repository contains no tags

Tree

.gitignorecommits | blame
GNUmakefilecommits | blame
LICENCEcommits | blame
READMEcommits | blame
compat/
diff/
diff-version.mkcommits | blame
include/
lib/
man/
test/

README

This is a collection of diff algorithms, to test various combinations.

The initial aim was to provide a faster diff implementation for got
(gameoftrees.org) with a BSD license, at the u2k20 OpenBSD hackathon.
A side effect could be improving OpenBSD's /usr/bin/diff utility.

At the time of writing, this is little more than a playground / benchmark basis
/ diff algorithm analysis platform. What could be done:
- add profiling and test series to rate diff algorithm combinations.
- interface with / merge into got.

The Myers and Patience Diff algorithm implementations found here are based on
the explanations found in these blog post series:
  https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm-part-1/ ff.
and
  https://blog.jcoglan.com/2017/09/19/the-patience-diff-algorithm/ ff.
-- possibly the single most comprehensive explanations of these algorithms.
Many thanks for this valuable door opener!
The source code itself is not based on the code found in those blogs, but
written from scratch with the knowledge gained.

Compile:
  OpenBSD:
    make -C diff
  Linux:
    make -f linux_Makefile -C diff

Test:
  make -C test/