Difftastic is effectively computing the "tree edit distance" between two ASTs, and there's a bunch of papers on this topic. Literature review is hard though: sometimes a paper takes a while to digest, only to realise that they're solving a slightly different problem.
miniblog.
Related Posts
Computing optimal 8501 instructions for rotations using an SMT solver and Racket with Rosette:
Modern computer systems are hard to bootstrap. If you had to rebuild computing from older tech (say 20/30/40 years old), which would you prefer?
Flamegraphs are an indispensable tool, but sometimes I overuse them. Here's an example for difftastic -- it spends most of the time computing the shortest path.
I was able to make the diff graph smaller, making difftastic much faster -- but the new flamegraph looked the same!
