emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Replacing property-name hangs Emacs
@ 2014-07-18 22:47 Thorsten Jolitz
  2014-07-19  8:07 ` Thorsten Jolitz
  0 siblings, 1 reply; 5+ messages in thread
From: Thorsten Jolitz @ 2014-07-18 22:47 UTC (permalink / raw)
  To: emacs-orgmode


Hi List, 

seems to be an Org problem:

when doing query-replace or replace-string on the name of a headline
property, Emacs hangs with 100pc CPU and I have to restart. 

MWE and emacs -Q not possible, sorry, I tried... 

PS

Org-mode version 8.3beta (release_8.3beta-44-g05be57 @
/usr/share/emacs/24.3/lisp/org/lisp/)

GNU Emacs 24.3.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.12.2) of
2014-06-11 on var-lib-archbuild-staging-x86_64-jgc

-- 
cheers,
Thorsten

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Replacing property-name hangs Emacs
  2014-07-18 22:47 Replacing property-name hangs Emacs Thorsten Jolitz
@ 2014-07-19  8:07 ` Thorsten Jolitz
  2014-07-19 11:28   ` [BUG] in org-element (was Re: Replacing property-name hangs Emacs) Thorsten Jolitz
  0 siblings, 1 reply; 5+ messages in thread
From: Thorsten Jolitz @ 2014-07-19  8:07 UTC (permalink / raw)
  To: emacs-orgmode

Thorsten Jolitz <tjolitz@gmail.com> writes:

Hi List, 

> seems to be an Org problem:
>
> when doing query-replace or replace-string on the name of a headline
> property, Emacs hangs with 100pc CPU and I have to restart. 
>
> MWE and emacs -Q not possible, sorry, I tried... 
>
> PS
>
> Org-mode version 8.3beta (release_8.3beta-44-g05be57 @
> /usr/share/emacs/24.3/lisp/org/lisp/)
>
> GNU Emacs 24.3.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.12.2) of
> 2014-06-11 on var-lib-archbuild-staging-x86_64-jgc

Here is a copy of what I sent to the emacs-help list, this seems to be
an Org parser problem (or a configuration problem - cannot reproduce it
with emacs -Q):

#+begin_quote
>> Try sending the Emacs process a SIGUSR2, this forces
>> it into the (Lisp level) debugger.  Maybe you then
>> can see what it "does".
>
> You mean like this:
>
> kill -s usr2 4352
>
> (get the PID with 'ps -e | grep emacs')
>
> or, equivalently (?)
>
> pkill --signal usr2 emacs

nice tip, thanks, I hope I remember this!

Here is the beginning of the file where I want to replace :resource_id:
with :name: by doing 

,----
| M-%: resource_id RET name RET
`----

Emacs hangs already at the 2nd (piano) entry. 

#+begin_src org
* Instruments
** rhythm-section
*** harmony
**** guitar
   :PROPERTIES:
   :name: guitar
   :abbrev:   g
   :END:

**** piano
    :PROPERTIES:
    :name: piano
    :abbrev:   p
    :END:

*** rhythm
**** bass
    :PROPERTIES:
    :resource_id: bass
    :abbrev:   b
    :END:

**** drums
    :PROPERTIES:
    :resource_id: drums
    :abbrev:   dr
    :END:

** horns
    :PROPERTIES:
    :resource_id: horns
    :abbrev:   hrs
    :END:
#+end_src

here is the backtrace I get, it seems to be an Org-mode (cache?) problem
- should I move this report to the Org mailing list?

Debugger entered--Lisp error: (quit)
  looking-at("^\\(\\*+\\)\\(?:
+\\(TODO\\|NEXT\\|DONE\\|WAITING\\|HOLD\\|CANCELLED\\|PHONE\\)\\)?\\(?:
+\\(\\[#.\\]\\)\\)?\\(?: +\\(.*?\\)\\)??\\(?:[
]+\\(:[[:alnum:]_@#%:]+:\\)\\)?[ ]*$")
  org-heading-components()
  org-element-headline-parser(116 t)
  org-element--current-element(116 element nil nil)
  byte-code("\212\214~\210^Hb\210
\205..\306\307!\204..\n\205..\310^H\311\".\312^K..\f;\203+.\313\314.\f#\2021.\315\fA@.\"*..\311\211../^K\204`.\316.0\317
\211.1.2\320.1P.3\321 ,\203V.\311y\210\322\311w\210\323
\210\202?.^H..U\203\217.\324\325.4\203\211.\326^K..\f;\203^?.\313\314.\f#\202\205.\315\fA@.\"*\202\212.^K\"\210\202?.\327\316.0\317
\211.1.2\320.1P+..\316#\203\263.\311y\210\322\311w\210\323
\210\202?.^Kd^HU\203\277.^HS\202\300.^H..5\330^K..\f;\203\324.\313\314.\f#\202\332.\315\fA@.\"*\206\340...b\210\331.5..\f;\203\364.\313\314.\f#\202\372.\315\fA@.\"*\211.6^HX\205%..6b\205%.\326.5..\f;\203..\313\314.\f#\202!.\315\fA@.\"*\211.5)\204\342..5\203>.m\2038..5.\202>..5.`./*\331\f..\f;\203P.\313\314.\f#\202V.\315\fA@.\"*\206q.\212\316.0\317
\211.1.2\320.1P.3\332
\210,`)\f\311.7.8.6.4\203\251.`^HU\203\215.\324\325.8\"\210\202\251..9\211.9\205\240.\333
\206\240.\334.9\335
\")\203\251.\324\336\311\"\210\f\204\370.\337.6\304.7\340.8..\f;\203\305.\313\314.\f#\202\313.\315\fA@.\"*$\211.\326.8.:.\211.;\203\345.\341\f\311..:$\202\362.\fA\342\fA@..:#\240\210\f+\210\343\f!\210\331\f..\f;\203
.\313\314.\f#\202..\315\fA@.\"*\f\211.:\204
.\f;\205(.\344\202(.\f@9\205(.\f@).;\211.<^HX\203A.d.<U\204A..<b\210\202\376..;.=>\204Q.\324\325\f\"\210\202\376.\330\f..\f;\203b.\313\314.\f#\202h.\315\fA@.\"*\345\f..\f;\203z.\313\314.\f#\202\200.\315\fA@.\"*.>.?.4\204\276..?\205\365..>\205\365..?^HW\204\252..?^HU\205\365..;\346>?\205\365..>^HV\204\276..>^HU\205\365.d^HU\205\365../\206\305..?b\210\311./\347.;\350\"\203\326.\351\202\353.\347.;\352\"\203\342.\353\202\353.\347.;\354\"\205\353.\355.7\f.8.>\211.6*\204\376.\324\325\f\"\210*\311.\202y."
[pos org-element-use-cache orgstruct-mode cached element property
derived-mode-p org-mode org-element--cache-find nil :begin
get-text-property 0 plist-get t org-get-limited-outline-regexp "^"
outline-previous-heading " . \n" beginning-of-line throw exit :parent
re-search-backward :contents-begin :end outline-next-heading
input-pending-p time-less-p current-time interrupt
org-element--current-element :structure org-add-props plist-put
org-element--cache-put plain-text :contents-end (plain-list table) eql
plain-list item property-drawer node-property table table-row begin
next org-called-with-limited-levels org-outline-regexp ...] 9)
  org-element--parse-to(120 t nil)
  byte-code("^H\306H\307U\203\f.\310\311\215\210^H\306H\312U\203U.^H\307H
\232\203(.\nA@\306\312I\210\313\314\315\"\210\316^H\312H^H\317H^K#..\203A..\fW\203A.\313\320\321\"\210\322\f\315..#./^H\323./I\210^H\306\324I\210*^H\307H^H\317H^H\323H.0\307H.1>\204n.\325\326\327\330#\210.0\312H\307H\321C\315\321.2.3.4.5./.6.7./\204\227.\331.6!\203\227.\313\314\315\"\210.5\203\251..5\324H\211.8.9\332.9.:\"\206..\333.9.9.;.9;\203\305.\334\307.;.9#\202\315.\335.9A@.;\"*.<.9\211.9:\204\343..9;\205\355.\336\202\355..9@9\205\355..9@)\337>\203\371..<T\202\373..<.=\n\203\f.\340.9.=.:#\202...=*).=.3\203h..5\307H\203h..=.7.>\211.?\250\203B..>\250\2039..?.>W\202T..?.>@X\202T..>\250\203Q..?@.>W\202T.\341\342\215*\204h..5.4B.4.5\307H.5\202\245..=.7.>\211.?\250\203\214..>\250\203\203..?.>W\202\236..?.>@X\202\236..>\250\203\233..?@.>W\202\236.\341\342\215*\204\213..=
\232\203\256.\313\314\315\"\210.2\204\312...\211..\205\306.\343
\206\306.\344..\345
\")\203\333.^H\307.=I\210^H\323./I\210\313\320\321\"\210\331.6!\204\334..8.6\321.@.6\211.9A@.A.@\203\376.\346.@>\203\x7f..9\211.9:\204...9;\205..\336\202...9@9\205...9@)\347=\203\x7f.\335.A\350\"\211.9:\2047..9;\205A.\336\202A..9@9\205A..9@)\351=\204\x7f.\335.A\346\"\321.)\211.B\203~..B@\211.)\211.C\211@.6\\\240\210)\306.)\233\211.D\211@.6\\\240\210).BA\211.B\204U.*\352\321.=\211.B\205\276..B@.=.@\203\233..=.@>\205\241.\335.A.=\"\211.E\203\263.\353.A.=.6.E\\#\210).BA\211.B\204\211.\321..\210\332.8.F\"\321.G\211.B\203\333..B@\211.G\211.HAA)\321.I\211.B\203\321..B@\211.I.6\321.@.6\211.9A@.A.@\203..\346.@>\203\206..9\211.9:\204...9;\205\".\336\202\"..9@9\205\"..9@)\347=\203\206.\335.A\350\"\211.9:\204>..9;\205H.\336\202H..9@9\205H..9@)\351=\204\206.\335.A\346\"\321.)\211.B\203\205..B@\211.)\211.C\211@.6\\\240\210)\306.)\233\211.D\211@.6\\\240\210).BA\211.B\204\\.*\352\321.=\211.B\205\305..B@.=.@\203\242..=.@>\205\250.\335.A.=\"\211.E\203\272.\353.A.=.6.E\\#\210).BA\211.B\204\220.\321..\210.BA\211.B\204\345.*.BA\211.B\204\320.*\333.8.9.;.9;\203\363.\334\307.;.9#\202\373.\335.9A@.;\"*.<./\203O.\354./.9.;.9;\203..\334\307.;.9#\202\".\335.9A@.;\"*.<X\203O.\350./.9.;.9;\203@.\334\307.;.9#\202H.\335.9A@.;\"*\211./\204.../\204c.\331.6!\203c.\313\314\321\"\210\202|../\203|.\350.8.9.;.9;\203\x7f.\334\307.;.9#\202\207.\335.9A@.;\"*\211.J?\206\320.\333.J.9.;.9;\203\246.\334\307.;.9#\202\256.\335.9A@.;\"*\333./.9.;.9;\203\306.\334\307.;.9#\202\316.\335.9A@.;\"*W)\203|..8\350./.E.;\211.9;\203\360.\355.9\321.;.E$\202...9A\353.9A@.;.E#\240\210.9+\210\346./.9.;.9;\203..\334\307.;.9#\202\".\335.9A@.;\"*\211.K\203{.\346.8.9.;.9;\203@.\334\307.;.9#\202H.\335.9A@.;\"*\203{..8\346.K.E.;\211.9;\203h.\355.9\321.;.E$\202y..9A\353.9A@.;.E#\240\210.9+\210).\203\212..<.V\203\212.\315.2).5\312H\211.3\203\234..5\312H\202\243..4\211A.4@.5*\202\227..^G\315\207"
[request next org-element--cache-sync-requests extra limit threshold 6
0 end-phase (byte-code "^H\306H^H\307H^H\310H...\f\211.\205..\311
\206..\312\f\313
\")\203%.\314\315\316\"\210.\306H.$>\2044.\317\320\321\322#\210.\323H\306H\316\211.%.&.'.'\203W..'\307H\211.(.(\324.(.)\"\206\272.\325.(.(.*.(;\203o.\326\306.*.(#\202w.\327.(A@.*\"*.+.(\211.(:\204\215..(;\205\227.\330\202\227..(@9\205\227..(@)\331>\203\243..+T\202\245..+.,.-\203\267.\332.(.,.)#\202\271..,*)\211.,^K..\211./\250\203\337...\250\203\326../..W\202\361../..@X\202\361...\250\203\356../@..W\202\361.\333\334\215*\203\376..'\323H.'\202S.^K.,..\211./\250\203!...\250\203.../..W\2023../..@X\2023...\250\2030../@..W\2023.\333\334\215*\203H..(.&.,.%.'\306H.'\202S..(.&.,.%\316.'*\202A..&\203..\325.&.(.*.(;\203s.\326\306.*.(#\202{.\327.(A@.*\"*.0.1\203\275..%.1..\211./\250\203\247...\250\203\236../..W\202\271../..@X\202\271...\250\203\266../@..W\202\271.\333\334\215*\203\304..0\nX\202\374..&\211.2\203\371..2
=\204\371.\335.2.(.*.(;\203\352.\326\306.*.(#\202\362.\327.(A@.*\"*\211.2\204\314..2)\203...&.(\336..(\"\210\337.(.3\")\210\202*.^H\306.%I\210^H\323.0I\210^H\340\323I\210\314\341\316\"\210)\2023.\314\342\343\"\210+\202\f."
[request outreach end beg time-limit org-element--cache 0 2 4
input-pending-p time-less-p current-time throw interrupt nil error "%s
accessing a non-%s" avl-tree--dummyroot avl-tree- 1 gethash :begin
get-text-property plist-get plain-text (item table-row) puthash exit
(byte-code "^H\203/. \203/.\302^H \"\203..\303\304\305\"\210\202..\302
^H\"\203&.\303\304\306\"\210\202..^HA. A.\202..^H?\2055. \207" [a b
car-less-than-car throw exit t nil] 3) :parent avl-tree-delete remhash
6 end-phase quit t cl-struct-avl-tree--tags data-key data node element
org-element--cache-sync-keys property begin key
org-element--cache-sync-requests b a pos next ...] 5) 1 throw quit t +
3 interrupt nil org-element--parse-to 5 2 error "%s accessing a
non-%s" avl-tree--dummyroot avl-tree- zerop gethash :begin
get-text-property plist-get plain-text (item table-row) puthash exit
(byte-code "^H\203/. \203/.\302^H \"\203..\303\304\305\"\210\202..\302
^H\"\203&.\303\304\306\"\210\202..^HA. A.\202..^H?\2055. \207" [a b
car-less-than-car throw exit t nil] 3) input-pending-p time-less-p
current-time :structure plain-list :parent item (:begin
:contents-begin :contents-end :end :post-affiliated) plist-put :end
org-add-props time-limit parent org-element--cache
cl-struct-avl-tree--tags ...] 8)
  org-element--cache-process-request([1642 134 123 -7 (property-drawer
(:begin 57 :end 123 :contents-begin 73 :contents-end 113 :post-blank 1
:post-affiliated 57 :parent nil)) nil 2] nil 167 nil -7)
  byte-code("^H\203H.^H@.^HA@.\306
\n\205..\n\307H^K\211?\205^_.\310\311
\f\".\206$.\307%\210\n\203A.\n\211.\f\312.\f\312H \312H\\I\210)\n\313
\313HI\210^HA\211.\204..\306\207" [org-element--cache-sync-requests
request next threshold org-element-cache-sync-duration extra
org-element--cache-process-request 0 time-add current-time 3 2 v] 8)
  org-element--cache-sync(#<buffer instruments.org> 167 -7)
  org-element--cache-submit-request(144 167 -7)
  org-element--cache-after-change(149 153 11)
  replace-match("name" nil t)
  replace-match-maybe-edit("name" nil t nil (149 160 #<buffer
instruments.org>))
  perform-replace("resource_id" "name" t nil nil nil nil nil nil)
  query-replace("resource_id" "name" nil nil nil)
  call-interactively(query-replace nil nil)
#+end_quote

-- 
cheers,
Thorsten

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [BUG] in org-element (was Re: Replacing property-name hangs Emacs)
  2014-07-19  8:07 ` Thorsten Jolitz
@ 2014-07-19 11:28   ` Thorsten Jolitz
  2014-07-20 17:40     ` Nicolas Goaziou
  0 siblings, 1 reply; 5+ messages in thread
From: Thorsten Jolitz @ 2014-07-19 11:28 UTC (permalink / raw)
  To: emacs-orgmode

Thorsten Jolitz <tjolitz@gmail.com> writes:

This turned out to be an Org-mode bug.

>> Org-mode version 8.3beta (release_8.3beta-44-g05be57 @
>> /usr/share/emacs/24.3/lisp/org/lisp/)
>>
>> GNU Emacs 24.3.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.12.2) of
>> 2014-06-11 on var-lib-archbuild-staging-x86_64-jgc

Here is the recipe:

1. emacs -Q

2. M-x find-file instruments.org (content posted below)

3. M-% resource_id RET name RET

4. hit space quickly (-> accept) until Emacs hangs (100pc CPU)

PS 

content of instruments.org:
#+begin_src org
* Instruments
** rhythm-section
*** harmony
**** guitar
   :PROPERTIES:
   :resource_id: guitar
   :abbrev:   g
   :END:

**** piano
    :PROPERTIES:
    :resource_id: piano
    :abbrev:   p
    :END:

*** rhythm
**** bass
    :PROPERTIES:
    :resource_id: bass
    :abbrev:   b
    :END:

**** drums
    :PROPERTIES:
    :resource_id: drums
    :abbrev:   dr
    :END:

** horns
    :PROPERTIES:
    :resource_id: horns
    :abbrev:   hrs
    :END:

*** brass
**** trumpet
    :PROPERTIES:
    :resource_id: trumpet
    :abbrev:   tr
    :pitch:    +2
    :END:

**** trombone
    :PROPERTIES:
    :resource_id: trombone
    :abbrev:   tmb
    :END:

*** woodwinds
**** sopran-sax
    :PROPERTIES:
    :resource_id: sopran-sax
    :abbrev:   ss
    :END:

**** alt-sax
    :PROPERTIES:
    :resource_id: alt-sax
    :abbrev:   as
    :pitch:    -3
    :END:

**** tenor-sax 
    :PROPERTIES:
    :resource_id: tenor-sax
    :abbrev:   ts
    :pitch:    +2
    :END:

**** bariton-sax
    :PROPERTIES:
    :resource_id: bariton-sax
    :abbrev:   bs
    :END:

**** flute
    :PROPERTIES:
    :resource_id: flute
    :abbrev:   fl
    :END:

*** voices
**** sopran-voice
    :PROPERTIES:
    :resource_id: sopran-voice
    :abbrev:   svoc
    :END:

**** alt-voice
    :PROPERTIES:
    :resource_id: alt-voice
    :abbrev:   avoc
    :END:

**** tenor_voice
    :PROPERTIES:
    :resource_id: tenor-voice
    :abbrev:   tvoc
    :END:

**** bariton-voice
    :PROPERTIES:
    :resource_id: bariton-voice
    :abbrev:   bvoc
    :END:

*** strings
**** violin
    :PROPERTIES:
    :resource_id: violin
    :abbrev:   v
    :END:

**** Cello
    :PROPERTIES:
    :resource_id: cello
    :abbrev:   c
    :END:
#+end_src

Backtrace:

Debugger entered--Lisp error: (quit)

  (progn (goto-char end) (skip-chars-backward " . \n") (forward-line)
  (point)) (and contents-begin (progn (goto-char end)
  (skip-chars-backward " . \n") (forward-line) (point))) (let*
  ((components (org-heading-components)) (level (nth 1 components))
  (todo (nth 2 components)) (todo-type (and todo (if (member todo
  org-done-keywords) (quote done) (quote todo)))) (tags (let ((raw-tags
  (nth 5 components))) (and raw-tags (org-split-string raw-tags ":"))))
  (raw-value (or (nth 4 components) "")) (commentedp (let
  ((case-fold-search nil)) (string-match (format "^%s\\( \\|$\\)"
  org-comment-string) raw-value))) (archivedp (member org-archive-tag
  tags)) (footnote-section-p (and org-footnote-section (string=
  org-footnote-section raw-value))) (standard-props (let ((end
  (save-excursion (let* ... ...) (point))) plist) (save-excursion (while
  (and (null plist) (re-search-forward org-property-start-re end t))
  (let (...) (if ... ...))) plist))) (time-props (save-excursion
  (forward-line) (if (looking-at org-planning-or-clock-line-re) (progn
  (let (... plist) (while ... ... ... ...) plist))))) (begin (point))
  (end (min (save-excursion (org-end-of-subtree t t)) limit))
  (pos-after-head (progn (forward-line) (point))) (contents-begin
  (save-excursion (skip-chars-forward " . \n" end) (and (/= (point)
  end) (line-beginning-position)))) (contents-end (and contents-begin
  (progn (goto-char end) (skip-chars-backward " . \n") (forward-line)
  (point))))) (if commentedp (progn (let ((case-fold-search nil)) (setq
  raw-value (replace-regexp-in-string (concat (regexp-quote
  org-comment-string) "\\(?: \\|$\\)") "" raw-value))))) (if archivedp
  (progn (setq tags (delete org-archive-tag tags)))) (let ((headline
  (list (quote headline) (nconc (list :raw-value raw-value :begin begin
  :end end :pre-blank (if ... 0 ...) :contents-begin contents-begin
  :contents-end contents-end :level level :priority (nth 3 components)
  :tags tags :todo-keyword todo :todo-type todo-type :post-blank
  (count-lines ... end) :footnote-section-p footnote-section-p
  :archivedp archivedp :commentedp commentedp) time-props
  standard-props)))) (let ((alt-title (org-element-property :ALT_TITLE
  headline))) (if alt-title (progn (org-element-put-property headline
  :alt-title (if raw-secondary-p alt-title
  (org-element-parse-secondary-string alt-title ... headline))))))
  (org-element-put-property headline :title (if raw-secondary-p
  raw-value (org-element-parse-secondary-string raw-value
  (org-element-restriction (quote headline)) headline)))))
  (save-excursion (let* ((components (org-heading-components)) (level
  (nth 1 components)) (todo (nth 2 components)) (todo-type (and todo (if
  (member todo org-done-keywords) (quote done) (quote todo)))) (tags
  (let ((raw-tags (nth 5 components))) (and raw-tags (org-split-string
  raw-tags ":")))) (raw-value (or (nth 4 components) "")) (commentedp
  (let ((case-fold-search nil)) (string-match (format "^%s\\( \\|$\\)"
  org-comment-string) raw-value))) (archivedp (member org-archive-tag
  tags)) (footnote-section-p (and org-footnote-section (string=
  org-footnote-section raw-value))) (standard-props (let ((end
  (save-excursion ... ...)) plist) (save-excursion (while (and ... ...)
  (let ... ...)) plist))) (time-props (save-excursion (forward-line) (if
  (looking-at org-planning-or-clock-line-re) (progn (let
  ... ... plist))))) (begin (point)) (end (min (save-excursion
  (org-end-of-subtree t t)) limit)) (pos-after-head (progn
  (forward-line) (point))) (contents-begin (save-excursion
  (skip-chars-forward " . \n" end) (and (/= (point) end)
  (line-beginning-position)))) (contents-end (and contents-begin (progn
  (goto-char end) (skip-chars-backward " . \n") (forward-line)
  (point))))) (if commentedp (progn (let ((case-fold-search nil)) (setq
  raw-value (replace-regexp-in-string (concat ... "\\(?: \\|$\\)") ""
  raw-value))))) (if archivedp (progn (setq tags (delete org-archive-tag
  tags)))) (let ((headline (list (quote headline) (nconc (list
  :raw-value raw-value :begin begin :end end :pre-blank
  ... :contents-begin contents-begin :contents-end contents-end :level
  level :priority ... :tags tags :todo-keyword todo :todo-type todo-type
  :post-blank ... :footnote-section-p footnote-section-p :archivedp
  archivedp :commentedp commentedp) time-props standard-props)))) (let
  ((alt-title (org-element-property :ALT_TITLE headline))) (if alt-title
  (progn (org-element-put-property headline :alt-title (if
  raw-secondary-p alt-title ...))))) (org-element-put-property headline
  :title (if raw-secondary-p raw-value
  (org-element-parse-secondary-string raw-value (org-element-restriction
  (quote headline)) headline)))))) org-element-headline-parser(116 t)
  (cond ((eq special (quote item)) (org-element-item-parser limit
  structure raw-secondary-p)) ((eq special (quote table-row))
  (org-element-table-row-parser limit)) ((eq special (quote
  node-property)) (org-element-node-property-parser limit)) ((let*
  ((org-called-with-limited-levels t) (org-outline-regexp
  (org-get-limited-outline-regexp)) (outline-regexp org-outline-regexp)
  (org-outline-regexp-bol (concat "^" org-outline-regexp)))
  (org-at-heading-p)) (org-element-headline-parser limit
  raw-secondary-p)) ((eq special (quote section))
  (org-element-section-parser limit)) ((eq special (quote
  first-section)) (org-element-section-parser (or (save-excursion (let*
  ((org-called-with-limited-levels t) (org-outline-regexp ...)
  (outline-regexp org-outline-regexp) (org-outline-regexp-bol ...))
  (outline-next-heading))) limit))) ((not (bolp))
  (org-element-paragraph-parser limit (list (point)))) ((looking-at
  org-planning-or-clock-line-re) (if (equal (match-string 1)
  org-clock-string) (org-element-clock-parser limit)
  (org-element-planning-parser limit))) ((org-at-heading-p)
  (org-element-inlinetask-parser limit raw-secondary-p)) (t (let
  ((affiliated (org-element--collect-affiliated-keywords limit))) (cond
  ((and (cdr affiliated) (>= (point) limit)) (goto-char (car
  affiliated)) (org-element-keyword-parser limit nil)) ((looking-at "[
  ]*\\\\begin{[A-Za-z0-9*]+}\\(\\[.*?\\]\\|{.*?}\\)*[ ]*$")
  (org-element-latex-environment-parser limit affiliated)) ((looking-at
  org-drawer-regexp) (if (equal (match-string 1) "PROPERTIES")
  (org-element-property-drawer-parser limit affiliated)
  (org-element-drawer-parser limit affiliated))) ((looking-at "[ ]*:\\(
  \\|$\\)") (org-element-fixed-width-parser limit affiliated))
  ((looking-at "[ ]*#") (goto-char (match-end 0)) (cond ((looking-at
  "\\(?: \\|$\\)") (beginning-of-line) (org-element-comment-parser limit
  affiliated)) ((looking-at "\\+BEGIN_\\(\\S-+\\)") (beginning-of-line)
  (let ... ...)) ((looking-at "\\+CALL:") (beginning-of-line)
  (org-element-babel-call-parser limit affiliated)) ((looking-at
  "\\+BEGIN:? ") (beginning-of-line) (org-element-dynamic-block-parser
  limit affiliated)) ((looking-at "\\+\\S-+:") (beginning-of-line)
  (org-element-keyword-parser limit affiliated)) (t (beginning-of-line)
  (org-element-paragraph-parser limit affiliated)))) ((looking-at
  org-footnote-definition-re) (org-element-footnote-definition-parser
  limit affiliated)) ((looking-at "[ ]*-\\{5,\\}[ ]*$")
  (org-element-horizontal-rule-parser limit affiliated)) ((looking-at
  "%%(") (org-element-diary-sexp-parser limit affiliated))
  ((org-at-table-p t) (org-element-table-parser limit affiliated))
  ((looking-at (org-item-re)) (org-element-plain-list-parser limit
  affiliated (or structure (org-element--list-struct limit)))) (t
  (org-element-paragraph-parser limit affiliated)))))) (let
  ((case-fold-search t) (raw-secondary-p (and granularity (not (eq
  granularity (quote object)))))) (cond ((eq special (quote item))
  (org-element-item-parser limit structure raw-secondary-p)) ((eq
  special (quote table-row)) (org-element-table-row-parser limit)) ((eq
  special (quote node-property)) (org-element-node-property-parser
  limit)) ((let* ((org-called-with-limited-levels t) (org-outline-regexp
  (org-get-limited-outline-regexp)) (outline-regexp org-outline-regexp)
  (org-outline-regexp-bol (concat "^" org-outline-regexp)))
  (org-at-heading-p)) (org-element-headline-parser limit
  raw-secondary-p)) ((eq special (quote section))
  (org-element-section-parser limit)) ((eq special (quote
  first-section)) (org-element-section-parser (or (save-excursion (let*
  (... ... ... ...) (outline-next-heading))) limit))) ((not (bolp))
  (org-element-paragraph-parser limit (list (point)))) ((looking-at
  org-planning-or-clock-line-re) (if (equal (match-string 1)
  org-clock-string) (org-element-clock-parser limit)
  (org-element-planning-parser limit))) ((org-at-heading-p)
  (org-element-inlinetask-parser limit raw-secondary-p)) (t (let
  ((affiliated (org-element--collect-affiliated-keywords limit))) (cond
  ((and (cdr affiliated) (>= ... limit)) (goto-char (car affiliated))
  (org-element-keyword-parser limit nil)) ((looking-at "[
  ]*\\\\begin{[A-Za-z0-9*]+}\\(\\[.*?\\]\\|{.*?}\\)*[ ]*$")
  (org-element-latex-environment-parser limit affiliated)) ((looking-at
  org-drawer-regexp) (if (equal ... "PROPERTIES")
  (org-element-property-drawer-parser limit affiliated)
  (org-element-drawer-parser limit affiliated))) ((looking-at "[ ]*:\\(
  \\|$\\)") (org-element-fixed-width-parser limit affiliated))
  ((looking-at "[ ]*#") (goto-char (match-end 0)) (cond (... ... ...)
  (... ... ...) (... ... ...) (... ... ...) (... ... ...) (t ... ...)))
  ((looking-at org-footnote-definition-re)
  (org-element-footnote-definition-parser limit affiliated))
  ((looking-at "[ ]*-\\{5,\\}[ ]*$") (org-element-horizontal-rule-parser
  limit affiliated)) ((looking-at "%%(") (org-element-diary-sexp-parser
  limit affiliated)) ((org-at-table-p t) (org-element-table-parser limit
  affiliated)) ((looking-at (org-item-re))
  (org-element-plain-list-parser limit affiliated (or structure ...)))
  (t (org-element-paragraph-parser limit affiliated)))))))
  (save-excursion (let ((case-fold-search t) (raw-secondary-p (and
  granularity (not (eq granularity (quote object)))))) (cond ((eq
  special (quote item)) (org-element-item-parser limit structure
  raw-secondary-p)) ((eq special (quote table-row))
  (org-element-table-row-parser limit)) ((eq special (quote
  node-property)) (org-element-node-property-parser limit)) ((let*
  ((org-called-with-limited-levels t) (org-outline-regexp
  (org-get-limited-outline-regexp)) (outline-regexp org-outline-regexp)
  (org-outline-regexp-bol (concat "^" org-outline-regexp)))
  (org-at-heading-p)) (org-element-headline-parser limit
  raw-secondary-p)) ((eq special (quote section))
  (org-element-section-parser limit)) ((eq special (quote
  first-section)) (org-element-section-parser (or (save-excursion (let*
  ... ...)) limit))) ((not (bolp)) (org-element-paragraph-parser limit
  (list (point)))) ((looking-at org-planning-or-clock-line-re) (if
  (equal (match-string 1) org-clock-string) (org-element-clock-parser
  limit) (org-element-planning-parser limit))) ((org-at-heading-p)
  (org-element-inlinetask-parser limit raw-secondary-p)) (t (let
  ((affiliated (org-element--collect-affiliated-keywords limit))) (cond
  ((and ... ...) (goto-char ...) (org-element-keyword-parser limit nil))
  ((looking-at "[ ]*\\\\begin{[A-Za-z0-9*]+}\\(\\[.*?\\]\\|{.*?}\\)*[
  ]*$") (org-element-latex-environment-parser limit affiliated))
  ((looking-at org-drawer-regexp) (if ... ... ...)) ((looking-at "[
  ]*:\\( \\|$\\)") (org-element-fixed-width-parser limit affiliated))
  ((looking-at "[ ]*#") (goto-char ...) (cond ... ... ... ... ... ...))
  ((looking-at org-footnote-definition-re)
  (org-element-footnote-definition-parser limit affiliated))
  ((looking-at "[ ]*-\\{5,\\}[ ]*$") (org-element-horizontal-rule-parser
  limit affiliated)) ((looking-at "%%(") (org-element-diary-sexp-parser
  limit affiliated)) ((org-at-table-p t) (org-element-table-parser limit
  affiliated)) ((looking-at ...) (org-element-plain-list-parser limit
  affiliated ...)) (t (org-element-paragraph-parser limit
  affiliated)))))))) org-element--current-element(116 element nil nil)
  (setq element (org-element--current-element end (quote element)
  special-flag (org-element-property :structure parent))) (if element
  nil (setq element (org-element--current-element end (quote element)
  special-flag (org-element-property :structure parent)))
  (org-element-put-property element :parent parent)
  (org-element--cache-put element)) (while t (if syncp (progn (cond ((=
  (point) pos) (throw (quote exit) parent))
  ((org-element--cache-interrupt-p time-limit) (throw (quote interrupt)
  nil))))) (if element nil (setq element (org-element--current-element
  end (quote element) special-flag (org-element-property :structure
  parent))) (org-element-put-property element :parent parent)
  (org-element--cache-put element)) (let ((elem-end
  (org-element-property :end element)) (type (org-element-type
  element))) (cond ((and (<= elem-end pos) (/= (point-max) elem-end))
  (goto-char elem-end)) ((not (memq type org-element-greater-elements))
  (throw (quote exit) element)) ((let ((cbeg (org-element-property
  :contents-begin element)) (cend (org-element-property :contents-end
  element))) (if (or syncp (and cbeg cend ... ...)) (progn (goto-char
  ...) (setq next nil special-flag ... parent element end cend))))) (t
  (throw (quote exit) element)))) (setq element nil)) (let ((end (or
  (org-element-property :end element) (save-excursion (let*
  ((org-called-with-limited-levels t) (org-outline-regexp ...)
  (outline-regexp org-outline-regexp) (org-outline-regexp-bol ...))
  (outline-next-heading)) (point)))) (parent element) special-flag)
  (while t (if syncp (progn (cond ((= (point) pos) (throw (quote exit)
  parent)) ((org-element--cache-interrupt-p time-limit) (throw (quote
  interrupt) nil))))) (if element nil (setq element
  (org-element--current-element end (quote element) special-flag
  (org-element-property :structure parent))) (org-element-put-property
  element :parent parent) (org-element--cache-put element)) (let
  ((elem-end (org-element-property :end element)) (type
  (org-element-type element))) (cond ((and (<= elem-end pos) (/=
  (point-max) elem-end)) (goto-char elem-end)) ((not (memq type
  org-element-greater-elements)) (throw (quote exit) element)) ((let
  ((cbeg ...) (cend ...)) (if (or syncp ...) (progn ... ...)))) (t
  (throw (quote exit) element)))) (setq element nil))) (let* ((cached
  (and (org-element--cache-active-p) (org-element--cache-find pos nil)))
  (begin (org-element-property :begin cached)) element next) (cond ((not
  cached) (if (let* ((org-called-with-limited-levels t)
  (org-outline-regexp (org-get-limited-outline-regexp)) (outline-regexp
  org-outline-regexp) (org-outline-regexp-bol (concat "^"
  org-outline-regexp))) (outline-previous-heading)) (progn
  (forward-line))) (skip-chars-forward " . \n") (beginning-of-line))
  ((= pos begin) (throw (quote exit) (if syncp (org-element-property
  :parent cached) cached))) ((re-search-backward (let*
  ((org-called-with-limited-levels t) (org-outline-regexp
  (org-get-limited-outline-regexp)) (outline-regexp org-outline-regexp)
  (org-outline-regexp-bol (concat "^" org-outline-regexp)))
  org-outline-regexp-bol) begin t) (forward-line) (skip-chars-forward "
  \n") (beginning-of-line)) (t (let ((up cached) (pos (if (= ... pos)
  (1- pos) pos))) (goto-char (or (org-element-property :contents-begin
  cached) begin)) (while (let ((end ...)) (and (<= end pos) (goto-char
  end) (setq up ...)))) (cond ((not up)) ((eobp) (setq element up)) (t
  (setq element up next (point))))))) (let ((end (or
  (org-element-property :end element) (save-excursion (let*
  (... ... ... ...) (outline-next-heading)) (point)))) (parent element)
  special-flag) (while t (if syncp (progn (cond ((= ... pos) (throw
  ... parent)) ((org-element--cache-interrupt-p time-limit) (throw
  ... nil))))) (if element nil (setq element
  (org-element--current-element end (quote element) special-flag
  (org-element-property :structure parent))) (org-element-put-property
  element :parent parent) (org-element--cache-put element)) (let
  ((elem-end (org-element-property :end element)) (type
  (org-element-type element))) (cond ((and (<= elem-end pos) (/=
  ... elem-end)) (goto-char elem-end)) ((not (memq type
  org-element-greater-elements)) (throw (quote exit) element)) ((let
  (... ...) (if ... ...))) (t (throw (quote exit) element)))) (setq
  element nil)))) (save-restriction (widen) (goto-char pos) (let*
  ((cached (and (org-element--cache-active-p) (org-element--cache-find
  pos nil))) (begin (org-element-property :begin cached)) element next)
  (cond ((not cached) (if (let* ((org-called-with-limited-levels t)
  (org-outline-regexp ...) (outline-regexp org-outline-regexp)
  (org-outline-regexp-bol ...)) (outline-previous-heading)) (progn
  (forward-line))) (skip-chars-forward " . \n") (beginning-of-line))
  ((= pos begin) (throw (quote exit) (if syncp (org-element-property
  :parent cached) cached))) ((re-search-backward (let*
  ((org-called-with-limited-levels t) (org-outline-regexp ...)
  (outline-regexp org-outline-regexp) (org-outline-regexp-bol ...))
  org-outline-regexp-bol) begin t) (forward-line) (skip-chars-forward "
  \n") (beginning-of-line)) (t (let ((up cached) (pos (if ... ... pos)))
  (goto-char (or (org-element-property :contents-begin cached) begin))
  (while (let (...) (and ... ... ...))) (cond ((not up)) ((eobp) (setq
  element up)) (t (setq element up next ...)))))) (let ((end (or
  (org-element-property :end element) (save-excursion (let* ... ...)
  (point)))) (parent element) special-flag) (while t (if syncp (progn
  (cond (... ...) (... ...)))) (if element nil (setq element
  (org-element--current-element end (quote element) special-flag
  (org-element-property :structure parent))) (org-element-put-property
  element :parent parent) (org-element--cache-put element)) (let
  ((elem-end (org-element-property :end element)) (type
  (org-element-type element))) (cond ((and ... ...) (goto-char
  elem-end)) ((not ...) (throw ... element)) ((let ... ...)) (t (throw
  ... element)))) (setq element nil))))) (save-excursion
  (save-restriction (widen) (goto-char pos) (let* ((cached (and
  (org-element--cache-active-p) (org-element--cache-find pos nil)))
  (begin (org-element-property :begin cached)) element next) (cond ((not
  cached) (if (let* (... ... ... ...) (outline-previous-heading)) (progn
  (forward-line))) (skip-chars-forward " . \n") (beginning-of-line))
  ((= pos begin) (throw (quote exit) (if syncp (org-element-property
  :parent cached) cached))) ((re-search-backward (let* (... ... ... ...)
  org-outline-regexp-bol) begin t) (forward-line) (skip-chars-forward "
  \n") (beginning-of-line)) (t (let ((up cached) (pos ...)) (goto-char
  (or ... begin)) (while (let ... ...)) (cond (...) (... ...) (t
  ...))))) (let ((end (or (org-element-property :end element)
  (save-excursion ... ...))) (parent element) special-flag) (while t (if
  syncp (progn (cond ... ...))) (if element nil (setq element
  (org-element--current-element end ... special-flag ...))
  (org-element-put-property element :parent parent)
  (org-element--cache-put element)) (let ((elem-end ...) (type ...))
  (cond (... ...) (... ...) (...) (t ...))) (setq element nil))))))
  (catch (quote exit) (save-excursion (save-restriction (widen)
  (goto-char pos) (let* ((cached (and (org-element--cache-active-p)
  (org-element--cache-find pos nil))) (begin (org-element-property
  :begin cached)) element next) (cond ((not cached) (if (let* ... ...)
  (progn ...)) (skip-chars-forward " . \n") (beginning-of-line)) ((=
  pos begin) (throw (quote exit) (if syncp ... cached)))
  ((re-search-backward (let* ... org-outline-regexp-bol) begin t)
  (forward-line) (skip-chars-forward " . \n") (beginning-of-line)) (t
  (let (... ...) (goto-char ...) (while ...) (cond ... ... ...)))) (let
  ((end (or ... ...)) (parent element) special-flag) (while t (if syncp
  (progn ...)) (if element nil (setq element ...)
  (org-element-put-property element :parent parent)
  (org-element--cache-put element)) (let (... ...) (cond
  ... ... ... ...)) (setq element nil))))))) org-element--parse-to(120 t
  nil) (let ((parent (org-element--parse-to limit t time-limit))) (aset
  request 5 parent) (aset request 6 2)) (let ((limit (+ (aref request 1)
  (aref request 3) extra))) (if (and threshold (< threshold limit))
  (progn (throw (quote interrupt) nil))) (let ((parent
  (org-element--parse-to limit t time-limit))) (aset request 5 parent)
  (aset request 6 2))) (progn (if (equal (aref request 0) next) (progn
  (aset (nth 1 org-element--cache-sync-requests) 6 1) (throw (quote
  quit) t))) (let ((limit (+ (aref request 1) (aref request 3) extra)))
  (if (and threshold (< threshold limit)) (progn (throw (quote
  interrupt) nil))) (let ((parent (org-element--parse-to limit t
  time-limit))) (aset request 5 parent) (aset request 6 2)))) (if (=
  (aref request 6) 1) (progn (if (equal (aref request 0) next) (progn
  (aset (nth 1 org-element--cache-sync-requests) 6 1) (throw (quote
  quit) t))) (let ((limit (+ (aref request 1) (aref request 3) extra)))
  (if (and threshold (< threshold limit)) (progn (throw (quote
  interrupt) nil))) (let ((parent (org-element--parse-to limit t
  time-limit))) (aset request 5 parent) (aset request 6 2))))) (catch
  (quote quit) (if (= (aref request 6) 0) (progn (catch (quote
  end-phase) (let ((beg (aref request 0)) (end (aref request 2))
  (outreach (aref request 4))) (while t (if
  (org-element--cache-interrupt-p time-limit) (progn ...)) (let
  (... data data-key) (while node ...) (if data ... ...))))))) (if (=
  (aref request 6) 1) (progn (if (equal (aref request 0) next) (progn
  (aset (nth 1 org-element--cache-sync-requests) 6 1) (throw (quote
  quit) t))) (let ((limit (+ (aref request 1) (aref request 3) extra)))
  (if (and threshold (< threshold limit)) (progn (throw (quote
  interrupt) nil))) (let ((parent (org-element--parse-to limit t
  time-limit))) (aset request 5 parent) (aset request 6 2))))) (let
  ((start (aref request 0)) (offset (aref request 3)) (parent (aref
  request 5)) (node (org-element--cache-root)) (stack (list nil)) (leftp
  t) exit-flag) (if (and (not parent) (zerop offset)) (progn (throw
  (quote quit) t))) (while node (let* ((data (progn (aref node 2))) (key
  (org-element--cache-key data))) (if (and leftp (progn (aref node 0))
  (not (org-element--cache-key-less-p key start))) (progn (setq stack
  (cons node stack)) (setq node (progn ...))) (if
  (org-element--cache-key-less-p key start) nil (if (equal key next)
  (progn ...)) (if (or exit-flag ...) (progn ... ... ...)) (if (zerop
  offset) nil (org-element--cache-shift-positions data offset) (progn
  ...)) (let (...) (while ... ...) (cond ... ...) (if ... ...))) (setq
  node (if (setq leftp ...) (progn ...) (car ...)))))) t))
  org-element--cache-process-request([1642 134 123 -7 (property-drawer
  (:begin 57 :end 123 :contents-begin 73 :contents-end 113 :post-blank 1
  :post-affiliated 57 :parent nil)) nil 2] nil 167 nil -7) (while
  org-element--cache-sync-requests (setq request (car
  org-element--cache-sync-requests) next (nth 1
  org-element--cache-sync-requests)) (org-element--cache-process-request
  request (and next (aref next 0)) threshold (and (not threshold)
  (time-add (current-time) org-element-cache-sync-duration)) (or extra
  0)) (if next (progn (let* ((v next)) (aset v 3 (+ (aref v 3) (aref
  request 3)))) (aset next 2 (aref request 2)))) (setq
  org-element--cache-sync-requests (cdr
  org-element--cache-sync-requests))) (catch (quote interrupt) (while
  org-element--cache-sync-requests (setq request (car
  org-element--cache-sync-requests) next (nth 1
  org-element--cache-sync-requests)) (org-element--cache-process-request
  request (and next (aref next 0)) threshold (and (not threshold)
  (time-add (current-time) org-element-cache-sync-duration)) (or extra
  0)) (if next (progn (let* ((v next)) (aset v 3 (+ (aref v 3) (aref
  request 3)))) (aset next 2 (aref request 2)))) (setq
  org-element--cache-sync-requests (cdr
  org-element--cache-sync-requests)))) (let ((inhibit-quit t) request
  next) (if org-element--cache-sync-timer (progn (cancel-timer
  org-element--cache-sync-timer))) (catch (quote interrupt) (while
  org-element--cache-sync-requests (setq request (car
  org-element--cache-sync-requests) next (nth 1
  org-element--cache-sync-requests)) (org-element--cache-process-request
  request (and next (aref next 0)) threshold (and (not threshold)
  (time-add (current-time) org-element-cache-sync-duration)) (or extra
  0)) (if next (progn (let* ((v next)) (aset v 3 (+ ... ...))) (aset
  next 2 (aref request 2)))) (setq org-element--cache-sync-requests (cdr
  org-element--cache-sync-requests)))) (if
  org-element--cache-sync-requests (org-element--cache-set-timer buffer)
  (clrhash org-element--cache-sync-keys))) (save-current-buffer
  (set-buffer buffer) (let ((inhibit-quit t) request next) (if
  org-element--cache-sync-timer (progn (cancel-timer
  org-element--cache-sync-timer))) (catch (quote interrupt) (while
  org-element--cache-sync-requests (setq request (car
  org-element--cache-sync-requests) next (nth 1
  org-element--cache-sync-requests)) (org-element--cache-process-request
  request (and next (aref next 0)) threshold (and (not threshold)
  (time-add (current-time) org-element-cache-sync-duration)) (or extra
  0)) (if next (progn (let* (...) (aset v 3 ...)) (aset next 2 (aref
  request 2)))) (setq org-element--cache-sync-requests (cdr
  org-element--cache-sync-requests)))) (if
  org-element--cache-sync-requests (org-element--cache-set-timer buffer)
  (clrhash org-element--cache-sync-keys)))) (progn (save-current-buffer
  (set-buffer buffer) (let ((inhibit-quit t) request next) (if
  org-element--cache-sync-timer (progn (cancel-timer
  org-element--cache-sync-timer))) (catch (quote interrupt) (while
  org-element--cache-sync-requests (setq request (car
  org-element--cache-sync-requests) next (nth 1
  org-element--cache-sync-requests)) (org-element--cache-process-request
  request (and next (aref next 0)) threshold (and (not threshold)
  (time-add ... org-element-cache-sync-duration)) (or extra 0)) (if next
  (progn (let* ... ...) (aset next 2 ...))) (setq
  org-element--cache-sync-requests (cdr
  org-element--cache-sync-requests)))) (if
  org-element--cache-sync-requests (org-element--cache-set-timer buffer)
  (clrhash org-element--cache-sync-keys))))) (if (buffer-live-p buffer)
  (progn (save-current-buffer (set-buffer buffer) (let ((inhibit-quit t)
  request next) (if org-element--cache-sync-timer (progn (cancel-timer
  org-element--cache-sync-timer))) (catch (quote interrupt) (while
  org-element--cache-sync-requests (setq request (car
  org-element--cache-sync-requests) next (nth 1
  org-element--cache-sync-requests)) (org-element--cache-process-request
  request (and next ...) threshold (and ... ...) (or extra 0)) (if next
  (progn ... ...)) (setq org-element--cache-sync-requests (cdr
  org-element--cache-sync-requests)))) (if
  org-element--cache-sync-requests (org-element--cache-set-timer buffer)
  (clrhash org-element--cache-sync-keys))))))
  org-element--cache-sync(#<buffer instruments.org> 167 -7) (progn
  (org-element--cache-sync (current-buffer) end offset)) (if next (progn
  (org-element--cache-sync (current-buffer) end offset))) (if (and next
  (zerop (aref next 6)) (> (setq delete-to (+ (aref next 2) (aref next
  3))) end) (<= (setq delete-from (aref next 1)) end)) (progn (let* ((v
  next)) (aset v 3 (+ (aref v 3) offset))) (if (> beg delete-from) (let
  ((up (aref next 5))) (while up (org-element--cache-shift-positions up
  offset (quote (:contents-end :end))) (setq up (org-element-property
  :parent up)))) (let ((first (org-element--cache-for-removal beg
  delete-to offset))) (if first (progn (aset next 0
  (org-element--cache-key first)) (aset next 1 (org-element-property
  :begin first)) (aset next 5 (org-element-property :parent first)))))))
  (if next (progn (org-element--cache-sync (current-buffer) end
  offset))) (let ((first (org-element--cache-for-removal beg end
  offset))) (if first (setq org-element--cache-sync-requests (cons (let
  ((beg ...) (key ...)) (cond (... ...) (...) (t ...)))
  org-element--cache-sync-requests)) (if
  org-element--cache-sync-requests (progn (let* ((v ...)) (aset v 3 (+
  ... offset)))))))) (let ((next (car org-element--cache-sync-requests))
  delete-to delete-from) (if (and next (zerop (aref next 6)) (> (setq
  delete-to (+ (aref next 2) (aref next 3))) end) (<= (setq delete-from
  (aref next 1)) end)) (progn (let* ((v next)) (aset v 3 (+ (aref v 3)
  offset))) (if (> beg delete-from) (let ((up (aref next 5))) (while up
  (org-element--cache-shift-positions up offset (quote ...)) (setq up
  (org-element-property :parent up)))) (let ((first
  (org-element--cache-for-removal beg delete-to offset))) (if first
  (progn (aset next 0 ...) (aset next 1 ...) (aset next 5 ...)))))) (if
  next (progn (org-element--cache-sync (current-buffer) end offset)))
  (let ((first (org-element--cache-for-removal beg end offset))) (if
  first (setq org-element--cache-sync-requests (cons (let (... ...)
  (cond ... ... ...)) org-element--cache-sync-requests)) (if
  org-element--cache-sync-requests (progn (let* (...) (aset v 3
  ...))))))))  org-element--cache-submit-request(144 167 -7) (let
  ((offset (- end beg pre))) (org-element--cache-submit-request top (-
  bottom offset) offset)) (let ((top (point)) (bottom (save-excursion
  (goto-char end) (line-end-position)))) (if (cond ((memql
  org-element--cache-change-warning (quote (t))) t) ((eql
  org-element--cache-change-warning (quote headline)) (not (and (let*
  (... ... ... ...) (org-at-heading-p)) (= (line-end-position)
  bottom)))) (t (let ((case-fold-search t)) (re-search-forward
  org-element--cache-sensitive-re bottom t)))) (progn (let*
  ((org-called-with-limited-levels t) (org-outline-regexp
  (org-get-limited-outline-regexp)) (outline-regexp org-outline-regexp)
  (org-outline-regexp-bol (concat "^" org-outline-regexp))) (setq top
  (progn (goto-char top) (if (outline-previous-heading) (progn ...))
  (point))) (setq bottom (progn (goto-char bottom) (if
  (outline-next-heading) (1- ...) (point))))))) (let ((offset (- end beg
  pre))) (org-element--cache-submit-request top (- bottom offset)
  offset))) (progn (let ((top (point)) (bottom (save-excursion
  (goto-char end) (line-end-position)))) (if (cond ((memql
  org-element--cache-change-warning (quote (t))) t) ((eql
  org-element--cache-change-warning (quote headline)) (not (and (let*
  ... ...) (= ... bottom)))) (t (let ((case-fold-search t))
  (re-search-forward org-element--cache-sensitive-re bottom t)))) (progn
  (let* ((org-called-with-limited-levels t) (org-outline-regexp
  (org-get-limited-outline-regexp)) (outline-regexp org-outline-regexp)
  (org-outline-regexp-bol (concat "^" org-outline-regexp))) (setq top
  (progn (goto-char top) (if ... ...) (point))) (setq bottom (progn
  (goto-char bottom) (if ... ... ...)))))) (let ((offset (- end beg
  pre))) (org-element--cache-submit-request top (- bottom offset)
  offset)))) (unwind-protect (progn (let ((top (point)) (bottom
  (save-excursion (goto-char end) (line-end-position)))) (if (cond
  ((memql org-element--cache-change-warning (quote ...)) t) ((eql
  org-element--cache-change-warning (quote headline)) (not (and
  ... ...))) (t (let (...) (re-search-forward
  org-element--cache-sensitive-re bottom t)))) (progn (let*
  ((org-called-with-limited-levels t) (org-outline-regexp ...)
  (outline-regexp org-outline-regexp) (org-outline-regexp-bol ...))
  (setq top (progn ... ... ...)) (setq bottom (progn ... ...))))) (let
  ((offset (- end beg pre))) (org-element--cache-submit-request top (-
  bottom offset) offset)))) (set-match-data save-match-data-internal
  (quote evaporate))) (let ((save-match-data-internal (match-data)))
  (unwind-protect (progn (let ((top (point)) (bottom (save-excursion
  (goto-char end) (line-end-position)))) (if (cond ((memql
  org-element--cache-change-warning ...) t) ((eql
  org-element--cache-change-warning ...) (not ...)) (t (let ... ...)))
  (progn (let* (... ... ... ...) (setq top ...) (setq bottom ...))))
  (let ((offset (- end beg pre))) (org-element--cache-submit-request top
  (- bottom offset) offset)))) (set-match-data save-match-data-internal
  (quote evaporate)))) (save-restriction (widen) (goto-char beg)
  (beginning-of-line) (let ((save-match-data-internal (match-data)))
  (unwind-protect (progn (let ((top (point)) (bottom (save-excursion
  ... ...))) (if (cond (... t) (... ...) (t ...)) (progn (let*
  ... ... ...))) (let ((offset ...)) (org-element--cache-submit-request
  top (- bottom offset) offset)))) (set-match-data
  save-match-data-internal (quote evaporate))))) (save-excursion
  (save-restriction (widen) (goto-char beg) (beginning-of-line) (let
  ((save-match-data-internal (match-data))) (unwind-protect (progn (let
  ((top ...) (bottom ...)) (if (cond ... ... ...) (progn ...)) (let
  (...) (org-element--cache-submit-request top ... offset))))
  (set-match-data save-match-data-internal (quote evaporate)))))) (progn
  (save-excursion (save-restriction (widen) (goto-char beg)
  (beginning-of-line) (let ((save-match-data-internal (match-data)))
  (unwind-protect (progn (let (... ...) (if ... ...) (let ... ...)))
  (set-match-data save-match-data-internal (quote evaporate))))))
  (org-element--cache-set-timer (current-buffer))) (if
  (org-element--cache-active-p) (progn (save-excursion (save-restriction
  (widen) (goto-char beg) (beginning-of-line) (let
  ((save-match-data-internal (match-data))) (unwind-protect (progn (let
  ... ... ...)) (set-match-data save-match-data-internal (quote
  evaporate)))))) (org-element--cache-set-timer (current-buffer))))
  org-element--cache-after-change(149 153 11) replace-match("name" nil
  t) replace-match-maybe-edit("name" nil t nil (149 160 #<buffer
  instruments.org>)) perform-replace("resource_id" "name" t nil nil nil
  nil nil nil) query-replace("resource_id" "name" nil nil nil)
  call-interactively(query-replace nil nil)

-- 
cheers,
Thorsten

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [BUG] in org-element (was Re: Replacing property-name hangs Emacs)
  2014-07-19 11:28   ` [BUG] in org-element (was Re: Replacing property-name hangs Emacs) Thorsten Jolitz
@ 2014-07-20 17:40     ` Nicolas Goaziou
  2014-07-21  6:58       ` Thorsten Jolitz
  0 siblings, 1 reply; 5+ messages in thread
From: Nicolas Goaziou @ 2014-07-20 17:40 UTC (permalink / raw)
  To: Thorsten Jolitz; +Cc: emacs-orgmode

Hello,

Thorsten Jolitz <tjolitz@gmail.com> writes:

> Thorsten Jolitz <tjolitz@gmail.com> writes:
>
> This turned out to be an Org-mode bug.

[...]

> Here is the recipe:
>
> 1. emacs -Q
>
> 2. M-x find-file instruments.org (content posted below)
>
> 3. M-% resource_id RET name RET
>
> 4. hit space quickly (-> accept) until Emacs hangs (100pc CPU)

It should be fixed. Thank you for the report and the ECM.


Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [BUG] in org-element (was Re: Replacing property-name hangs Emacs)
  2014-07-20 17:40     ` Nicolas Goaziou
@ 2014-07-21  6:58       ` Thorsten Jolitz
  0 siblings, 0 replies; 5+ messages in thread
From: Thorsten Jolitz @ 2014-07-21  6:58 UTC (permalink / raw)
  To: emacs-orgmode

Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

Hello,

> Thorsten Jolitz <tjolitz@gmail.com> writes:
>
>> Thorsten Jolitz <tjolitz@gmail.com> writes:
>>
>> This turned out to be an Org-mode bug.
>
> [...]
>
>> Here is the recipe:
>>
>> 1. emacs -Q
>>
>> 2. M-x find-file instruments.org (content posted below)
>>
>> 3. M-% resource_id RET name RET
>>
>> 4. hit space quickly (-> accept) until Emacs hangs (100pc CPU)
>
> It should be fixed. Thank you for the report and the ECM.

I just updated Org-mode and tried it with the ECM, and on the first
trial Emacs hanged again after the second replacement (SPACE).

Sending 

,----
| pkill --signal usr2 emacs
`----

did not give me a backtrace this time, and when I tried again
query-replace worked with the ECM. 

I will report if the problem returns, otherwise thanks for the fix.

-- 
cheers,
Thorsten

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-07-21  6:59 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-18 22:47 Replacing property-name hangs Emacs Thorsten Jolitz
2014-07-19  8:07 ` Thorsten Jolitz
2014-07-19 11:28   ` [BUG] in org-element (was Re: Replacing property-name hangs Emacs) Thorsten Jolitz
2014-07-20 17:40     ` Nicolas Goaziou
2014-07-21  6:58       ` Thorsten Jolitz

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).