emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Daimrod <daimrod@gmail.com>
To: Bastien <bzg@gnu.org>
Cc: Eric Abrahamsen <eric@ericabrahamsen.net>, emacs-orgmode@gnu.org
Subject: Re: still seeing semi-regular lockups
Date: Thu, 29 May 2014 12:01:04 +0900	[thread overview]
Message-ID: <874n09cmq7.fsf@tanger.home> (raw)
In-Reply-To: <87k39hdf2o.fsf@tanger.home> (daimrod@gmail.com's message of "Mon, 19 May 2014 23:21:35 +0900")

[-- Attachment #1: Type: text/plain, Size: 2209 bytes --]

Daimrod <daimrod@gmail.com> writes:

> Daimrod <daimrod@gmail.com> writes:
>
>> I have also semi-regular lockup with org-mode. I have opened a bug on
>> debbugs and here is what Stefan told me to try to debug this:
>>
>>> You can try `debug-on-event'.
>>> 
>>> There's jit-lock-debug-mode but it doesn't disable inhibit-quit.
>>> So you'll need to additionally use
>>> 
>>>    (advice-add 'jit-lock--debug-fontify :around
>>>      (lambda (fun &rest args)
>>>        (with-local-quit (apply fun args))))
>>> 
>>> Of course sometimes this doesn't work because jit-lock-debug-mode
>>> changes the way things are executed and the bug may not manifest itself
>>> any more, but it's worth a try.
>>> 
>>> Another source of info is to
>>> 
>>>   M-x trace-function RET org-adaptive-fill-function RET
>>>   M-x trace-function RET org-element-at-point RET
>>>   M-x trace-function RET org-element--cache-sync RET
>>>   M-x trace-function RET org-element--cache-process-request RET
>>> 
>>> Then reproduce the hang, then break the hang somehow (maybe with the
>>> jit-lock-debug hack above, or maybe with debug-on-event, or with C-g C-g
>>> C-g, ...), then look at the *trace..* buffer.
>>
>> I'll try to see what I can find this week end and report back.
>
> Ok, so the good news is the `debug-on-event' trick works. If you got a
> lockup, you can get a classic elisp backtrace by sending the SIGUSR2 to
> the Emacs process.
>
> The bad news is that I don't know yet how to reproduce the lockup. It
> seems to happen mostly (if not only) when I use org-mode +
> visual-line-mode + adaptive-wrap-prefix-mode + an input-method like
> latin-postfix.
>
> And it probably has to do with the cache mechanism. I'll try to
> reproduce it with the cache disabled but it hard to test because, as I
> said, I don't know how to reproduce it yet.

Grr, I still don't know how to reproduce this bug.

As I said above, I only had this bug with visual-line-mode +
adaptive-wrap-prefix-mode and input-method = latin-postfix.

It seems to happen with different configurationsa but it takes longer
(maybe days of editing) before it is triggered.

I've attached part of the traces (the whole traces are way too big) and
the backtraces.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: crash-dat.org --]
[-- Type: text/x-org, Size: 99789 bytes --]

* 1

#+BEGIN_EXAMPLE
Debugger entered--beginning evaluation of function call form:
* (funcall #[0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" [org-element--cache-sync nil #[0 "\300\207" [""] 1 "\n\n(fn)"] (nil) inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)"])
  #[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element--cache-sync "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"]((lambda (buffer &optional threshold) "Synchronize cache with recent modification in BUFFER.\nWhen optional argument THRESHOLD is non-nil, do the\nsynchronization for all elements starting before or at threshold,\nthen exit.  Otherwise, synchronize cache for as long as\n`org-element-cache-sync-duration' or until Emacs leaves idle\nstate." (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 ... next ...) (or ... ...) (if next ...) (setq org-element--cache-sync-requests ...))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys))))))) #<buffer test.org> 652)
  apply(#[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element--cache-sync "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"] (lambda (buffer &optional threshold) "Synchronize cache with recent modification in BUFFER.\nWhen optional argument THRESHOLD is non-nil, do the\nsynchronization for all elements starting before or at threshold,\nthen exit.  Otherwise, synchronize cache for as long as\n`org-element-cache-sync-duration' or until Emacs leaves idle\nstate." (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 ... next ...) (or ... ...) (if next ...) (setq org-element--cache-sync-requests ...))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys))))))) (#<buffer test.org> 652))
  org-element--cache-sync(#<buffer test.org> 652)
  (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync (current-buffer) origin))
  (progn (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync (current-buffer) origin)))
  (if (org-element--cache-active-p) (progn (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync (current-buffer) origin))))
  (cond ((bobp) nil) ((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)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync (current-buffer) origin)))) (org-element--parse-to origin)))
  (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((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)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync (current-buffer) origin)))) (org-element--parse-to origin))))
  (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((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)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync ... origin)))) (org-element--parse-to origin)))))
  (save-excursion (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((let* ((org-called-with-limited-levels t) (org-outline-regexp ...) (outline-regexp org-outline-regexp) (org-outline-regexp-bol ...)) (org-at-heading-p)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn (if ... ... ...))) (org-element--parse-to origin))))))
  (lambda nil "Determine closest element around point.\n\nReturn value is a list like (TYPE PROPS) where TYPE is the type\nof the element and PROPS a plist of properties associated to the\nelement.\n\nPossible types are defined in `org-element-all-elements'.\nProperties depend on element or object type, but always include\n`:begin', `:end', `:parent' and `:post-blank' properties.\n\nAs a special case, if point is at the very beginning of the first\nitem in a list or sub-list, returned element will be that list\ninstead of the item.  Likewise, if point is at the beginning of\nthe first row of a table, returned element will be the table\ninstead of the first row.\n\nWhen point is at the end of the buffer, return the innermost\nelement ending there." (save-excursion (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((let* (... ... ... ...) (org-at-heading-p)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn ...)) (org-element--parse-to origin)))))))()
  apply((lambda nil "Determine closest element around point.\n\nReturn value is a list like (TYPE PROPS) where TYPE is the type\nof the element and PROPS a plist of properties associated to the\nelement.\n\nPossible types are defined in `org-element-all-elements'.\nProperties depend on element or object type, but always include\n`:begin', `:end', `:parent' and `:post-blank' properties.\n\nAs a special case, if point is at the very beginning of the first\nitem in a list or sub-list, returned element will be that list\ninstead of the item.  Likewise, if point is at the beginning of\nthe first row of a table, returned element will be the table\ninstead of the first row.\n\nWhen point is at the end of the buffer, return the innermost\nelement ending there." (save-excursion (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((let* (... ... ... ...) (org-at-heading-p)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn ...)) (org-element--parse-to origin))))))) nil)
  #[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element-at-point "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"]((lambda nil "Determine closest element around point.\n\nReturn value is a list like (TYPE PROPS) where TYPE is the type\nof the element and PROPS a plist of properties associated to the\nelement.\n\nPossible types are defined in `org-element-all-elements'.\nProperties depend on element or object type, but always include\n`:begin', `:end', `:parent' and `:post-blank' properties.\n\nAs a special case, if point is at the very beginning of the first\nitem in a list or sub-list, returned element will be that list\ninstead of the item.  Likewise, if point is at the beginning of\nthe first row of a table, returned element will be the table\ninstead of the first row.\n\nWhen point is at the end of the buffer, return the innermost\nelement ending there." (save-excursion (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((let* (... ... ... ...) (org-at-heading-p)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn ...)) (org-element--parse-to origin))))))))
  apply(#[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element-at-point "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"] (lambda nil "Determine closest element around point.\n\nReturn value is a list like (TYPE PROPS) where TYPE is the type\nof the element and PROPS a plist of properties associated to the\nelement.\n\nPossible types are defined in `org-element-all-elements'.\nProperties depend on element or object type, but always include\n`:begin', `:end', `:parent' and `:post-blank' properties.\n\nAs a special case, if point is at the very beginning of the first\nitem in a list or sub-list, returned element will be that list\ninstead of the item.  Likewise, if point is at the beginning of\nthe first row of a table, returned element will be the table\ninstead of the first row.\n\nWhen point is at the end of the buffer, return the innermost\nelement ending there." (save-excursion (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((let* (... ... ... ...) (org-at-heading-p)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn ...)) (org-element--parse-to origin))))))) nil)
  org-element-at-point()
  (progn (org-element-at-point))
  (condition-case nil (progn (org-element-at-point)) (error nil))
  (or (condition-case nil (progn (org-element-at-point)) (error nil)) (user-error "An element cannot be parsed line %d" (line-number-at-pos (point))))
  (save-excursion (beginning-of-line) (or (condition-case nil (progn (org-element-at-point)) (error nil)) (user-error "An element cannot be parsed line %d" (line-number-at-pos (point)))))
  (let* ((p (line-beginning-position)) (element (save-excursion (beginning-of-line) (or (condition-case nil (progn (org-element-at-point)) (error nil)) (user-error "An element cannot be parsed line %d" (line-number-at-pos (point)))))) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond ((eql type (quote comment)) (save-excursion (beginning-of-line) (looking-at "[ 	]*") (concat (match-string 0) "# "))) ((eql type (quote footnote-definition)) "") ((memql type (quote (item plain-list))) (make-string (org-list-item-body-column (or post-affiliated (org-element-property :begin element))) 32)) ((eql type (quote paragraph)) (let ((parent (org-element-property :parent element))) (save-excursion (beginning-of-line) (cond (... ...) (...) (... ...) (t ""))))) ((eql type (quote comment-block)) (let* ((cbeg (save-excursion ... ... ...)) (cend (save-excursion ... ... ...))) (if (and (>= p cbeg) (< p cend)) (progn (if ... ... ""))))))))
  (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion (beginning-of-line) (or (condition-case nil (progn ...) (error nil)) (user-error "An element cannot be parsed line %d" (line-number-at-pos ...))))) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond ((eql type (quote comment)) (save-excursion (beginning-of-line) (looking-at "[ 	]*") (concat (match-string 0) "# "))) ((eql type (quote footnote-definition)) "") ((memql type (quote (item plain-list))) (make-string (org-list-item-body-column (or post-affiliated ...)) 32)) ((eql type (quote paragraph)) (let ((parent ...)) (save-excursion (beginning-of-line) (cond ... ... ... ...)))) ((eql type (quote comment-block)) (let* ((cbeg ...) (cend ...)) (if (and ... ...) (progn ...))))))))
  (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion (beginning-of-line) (or (condition-case nil ... ...) (user-error "An element cannot be parsed line %d" ...)))) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond ((eql type (quote comment)) (save-excursion (beginning-of-line) (looking-at "[ 	]*") (concat ... "# "))) ((eql type (quote footnote-definition)) "") ((memql type (quote ...)) (make-string (org-list-item-body-column ...) 32)) ((eql type (quote paragraph)) (let (...) (save-excursion ... ...))) ((eql type (quote comment-block)) (let* (... ...) (if ... ...))))))))
  (catch (quote exit) (if (derived-mode-p (quote message-mode)) (progn (save-excursion (beginning-of-line) (cond ((or (not ...) (looking-at orgtbl-line-start-regexp)) (throw (quote exit) nil)) ((looking-at message-cite-prefix-regexp) (throw (quote exit) (match-string-no-properties 0))) ((looking-at org-outline-regexp) (throw (quote exit) (make-string ... 32))))))) (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion (beginning-of-line) (or ... ...))) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond ((eql type ...) (save-excursion ... ... ...)) ((eql type ...) "") ((memql type ...) (make-string ... 32)) ((eql type ...) (let ... ...)) ((eql type ...) (let* ... ...))))))))
  (lambda nil "Compute a fill prefix for the current line.\nReturn fill prefix, as a string, or nil if current line isn't\nmeant to be filled.  For convenience, if `adaptive-fill-regexp'\nmatches in paragraphs or comments, use it." (catch (quote exit) (if (derived-mode-p (quote message-mode)) (progn (save-excursion (beginning-of-line) (cond ((or ... ...) (throw ... nil)) ((looking-at message-cite-prefix-regexp) (throw ... ...)) ((looking-at org-outline-regexp) (throw ... ...)))))) (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion ... ...)) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond (... ...) (... "") (... ...) (... ...) (... ...))))))))()
  apply((lambda nil "Compute a fill prefix for the current line.\nReturn fill prefix, as a string, or nil if current line isn't\nmeant to be filled.  For convenience, if `adaptive-fill-regexp'\nmatches in paragraphs or comments, use it." (catch (quote exit) (if (derived-mode-p (quote message-mode)) (progn (save-excursion (beginning-of-line) (cond ((or ... ...) (throw ... nil)) ((looking-at message-cite-prefix-regexp) (throw ... ...)) ((looking-at org-outline-regexp) (throw ... ...)))))) (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion ... ...)) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond (... ...) (... "") (... ...) (... ...) (... ...)))))))) nil)
  #[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-adaptive-fill-function "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"]((lambda nil "Compute a fill prefix for the current line.\nReturn fill prefix, as a string, or nil if current line isn't\nmeant to be filled.  For convenience, if `adaptive-fill-regexp'\nmatches in paragraphs or comments, use it." (catch (quote exit) (if (derived-mode-p (quote message-mode)) (progn (save-excursion (beginning-of-line) (cond ((or ... ...) (throw ... nil)) ((looking-at message-cite-prefix-regexp) (throw ... ...)) ((looking-at org-outline-regexp) (throw ... ...)))))) (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion ... ...)) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond (... ...) (... "") (... ...) (... ...) (... ...)))))))))
  apply(#[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-adaptive-fill-function "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"] (lambda nil "Compute a fill prefix for the current line.\nReturn fill prefix, as a string, or nil if current line isn't\nmeant to be filled.  For convenience, if `adaptive-fill-regexp'\nmatches in paragraphs or comments, use it." (catch (quote exit) (if (derived-mode-p (quote message-mode)) (progn (save-excursion (beginning-of-line) (cond ((or ... ...) (throw ... nil)) ((looking-at message-cite-prefix-regexp) (throw ... ...)) ((looking-at org-outline-regexp) (throw ... ...)))))) (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion ... ...)) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond (... ...) (... "") (... ...) (... ...) (... ...)))))))) nil)
  org-adaptive-fill-function()
  fill-match-adaptive-prefix()
  fill-context-prefix(652 729)
  adaptive-wrap-fill-context-prefix(652 729)
  adaptive-wrap-prefix-function(652 730)
  run-hook-with-args(adaptive-wrap-prefix-function 652 730)
  #[0 "\302\303\300\242\301\242#\207" [(652) (730) run-hook-with-args jit-lock-functions] 4 "\n\n(fn)"]()
  funcall(#[0 "\302\303\300\242\301\242#\207" [(652) (730) run-hook-with-args jit-lock-functions] 4 "\n\n(fn)"])
  jit-lock-fontify-now(652 1152)
  jit-lock-function(652)
  redisplay_internal\ \(C\ function\)()
  read-key-sequence(nil nil nil t)
  quail-start-translation(97)
  quail-input-method(97)
#+END_EXAMPLE

#+BEGIN_EXAMPLE
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| | 3 -> (org-element--cache-sync #<buffer test.org> 652)
| | | 4 -> (org-element--cache-process-request [726 nil 1 nil 2] 727 652 nil)
| | | 4 <- org-element--cache-process-request: t
| | | 4 -> (org-element--cache-process-request [727 nil 5 nil 2] 9750 652 nil)
| | | 4 <- org-element--cache-process-request: nil
| | 3 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
| 2 <- org-element-at-point: (paragraph (:begin 652 :end 728 :contents-begin 652 :contents-end 727 :post-blank 1 :post-affiliated 652 :parent nil))
1 <- org-adaptive-fill-function: ""
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| 2 <- org-element-at-point: (headline (:raw-value #1="This is another test" :begin 728 :end 9766 :pre-blank 1 :contents-begin 752 :contents-end 9766 :level 1 :priority nil :tags nil :todo-keyword nil :todo-type nil :post-blank 0 :footnote-section-p nil :archivedp nil :commentedp nil :CATEGORY nil :title #1#))
1 <- org-adaptive-fill-function: nil
======================================================================
1 -> (org-element--cache-sync #<buffer test.org>)
| 2 -> (org-element--cache-process-request [932 nil 5 nil 2] 9750 nil (21381 47609 398931 512000))
| 2 <- org-element--cache-process-request: nil
1 <- org-element--cache-sync: [nil 0 0 608541 nil org-element--cache-sync (#<buffer test.org>) idle 676000]
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| | 3 -> (org-element--cache-sync #<buffer test.org> 652)
| | | 4 -> (org-element--cache-process-request [1626 nil 5 nil 2] 9750 652 nil)
| | | 4 <- org-element--cache-process-request: nil
| | 3 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
| 2 <- org-element-at-point: (paragraph (:begin 652 :end 728 :contents-begin 652 :contents-end 727 :post-blank 1 :post-affiliated 652 :parent nil))
1 <- org-adaptive-fill-function: ""
======================================================================
1 -> (org-element--cache-sync #<buffer test.org> 726)
| 2 -> (org-element--cache-process-request [9628 nil 5 nil 2] 9750 726 nil)
| 2 <- org-element--cache-process-request: t
| 2 -> (org-element--cache-process-request [9750 nil 7 nil 2] nil 726 nil)
| 2 <- org-element--cache-process-request: t
1 <- org-element--cache-sync: #s(hash-table size 65 test eq weakness key rehash-size 1.5 rehash-threshold 0.8 data ())
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| | 3 -> (org-element--cache-sync #<buffer test.org> 652)
| | | 4 -> (org-element--cache-process-request [153 740 1 nil 0] nil 652 nil)
#+END_EXAMPLE

* 2
#+BEGIN_EXAMPLE
Debugger entered--beginning evaluation of function call form:
* (funcall #[0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" [org-element--cache-process-request nil #[0 "\300\207" [""] 1 "\n\n(fn)"] (nil) inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)"])
  #[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element--cache-process-request "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"]((lambda (request next threshold time-limit) "Process synchronization REQUEST for all entries before NEXT.\n\nREQUEST is a vector, built by `org-element--cache-submit-request'.\n\nNEXT is a cache key, as returned by `org-element--cache-key'.\n\nWhen non-nil, THRESHOLD is a buffer position.  Synchronization\nstops as soon as a shifted element begins after it.\n\nWhen non-nil, TIME-LIMIT is a time value.  Synchronization stops\nafter this time or when Emacs exits idle state.\n\nReturn nil if the process stops before completing the request,\nt otherwise." (catch (quote quit) (if (= (aref request 4) 0) (progn (catch (quote end-phase) (let ((beg ...) (end ...) (deleted-parent ...)) (while t (if ... ...) (let ... ... ...)))))) (if (= (aref request 4) 1) (progn (catch (quote end-phase) (if (equal (aref request 0) next) (progn (throw ... t))) (let ((limit ...)) (if (and threshold ...) (progn ...)) (let (...) (if ... ... ... ... ...)))))) (let ((start (aref request 0)) (offset (aref request 2)) (parent (aref request 3)) (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 ...)) (key (org-element--cache-key data))) (if (and leftp (progn ...) (not ...)) (progn (setq stack ...) (setq node ...)) (if (org-element--cache-key-less-p key start) nil (if ... ...) (if ... ...) (if ... nil ... ...) (let ... ... ... ...)) (setq node (if ... ... ...))))) t))) [(1983 1152921504606846975) 2221 1 nil 0] 9763 2060 nil)
  apply(#[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element--cache-process-request "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"] (lambda (request next threshold time-limit) "Process synchronization REQUEST for all entries before NEXT.\n\nREQUEST is a vector, built by `org-element--cache-submit-request'.\n\nNEXT is a cache key, as returned by `org-element--cache-key'.\n\nWhen non-nil, THRESHOLD is a buffer position.  Synchronization\nstops as soon as a shifted element begins after it.\n\nWhen non-nil, TIME-LIMIT is a time value.  Synchronization stops\nafter this time or when Emacs exits idle state.\n\nReturn nil if the process stops before completing the request,\nt otherwise." (catch (quote quit) (if (= (aref request 4) 0) (progn (catch (quote end-phase) (let ((beg ...) (end ...) (deleted-parent ...)) (while t (if ... ...) (let ... ... ...)))))) (if (= (aref request 4) 1) (progn (catch (quote end-phase) (if (equal (aref request 0) next) (progn (throw ... t))) (let ((limit ...)) (if (and threshold ...) (progn ...)) (let (...) (if ... ... ... ... ...)))))) (let ((start (aref request 0)) (offset (aref request 2)) (parent (aref request 3)) (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 ...)) (key (org-element--cache-key data))) (if (and leftp (progn ...) (not ...)) (progn (setq stack ...) (setq node ...)) (if (org-element--cache-key-less-p key start) nil (if ... ...) (if ... ...) (if ... nil ... ...) (let ... ... ... ...)) (setq node (if ... ... ...))))) t))) ([(1983 1152921504606846975) 2221 1 nil 0] 9763 2060 nil))
  org-element--cache-process-request([(1983 1152921504606846975) 2221 1 nil 0] 9763 2060 nil)
  (or (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add (current-time) org-element-cache-sync-duration))) (throw (quote interrupt) t))
  (while org-element--cache-sync-requests (setq request (car org-element--cache-sync-requests) next (nth 1 org-element--cache-sync-requests)) (or (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add (current-time) org-element-cache-sync-duration))) (throw (quote interrupt) t)) (if next (progn (let* ((v next)) (aset v 2 (+ (aref v 2) (aref request 2)))) (aset next 1 (aref request 1)) (aset next 4 (aref request 4)))) (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)) (or (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add (current-time) org-element-cache-sync-duration))) (throw (quote interrupt) t)) (if next (progn (let* ((v next)) (aset v 2 (+ (aref v 2) (aref request 2)))) (aset next 1 (aref request 1)) (aset next 4 (aref request 4)))) (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)) (or (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add (current-time) org-element-cache-sync-duration))) (throw (quote interrupt) t)) (if next (progn (let* ((v next)) (aset v 2 (+ ... ...))) (aset next 1 (aref request 1)) (aset next 4 (aref request 4)))) (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)) (or (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add ... org-element-cache-sync-duration))) (throw (quote interrupt) t)) (if next (progn (let* (...) (aset v 2 ...)) (aset next 1 (aref request 1)) (aset next 4 (aref request 4)))) (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)) (or (org-element--cache-process-request request (and next ...) threshold (and ... ...)) (throw (quote interrupt) t)) (if next (progn (let* ... ...) (aset next 1 ...) (aset next 4 ...))) (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)) (or (org-element--cache-process-request request ... threshold ...) (throw ... t)) (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))))))
  (lambda (buffer &optional threshold) "Synchronize cache with recent modification in BUFFER.\nWhen optional argument THRESHOLD is non-nil, do the\nsynchronization for all elements starting before or at threshold,\nthen exit.  Otherwise, synchronize cache for as long as\n`org-element-cache-sync-duration' or until Emacs leaves idle\nstate." (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 ... next ...) (or ... ...) (if next ...) (setq org-element--cache-sync-requests ...))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys)))))))(#<buffer test.org> 2060)
  apply((lambda (buffer &optional threshold) "Synchronize cache with recent modification in BUFFER.\nWhen optional argument THRESHOLD is non-nil, do the\nsynchronization for all elements starting before or at threshold,\nthen exit.  Otherwise, synchronize cache for as long as\n`org-element-cache-sync-duration' or until Emacs leaves idle\nstate." (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 ... next ...) (or ... ...) (if next ...) (setq org-element--cache-sync-requests ...))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys))))))) (#<buffer test.org> 2060))
  #[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element--cache-sync "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"]((lambda (buffer &optional threshold) "Synchronize cache with recent modification in BUFFER.\nWhen optional argument THRESHOLD is non-nil, do the\nsynchronization for all elements starting before or at threshold,\nthen exit.  Otherwise, synchronize cache for as long as\n`org-element-cache-sync-duration' or until Emacs leaves idle\nstate." (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 ... next ...) (or ... ...) (if next ...) (setq org-element--cache-sync-requests ...))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys))))))) #<buffer test.org> 2060)
  apply(#[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element--cache-sync "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"] (lambda (buffer &optional threshold) "Synchronize cache with recent modification in BUFFER.\nWhen optional argument THRESHOLD is non-nil, do the\nsynchronization for all elements starting before or at threshold,\nthen exit.  Otherwise, synchronize cache for as long as\n`org-element-cache-sync-duration' or until Emacs leaves idle\nstate." (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 ... next ...) (or ... ...) (if next ...) (setq org-element--cache-sync-requests ...))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys))))))) (#<buffer test.org> 2060))
  org-element--cache-sync(#<buffer test.org> 2060)
  (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync (current-buffer) origin))
  (progn (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync (current-buffer) origin)))
  (if (org-element--cache-active-p) (progn (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync (current-buffer) origin))))
  (cond ((bobp) nil) ((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)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync (current-buffer) origin)))) (org-element--parse-to origin)))
  (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((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)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync (current-buffer) origin)))) (org-element--parse-to origin))))
  (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((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)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync ... origin)))) (org-element--parse-to origin)))))
  (save-excursion (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((let* ((org-called-with-limited-levels t) (org-outline-regexp ...) (outline-regexp org-outline-regexp) (org-outline-regexp-bol ...)) (org-at-heading-p)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn (if ... ... ...))) (org-element--parse-to origin))))))
  (lambda nil "Determine closest element around point.\n\nReturn value is a list like (TYPE PROPS) where TYPE is the type\nof the element and PROPS a plist of properties associated to the\nelement.\n\nPossible types are defined in `org-element-all-elements'.\nProperties depend on element or object type, but always include\n`:begin', `:end', `:parent' and `:post-blank' properties.\n\nAs a special case, if point is at the very beginning of the first\nitem in a list or sub-list, returned element will be that list\ninstead of the item.  Likewise, if point is at the beginning of\nthe first row of a table, returned element will be the table\ninstead of the first row.\n\nWhen point is at the end of the buffer, return the innermost\nelement ending there." (save-excursion (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((let* (... ... ... ...) (org-at-heading-p)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn ...)) (org-element--parse-to origin)))))))()
  apply((lambda nil "Determine closest element around point.\n\nReturn value is a list like (TYPE PROPS) where TYPE is the type\nof the element and PROPS a plist of properties associated to the\nelement.\n\nPossible types are defined in `org-element-all-elements'.\nProperties depend on element or object type, but always include\n`:begin', `:end', `:parent' and `:post-blank' properties.\n\nAs a special case, if point is at the very beginning of the first\nitem in a list or sub-list, returned element will be that list\ninstead of the item.  Likewise, if point is at the beginning of\nthe first row of a table, returned element will be the table\ninstead of the first row.\n\nWhen point is at the end of the buffer, return the innermost\nelement ending there." (save-excursion (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((let* (... ... ... ...) (org-at-heading-p)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn ...)) (org-element--parse-to origin))))))) nil)
  #[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element-at-point "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"]((lambda nil "Determine closest element around point.\n\nReturn value is a list like (TYPE PROPS) where TYPE is the type\nof the element and PROPS a plist of properties associated to the\nelement.\n\nPossible types are defined in `org-element-all-elements'.\nProperties depend on element or object type, but always include\n`:begin', `:end', `:parent' and `:post-blank' properties.\n\nAs a special case, if point is at the very beginning of the first\nitem in a list or sub-list, returned element will be that list\ninstead of the item.  Likewise, if point is at the beginning of\nthe first row of a table, returned element will be the table\ninstead of the first row.\n\nWhen point is at the end of the buffer, return the innermost\nelement ending there." (save-excursion (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((let* (... ... ... ...) (org-at-heading-p)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn ...)) (org-element--parse-to origin))))))))
  apply(#[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element-at-point "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"] (lambda nil "Determine closest element around point.\n\nReturn value is a list like (TYPE PROPS) where TYPE is the type\nof the element and PROPS a plist of properties associated to the\nelement.\n\nPossible types are defined in `org-element-all-elements'.\nProperties depend on element or object type, but always include\n`:begin', `:end', `:parent' and `:post-blank' properties.\n\nAs a special case, if point is at the very beginning of the first\nitem in a list or sub-list, returned element will be that list\ninstead of the item.  Likewise, if point is at the beginning of\nthe first row of a table, returned element will be the table\ninstead of the first row.\n\nWhen point is at the end of the buffer, return the innermost\nelement ending there." (save-excursion (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((let* (... ... ... ...) (org-at-heading-p)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn ...)) (org-element--parse-to origin))))))) nil)
  org-element-at-point()
  (progn (org-element-at-point))
  (condition-case nil (progn (org-element-at-point)) (error nil))
  (or (condition-case nil (progn (org-element-at-point)) (error nil)) (user-error "An element cannot be parsed line %d" (line-number-at-pos (point))))
  (save-excursion (beginning-of-line) (or (condition-case nil (progn (org-element-at-point)) (error nil)) (user-error "An element cannot be parsed line %d" (line-number-at-pos (point)))))
  (let* ((p (line-beginning-position)) (element (save-excursion (beginning-of-line) (or (condition-case nil (progn (org-element-at-point)) (error nil)) (user-error "An element cannot be parsed line %d" (line-number-at-pos (point)))))) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond ((eql type (quote comment)) (save-excursion (beginning-of-line) (looking-at "[ 	]*") (concat (match-string 0) "# "))) ((eql type (quote footnote-definition)) "") ((memql type (quote (item plain-list))) (make-string (org-list-item-body-column (or post-affiliated (org-element-property :begin element))) 32)) ((eql type (quote paragraph)) (let ((parent (org-element-property :parent element))) (save-excursion (beginning-of-line) (cond (... ...) (...) (... ...) (t ""))))) ((eql type (quote comment-block)) (let* ((cbeg (save-excursion ... ... ...)) (cend (save-excursion ... ... ...))) (if (and (>= p cbeg) (< p cend)) (progn (if ... ... ""))))))))
  (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion (beginning-of-line) (or (condition-case nil (progn ...) (error nil)) (user-error "An element cannot be parsed line %d" (line-number-at-pos ...))))) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond ((eql type (quote comment)) (save-excursion (beginning-of-line) (looking-at "[ 	]*") (concat (match-string 0) "# "))) ((eql type (quote footnote-definition)) "") ((memql type (quote (item plain-list))) (make-string (org-list-item-body-column (or post-affiliated ...)) 32)) ((eql type (quote paragraph)) (let ((parent ...)) (save-excursion (beginning-of-line) (cond ... ... ... ...)))) ((eql type (quote comment-block)) (let* ((cbeg ...) (cend ...)) (if (and ... ...) (progn ...))))))))
  (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion (beginning-of-line) (or (condition-case nil ... ...) (user-error "An element cannot be parsed line %d" ...)))) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond ((eql type (quote comment)) (save-excursion (beginning-of-line) (looking-at "[ 	]*") (concat ... "# "))) ((eql type (quote footnote-definition)) "") ((memql type (quote ...)) (make-string (org-list-item-body-column ...) 32)) ((eql type (quote paragraph)) (let (...) (save-excursion ... ...))) ((eql type (quote comment-block)) (let* (... ...) (if ... ...))))))))
  (catch (quote exit) (if (derived-mode-p (quote message-mode)) (progn (save-excursion (beginning-of-line) (cond ((or (not ...) (looking-at orgtbl-line-start-regexp)) (throw (quote exit) nil)) ((looking-at message-cite-prefix-regexp) (throw (quote exit) (match-string-no-properties 0))) ((looking-at org-outline-regexp) (throw (quote exit) (make-string ... 32))))))) (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion (beginning-of-line) (or ... ...))) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond ((eql type ...) (save-excursion ... ... ...)) ((eql type ...) "") ((memql type ...) (make-string ... 32)) ((eql type ...) (let ... ...)) ((eql type ...) (let* ... ...))))))))
  (lambda nil "Compute a fill prefix for the current line.\nReturn fill prefix, as a string, or nil if current line isn't\nmeant to be filled.  For convenience, if `adaptive-fill-regexp'\nmatches in paragraphs or comments, use it." (catch (quote exit) (if (derived-mode-p (quote message-mode)) (progn (save-excursion (beginning-of-line) (cond ((or ... ...) (throw ... nil)) ((looking-at message-cite-prefix-regexp) (throw ... ...)) ((looking-at org-outline-regexp) (throw ... ...)))))) (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion ... ...)) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond (... ...) (... "") (... ...) (... ...) (... ...))))))))()
  apply((lambda nil "Compute a fill prefix for the current line.\nReturn fill prefix, as a string, or nil if current line isn't\nmeant to be filled.  For convenience, if `adaptive-fill-regexp'\nmatches in paragraphs or comments, use it." (catch (quote exit) (if (derived-mode-p (quote message-mode)) (progn (save-excursion (beginning-of-line) (cond ((or ... ...) (throw ... nil)) ((looking-at message-cite-prefix-regexp) (throw ... ...)) ((looking-at org-outline-regexp) (throw ... ...)))))) (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion ... ...)) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond (... ...) (... "") (... ...) (... ...) (... ...)))))))) nil)
  #[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-adaptive-fill-function "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"]((lambda nil "Compute a fill prefix for the current line.\nReturn fill prefix, as a string, or nil if current line isn't\nmeant to be filled.  For convenience, if `adaptive-fill-regexp'\nmatches in paragraphs or comments, use it." (catch (quote exit) (if (derived-mode-p (quote message-mode)) (progn (save-excursion (beginning-of-line) (cond ((or ... ...) (throw ... nil)) ((looking-at message-cite-prefix-regexp) (throw ... ...)) ((looking-at org-outline-regexp) (throw ... ...)))))) (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion ... ...)) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond (... ...) (... "") (... ...) (... ...) (... ...)))))))))
  apply(#[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-adaptive-fill-function "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"] (lambda nil "Compute a fill prefix for the current line.\nReturn fill prefix, as a string, or nil if current line isn't\nmeant to be filled.  For convenience, if `adaptive-fill-regexp'\nmatches in paragraphs or comments, use it." (catch (quote exit) (if (derived-mode-p (quote message-mode)) (progn (save-excursion (beginning-of-line) (cond ((or ... ...) (throw ... nil)) ((looking-at message-cite-prefix-regexp) (throw ... ...)) ((looking-at org-outline-regexp) (throw ... ...)))))) (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion ... ...)) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond (... ...) (... "") (... ...) (... ...) (... ...)))))))) nil)
  org-adaptive-fill-function()
  fill-match-adaptive-prefix()
  fill-context-prefix(2060 2221)
  adaptive-wrap-fill-context-prefix(2060 2221)
  adaptive-wrap-prefix-function(2060 2222)
  run-hook-with-args(adaptive-wrap-prefix-function 2060 2222)
  #[0 "\302\303\300\242\301\242#\207" [(2060) (2222) run-hook-with-args jit-lock-functions] 4 "\n\n(fn)"]()
  funcall(#[0 "\302\303\300\242\301\242#\207" [(2060) (2222) run-hook-with-args jit-lock-functions] 4 "\n\n(fn)"])
  jit-lock-fontify-now(2060 2560)
  jit-lock-function(2060)
  redisplay_internal\ \(C\ function\)()
#+END_EXAMPLE

#+BEGIN_EXAMPLE
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| | 3 -> (org-element--cache-sync #<buffer test.org> 2063)
| | | 4 -> (org-element--cache-process-request [1984 2172 -14 nil 1] 1989 2063 nil)
| | | 4 <- org-element--cache-process-request: nil
| | 3 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
| 2 <- org-element-at-point: (paragraph (:begin 2063 :end 2224 :contents-begin 2063 :contents-end 2223 :post-blank 1 :post-affiliated 2063 :parent nil))
1 <- org-adaptive-fill-function: ""
======================================================================
1 -> (org-element--cache-sync #<buffer test.org> 2062)
| 2 -> (org-element--cache-process-request [1984 2172 -14 nil 1] 1989 2062 nil)
| 2 <- org-element--cache-process-request: nil
1 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| | 3 -> (org-element--cache-sync #<buffer test.org> 2060)
| | | 4 -> (org-element--cache-process-request [(1983 1152921504606846975) 2063 -1 nil 0] 1984 2060 nil)
| | | 4 <- org-element--cache-process-request: t
| | | 4 -> (org-element--cache-process-request [1984 2172 -15 nil 1] 1989 2060 nil)
| | | 4 <- org-element--cache-process-request: nil
| | 3 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
| 2 <- org-element-at-point: (paragraph (:begin 1858 :end 2223 :contents-begin 1858 :contents-end 2222 :post-blank 1 :post-affiliated 1858 :parent nil))
1 <- org-adaptive-fill-function: ""
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| | 3 -> (org-element--cache-sync #<buffer test.org> 2062)
| | | 4 -> (org-element--cache-process-request [1984 2172 -15 nil 1] 1989 2062 nil)
| | | 4 <- org-element--cache-process-request: nil
| | 3 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
| 2 <- org-element-at-point: (paragraph (:begin 1858 :end 2223 :contents-begin 1858 :contents-end 2222 :post-blank 1 :post-affiliated 1858 :parent nil))
1 <- org-adaptive-fill-function: ""
======================================================================
1 -> (org-element--cache-sync #<buffer test.org> 2061)
| 2 -> (org-element--cache-process-request [1984 2172 -15 nil 1] 1989 2061 nil)
| 2 <- org-element--cache-process-request: nil
1 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| | 3 -> (org-element--cache-sync #<buffer test.org> 2061)
| | | 4 -> (org-element--cache-process-request [(1983 1152921504606846975) 2223 -1 nil 0] 1984 2061 nil)
| | | 4 <- org-element--cache-process-request: t
| | | 4 -> (org-element--cache-process-request [1984 2172 -16 nil 1] 1989 2061 nil)
| | | 4 <- org-element--cache-process-request: nil
| | 3 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
| 2 <- org-element-at-point: (paragraph (:begin 2061 :end 2222 :contents-begin 2061 :contents-end 2221 :post-blank 1 :post-affiliated 2061 :parent nil))
1 <- org-adaptive-fill-function: ""
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| | 3 -> (org-element--cache-sync #<buffer test.org> 2061)
| | | 4 -> (org-element--cache-process-request [1984 2172 -16 nil 1] 1989 2061 nil)
| | | 4 <- org-element--cache-process-request: nil
| | 3 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
| 2 <- org-element-at-point: (paragraph (:begin 2061 :end 2222 :contents-begin 2061 :contents-end 2221 :post-blank 1 :post-affiliated 2061 :parent nil))
1 <- org-adaptive-fill-function: ""
======================================================================
1 -> (org-element--cache-sync #<buffer test.org> 2061)
| 2 -> (org-element--cache-process-request [1984 2172 -16 nil 1] 1989 2061 nil)
| 2 <- org-element--cache-process-request: nil
1 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| | 3 -> (org-element--cache-sync #<buffer test.org> 2060)
| | | 4 -> (org-element--cache-process-request [(1983 1152921504606846975) 2222 -1 nil 0] 1984 2060 nil)
| | | 4 <- org-element--cache-process-request: t
| | | 4 -> (org-element--cache-process-request [1984 2172 -17 nil 1] 1989 2060 nil)
| | | 4 <- org-element--cache-process-request: nil
| | 3 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
| 2 <- org-element-at-point: (paragraph (:begin 1858 :end 2221 :contents-begin 1858 :contents-end 2220 :post-blank 1 :post-affiliated 1858 :parent nil))
1 <- org-adaptive-fill-function: ""
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| | 3 -> (org-element--cache-sync #<buffer test.org> 2221)
| | | 4 -> (org-element--cache-process-request [1984 2172 -17 nil 1] 1989 2221 nil)
| | | 4 <- org-element--cache-process-request: t
| | | 4 -> (org-element--cache-process-request [1989 2172 77 nil 2] nil 2221 nil)
| | | 4 <- org-element--cache-process-request: nil
| | 3 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
| 2 <- org-element-at-point: (paragraph (:begin 2221 :end 2292 :contents-begin 2221 :contents-end 2291 :post-blank 1 :post-affiliated 2221 :parent (paragraph (:begin 2155 :end 2316 :contents-begin 2155 :contents-end 2315 :post-blank 1 :post-affiliated 2155 :parent (paragraph (:begin 1858 :end 2221 :contents-begin 1858 :contents-end 2220 :post-blank 1 :post-affiliated 1858 :parent nil))))))
1 <- org-adaptive-fill-function: ""
======================================================================
1 -> (org-element--cache-sync #<buffer test.org> 2060)
| 2 -> (org-element--cache-process-request [2558 2172 77 nil 2] nil 2060 nil)
| 2 <- org-element--cache-process-request: nil
1 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| | 3 -> (org-element--cache-sync #<buffer test.org> 2060)
| | | 4 -> (org-element--cache-process-request [(1983 1152921504606846975) 2221 1 nil 0] 9763 2060 nil)
#+END_EXAMPLE

* 3
#+BEGIN_EXAMPLE
Debugger entered--beginning evaluation of function call form:
* (funcall #[0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" [org-element--cache-process-request nil #[0 "\300\207" [""] 1 "\n\n(fn)"] (nil) inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)"])
  #[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element--cache-process-request "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"]((lambda (request next threshold time-limit) "Process synchronization REQUEST for all entries before NEXT.\n\nREQUEST is a vector, built by `org-element--cache-submit-request'.\n\nNEXT is a cache key, as returned by `org-element--cache-key'.\n\nWhen non-nil, THRESHOLD is a buffer position.  Synchronization\nstops as soon as a shifted element begins after it.\n\nWhen non-nil, TIME-LIMIT is a time value.  Synchronization stops\nafter this time or when Emacs exits idle state.\n\nReturn nil if the process stops before completing the request,\nt otherwise." (catch (quote quit) (if (= (aref request 4) 0) (progn (catch (quote end-phase) (let ((beg ...) (end ...) (deleted-parent ...)) (while t (if ... ...) (let ... ... ...)))))) (if (= (aref request 4) 1) (progn (catch (quote end-phase) (if (equal (aref request 0) next) (progn (throw ... t))) (let ((limit ...)) (if (and threshold ...) (progn ...)) (let (...) (if ... ... ... ... ...)))))) (let ((start (aref request 0)) (offset (aref request 2)) (parent (aref request 3)) (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 ...)) (key (org-element--cache-key data))) (if (and leftp (progn ...) (not ...)) (progn (setq stack ...) (setq node ...)) (if (org-element--cache-key-less-p key start) nil (if ... ...) (if ... ...) (if ... nil ... ...) (let ... ... ... ...)) (setq node (if ... ... ...))))) t))) [2191 2672 1 nil 0] 2542 2440 nil)
  apply(#[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element--cache-process-request "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"] (lambda (request next threshold time-limit) "Process synchronization REQUEST for all entries before NEXT.\n\nREQUEST is a vector, built by `org-element--cache-submit-request'.\n\nNEXT is a cache key, as returned by `org-element--cache-key'.\n\nWhen non-nil, THRESHOLD is a buffer position.  Synchronization\nstops as soon as a shifted element begins after it.\n\nWhen non-nil, TIME-LIMIT is a time value.  Synchronization stops\nafter this time or when Emacs exits idle state.\n\nReturn nil if the process stops before completing the request,\nt otherwise." (catch (quote quit) (if (= (aref request 4) 0) (progn (catch (quote end-phase) (let ((beg ...) (end ...) (deleted-parent ...)) (while t (if ... ...) (let ... ... ...)))))) (if (= (aref request 4) 1) (progn (catch (quote end-phase) (if (equal (aref request 0) next) (progn (throw ... t))) (let ((limit ...)) (if (and threshold ...) (progn ...)) (let (...) (if ... ... ... ... ...)))))) (let ((start (aref request 0)) (offset (aref request 2)) (parent (aref request 3)) (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 ...)) (key (org-element--cache-key data))) (if (and leftp (progn ...) (not ...)) (progn (setq stack ...) (setq node ...)) (if (org-element--cache-key-less-p key start) nil (if ... ...) (if ... ...) (if ... nil ... ...) (let ... ... ... ...)) (setq node (if ... ... ...))))) t))) ([2191 2672 1 nil 0] 2542 2440 nil))
  org-element--cache-process-request([2191 2672 1 nil 0] 2542 2440 nil)
  (or (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add (current-time) org-element-cache-sync-duration))) (throw (quote interrupt) t))
  (while org-element--cache-sync-requests (setq request (car org-element--cache-sync-requests) next (nth 1 org-element--cache-sync-requests)) (or (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add (current-time) org-element-cache-sync-duration))) (throw (quote interrupt) t)) (if next (progn (let* ((v next)) (aset v 2 (+ (aref v 2) (aref request 2)))) (aset next 1 (aref request 1)) (aset next 4 (aref request 4)))) (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)) (or (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add (current-time) org-element-cache-sync-duration))) (throw (quote interrupt) t)) (if next (progn (let* ((v next)) (aset v 2 (+ (aref v 2) (aref request 2)))) (aset next 1 (aref request 1)) (aset next 4 (aref request 4)))) (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)) (or (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add (current-time) org-element-cache-sync-duration))) (throw (quote interrupt) t)) (if next (progn (let* ((v next)) (aset v 2 (+ ... ...))) (aset next 1 (aref request 1)) (aset next 4 (aref request 4)))) (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)) (or (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add ... org-element-cache-sync-duration))) (throw (quote interrupt) t)) (if next (progn (let* (...) (aset v 2 ...)) (aset next 1 (aref request 1)) (aset next 4 (aref request 4)))) (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)) (or (org-element--cache-process-request request (and next ...) threshold (and ... ...)) (throw (quote interrupt) t)) (if next (progn (let* ... ...) (aset next 1 ...) (aset next 4 ...))) (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)) (or (org-element--cache-process-request request ... threshold ...) (throw ... t)) (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))))))
  (lambda (buffer &optional threshold) "Synchronize cache with recent modification in BUFFER.\nWhen optional argument THRESHOLD is non-nil, do the\nsynchronization for all elements starting before or at threshold,\nthen exit.  Otherwise, synchronize cache for as long as\n`org-element-cache-sync-duration' or until Emacs leaves idle\nstate." (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 ... next ...) (or ... ...) (if next ...) (setq org-element--cache-sync-requests ...))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys)))))))(#<buffer test.org> 2440)
  apply((lambda (buffer &optional threshold) "Synchronize cache with recent modification in BUFFER.\nWhen optional argument THRESHOLD is non-nil, do the\nsynchronization for all elements starting before or at threshold,\nthen exit.  Otherwise, synchronize cache for as long as\n`org-element-cache-sync-duration' or until Emacs leaves idle\nstate." (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 ... next ...) (or ... ...) (if next ...) (setq org-element--cache-sync-requests ...))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys))))))) (#<buffer test.org> 2440))
  #[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element--cache-sync "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"]((lambda (buffer &optional threshold) "Synchronize cache with recent modification in BUFFER.\nWhen optional argument THRESHOLD is non-nil, do the\nsynchronization for all elements starting before or at threshold,\nthen exit.  Otherwise, synchronize cache for as long as\n`org-element-cache-sync-duration' or until Emacs leaves idle\nstate." (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 ... next ...) (or ... ...) (if next ...) (setq org-element--cache-sync-requests ...))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys))))))) #<buffer test.org> 2440)
  apply(#[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element--cache-sync "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"] (lambda (buffer &optional threshold) "Synchronize cache with recent modification in BUFFER.\nWhen optional argument THRESHOLD is non-nil, do the\nsynchronization for all elements starting before or at threshold,\nthen exit.  Otherwise, synchronize cache for as long as\n`org-element-cache-sync-duration' or until Emacs leaves idle\nstate." (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 ... next ...) (or ... ...) (if next ...) (setq org-element--cache-sync-requests ...))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys))))))) (#<buffer test.org> 2440))
  org-element--cache-sync(#<buffer test.org> 2440)
  (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync (current-buffer) origin))
  (progn (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync (current-buffer) origin)))
  (if (org-element--cache-active-p) (progn (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync (current-buffer) origin))))
  (cond ((bobp) nil) ((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)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync (current-buffer) origin)))) (org-element--parse-to origin)))
  (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((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)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync (current-buffer) origin)))) (org-element--parse-to origin))))
  (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((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)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn (if (not org-element--cache) (org-element-cache-reset) (org-element--cache-sync ... origin)))) (org-element--parse-to origin)))))
  (save-excursion (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((let* ((org-called-with-limited-levels t) (org-outline-regexp ...) (outline-regexp org-outline-regexp) (org-outline-regexp-bol ...)) (org-at-heading-p)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn (if ... ... ...))) (org-element--parse-to origin))))))
  (lambda nil "Determine closest element around point.\n\nReturn value is a list like (TYPE PROPS) where TYPE is the type\nof the element and PROPS a plist of properties associated to the\nelement.\n\nPossible types are defined in `org-element-all-elements'.\nProperties depend on element or object type, but always include\n`:begin', `:end', `:parent' and `:post-blank' properties.\n\nAs a special case, if point is at the very beginning of the first\nitem in a list or sub-list, returned element will be that list\ninstead of the item.  Likewise, if point is at the beginning of\nthe first row of a table, returned element will be the table\ninstead of the first row.\n\nWhen point is at the end of the buffer, return the innermost\nelement ending there." (save-excursion (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((let* (... ... ... ...) (org-at-heading-p)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn ...)) (org-element--parse-to origin)))))))()
  apply((lambda nil "Determine closest element around point.\n\nReturn value is a list like (TYPE PROPS) where TYPE is the type\nof the element and PROPS a plist of properties associated to the\nelement.\n\nPossible types are defined in `org-element-all-elements'.\nProperties depend on element or object type, but always include\n`:begin', `:end', `:parent' and `:post-blank' properties.\n\nAs a special case, if point is at the very beginning of the first\nitem in a list or sub-list, returned element will be that list\ninstead of the item.  Likewise, if point is at the beginning of\nthe first row of a table, returned element will be the table\ninstead of the first row.\n\nWhen point is at the end of the buffer, return the innermost\nelement ending there." (save-excursion (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((let* (... ... ... ...) (org-at-heading-p)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn ...)) (org-element--parse-to origin))))))) nil)
  #[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element-at-point "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"]((lambda nil "Determine closest element around point.\n\nReturn value is a list like (TYPE PROPS) where TYPE is the type\nof the element and PROPS a plist of properties associated to the\nelement.\n\nPossible types are defined in `org-element-all-elements'.\nProperties depend on element or object type, but always include\n`:begin', `:end', `:parent' and `:post-blank' properties.\n\nAs a special case, if point is at the very beginning of the first\nitem in a list or sub-list, returned element will be that list\ninstead of the item.  Likewise, if point is at the beginning of\nthe first row of a table, returned element will be the table\ninstead of the first row.\n\nWhen point is at the end of the buffer, return the innermost\nelement ending there." (save-excursion (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((let* (... ... ... ...) (org-at-heading-p)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn ...)) (org-element--parse-to origin))))))))
  apply(#[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-element-at-point "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"] (lambda nil "Determine closest element around point.\n\nReturn value is a list like (TYPE PROPS) where TYPE is the type\nof the element and PROPS a plist of properties associated to the\nelement.\n\nPossible types are defined in `org-element-all-elements'.\nProperties depend on element or object type, but always include\n`:begin', `:end', `:parent' and `:post-blank' properties.\n\nAs a special case, if point is at the very beginning of the first\nitem in a list or sub-list, returned element will be that list\ninstead of the item.  Likewise, if point is at the beginning of\nthe first row of a table, returned element will be the table\ninstead of the first row.\n\nWhen point is at the end of the buffer, return the innermost\nelement ending there." (save-excursion (save-restriction (widen) (let ((origin (point))) (end-of-line) (skip-chars-backward " \r	\n") (cond ((bobp) nil) ((let* (... ... ... ...) (org-at-heading-p)) (beginning-of-line) (org-element-headline-parser (point-max) t)) (t (if (org-element--cache-active-p) (progn ...)) (org-element--parse-to origin))))))) nil)
  org-element-at-point()
  (progn (org-element-at-point))
  (condition-case nil (progn (org-element-at-point)) (error nil))
  (or (condition-case nil (progn (org-element-at-point)) (error nil)) (user-error "An element cannot be parsed line %d" (line-number-at-pos (point))))
  (save-excursion (beginning-of-line) (or (condition-case nil (progn (org-element-at-point)) (error nil)) (user-error "An element cannot be parsed line %d" (line-number-at-pos (point)))))
  (let* ((p (line-beginning-position)) (element (save-excursion (beginning-of-line) (or (condition-case nil (progn (org-element-at-point)) (error nil)) (user-error "An element cannot be parsed line %d" (line-number-at-pos (point)))))) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond ((eql type (quote comment)) (save-excursion (beginning-of-line) (looking-at "[ 	]*") (concat (match-string 0) "# "))) ((eql type (quote footnote-definition)) "") ((memql type (quote (item plain-list))) (make-string (org-list-item-body-column (or post-affiliated (org-element-property :begin element))) 32)) ((eql type (quote paragraph)) (let ((parent (org-element-property :parent element))) (save-excursion (beginning-of-line) (cond (... ...) (...) (... ...) (t ""))))) ((eql type (quote comment-block)) (let* ((cbeg (save-excursion ... ... ...)) (cend (save-excursion ... ... ...))) (if (and (>= p cbeg) (< p cend)) (progn (if ... ... ""))))))))
  (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion (beginning-of-line) (or (condition-case nil (progn ...) (error nil)) (user-error "An element cannot be parsed line %d" (line-number-at-pos ...))))) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond ((eql type (quote comment)) (save-excursion (beginning-of-line) (looking-at "[ 	]*") (concat (match-string 0) "# "))) ((eql type (quote footnote-definition)) "") ((memql type (quote (item plain-list))) (make-string (org-list-item-body-column (or post-affiliated ...)) 32)) ((eql type (quote paragraph)) (let ((parent ...)) (save-excursion (beginning-of-line) (cond ... ... ... ...)))) ((eql type (quote comment-block)) (let* ((cbeg ...) (cend ...)) (if (and ... ...) (progn ...))))))))
  (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion (beginning-of-line) (or (condition-case nil ... ...) (user-error "An element cannot be parsed line %d" ...)))) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond ((eql type (quote comment)) (save-excursion (beginning-of-line) (looking-at "[ 	]*") (concat ... "# "))) ((eql type (quote footnote-definition)) "") ((memql type (quote ...)) (make-string (org-list-item-body-column ...) 32)) ((eql type (quote paragraph)) (let (...) (save-excursion ... ...))) ((eql type (quote comment-block)) (let* (... ...) (if ... ...))))))))
  (catch (quote exit) (if (derived-mode-p (quote message-mode)) (progn (save-excursion (beginning-of-line) (cond ((or (not ...) (looking-at orgtbl-line-start-regexp)) (throw (quote exit) nil)) ((looking-at message-cite-prefix-regexp) (throw (quote exit) (match-string-no-properties 0))) ((looking-at org-outline-regexp) (throw (quote exit) (make-string ... 32))))))) (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion (beginning-of-line) (or ... ...))) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond ((eql type ...) (save-excursion ... ... ...)) ((eql type ...) "") ((memql type ...) (make-string ... 32)) ((eql type ...) (let ... ...)) ((eql type ...) (let* ... ...))))))))
  (lambda nil "Compute a fill prefix for the current line.\nReturn fill prefix, as a string, or nil if current line isn't\nmeant to be filled.  For convenience, if `adaptive-fill-regexp'\nmatches in paragraphs or comments, use it." (catch (quote exit) (if (derived-mode-p (quote message-mode)) (progn (save-excursion (beginning-of-line) (cond ((or ... ...) (throw ... nil)) ((looking-at message-cite-prefix-regexp) (throw ... ...)) ((looking-at org-outline-regexp) (throw ... ...)))))) (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion ... ...)) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond (... ...) (... "") (... ...) (... ...) (... ...))))))))()
  apply((lambda nil "Compute a fill prefix for the current line.\nReturn fill prefix, as a string, or nil if current line isn't\nmeant to be filled.  For convenience, if `adaptive-fill-regexp'\nmatches in paragraphs or comments, use it." (catch (quote exit) (if (derived-mode-p (quote message-mode)) (progn (save-excursion (beginning-of-line) (cond ((or ... ...) (throw ... nil)) ((looking-at message-cite-prefix-regexp) (throw ... ...)) ((looking-at org-outline-regexp) (throw ... ...)))))) (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion ... ...)) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond (... ...) (... "") (... ...) (... ...) (... ...)))))))) nil)
  #[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-adaptive-fill-function "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"]((lambda nil "Compute a fill prefix for the current line.\nReturn fill prefix, as a string, or nil if current line isn't\nmeant to be filled.  For convenience, if `adaptive-fill-regexp'\nmatches in paragraphs or comments, use it." (catch (quote exit) (if (derived-mode-p (quote message-mode)) (progn (save-excursion (beginning-of-line) (cond ((or ... ...) (throw ... nil)) ((looking-at message-cite-prefix-regexp) (throw ... ...)) ((looking-at org-outline-regexp) (throw ... ...)))))) (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion ... ...)) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond (... ...) (... "") (... ...) (... ...) (... ...)))))))))
  apply(#[385 "\fT\306\301!\307\303 \x01\x1d\x02\x1e\x18\x03\x1c\x0e\x19\204@\0r\x0e\x18q\210\310\311!\210\312\x16	\302\204)\0\313\x0e\x18!\210db\210\f\314U\2036\0\x0e\x1ac\210\315\300\f\x06\a\x04$c\210)\307C\316\317\320\321\322\323\300\302\303\x06	$\324\"\325\326%DC\216\211\327\x06\b\x06\b\"C\240\210)\211\242@\262\x01+\207" [org-adaptive-fill-function "*trace-output*" nil #[0 "\300\207" [""] 1 "\n\n(fn)"] trace-level deactivate-mark get-buffer-create nil make-local-variable window-point-insertion-type t trace--display-buffer 1 trace-entry-message funcall make-byte-code 0 "\f?\205,\0\302 r\rq\210\301\204\x13\0\306\r!\210db\210\307\300\x0e	\303\242\203%\0\303\242@\202&\0\310\x04$c)\262\x01\207" vconcat vector [inhibit-trace trace-buffer trace--display-buffer trace-exit-message !non-local\ exit! trace-level] 6 "\n\n(fn)" apply trace-buffer inhibit-trace trace-separator] 17 "\n\n(fn BODY &rest ARGS)"] (lambda nil "Compute a fill prefix for the current line.\nReturn fill prefix, as a string, or nil if current line isn't\nmeant to be filled.  For convenience, if `adaptive-fill-regexp'\nmatches in paragraphs or comments, use it." (catch (quote exit) (if (derived-mode-p (quote message-mode)) (progn (save-excursion (beginning-of-line) (cond ((or ... ...) (throw ... nil)) ((looking-at message-cite-prefix-regexp) (throw ... ...)) ((looking-at org-outline-regexp) (throw ... ...)))))) (save-excursion (save-restriction (widen) (let* ((p (line-beginning-position)) (element (save-excursion ... ...)) (type (org-element-type element)) (post-affiliated (org-element-property :post-affiliated element))) (if (and post-affiliated (< p post-affiliated)) nil (cond (... ...) (... "") (... ...) (... ...) (... ...)))))))) nil)
  org-adaptive-fill-function()
  fill-match-adaptive-prefix()
  fill-context-prefix(2440 2513)
  adaptive-wrap-fill-context-prefix(2440 2513)
  adaptive-wrap-prefix-function(2440 2514)
  run-hook-with-args(adaptive-wrap-prefix-function 2440 2514)
  #[0 "\302\303\300\242\301\242#\207" [(2440) (2514) run-hook-with-args jit-lock-functions] 4 "\n\n(fn)"]()
  funcall(#[0 "\302\303\300\242\301\242#\207" [(2440) (2514) run-hook-with-args jit-lock-functions] 4 "\n\n(fn)"])
  jit-lock-fontify-now(2440 2940)
  jit-lock-function(2440)
  redisplay_internal\ \(C\ function\)()
  read-key-sequence(nil nil nil t)
  quail-start-translation(107)
  quail-input-method(107)
#+END_EXAMPLE

#+BEGIN_EXAMPLE
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| | 3 -> (org-element--cache-sync #<buffer test.org> 2440)
| | | 4 -> (org-element--cache-process-request [2510 nil 1 nil 2] 2511 2440 nil)
| | | 4 <- org-element--cache-process-request: t
| | | 4 -> (org-element--cache-process-request [2511 nil 5 nil 2] 2542 2440 nil)
| | | 4 <- org-element--cache-process-request: t
| | | 4 -> (org-element--cache-process-request [2542 nil 26 nil 2] nil 2440 nil)
| | | 4 <- org-element--cache-process-request: nil
| | 3 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
| 2 <- org-element-at-point: (paragraph (:begin 2440 :end 2512 :contents-begin 2440 :contents-end 2511 :post-blank 1 :post-affiliated 2440 :parent nil))
1 <- org-adaptive-fill-function: ""
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| 2 <- org-element-at-point: (headline (:raw-value #1="This is another test" :begin 2512 :end 11714 :pre-blank 1 :contents-begin 2536 :contents-end 11714 :level 1 :priority nil :tags nil :todo-keyword nil :todo-type nil :post-blank 0 :footnote-section-p nil :archivedp nil :commentedp nil :CATEGORY nil :title #1#))
1 <- org-adaptive-fill-function: nil
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| | 3 -> (org-element--cache-sync #<buffer test.org> 2440)
| | | 4 -> (org-element--cache-process-request [2542 nil 26 nil 2] nil 2440 nil)
| | | 4 <- org-element--cache-process-request: nil
| | 3 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
| 2 <- org-element-at-point: (paragraph (:begin 2440 :end 2512 :contents-begin 2440 :contents-end 2511 :post-blank 1 :post-affiliated 2440 :parent nil))
1 <- org-adaptive-fill-function: ""
======================================================================
1 -> (org-element--cache-sync #<buffer test.org> 2510)
| 2 -> (org-element--cache-process-request [2542 nil 26 nil 2] nil 2510 nil)
| 2 <- org-element--cache-process-request: nil
1 <- org-element--cache-sync: [nil 0 0 400000 nil org-element--cache-sync (#<buffer test.org>) idle 0]
======================================================================
1 -> (org-adaptive-fill-function)
| 2 -> (org-element-at-point)
| | 3 -> (org-element--cache-sync #<buffer test.org> 2440)
| | | 4 -> (org-element--cache-process-request [2191 2672 1 nil 0] 2542 2440 nil)
#+END_EXAMPLE

[-- Attachment #3: Type: text/plain, Size: 18 bytes --]


-- 
Daimrod/Greg

  parent reply	other threads:[~2014-05-29  3:01 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-14  8:39 still seeing semi-regular lockups Eric Abrahamsen
2014-05-15  9:21 ` Bastien
2014-05-15  9:30   ` Daimrod
2014-05-15  9:46     ` Bastien
2014-05-15 10:31     ` Eric Abrahamsen
2014-05-15 10:37       ` Daimrod
2014-05-15 10:43         ` Eric Abrahamsen
2014-05-19 14:21     ` Daimrod
2014-05-20  8:25       ` Eric Abrahamsen
2014-05-20  8:55         ` Daimrod
2014-05-20 11:16           ` Eric Abrahamsen
2014-06-24  8:48             ` Nicolas Goaziou
2014-06-24 14:28               ` Eric Abrahamsen
2014-06-25  4:09                 ` Matt Lundin
2014-06-25  5:39                   ` Matt Lundin
2014-06-25  7:32                   ` Sebastien Vauban
2014-06-27 13:00                     ` Nicolas Goaziou
2014-06-25  7:38                   ` Daimrod
2014-06-25  8:22                     ` Eric Abrahamsen
2014-06-25  8:30                       ` Bastien
2014-06-25  8:40                         ` Eric Abrahamsen
2014-06-25 13:47                     ` Matt Lundin
2014-06-26  2:58                     ` Matt Lundin
2014-06-26  3:00                       ` Matt Lundin
2014-06-27 12:56                       ` Nicolas Goaziou
2014-06-27 13:37                         ` Alan Schmitt
2014-06-27 22:31                           ` Nicolas Goaziou
2014-06-28 19:27                 ` Eric Abrahamsen
2014-06-29  1:39                   ` York Zhao
2014-06-29  2:23                     ` Eric Abrahamsen
2014-06-30  1:15                       ` York Zhao
2014-06-30  1:43                         ` York Zhao
2014-06-30 20:20                           ` Alan Schmitt
2014-07-01  0:43                           ` York Zhao
2014-07-01  7:38                             ` Nicolas Goaziou
2014-07-01 17:14                               ` York Zhao
2014-07-01 21:15                                 ` York Zhao
2014-07-02  8:01                                   ` Nicolas Goaziou
2014-07-03  1:03                                     ` York Zhao
2014-07-06  7:28                                       ` Nicolas Goaziou
2014-07-06 14:40                                         ` York Zhao
2014-07-06 21:05                                           ` York Zhao
2014-07-06 21:31                                             ` Nicolas Goaziou
2014-07-07  0:16                                               ` York Zhao
2014-07-07  5:27                                                 ` Nicolas Goaziou
2014-07-25 14:33                                                   ` Sebastien Vauban
2014-07-07  1:43                                           ` York Zhao
2014-07-07  5:33                                             ` Nicolas Goaziou
2014-07-07 15:10                                               ` York Zhao
2014-07-03 15:31                                 ` York Zhao
2014-07-03 15:55                                   ` York Zhao
2014-07-06  7:19                                   ` Nicolas Goaziou
2014-07-06 14:29                                     ` York Zhao
2014-07-15  2:30                             ` York Zhao
2014-07-19  3:17                               ` Matt Lundin
2014-07-19 14:12                                 ` York Zhao
2014-06-29 13:58                     ` Nicolas Goaziou
2014-05-29  3:01       ` Daimrod [this message]
2014-05-30  9:17         ` Nicolas Goaziou
2014-05-30 14:35           ` Daimrod
2014-06-11 11:53             ` Daimrod
2014-06-11 21:30               ` Nicolas Goaziou
2014-06-11 22:18                 ` Daimrod
2014-06-14  7:43                   ` Nicolas Goaziou
2014-06-14 23:55                     ` Daimrod
2014-06-22  7:58                       ` Nicolas Goaziou
2014-06-04  4:47     ` Eric Abrahamsen
2014-06-05  4:29       ` Daimrod
  -- strict thread matches above, loose matches on Subject: below --
2014-05-14 11:06 dieter
2014-05-15  2:29 ` Eric Abrahamsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874n09cmq7.fsf@tanger.home \
    --to=daimrod@gmail.com \
    --cc=bzg@gnu.org \
    --cc=emacs-orgmode@gnu.org \
    --cc=eric@ericabrahamsen.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).