Re: [BUG] org-element-cache: The inherited property is set wrong
Kaushal Modi writes: > I have also been seeing some issues when adding/modidying heading tags > (C-c C-q), and I was able to narrow it down to the element caching > mechanism. > > Issue: Org mode/Emacs hangs kind of indefinitely when I do C-c C-q, > but that doesn't happen each time. > > Once I set org-element-use-cache to nil, Emacs stopped hanging. > > Looking at your bug report, I believe that the issue I am seeing with > cache and Org tags could be very much related. So thanks for > submitting this. The issue here had nothing to do with hanging. You are probably seeing yet another bug. By hang, do you mean that even C-g does not restore responsiveness? Best, Ihor
Re: [BUG] org-element-cache: The inherited property is set wrong
Anders Johansson writes: >> I don’t know if this is the best solution though. >> Perhaps this is needed also in org--get-local-tags where a similar >> thing is done? (but only the fontification seems to matter there) > > I now noted that this differed in Ihor's org-fold-universal-core > branch which I use and main (org-get-tags has an extra argument > fontify for org-fold). But I believe the caching issue is relevant on > both branches (and in either case a topic for Ihor). Yep, it is a common bug. I have also fixed the issue in my branch now. By the way, I am almost done with preparing merge for org-fold. Once I figure out an issue with pixel string-width in older Emacs, it should be properly ready to be merged(; Best, Ihor
Re: [BUG] org-element-cache: The inherited property is set wrong
Anders Johansson writes: > Hi, > I had some trouble with completing tags, where the already set tags > were wrongly identified. I have dug this down to a problem with > caching. > > with org-element-use-cache=t and org-use-tag-inheritance=t > --- Org > * headline 1 :tag1: > ** headline 2 :tag2: > --- end org > > ... > A solution that seems to work for me was to change > (cl-copy-list cached-tags) > to > (mapcar #'copy-sequence cached-tags) Fixed. Thanks for the detailed analysis and the solution! I have seen this bug myself in the past, but was not able to reproduce reliably. Best, Ihor
Re: [BUG] org-element-cache: The inherited property is set wrong
Hi Anders, I have also been seeing some issues when adding/modidying heading tags (C-c C-q), and I was able to narrow it down to the element caching mechanism. Issue: Org mode/Emacs hangs kind of indefinitely when I do C-c C-q, but that doesn't happen each time. Once I set org-element-use-cache to nil, Emacs stopped hanging. Looking at your bug report, I believe that the issue I am seeing with cache and Org tags could be very much related. So thanks for submitting this. -- Kaushal Modi
Re: [BUG] org-element-cache: The inherited property is set wrong
> I don’t know if this is the best solution though. > Perhaps this is needed also in org--get-local-tags where a similar > thing is done? (but only the fontification seems to matter there) I now noted that this differed in Ihor's org-fold-universal-core branch which I use and main (org-get-tags has an extra argument fontify for org-fold). But I believe the caching issue is relevant on both branches (and in either case a topic for Ihor). Best, Anders
[BUG] org-element-cache: The inherited property is set wrong
Hi, I had some trouble with completing tags, where the already set tags were wrongly identified. I have dug this down to a problem with caching. with org-element-use-cache=t and org-use-tag-inheritance=t --- Org * headline 1 :tag1: ** headline 2 :tag2: --- end org When invoking org-set-tags-command (and quitting), on headline 1, then headline 2, then headline 1 again, "tag1" is no longer shown as one of the existing tags in the minibuffer. This is because it has erronously been assigned an :inherited property in the cache-representation for headline 1 when inherited tags were calculated for headline 2. This happens in org-get-tags, where inherited tags are parsed from the cache and given the :inherited property, but unfortunately this is done to the same string objects, so that this property is added in the cache tree both for the taglist of headline 1 and headline 2. (cl-copy-list cached-tags) is used there, but only copies the list and not the string objects. A solution that seems to work for me was to change (cl-copy-list cached-tags) to (mapcar #'copy-sequence cached-tags) (found it here: https://stackoverflow.com/a/47794586) I don’t know if this is the best solution though. Perhaps this is needed also in org--get-local-tags where a similar thing is done? (but only the fontification seems to matter there) Best, Anders Johansson (who is otherwise as mentioned in an earlier discussion very appreciative of org-element-cache)