Have you ever wondered what happens if you hook up a lexer to a diff algorithm? I was feeling smart until I built it and saw the result.
The longest common subsequence here is ( ) ( ) ; which is not terribly helpful. I'm going to have to look at proper tree diffing techniques.
miniblog.
Related Posts
Spent a bunch of time learning about text diffing algorithms this evening.
"Myers Algorithm" refers to a specific paper written by Eugene Myers, and he published faster algorithms later!
There's a class of performance bugs that you can feel.
Today I inadvertently implemented "Schlemiel the Painter's algorithm", and it's obvious: performance was great at first, and then it gradually deteriorates.
Today I learnt about a cunning trick used by GNU diff to make Myer's algorithm faster: https://github.com/mitsuhiko/similar/issues/15
If you do an initial pass to find items that only occur on one side, you can discard them before diffing! They'll always be shown as changed.
