Coccinelle's Semantic Patches
coccinelle.lip6.fr
coccinelle.lip6.fr
What's cool is that you can distribute the rules file alongside your new version of a library with its API changes, and NetBeans will automatically detect the rules if the user updates the dependency, and ask the user if they want to apply them. The downside is that not many people use NetBeans (or Jackpot for that matter).
Also, I want to have an option/convention to say that "this commit is best viewed with line-based diff/word-based diff, AST diff, semantic diff, ...".