> Great. Then, I am attaching the patch with the new version of the > function. I will let Nicolas decide if it is good enough to be merged. I > do not feel confident enough with org-cite code to judge if my approach > is not missing some edge cases. Great, thanks for your help! > If I am correct, putting (require 'oc-basic) before defun will fix what you are seeing. Hmm, this doesn't fix what I'm seeing - still hang on first load and quicker after killing and finding again. Very possible there's something else obvious I'm missing though, I'm very much an emacs 'end user'! ________________________________ From: Ihor Radchenko Sent: Saturday, March 19, 2022 11:47 AM To: Jamie Matthews ; Nicolas Goaziou Cc: emacs-orgmode@gnu.org Subject: [PATCH] Re: [BUG] org-cite: 10 second hang opening a ~4k org file with 10MB bibtex library Jamie Matthews writes: > I can confirm that the key turns red on insert when I altered the key outside of emacs (with that second version of `org-cite-basic--parse-bibliography`). Great. Then, I am attaching the patch with the new version of the function. I will let Nicolas decide if it is good enough to be merged. I do not feel confident enough with org-cite code to judge if my approach is not missing some edge cases. > However, I'm now noticing that the hang improvement earlier (< a second down from ~10) doesn't always occur. > > Specifically, if I > > 1. emacs -Q > 2. eval your code in scratch > 3. C-x C-f to the org file > > I get the hang. However, if I then > > > 1. kill the org buffer > 2. eval the code again > 3. re-find the org file > > the hang is gone. Without eval​ing your code in between, killing the org buffer and finding it again in the same emacs session reproduces the hang everytime, which was probably what I did the first time I report the improvement, as in I didn't check it worked from startup. It is most likely because you defun the function after emacs -Q before org is loaded, then open Org file (opening Org file autoloads org-mode), and then org-mode overwrites the manual defun. If I am correct, putting (require 'oc-basic) before defun will fix what you are seeing. Best, Ihor