Emacs: status update on the 'denote-data' cache for Denote
A few days ago I announced
that I am working on denote-data. The goal is to provide an opt-in,
in-memory cache for Denote. It can be used to speed up certain
computationally expensive operations. It must be opt-in because there
are many users, myself included, who do not need such functionality (I
program because the challenge is fun, just how I did with denote-sequence, for example).
I have a final update on this that I posted on denote.git issue 724 and am copying below. Any future changes will appear in the release notes of the next version of Denote. In short: it is happening.
The status update on denote.git
Hello again folks!
I have an update on the denote-data project. The code is in this denote.git branch for now: https://github.com/protesilaos/denote/tree/denote-data
What I am doing:
- Find the computationaly heavy functions.
- Write
denote-datavariants for them. - Introduce variables to
funcall VARinstead of calling the heavy functions directly. - Make the
denote-data-modeset those variables.
This way we can have any extension do what denote-data does. And this way denote-data can be its own package as well.
- The first big problem I see now is how to make the caching functions async. I will figure this out by studying
list-packagesand related. - Then I want to study
filenotify.el. @mentalisttraceur I have noted that your code is okay for copyright purposes, so I can check it out. Or you can send a PR, if you prefer.
Otherwise, I think this is almost done.
With an opt-in cache we can support other workflows that people have been asking for, such as in-buffer completion.