Commit Briefs

cc86b8492d Martin Pieuchot

Parse option -b (BSD)


c38b7f7671 Martin Pieuchot

Pass arguments in a similar order


3f909282bf Martin Pieuchot

Improve default format


654951e121 Martin Pieuchot

Implement -C and -C


3c72fc1f8c Martin Pieuchot

Use DD_ATOM_AT() in comment


727b847b7a Martin Pieuchot

Abstract atoms.len


2f5ea1f266 Martin Pieuchot

Abstract access to atoms.head


2b0f870899 Martin Pieuchot

Use different name for data length


8bd7d41ff4 Martin Pieuchot

Use singular name


2f4de504f0 Martin Pieuchot

Use a single output function for all types


Branches

Tags

This repository contains no tags

Tree

.gitignorecommits | blame
GNUmakefilecommits | blame
Makefilecommits | blame
READMEcommits | blame
arraylist.hcommits | blame
compat/
debug.hcommits | blame
diff.1commits | blame
diff.ccommits | blame
diff_atomize_text.ccommits | blame
diff_main.ccommits | blame
diff_main.hcommits | blame
diff_myers.ccommits | blame
diff_patience.ccommits | blame
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.

Test:
  make -C test/