When working on Futhark, I often find myself looking at IR outputs from various
stages in the compiler. Recently, I had to compare outputs from different
versions of the compiler to find out what had changed. Importantly, the compiler
had changed enough in between those two versions that random numbers being
generated for each internal symbol were different in the two IRs. This meant
that while the structure was largely the same, all the variables had different
names (bytes_7191 vs. bytes_7055, you get the idea), rendering a normal diff
tool unusable.

Now, these were large files, and I was looking for large structural changes, so
I wanted a tool where I could see the two versions side by side while scrolling
them at the same time. Except, some times, changes in one version where
different enough that the corresponding lines wouldn't line up any more. I know
that Emacs (and many others, probably) has support for multiple cursors (an idea
introduced by Sublime, I believe), which would address my first point, but I
don't think it would easily address the second.

I therefore set out to create such a tool myself and lo, sbs was born!  You can
check out the tool here: https://sr.ht/~munksgaard/sbs. Open two similar
files using `sbs file1 file2`, navigate up and down with the arrow keys or
page-up and page-down. Scroll only the first screen by holding down Ctrl, scroll
only the second screen by holding down Alt. There's even a screencast showing
how it works!

Although the idea is there and it works for my simple use-case right now, sbs is
obviously still really rough around the edges. Perhaps with some polish it could
actually be nice to work with. We'll see if I get around to it. In the meantime,
patchsets and suggestions for improvements are welcome.