Commit Briefs

4f58e89131 Stefan Sperling

make the C tests compile and run on both OpenBSD and Linux (neels/verify)


e14ee64c98 Stefan Sperling

remove arraylist_test during 'gmake clean'


eac85e68ef Stefan Sperling

rename GNU-make-specific Makefile to GNUmakefile


548d976202 Neels Hofmeyr

verify_all.sh: run all tests, then list all errors


3e6df91676 Neels Hofmeyr

run C tests in verify_all.sh


3e66d05b2c Neels Hofmeyr

add arraylist_test


87c3134182 Neels Hofmeyr

add results_test.c


93f8150ade Neels Hofmeyr

results: also combine chunks coming from temp_chunks


984ca65b1b Neels Hofmeyr

myers_divide: fix "inifite" looping over same box


19fad31f2f Neels Hofmeyr

debug: diff_myers.c: #if DEBUG, not if (DEBUG)


Branches

Tags

This repository contains no tags

Tree

.gitignorecommits | 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:
  make -C diff

Test:
  make -C test/