In the implementation, I have left the function `syntax-ppss' untouched
except for adding a function call to set up the cache right at the
start. I have refactored syntax-ppss-flush-cache, extracting a function
which is called directly from the cache-selecting code. Other than
that, there is one new function (which switches the current cache in
use) and a few new variables to keep track of the caches.
Caveats:
- This solves the dependency on point-min, but does nothing about the
dependency on the current syntax-table (which can change). I'm not
necessarily suggesting we try to solve that now, though.
I had some ideas on this back in the spring (about having "indirect
variables") which could be used quickly to "swap out" the current
syntax-table text properties, and (more importantly) quickly swap them
back in. But that's for another day.
- Before this change is pushed to master, or shortly after, I'd like to
know that it actually fixed the problem Philipp experienced with
python-mode, so we can revert 4fbd330. If it was caused by e.g.
syntax-table changing, we've not improved much.
I am naturally interested in this, too. If my patch doesn't fix this
bug, at least it will have removed a layer of fog inhibiting its
investigation.