emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Tangling takes long - profiling and calling R
@ 2015-06-15  8:39 Rainer M Krug
  2015-06-15  8:42 ` Rainer M Krug
                   ` (2 more replies)
  0 siblings, 3 replies; 31+ messages in thread
From: Rainer M Krug @ 2015-06-15  8:39 UTC (permalink / raw)
  To: emacs-orgmode

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

Hi

I have a relatively large file with
about 200 =source blocks (R) to be tangled to get an R package. But the
tangling takes about 20 seconds.

Profiling the tangling showed that the call to ~mapcar~ in
~org-babel-params-from-properties~ takes about 40% of the execution time
(see profiler excerpt below). Is there anything one can do to make this
faster?

In addition to this, I observed there is some interaction with ESS when
tangling, which in my understanding is not necessary. I get messages
like

,----
| ...
| Wrote /Users/rainerkrug/Documents/Projects/EnergyBalance/.Rbuildignore
| Wrote /Users/rainerkrug/Documents/Projects/EnergyBalance/tests/wpLELTest.R
| You are developing: (EnergyBalance)
| Wrote /Users/rainerkrug/Documents/Projects/EnergyBalance/R/plotwpLELFitListParDistr.R
| You are developing: (EnergyBalance)
| ...
`----

where the messages "You are developing: (EnergyBalance)" come from
ESS. Is this to be expected that R is called for some blocks, but not
for others, when tangling?

Version info:
,----
| Org-mode version 8.3beta (release_8.3beta-1209-gc532ff @ /Users/rainerkrug/.emacs.d/org-mode/lisp/)
| GNU Emacs 24.5.1 (x86_64-apple-darwin14.3.0, Carbon Version 157 AppKit 1347.57) of 2015-04-13 on Rainers-MacBook-Pro.local
`----

Cheers,

Rainer

,----
| - time-execute                                                4950  84%
|  - call-interactively                                            4950  84%
|   - org-babel-tangle                                             4828  82%
|    - org-babel-tangle-collect-blocks                             2728  46%
|     - org-babel-tangle-single-block                              1363  23%
|      - org-babel-get-src-block-info                              1304  22%
|       - org-babel-parse-src-block-match                          1210  20%
|###     - org-babel-params-from-properties                        1193  20%
|         + mapcar                                                 1144  19%
|         + org-entry-get                                            33   0%
|         + org-babel-parse-header-arguments                         12   0%
|         + org-babel-combine-header-arg-lists                        4   0%
|        + org-babel-parse-header-arguments                           3   0%
|        + apply                                                      2   0%
|          generate-new-buffer                                        1   0%
|        + org-unescape-code-in-string                                1   0%
|          byte-code                                                  1   0%
|       + org-babel-generate-file-param                              86   1%
|       + org-babel-process-params                                    2   0%
|         org-babel-where-is-src-block-head                           1   0%
|      + org-store-link                                              36   0%
|        line-number-at-pos                                          17   0%
|      + byte-code                                                    2   0%
|        generate-new-buffer                                          1   0%
|     - org-babel-get-src-block-info                               1334  22%
|      - org-babel-parse-src-block-match                           1235  21%
|####   - org-babel-params-from-properties                         1212  20%
|        + mapcar                                                  1163  19%
|        + org-entry-get                                             30   0%
|        + org-babel-parse-header-arguments                          12   0%
|        + org-babel-combine-header-arg-lists                         7   0%
|       + org-babel-parse-header-arguments                            7   0%
|       + apply                                                       4   0%
|       + org-unescape-code-in-string                                 2   0%
|         generate-new-buffer                                         1   0%
|      + org-babel-generate-file-param                               89   1%
|        org-babel-where-is-src-block-head                            2   0%
|     + org-in-commented-heading-p                                    8   0%
|     + org-babel-active-location-p                                   4   0%
|     + byte-code                                                     2   0%
|    + mapc                                                        2098  35%
|    + run-hooks                                                      1   0%
|   + smex                                                          122   2%
| + ...                                                             912  15%
| + flyspell-post-command-hook                                        4   0%
| + redisplay_internal (C function)                                   3   0%
| + timer-event-handler                                               3   0%
`----


-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 480 bytes --]

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

* Re: Tangling takes long - profiling and calling R
  2015-06-15  8:39 Tangling takes long - profiling and calling R Rainer M Krug
@ 2015-06-15  8:42 ` Rainer M Krug
  2015-06-15 18:52 ` Charles C. Berry
  2015-06-15 19:49 ` Nicolas Goaziou
  2 siblings, 0 replies; 31+ messages in thread
From: Rainer M Krug @ 2015-06-15  8:42 UTC (permalink / raw)
  To: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 39 bytes --]

Forgot to attach the profiler report.


[-- Attachment #1.2: Saved profiler report --]
[-- Type: application/octet-stream, Size: 126282 bytes --]


[profiler-profile "24.3" cpu #s(hash-table size 487 test equal rehash-size 1.5 rehash-threshold 0.8 data (["#<compiled 0x40c7977b>" org-entry-get byte-code org-entry-get-with-inheritance org-entry-get org-log-into-drawer org-mode-flyspell-verify flyspell-word byte-code flyspell-post-command-hook nil nil nil nil nil nil] 1 [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 111 [image-search-load-path find-image eval "#<compiled 0x400ec1b3>" mapcar tool-bar-make-keymap-1 tool-bar-make-keymap redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil] 2 [file-truename projectile-project-root "#<compiled 0x40f14fef>" funcall projectile-project-name format eval redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil] 1 [basic-save-buffer save-buffer run-hooks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 1 [org-up-heading-safe byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil] 631 [byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 81 [org-babel-read "#<compiled 0x41223941>" mapcar org-babel-parse-header-arguments org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 1 [byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil] 86 [org-element-at-point org-make-org-heading-search-string "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 3 [org-before-first-heading-p org-get-property-block org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil] 15 [org-get-property-block org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil] 124 [org-get-property-block org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil] 123 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt image-file-name-regexp] 1 [member-ignore-case org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 2 [org-up-heading-safe byte-code org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 13 [generate-new-buffer org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 1 [outline-back-to-heading org-back-to-heading org-up-heading-safe byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute] 25 [org-up-heading-safe byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil] 631 [outline-back-to-heading org-back-to-heading org-get-property-block org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively] 34 [org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil] 97 [org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil] 17 [org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 9 [org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil] 101 [org-back-to-heading org-get-property-block org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil] 14 ["#<compiled 0x41223941>" mapcar org-babel-parse-header-arguments org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 4 [org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil] 9 [org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 5 [mapcar image-file-name-regexp org-image-file-name-regexp org-make-link-string "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [outline-back-to-heading org-back-to-heading org-up-heading-safe byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil] 20 [org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 8 ["#<compiled 0x40c7977b>" org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil] 45 [mapcar org-babel-parse-header-arguments org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 1 [org-outline-level org-up-heading-safe byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil] 28 [outline-back-to-heading org-back-to-heading org-get-property-block org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute] 44 [outline-on-heading-p outline-back-to-heading org-back-to-heading org-up-heading-safe org-in-commented-heading-p org-in-commented-heading-p org-in-commented-heading-p org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 1 ["#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 7 [outline-on-heading-p outline-back-to-heading org-back-to-heading org-get-property-block org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle] 7 [org-back-to-heading org-up-heading-safe byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil] 19 [org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 12 [org-up-heading-safe byte-code org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 20 [outline-back-to-heading org-back-to-heading org-get-property-block org-entry-get "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 2 [org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 18 [org-babel-combine-header-arg-lists org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 2 [org-get-property-block org-entry-get byte-code org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil] 4 [mapcar regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt image-file-name-regexp org-image-file-name-regexp org-make-link-string "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block] 1 ["#<compiled 0x40c7977b>" org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil] 34 [org-babel-balanced-split org-babel-parse-header-arguments org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 1 [regexp-opt image-file-name-regexp org-image-file-name-regexp org-make-link-string "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 2 [make-directory org-babel-generate-file-param org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil] 89 [make-directory org-babel-generate-file-param org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 86 [line-number-at-pos org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 17 ["#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 8 [org-babel-get-header org-babel-process-params org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 1 [org-heading-components "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 1 [org-before-first-heading-p org-get-property-block org-entry-get byte-code org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil] 1 ["#<compiled 0x400e89e7>" mapcar regexp-opt-group regexp-opt image-file-name-regexp org-image-file-name-regexp org-make-link-string "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil] 1 [mapc org-babel-balanced-split org-babel-parse-header-arguments org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 2 [regexp-opt-charset regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt] 1 ["#<compiled 0x41223509>" mapc org-babel-balanced-split org-babel-parse-header-arguments org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 1 [org-back-to-heading org-get-property-block org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute] 10 [org-outline-level org-up-heading-safe byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil] 25 ["#<compiled 0x40c7ba2f>" mapconcat "#<compiled 0x40c7ba57>" mapconcat org-link-escape org-make-link-string "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil] 1 [org-back-to-heading org-up-heading-safe byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil] 11 [org-babel-number-p org-babel-read "#<compiled 0x41223941>" mapcar org-babel-parse-header-arguments org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [byte-code org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 1 [generate-new-buffer org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 1 [byte-code org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 3 [org-element-at-point byte-code org-element-context org-babel-active-location-p org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 1 [split-string "#<compiled 0x4144343b>" mapc "#<compiled 0x4144344d>" mapc org-babel-merge-params apply org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil] 2 [org-element-headline-parser org-element-at-point org-make-org-heading-search-string "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 4 ["#<compiled 0x40c7977b>" org-entry-get byte-code org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 3 [mapcar regexp-opt-group regexp-opt image-file-name-regexp org-image-file-name-regexp org-make-link-string "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil] 4 [apply "#<compiled 0x41223509>" mapc org-babel-balanced-split org-babel-parse-header-arguments org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [org-outline-level org-up-heading-safe org-in-commented-heading-p org-in-commented-heading-p org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 1 [mapc org-babel-balanced-split org-babel-parse-header-arguments org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 3 ["#<compiled 0x40c7977b>" org-entry-get byte-code org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil] 4 [member-ignore-case org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [generate-new-buffer org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil] 1 [mapc org-babel-balanced-split org-babel-parse-header-arguments org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 4 [org-babel-combine-header-arg-lists org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 5 [member-ignore-case org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil] 9 [org-entry-properties org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 1 [org-before-first-heading-p org-get-property-block org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute] 20 [member-ignore-case org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil] 6 [outline-back-to-heading org-back-to-heading org-heading-components "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 2 [outline-on-heading-p outline-back-to-heading org-back-to-heading org-up-heading-safe byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively] 3 [org-heading-components byte-code org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 1 [org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 3 ["#<compiled 0x41223941>" mapcar org-babel-parse-header-arguments org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 2 [byte-code org-in-regexp "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 1 [mapc "#<compiled 0x4144344d>" mapc org-babel-merge-params apply org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 1 ["#<compiled 0x414433a9>" mapcar org-babel-merge-params apply org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 1 [outline-on-heading-p outline-back-to-heading org-back-to-heading org-up-heading-safe byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute] 2 [outline-on-heading-p outline-back-to-heading org-back-to-heading org-get-property-block org-entry-get byte-code org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively] 5 ["#<compiled 0x412234d5>" "#<compiled 0x41223509>" mapc org-babel-balanced-split org-babel-parse-header-arguments org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil] 1 [org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 1 [org-entry-get byte-code org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 3 [org-outline-level org-up-heading-safe org-in-commented-heading-p org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil] 1 [mapcar org-babel-parse-header-arguments org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 2 [mapcar regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt image-file-name-regexp org-image-file-name-regexp org-make-link-string "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute] 3 [mapc org-babel-balanced-split org-babel-parse-header-arguments org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 1 [org-end-of-subtree org-element-headline-parser org-element-at-point org-make-org-heading-search-string "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 2 [org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 2 [byte-code org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 1 ["#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 1 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt image-file-name-regexp org-image-file-name-regexp org-make-link-string "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block] 1 [org-entry-get byte-code org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [org-back-to-heading org-entry-properties org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [replace-regexp-in-string org-unescape-code-in-string org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 2 [org-get-property-block org-entry-get byte-code org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [byte-code org-element--parse-to org-element-at-point byte-code org-element-context org-babel-active-location-p org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 2 ["#<compiled 0x414433e1>" mapc "#<compiled 0x414433f9>" mapc "#<compiled 0x4144340b>" mapc "#<compiled 0x41443421>" "#<compiled 0x4144343b>" mapc "#<compiled 0x4144344d>" mapc org-babel-merge-params apply org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks] 1 [mapcar org-babel-get-header org-babel-process-params org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 1 [delete-dups regexp-opt image-file-name-regexp org-image-file-name-regexp org-make-link-string "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil] 2 [outline-on-heading-p org-at-heading-p org-element-at-point byte-code org-element-context org-babel-active-location-p org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 1 [mapc org-babel-parse-multiple-vars org-babel-parse-header-arguments org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 1 [mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 1 [org-babel-number-p org-babel-read "#<compiled 0x41223941>" mapcar org-babel-parse-header-arguments org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 1 ["#<compiled 0x414438cd>" mapc org-babel-merge-params apply org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 1 [org-entry-get-with-inheritance org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 2 [outline-back-to-heading org-back-to-heading org-heading-components byte-code org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 1 [org-before-first-heading-p org-get-property-block org-entry-get byte-code org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil] 1 [org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 3 ["#<compiled 0x412234d5>" "#<compiled 0x41223509>" mapc org-babel-balanced-split org-babel-parse-header-arguments org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 2 ["#<compiled 0x41223941>" mapcar org-babel-parse-header-arguments org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 3 [replace-buffer-in-windows kill-buffer byte-code org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 1 [apply org-babel-balanced-split org-babel-parse-header-arguments org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil] 1 [outline-back-to-heading org-back-to-heading org-up-heading-safe byte-code org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil] 1 ["#<compiled 0x412234d5>" "#<compiled 0x41223509>" mapc org-babel-balanced-split org-babel-parse-header-arguments org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [org-babel-where-is-src-block-head org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 2 [replace-regexp-in-string org-unescape-code-in-string org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 1 [org-in-commented-heading-p org-in-commented-heading-p org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 1 [org-remove-if org-babel-combine-header-arg-lists org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 2 [outline-back-to-heading org-back-to-heading org-get-property-block org-entry-get byte-code org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil] 3 [outline-back-to-heading org-back-to-heading org-up-heading-safe org-in-commented-heading-p org-in-commented-heading-p org-in-commented-heading-p org-in-commented-heading-p org-in-commented-heading-p org-in-commented-heading-p org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil] 1 ["#<compiled 0x400e89e7>" mapcar regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt image-file-name-regexp org-image-file-name-regexp org-make-link-string "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block] 1 [org-babel-where-is-src-block-head org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil] 1 [org-up-heading-safe org-in-commented-heading-p org-in-commented-heading-p org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil] 3 [abbreviate-file-name "#<compiled 0x40c7ac5b>" apply org-store-link org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 1 [org-remove-if org-babel-combine-header-arg-lists org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 2 [byte-code org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 1 [outline-on-heading-p outline-back-to-heading org-back-to-heading org-entry-properties org-entry-get "#<compiled 0x41222c73>" mapcar org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-single-block org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil] 1 [org-outline-level org-up-heading-safe byte-code org-entry-get-with-inheritance org-entry-get org-babel-params-from-properties org-babel-parse-src-block-match org-babel-get-src-block-info org-babel-tangle-collect-blocks org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [make-directory "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 37 [help-function-arglist ad-arglist ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil] 170 [help-function-arglist ad-arglist ad-make-cache-id ad-activate-advised-definition ad-activate R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil] 40 ["#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil] 206 [ess-mode R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 2 [replace-regexp-in-string org-unescape-code-in-string org-babel-spec-to-string "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 1 [ess-write-to-dribble-buffer ess-mode R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil] 72 [byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x471d5c67>" "#<compiled 0x471d5c7b>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc] 1 [org-reverse-string org-babel-trim org-babel-spec-to-string "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 2 [byte-compile-no-warnings byte-compile-form byte-compile-setq byte-compile-form byte-compile-body byte-compile-if byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x46d61771>" "#<compiled 0x46d61785>" funcall byte-compile] 1 [advice--add-function advice-add ad-activate-advised-definition ad-activate R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil] 2 [face-attribute face-attr-construct hl-paren-create-overlays highlight-parentheses-mode hpm-on run-hooks apply run-mode-hooks ess-mode R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle] 3 [byte-compile-out-toplevel byte-compile-top-level byte-compile-lambda "#<compiled 0x4535f6bb>" "#<compiled 0x4535f6cf>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc] 8 [advice--make-interactive-form advice--make-1 advice--make advice--add-function advice-add ad-activate-advised-definition ad-activate R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute] 1 [file-relative-name org-babel-spec-to-string "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 3 [org-babel-spec-to-string "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 3 [ess-load-extras ess-mode R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil] 1 [byte-compile-constants-vector byte-compile-out-toplevel byte-compile-top-level byte-compile-lambda "#<compiled 0x484145db>" "#<compiled 0x484145e7>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>"] 1 [byte-optimize-form mapcar byte-optimize-form-code-walker byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form byte-optimize-form-code-walker byte-optimize-form byte-compile-top-level byte-compile-lambda "#<compiled 0x484311db>" "#<compiled 0x484311e7>"] 1 [byte-compile-variable-ref byte-compile-form mapc byte-compile-funcall byte-compile-form byte-compile-body byte-compile-progn byte-compile-form byte-compile-no-warnings byte-compile-form byte-compile-setq byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-if] 2 ["#<compiled 0x41237897>" mapcar org-babel-spec-to-string "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 2 [ad-activate-advised-definition ad-activate R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil] 2 [comment-region-internal comment-region-default comment-region "#<compiled 0x412378b3>" org-babel-spec-to-string "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [byte-compile-if byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x452a85cd>" "#<compiled 0x452a85e1>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode funcall] 1 [ess-write-to-dribble-buffer ess-setq-vars-local ess-mode R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [mapcar byte-optimize-form-code-walker byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form byte-optimize-form-code-walker byte-optimize-form byte-compile-top-level byte-compile-lambda "#<compiled 0x405de91f>" "#<compiled 0x405de933>" funcall] 1 [byte-compile-form byte-compile-setq byte-compile-form byte-compile-body byte-compile-cond byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x4059bed3>" "#<compiled 0x4059bee7>" funcall byte-compile ad-compile-function] 1 [ad-compile-function ad-activate-advised-definition ad-activate R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [highlight-parentheses-mode hpm-on run-hooks apply run-mode-hooks ess-mode R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil] 2 [ad-arglist ad-cache-id-verification-code ad-verify-cache-id ad-activate-advised-definition ad-activate R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil] 1 [byte-compile-normal-call byte-compile-form byte-compile-if byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x46dcdc13>" "#<compiled 0x46dcdc27>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate] 2 [ad-activate R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 1 [comment-region-default comment-region "#<compiled 0x412378b3>" org-babel-spec-to-string "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil] 1 [byte-optimize-and byte-optimize-form byte-optimize-form-code-walker byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form byte-optimize-form-code-walker byte-optimize-form byte-compile-top-level byte-compile-lambda "#<compiled 0x456d170f>" "#<compiled 0x456d1723>" funcall byte-compile ad-compile-function] 1 [ad-Advice-delete-file apply delete-file "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 7 [hl-paren-create-overlays highlight-parentheses-mode hpm-on run-hooks apply run-mode-hooks ess-mode R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute] 2 [font-lock-remove-keywords font-lock-add-keywords "#<lambda 0x321ea7b2fcef0fc1>" run-hooks apply run-mode-hooks ess-mode R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute] 1 [byte-compile-form mapc byte-compile-concat byte-compile-form mapc byte-compile-insert byte-compile-form byte-compile-body byte-compile-cond byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x46d88853>"] 1 ["#<compiled 0x400a2537>" macroexp--expand-all macroexp--all-forms "#<compiled 0x400a2537>" macroexp--expand-all macroexp--all-forms "#<compiled 0x400a2595>" macroexp--expand-all macroexp--all-forms macroexp--expand-all macroexpand-all byte-compile-preprocess "#<compiled 0x4059c697>" "#<compiled 0x4059c6a7>" funcall byte-compile] 1 [ad-arglist ad-make-cache-id ad-activate-advised-definition ad-activate R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil] 2 [comment-region "#<compiled 0x412378b3>" org-babel-spec-to-string "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 1 [ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-insert-argument-access-forms ad-assemble-advised-definition ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode funcall "#<compiled 0x41237409>"] 1 ["#<compiled 0x400c42f3>" "#<compiled 0x400c4363>" sort sort-coding-systems find-coding-systems-region select-safe-coding-system write-region "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil] 1 [byte-compile-preprocess "#<compiled 0x405d7f4d>" "#<compiled 0x405e2855>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively] 1 [byte-compile-callargs-warn byte-compile-normal-call byte-compile-form mapc byte-compile-concat byte-compile-form mapc byte-compile-insert byte-compile-form byte-compile-body byte-compile-cond byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level] 1 [ess-bp-recreate-all run-hooks R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil] 1 [ad-arglist "#<compiled 0x453632dd>" funcall ad-advised-arglist ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode funcall "#<compiled 0x41237409>" mapc "#<compiled 0x41237433>" mapc org-babel-tangle call-interactively command-execute] 1 [byte-optimize-form-code-walker byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form byte-optimize-form-code-walker byte-optimize-form byte-compile-top-level byte-compile-lambda "#<compiled 0x46dc7c2f>" "#<compiled 0x46dc7c43>" funcall byte-compile] 1 [mapcar byte-compile-constants-vector byte-compile-out-toplevel byte-compile-top-level byte-compile-lambda "#<compiled 0x46dca033>" "#<compiled 0x46dca047>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode funcall "#<compiled 0x41237409>" mapc] 1 [org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil nil] 1 [file-truename find-buffer-visiting find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 5 ["#<compiled 0x4059bef3>" funcall find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 5 [locate-dominating-file dir-locals-find-file hack-dir-local-variables "#<compiled 0x4009f7e9>" funcall hack-local-variables "#<compiled 0x4009e7d7>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 22 [locate-dominating-file vc-find-root if let vc-svn-registered apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks after-find-file find-file-noselect-1] 17 [apply process-file apply vc-git--call apply vc-git--out-ok "#<compiled 0x4533f2ef>" funcall vc-git-registered apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend] 119 [apply process-file apply vc-git--call apply vc-git--out-ok apply vc-git--run-command-string vc-git-working-revision apply vc-call-backend vc-working-revision vc-git-mode-line-string apply vc-call-backend vc-mode-line] 99 [apply process-file apply vc-git--call apply vc-git--out-ok apply vc-git--run-command-string vc-git-state apply vc-call-backend vc-default-state-heuristic apply vc-call-backend vc-state-refresh vc-state] 104 [auto-coding-alist-lookup find-auto-coding set-auto-coding insert-file-contents revert-buffer-insert-file-contents--default-function revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil] 1 [flycheck-handle-change byte-code modify-file-local-variable add-file-local-variable progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 2 [basic-save-buffer-2 basic-save-buffer-1 basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 65 [apply process-file apply vc-git--call apply vc-git--out-ok apply vc-git--run-command-string vc-git-state apply vc-call-backend vc-default-state-heuristic apply vc-call-backend vc-state-refresh vc-after-save] 103 [apply process-file apply vc-git--call vc-git-state apply vc-call-backend vc-default-state-heuristic apply vc-call-backend vc-state-refresh vc-after-save basic-save-buffer progn if progn] 77 [mapcar let "#<lambda 0x75a0c2e08>" run-hooks basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 42 [flycheck-filter-overlays flycheck-overlays-in flycheck-delete-all-overlays flycheck-clear flycheck-teardown kill-buffer "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil] 5 [let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-symlink-p apply let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-symlink-p file-truename apply let*] 1 [find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil] 63 ["#<compiled 0x4009dff7>" apply uniquify--create-file-buffer-advice apply create-file-buffer find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil] 23 ["#<compiled 0x453726ef>" funcall company-init-backend mapc company-mode company-mode-on global-company-mode-enable-in-buffers run-hooks run-mode-hooks fundamental-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 1 ["#<compiled 0x4009f29f>" assoc-default set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 4 [image-type-auto-detected-p "#<compiled 0x4009f2c1>" assoc-default set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 1 [locate-dominating-file vc-find-root if vc-bzr-registered apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks after-find-file find-file-noselect-1 find-file-noselect] 19 [apply process-file apply vc-git--call vc-git-state apply vc-call-backend vc-default-state-heuristic apply vc-call-backend vc-state-refresh vc-state vc-default-mode-line-string vc-git-mode-line-string apply vc-call-backend] 3 [revert-buffer-insert-file-contents--default-function revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 20 [company-init-backend mapc company-mode company-mode-on global-company-mode-enable-in-buffers run-hooks run-mode-hooks fundamental-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 1 [assoc-default set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 1 ["#<compiled 0x4528d86f>" run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil] 4 [locate-dominating-file vc-find-root if vc-mtn-registered apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks after-find-file find-file-noselect-1 find-file-noselect] 2 ["#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 16 [autopair-on "#<compiled 0x404c4ed7>" ad-Advice-autopair-global-mode-enable-in-buffers apply autopair-global-mode-enable-in-buffers run-hooks run-mode-hooks fundamental-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 1 [set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 3 [autopair--set-emulation-bindings autopair-mode autopair-on "#<compiled 0x404c4ed7>" ad-Advice-autopair-global-mode-enable-in-buffers apply autopair-global-mode-enable-in-buffers run-hooks run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode] 7 [help-function-arglist ad-arglist ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 11 [help-function-arglist ad-arglist ad-make-cache-id ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 12 [autopair--set-emulation-bindings ad-Advice-autopair-global-mode-enable-in-buffers apply autopair-global-mode-enable-in-buffers autopair-global-mode-check-buffers run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 7 [vc-git-state apply vc-call-backend vc-default-state-heuristic apply vc-call-backend vc-state-refresh vc-state vc-default-mode-line-string vc-git-mode-line-string apply vc-call-backend vc-mode-line vc-find-file-hook run-hooks after-find-file] 9 [find-auto-coding set-auto-coding insert-file-contents revert-buffer-insert-file-contents--default-function revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil] 13 [run-at-time flycheck-handle-change comment-region-internal comment-region-default comment-region byte-code modify-file-local-variable add-file-local-variable progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc] 3 [find-buffer-visiting find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 8 [file-truename file-truename file-truename find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil] 3 [inhibit-local-variables-p set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 1 [hl-paren-create-overlays highlight-parentheses-mode hpm-on run-hooks apply run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect] 19 [apply byte-compile-constants-vector byte-compile-out-toplevel byte-compile-top-level byte-compile-lambda "#<compiled 0x485df25b>" "#<compiled 0x485df267>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>"] 3 [macroexp--all-forms "#<compiled 0x400a2537>" macroexp--expand-all macroexp--all-forms "#<compiled 0x400a2537>" macroexp--expand-all macroexp--all-forms macroexp--all-clauses macroexp--expand-all macroexp--all-forms "#<compiled 0x400a2595>" macroexp--expand-all macroexp--all-forms macroexp--expand-all macroexpand-all byte-compile-preprocess] 1 [run-hooks R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 4 [apply cl-remove-if-not autopair--set-emulation-bindings ad-Advice-autopair-global-mode-enable-in-buffers apply autopair-global-mode-enable-in-buffers autopair-global-mode-check-buffers run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively] 1 [revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 9 [comment-region-default comment-region byte-code modify-file-local-variable add-file-local-variable progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 9 [file-truename file-truename find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 2 [after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 3 [flycheck-overlays-in flycheck-delete-all-overlays flycheck-clear flycheck-teardown kill-all-local-variables ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh] 2 [R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 5 [byte-compile-out-toplevel byte-compile-top-level byte-compile-lambda "#<compiled 0x47e487e1>" "#<compiled 0x4059c273>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode] 15 [auto-coding-regexp-alist-lookup find-auto-coding set-auto-coding insert-file-contents ess-developer--get-package-name ess-developer-activate-in-package run-hooks R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect] 1 [comment-region-internal comment-region-default comment-region byte-code modify-file-local-variable add-file-local-variable progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively] 2 [apply vc-git--call vc-git-state apply vc-call-backend vc-default-state-heuristic apply vc-call-backend vc-state-refresh vc-after-save basic-save-buffer progn if progn if org-babel-mark-file-as-tangled] 1 [flycheck-buffer-automatically flycheck-handle-save run-hooks basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 1 [generate-new-buffer "#<compiled 0x4009dff7>" apply uniquify--create-file-buffer-advice apply create-file-buffer find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil] 8 [remove-hook highlight-parentheses-mode global-highlight-parentheses-mode-enable-in-buffers run-hooks run-mode-hooks fundamental-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 1 [ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 8 [byte-compile-one-arg byte-compile-form mapc byte-compile-normal-call byte-compile-form byte-compile-body byte-compile-progn byte-compile-form byte-compile-if byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x46d6e1d9>"] 1 [byte-code find-auto-coding set-auto-coding insert-file-contents ess-developer--get-package-name ess-developer-activate-in-package run-hooks R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect] 1 ["#<compiled 0x400f29d9>" mapcar vc-check-master-templates vc-default-registered vc-sccs-registered apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks after-find-file find-file-noselect-1] 5 [file-truename file-truename file-truename file-truename file-truename file-truename revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 1 [basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil] 7 [apply let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-symlink-p file-truename apply let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-truename file-truename] 15 [ad-Advice-autopair-global-mode-enable-in-buffers apply autopair-global-mode-enable-in-buffers run-hooks run-mode-hooks fundamental-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 1 ["#<compiled 0x4535b27d>" funcall company-init-backend company-init-backend mapc company-mode company-mode-on global-company-mode-enable-in-buffers run-hooks run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall] 3 [ess-developer ess-developer-activate-in-package run-hooks R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 39 [jit-lock-mode jit-lock-register font-lock-turn-on-thing-lock font-lock-mode-internal font-lock-default-function font-lock-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 1 [file-relative-name vc-git-registered apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 1 [flycheck-teardown run-hooks revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 1 [mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil] 3 [cons let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-truename file-truename file-truename file-truename file-truename file-truename file-truename find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh] 1 [inhibit-local-variables-p hack-local-variables set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 4 [flycheck-overlays-in flycheck-delete-all-overlays flycheck-clear flycheck-mode flycheck-mode-on-safe global-flycheck-mode-enable-in-buffers run-hooks run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file] 2 ["#<compiled 0x46d8843b>" funcall ad-advised-interactive-form ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh] 1 [byte-compile-cond byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x43c0dd37>" "#<compiled 0x43c0dd4b>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode set-auto-mode-0] 2 [inhibit-local-variables-p hack-local-variables "#<compiled 0x4009e7d7>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 3 [apply delete-char comment-region-internal comment-region-default comment-region byte-code modify-file-local-variable add-file-local-variable progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc] 2 [file-truename file-truename file-truename find-buffer-visiting find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil] 2 [hl-paren-create-overlays highlight-parentheses-mode global-highlight-parentheses-mode-enable-in-buffers run-hooks run-mode-hooks fundamental-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 24 [highlight-parentheses-mode hpm-on run-hooks apply run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh] 3 [ad-verify-cache-class-id ad-cache-id-verification-code ad-verify-cache-id ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 3 [byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form "#<compiled 0x40edde0b>" mapcar byte-optimize-form-code-walker byte-optimize-form byte-optimize-body "#<compiled 0x4528c02b>" mapcar byte-optimize-form-code-walker byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form] 1 [hack-local-variables-apply hack-local-variables "#<compiled 0x4009e7d7>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 6 [locate-dominating-file vc-find-root vc-git-root vc-git-registered apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks after-find-file find-file-noselect-1 find-file-noselect] 8 [vc-git-working-revision apply vc-call-backend vc-working-revision vc-git-mode-line-string apply vc-call-backend vc-mode-line vc-find-file-hook run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc] 3 [file-truename file-truename file-truename file-truename file-truename file-truename file-truename find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 2 [vc-find-file-hook run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil] 5 [mapcar select-safe-coding-system write-region basic-save-buffer-2 basic-save-buffer-1 basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively] 3 [file-relative-name vc-git--run-command-string vc-git-state apply vc-call-backend vc-default-state-heuristic apply vc-call-backend vc-state-refresh vc-after-save basic-save-buffer progn if progn if org-babel-mark-file-as-tangled] 1 [cons cons let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-symlink-p apply let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-symlink-p file-truename] 1 [hack-local-variables set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 1 ["#<compiled 0x4008e827>" called-interactively-p autopair-mode autopair-on "#<compiled 0x404c4ed7>" ad-Advice-autopair-global-mode-enable-in-buffers apply autopair-global-mode-enable-in-buffers run-hooks run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall] 1 [byte-optimize-form-code-walker byte-optimize-form byte-optimize-form-code-walker byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form byte-optimize-form-code-walker byte-optimize-form byte-compile-top-level byte-compile-lambda "#<compiled 0x4530fe61>" "#<compiled 0x4530fe75>" funcall byte-compile ad-compile-function] 2 [ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-insert-argument-access-forms ad-assemble-advised-definition ad-make-advised-definition] 2 [kill-buffer "#<compiled 0x4119c163>" funcall vc-git--run-command-string vc-git-state apply vc-call-backend vc-default-state-heuristic apply vc-call-backend vc-state-refresh vc-after-save basic-save-buffer progn if progn] 1 [global-highlight-parentheses-mode-enable-in-buffers run-hooks run-mode-hooks fundamental-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 1 [ad-cache-id-verification-code ad-verify-cache-id ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc] 2 [byte-compile-if byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x45351abf>" "#<compiled 0x45351ad3>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode set-auto-mode-0] 4 [ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 5 [abbreviate-file-name find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 1 [uniquify-rationalize-file-buffer-names uniquify--create-file-buffer-advice apply create-file-buffer find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil] 2 ["#<compiled 0x4008e827>" called-interactively-p highlight-parentheses-mode global-highlight-parentheses-mode-enable-in-buffers run-hooks run-mode-hooks fundamental-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively] 2 [run-hooks font-lock-mode ess-noweb-old-turn-on-font-lock turn-on-font-lock run-hooks apply run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1] 1 ["#<compiled 0x4009d433>" locate-file-internal locate-file cd "#<compiled 0x456ccf25>" funcall vc-git-registered apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks] 1 [write-region basic-save-buffer-2 basic-save-buffer-1 basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 2 [ad-has-enabled-advice ad-has-redefining-advice ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 4 [hack-local-variables-prop-line hack-local-variables "#<compiled 0x4009e7d7>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 2 [time-add timer-relative-time run-at-time flycheck-handle-change comment-region-internal comment-region-default comment-region byte-code modify-file-local-variable add-file-local-variable progn if progn if org-babel-mark-file-as-tangled run-hooks] 2 [file-truename find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 6 [flycheck-teardown kill-all-local-variables ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 1 [ad-arglist ad-cache-id-verification-code ad-verify-cache-id ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 1 [byte-compile-constants-vector byte-compile-out-toplevel byte-compile-top-level byte-compile-lambda "#<compiled 0x456ddb61>" "#<compiled 0x456ddedd>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall] 4 [byte-code modify-file-local-variable add-file-local-variable progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 9 [vc-state-refresh vc-after-save basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 2 [uniquify-rationalize uniquify-rationalize-file-buffer-names uniquify--create-file-buffer-advice apply create-file-buffer find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil] 2 [run-hook-with-args-until-success called-interactively-p highlight-parentheses-mode hpm-on run-hooks apply run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1] 1 [ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively] 5 [mode-local-post-major-mode-change run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil] 2 [vc-git--run-command-string vc-git-state apply vc-call-backend vc-default-state-heuristic apply vc-call-backend vc-state-refresh vc-after-save basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks] 4 [file-truename file-truename file-truename file-truename file-truename find-buffer-visiting find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil] 4 [highlight-parentheses-mode global-highlight-parentheses-mode-enable-in-buffers run-hooks run-mode-hooks fundamental-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 4 [flycheck-handle-change comment-region-internal comment-region-default comment-region byte-code modify-file-local-variable add-file-local-variable progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle] 6 [file-truename file-truename file-truename find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 4 [file-name-sans-versions inhibit-local-variables-p set-auto-mode-1 "#<compiled 0x452cb6bf>" funcall hack-local-variables-prop-line hack-local-variables set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 1 [ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-assemble-advised-definition ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode] 1 [ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree] 1 [flycheck-filter-overlays flycheck-overlays-in flycheck-delete-all-overlays flycheck-clear flycheck-teardown run-hooks revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 14 [comment-region byte-code modify-file-local-variable add-file-local-variable progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 2 [byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc] 1 [ad-clear-cache ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 2 [file-truename file-truename file-truename file-truename revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [flycheck-clear flycheck-teardown kill-buffer "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 1 [face-attribute face-attr-construct hl-paren-create-overlays highlight-parentheses-mode global-highlight-parentheses-mode-enable-in-buffers run-hooks run-mode-hooks fundamental-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 3 ["#<compiled 0x452d72b5>" advice--add-function advice-add ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 2 ["#<compiled 0x400f29d9>" mapcar vc-check-master-templates vc-default-registered vc-rcs-registered apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks after-find-file find-file-noselect-1] 5 [modify-file-local-variable add-file-local-variable progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil] 10 [coding-system-get "#<compiled 0x400c42f3>" "#<compiled 0x400c4363>" sort sort-coding-systems find-coding-systems-region select-safe-coding-system write-region basic-save-buffer-2 basic-save-buffer-1 basic-save-buffer progn if progn if org-babel-mark-file-as-tangled] 1 [font-lock-set-defaults font-lock-add-keywords "#<lambda 0x321ea7b2fcef0fc1>" run-hooks apply run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect] 1 [byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x452ec255>" "#<compiled 0x452ec269>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode] 4 [remove-hook autopair-global-mode-check-buffers run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [insert-file-contents revert-buffer-insert-file-contents--default-function revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 1 [file-truename find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 4 ["#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil] 2 [ess-developer--get-package-path ess-developer--get-package-name ess-developer-activate-in-package run-hooks R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc] 2 ["#<compiled 0x452ff62d>" funcall vc-git-registered apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh] 4 [apply vc-call-backend vc-working-revision vc-git-mode-line-string apply vc-call-backend vc-mode-line vc-find-file-hook run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 1 [file-truename file-truename file-truename file-truename file-truename find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil] 3 [file-truename file-truename file-truename file-truename file-truename file-truename find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 2 [inhibit-local-variables-p set-auto-mode-1 "#<compiled 0x45313a13>" funcall hack-local-variables-prop-line hack-local-variables set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc] 2 [ess-developer--get-package-name ess-developer-activate-in-package run-hooks R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 3 [file-remote-p hack-dir-local-variables "#<compiled 0x4009f7e9>" funcall hack-local-variables "#<compiled 0x4009e7d7>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively] 1 [ad-assemble-advised-definition ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc] 1 [after-find-file revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil] 1 [file-truename file-truename file-truename file-truename find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [let "#<lambda 0x75a0c2e08>" run-hooks basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 3 [file-truename file-truename file-truename file-truename find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil] 2 [mapc ess-setq-vars-local ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 3 [ess-roxy-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 2 [byte-code find-auto-coding set-auto-coding insert-file-contents revert-buffer-insert-file-contents--default-function revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil] 1 ["#<lambda 0x75a0c2e08>" run-hooks basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 3 [set-auto-coding insert-file-contents "#<compiled 0x45362e8d>" funcall find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [inhibit-local-variables-p set-auto-mode-1 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 3 [ad-has-enabled-advice ad-has-redefining-advice ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 5 [byte-code find-auto-coding set-auto-coding insert-file-contents "#<compiled 0x4536fe99>" funcall find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 2 [ad-parse-arglist ad-access-argument ad-get-argument "#<compiled 0x405f93e9>" mapcar ad-map-arglists ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file] 1 [byte-compile-push-constant byte-compile-normal-call byte-compile-form mapc byte-compile-concat byte-compile-form mapc byte-compile-insert byte-compile-form byte-compile-body byte-compile-cond byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level] 1 [apply vc-git--out-ok "#<compiled 0x405f0093>" funcall vc-git-registered apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks after-find-file find-file-noselect-1] 2 [tramp-completion-file-name-handler file-truename file-truename file-truename file-truename file-truename file-truename file-truename revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 1 [auto-coding-regexp-alist-lookup find-auto-coding select-safe-coding-system write-region basic-save-buffer-2 basic-save-buffer-1 basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle] 3 [cons let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-name-nondirectory file-truename apply let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-truename file-truename] 2 [file-name-sans-versions inhibit-local-variables-p hack-local-variables set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 2 [company-init-backend company-init-backend mapc company-mode company-mode-on global-company-mode-enable-in-buffers run-hooks run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file] 1 [byte-compile-associative byte-compile-form byte-compile-one-arg byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-body byte-compile-cond byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x46cffef3>"] 2 [vc-file-setprop vc-state-refresh vc-state vc-default-mode-line-string vc-git-mode-line-string apply vc-call-backend vc-mode-line vc-find-file-hook run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc] 1 [directory-file-name file-truename apply let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-truename file-truename file-truename file-truename file-truename file-truename file-truename find-buffer-visiting] 1 [ess-load-extras ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively] 1 [byte-compile-normal-call byte-compile-form byte-compile-one-arg byte-compile-form mapc byte-compile-normal-call byte-compile-form byte-compile-body byte-compile-progn byte-compile-form byte-compile-if byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level] 1 [ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-assemble-advised-definition ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode] 1 [process-file apply vc-git--call apply vc-git--out-ok apply vc-git--run-command-string vc-git-working-revision apply vc-call-backend vc-working-revision vc-git-mode-line-string apply vc-call-backend vc-mode-line vc-find-file-hook] 2 [sgml-html-meta-auto-coding-function byte-code find-auto-coding set-auto-coding insert-file-contents "#<compiled 0x4843e1db>" funcall find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 1 [file-truename file-truename file-truename file-truename file-truename file-truename file-truename revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 1 [make-backup-file-name-1 find-backup-file-name backup-buffer basic-save-buffer-2 basic-save-buffer-1 basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively] 1 ["#<compiled 0x453072c9>" funcall find-backup-file-name backup-buffer basic-save-buffer-2 basic-save-buffer-1 basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle] 24 [sgml-xml-auto-coding-function byte-code find-auto-coding select-safe-coding-system write-region basic-save-buffer-2 basic-save-buffer-1 basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc] 1 [autopair-mode autopair-on "#<compiled 0x404c4ed7>" ad-Advice-autopair-global-mode-enable-in-buffers apply autopair-global-mode-enable-in-buffers run-hooks run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file] 1 [macroexp--all-forms "#<compiled 0x400a2537>" macroexp--expand-all macroexp--all-forms "#<compiled 0x400a2537>" macroexp--expand-all macroexp--all-forms "#<compiled 0x400a2537>" macroexp--expand-all macroexp--all-forms "#<compiled 0x400a2537>" macroexp--expand-all macroexp--all-forms "#<compiled 0x400a2595>" macroexp--expand-all macroexp--all-forms] 1 [byte-compile-variable-ref byte-compile-form mapc byte-compile-funcall byte-compile-form byte-compile-body byte-compile-progn byte-compile-form byte-compile-no-warnings byte-compile-form byte-compile-setq byte-compile-form byte-compile-body byte-compile-if byte-compile-form byte-compile-body] 1 ["#<compiled 0x4119c163>" funcall vc-git--run-command-string vc-git-state apply vc-call-backend vc-default-state-heuristic apply vc-call-backend vc-state-refresh vc-after-save basic-save-buffer progn if progn if] 2 [byte-optimize-form byte-optimize-form-code-walker byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form byte-optimize-form-code-walker byte-optimize-form byte-compile-top-level byte-compile-lambda "#<compiled 0x470f924d>" "#<compiled 0x470f9261>" funcall byte-compile ad-compile-function ad-activate-advised-definition] 1 [byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form byte-optimize-form-code-walker byte-optimize-form byte-compile-top-level byte-compile-lambda "#<compiled 0x470eda89>" "#<compiled 0x470eda9d>" funcall byte-compile ad-compile-function] 1 [advice-add ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 2 [find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil] 1 [add-hook R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 1 [cons cons let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-symlink-p file-truename apply let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-truename] 1 ["#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 1 [file-truename file-truename file-truename revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil] 1 [apply let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-name-nondirectory file-truename apply let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-truename file-truename] 2 [ad-parse-arglist ad-map-arglists ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 2 [byte-compile-form mapc byte-compile-funcall byte-compile-form byte-compile-body byte-compile-progn byte-compile-form byte-compile-no-warnings byte-compile-form byte-compile-setq byte-compile-form byte-compile-body byte-compile-cond byte-compile-form byte-compile-body byte-compile-let] 1 [timer--time-setter timer-set-time run-at-time flycheck-handle-change comment-region-internal comment-region-default comment-region byte-code modify-file-local-variable add-file-local-variable progn if progn if org-babel-mark-file-as-tangled run-hooks] 1 [font-lock-add-keywords "#<lambda 0x321ea7b2fcef0fc1>" run-hooks apply run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh] 2 [macroexp--all-forms "#<compiled 0x400a2537>" macroexp--expand-all macroexp--all-forms macroexp--all-clauses macroexp--expand-all macroexp--all-forms "#<compiled 0x400a2595>" macroexp--expand-all macroexp--all-forms macroexp--expand-all macroexpand-all byte-compile-preprocess "#<compiled 0x452ceee3>" "#<compiled 0x452eea59>" funcall] 1 [seconds-to-time timer-relative-time run-at-time flycheck-handle-change comment-region-internal comment-region-default comment-region byte-code modify-file-local-variable add-file-local-variable progn if progn if org-babel-mark-file-as-tangled run-hooks] 1 [ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-substitute-tree ad-insert-argument-access-forms ad-assemble-advised-definition ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode set-auto-mode-0] 1 [byte-optimize-form byte-optimize-body "#<compiled 0x45354e13>" mapcar byte-optimize-form-code-walker byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form byte-optimize-form-code-walker byte-optimize-form byte-compile-top-level byte-compile-lambda "#<compiled 0x45354abb>" "#<compiled 0x45354acf>" funcall] 1 [ad-map-arglists ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc] 3 [vc-git-state apply vc-call-backend vc-default-state-heuristic apply vc-call-backend vc-state-refresh vc-after-save basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>"] 4 [remove-hook font-lock-turn-on-thing-lock font-lock-mode-internal font-lock-default-function font-lock-mode ess-noweb-old-turn-on-font-lock turn-on-font-lock run-hooks apply run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall] 1 [apply find if let "#<lambda 0x75a0c2e08>" run-hooks basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle] 1 [let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-name-as-directory file-truename file-truename file-truename file-truename file-truename file-truename find-buffer-visiting find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 1 [uniquify--create-file-buffer-advice apply create-file-buffer find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil] 1 [byte-compile-constant byte-compile-form mapc byte-compile-normal-call byte-compile-form byte-compile-body byte-compile-progn byte-compile-form byte-compile-if byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x46dcc451>"] 1 [ad-advised-interactive-form ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc] 2 [inhibit-local-variables-p set-auto-mode-1 "#<compiled 0x46db0039>" funcall hack-local-variables-prop-line hack-local-variables "#<compiled 0x4009e7d7>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 2 [file-truename file-truename file-truename file-truename file-truename file-truename find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil] 1 [mapc company-mode company-mode-on global-company-mode-enable-in-buffers run-hooks run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect] 1 [unrecord-window-buffer replace-buffer-in-windows kill-buffer "#<compiled 0x452c5e4b>" funcall vc-git-registered apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks after-find-file] 1 [ess-noweb-old-turn-on-font-lock turn-on-font-lock turn-on-font-lock-if-desired global-font-lock-mode-enable-in-buffers run-hooks run-mode-hooks fundamental-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively] 1 [font-lock-mode-internal font-lock-default-function font-lock-mode ess-noweb-old-turn-on-font-lock turn-on-font-lock run-hooks apply run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file] 1 ["#<compiled 0x40eecd87>" mode-local-map-file-buffers mode-local-post-major-mode-change run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil] 1 ["#<compiled 0x4119c163>" funcall vc-git--run-command-string vc-git-state apply vc-call-backend vc-default-state-heuristic apply vc-call-backend vc-state-refresh vc-state vc-default-mode-line-string vc-git-mode-line-string apply vc-call-backend vc-mode-line] 1 [file-symlink-p apply let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-symlink-p file-truename apply let* tramp-completion-run-real-handler if let tramp-completion-file-name-handler file-truename] 2 [byte-optimize-form-code-walker byte-optimize-form mapcar byte-optimize-form-code-walker byte-optimize-form mapcar byte-optimize-form-code-walker byte-optimize-form byte-optimize-body "#<compiled 0x452dc691>" mapcar byte-optimize-form-code-walker byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form] 1 [locate-dominating-file vc-find-root if vc-hg-registered apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks after-find-file find-file-noselect-1 find-file-noselect] 1 [run-hooks run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 2 [byte-optimize-form mapcar byte-optimize-form-code-walker byte-optimize-form byte-optimize-body "#<compiled 0x452f52e7>" mapcar byte-optimize-form-code-walker byte-optimize-form byte-optimize-body byte-optimize-form-code-walker byte-optimize-form byte-optimize-form-code-walker byte-optimize-form byte-compile-top-level byte-compile-lambda] 1 [generate-new-buffer ess-developer--get-package-name ess-developer-activate-in-package run-hooks R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc] 1 [ad-get-enabled-advices "#<compiled 0x45305675>" funcall ad-advised-interactive-form ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect] 1 [remove-hook global-highlight-parentheses-mode-check-buffers run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [kill-buffer "#<compiled 0x4119c163>" funcall vc-git--run-command-string vc-git-working-revision apply vc-call-backend vc-working-revision vc-git-mode-line-string apply vc-call-backend vc-mode-line vc-find-file-hook run-hooks after-find-file find-file-noselect-1] 1 [vc-default-state-heuristic apply vc-call-backend vc-state-refresh vc-after-save basic-save-buffer progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively] 1 [after-insert-file-set-coding insert-file-contents revert-buffer-insert-file-contents--default-function revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil] 1 [auto-coding-regexp-alist-lookup find-auto-coding set-auto-coding insert-file-contents "#<compiled 0x45331a91>" funcall find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 1 [if vc-cvs-registered apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 2 ["#<compiled 0x453412ab>" funcall vc-git-registered apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh] 2 ["#<compiled 0x4008e827>" called-interactively-p highlight-parentheses-mode hpm-on run-hooks apply run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1] 1 [ad-has-redefining-advice ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively] 1 [ad-arglist "#<compiled 0x4536d277>" funcall ad-advised-arglist ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect] 1 [macroexp--all-forms macroexp--all-clauses macroexp--expand-all macroexp--all-forms "#<compiled 0x400a2595>" macroexp--expand-all macroexp--all-forms macroexp--expand-all macroexpand-all byte-compile-preprocess "#<compiled 0x46d78787>" "#<compiled 0x46d7879b>" funcall byte-compile ad-compile-function ad-activate-advised-definition] 1 [file-name-sans-versions inhibit-local-variables-p hack-local-variables "#<compiled 0x4009e7d7>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 1 [ess-write-to-dribble-buffer ess-setq-vars-local ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 1 [byte-compile-lambda "#<compiled 0x47e213ef>" "#<compiled 0x47e21fe3>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1] 3 [apply vc-call-backend "#<compiled 0x400f25d3>" mapc byte-code vc-registered vc-backend vc-find-file-hook run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle] 1 [file-name-sans-versions inhibit-local-variables-p set-auto-mode-1 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 1 [timer-relative-time run-at-time flycheck-handle-change comment-region-internal comment-region-default comment-region byte-code modify-file-local-variable add-file-local-variable progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>"] 1 [apply cl-remove-if-not autopair--set-emulation-bindings autopair-mode autopair-on "#<compiled 0x404c4ed7>" ad-Advice-autopair-global-mode-enable-in-buffers apply autopair-global-mode-enable-in-buffers run-hooks run-mode-hooks fundamental-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect] 1 [eval "#<compiled 0x4522db69>" mapc ess-setq-vars-local ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 1 [byte-compile-form mapc byte-compile-funcall byte-compile-form byte-compile-body byte-compile-progn byte-compile-form byte-compile-no-warnings byte-compile-form byte-compile-setq byte-compile-form byte-compile-body byte-compile-if byte-compile-form byte-compile-body byte-compile-let] 1 [byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x453774bb>" "#<compiled 0x453774cf>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall] 1 [hack-local-variables-prop-line hack-local-variables set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 1 [byte-compile-normal-call byte-compile-form byte-compile-body byte-compile-save-excursion byte-compile-form byte-compile-push-binding-init byte-compile-let byte-compile-form byte-compile-body byte-compile-cond byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda] 1 [autopair--set-emulation-bindings autopair-mode autopair-on "#<compiled 0x404c4ed7>" ad-Advice-autopair-global-mode-enable-in-buffers apply autopair-global-mode-enable-in-buffers run-hooks run-mode-hooks fundamental-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 1 [find-new-buffer-file-coding-system after-insert-file-set-coding insert-file-contents revert-buffer-insert-file-contents--default-function revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil] 1 [flycheck-mode flycheck-mode-on-safe global-flycheck-mode-enable-in-buffers run-hooks run-mode-hooks ess-mode R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh] 1 [flycheck-mode-on-safe global-flycheck-mode-enable-in-buffers run-hooks run-mode-hooks fundamental-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil] 1 [byte-compile-discard byte-compile-form byte-compile-body byte-compile-progn byte-compile-form byte-compile-if byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x47e467a3>" "#<compiled 0x47e467b7>" funcall byte-compile] 1 [byte-compile-variable-ref byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x453502cd>" "#<compiled 0x453502e1>" funcall byte-compile ad-compile-function ad-activate-advised-definition ad-activate R-mode set-auto-mode-0] 1 [vc-git--run-command-string vc-git-working-revision apply vc-call-backend vc-working-revision vc-git-mode-line-string apply vc-call-backend vc-mode-line vc-find-file-hook run-hooks after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 1 [timer-activate run-at-time flycheck-handle-change comment-region-internal comment-region-default comment-region byte-code modify-file-local-variable add-file-local-variable progn if progn if org-babel-mark-file-as-tangled run-hooks "#<compiled 0x41237455>"] 2 [run-hooks autopair-mode autopair-on "#<compiled 0x404c4ed7>" ad-Advice-autopair-global-mode-enable-in-buffers apply autopair-global-mode-enable-in-buffers run-hooks run-mode-hooks fundamental-mode normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>"] 1 [byte-compile-form byte-compile-and-recursion byte-compile-and-recursion byte-compile-and byte-compile-form byte-compile-if byte-compile-form byte-compile-body byte-compile-let byte-compile-form byte-compile-top-level byte-compile-lambda "#<compiled 0x453582c7>" "#<compiled 0x453582db>" funcall byte-compile] 1 [ad-arglist ad-make-advised-definition ad-activate-advised-definition ad-activate R-mode set-auto-mode-0 set-auto-mode "#<compiled 0x4009e7a3>" funcall normal-mode after-find-file find-file-noselect-1 find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc] 1 [file-truename file-truename file-truename file-truename file-truename file-truename file-truename file-truename revert-buffer--default revert-buffer org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute] 1 [file-truename file-truename file-truename file-truename file-truename file-truename find-buffer-visiting find-file-noselect org-babel-find-file-noselect-refresh "#<compiled 0x41237455>" mapc org-babel-tangle call-interactively command-execute nil nil] 1 ["#<compiled 0x41237465>" mapc org-babel-tangle call-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 2 [org-element-at-point org-mode-flyspell-verify flyspell-word byte-code flyspell-post-command-hook nil nil nil nil nil nil nil nil nil nil nil] 1 [byte-code flyspell-post-command-hook nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 2 ["#<lambda 0x13bab44dbe97489d>" mapcar sort let tabbar-buffer-update-groups tabbar-get-tabset let tabbar-buffer-tabs funcall setq and tabbar-current-tabset cond tabbar-line eval redisplay_internal\ \(C\ function\)] 1 [let and if cond list tabbar-buffer-groups funcall if list save-current-buffer "#<lambda 0x13bab44dbe97489d>" mapcar sort let tabbar-buffer-update-groups tabbar-get-tabset] 1 [apply byte-code timer-event-handler nil nil nil nil nil nil nil nil nil nil nil nil nil] 2 [timer--time-less-p timer--activate timer-activate timer-event-handler nil nil nil nil nil nil nil nil nil nil nil nil] 1 ["#<compiled 0x40d80939>" mapatoms smex-detect-new-commands smex call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 3 [mapatoms smex-detect-new-commands smex call-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 1 [smex call-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil nil] 1 [mapc ido-set-matches-1 ido-set-matches ido-read-internal ido-completing-read smex-completing-read smex-read-and-run smex call-interactively command-execute nil nil nil nil nil nil] 6 [ido-completing-read smex-completing-read smex-read-and-run smex call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 1 [byte-code ido-read-internal ido-completing-read smex-completing-read smex-read-and-run smex call-interactively command-execute nil nil nil nil nil nil nil nil] 30 [mapc ido-set-matches-1 ido-set-matches ido-exhibit read-from-minibuffer byte-code ido-read-internal ido-completing-read smex-completing-read smex-read-and-run smex call-interactively command-execute nil nil nil] 6 [mapcar ido-completions ido-exhibit read-from-minibuffer byte-code ido-read-internal ido-completing-read smex-completing-read smex-read-and-run smex call-interactively command-execute nil nil nil nil] 1 [ido-completions ido-exhibit read-from-minibuffer byte-code ido-read-internal ido-completing-read smex-completing-read smex-read-and-run smex call-interactively command-execute nil nil nil nil nil] 3 [read-from-minibuffer byte-code ido-read-internal ido-completing-read smex-completing-read smex-read-and-run smex call-interactively command-execute nil nil nil nil nil nil nil] 57 [window--resize-root-window-vertically redisplay_internal\ \(C\ function\) read-from-minibuffer byte-code ido-read-internal ido-completing-read smex-completing-read smex-read-and-run smex call-interactively command-execute nil nil nil nil nil] 1 [save-current-buffer "#<lambda 0x13bab44dbe97489d>" mapcar sort let tabbar-buffer-update-groups tabbar-get-tabset let tabbar-buffer-tabs funcall setq and tabbar-current-tabset cond tabbar-line eval] 1 [format eval redisplay_internal\ \(C\ function\) read-from-minibuffer byte-code ido-read-internal ido-completing-read smex-completing-read smex-read-and-run smex call-interactively command-execute nil nil nil nil] 1 [ido-chop ido-next-match call-interactively command-execute read-from-minibuffer byte-code ido-read-internal ido-completing-read smex-completing-read smex-read-and-run smex call-interactively command-execute nil nil nil] 2 [hl-paren-create-overlays highlight-parentheses-mode global-highlight-parentheses-mode-enable-in-buffers run-hooks run-mode-hooks minibuffer-inactive-mode read-from-minibuffer byte-code ido-read-internal ido-completing-read smex-completing-read smex-read-and-run smex call-interactively command-execute nil] 1 [execute-extended-command smex-read-and-run smex call-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 1 [profiler-cpu-profile profiler-report-cpu profiler-report call-interactively command-execute execute-extended-command smex-read-and-run smex call-interactively command-execute nil nil nil nil nil nil] 4 [Automatic\ GC] 912)) (21886 35424 637283 0) nil]

[-- Attachment #1.3: Type: text/plain, Size: 5635 bytes --]



Rainer M Krug <Rainer@krugs.de> writes:

> Hi
>
> I have a relatively large file with
> about 200 =source blocks (R) to be tangled to get an R package. But the
> tangling takes about 20 seconds.
>
> Profiling the tangling showed that the call to ~mapcar~ in
> ~org-babel-params-from-properties~ takes about 40% of the execution time
> (see profiler excerpt below). Is there anything one can do to make this
> faster?
>
> In addition to this, I observed there is some interaction with ESS when
> tangling, which in my understanding is not necessary. I get messages
> like
>
> ,----
> | ...
> | Wrote /Users/rainerkrug/Documents/Projects/EnergyBalance/.Rbuildignore
> | Wrote /Users/rainerkrug/Documents/Projects/EnergyBalance/tests/wpLELTest.R
> | You are developing: (EnergyBalance)
> | Wrote /Users/rainerkrug/Documents/Projects/EnergyBalance/R/plotwpLELFitListParDistr.R
> | You are developing: (EnergyBalance)
> | ...
> `----
>
> where the messages "You are developing: (EnergyBalance)" come from
> ESS. Is this to be expected that R is called for some blocks, but not
> for others, when tangling?
>
> Version info:
> ,----
> | Org-mode version 8.3beta (release_8.3beta-1209-gc532ff @ /Users/rainerkrug/.emacs.d/org-mode/lisp/)
> | GNU Emacs 24.5.1 (x86_64-apple-darwin14.3.0, Carbon Version 157
> | AppKit 1347.57) of 2015-04-13 on Rainers-MacBook-Pro.local
> `----
>
> Cheers,
>
> Rainer
>
> ,----
> | - time-execute                                                4950  84%
> |  - call-interactively                                            4950  84%
> |   - org-babel-tangle                                             4828  82%
> |    - org-babel-tangle-collect-blocks                             2728  46%
> |     - org-babel-tangle-single-block                              1363  23%
> |      - org-babel-get-src-block-info                              1304  22%
> |       - org-babel-parse-src-block-match                          1210  20%
> |###     - org-babel-params-from-properties                        1193  20%
> |         + mapcar                                                 1144  19%
> |         + org-entry-get                                            33   0%
> |         + org-babel-parse-header-arguments                         12   0%
> |         + org-babel-combine-header-arg-lists                        4   0%
> |        + org-babel-parse-header-arguments                           3   0%
> |        + apply                                                      2   0%
> |          generate-new-buffer                                        1   0%
> |        + org-unescape-code-in-string                                1   0%
> |          byte-code                                                  1   0%
> |       + org-babel-generate-file-param                              86   1%
> |       + org-babel-process-params                                    2   0%
> |         org-babel-where-is-src-block-head                           1   0%
> |      + org-store-link                                              36   0%
> |        line-number-at-pos                                          17   0%
> |      + byte-code                                                    2   0%
> |        generate-new-buffer                                          1   0%
> |     - org-babel-get-src-block-info                               1334  22%
> |      - org-babel-parse-src-block-match                           1235  21%
> |####   - org-babel-params-from-properties                         1212  20%
> |        + mapcar                                                  1163  19%
> |        + org-entry-get                                             30   0%
> |        + org-babel-parse-header-arguments                          12   0%
> |        + org-babel-combine-header-arg-lists                         7   0%
> |       + org-babel-parse-header-arguments                            7   0%
> |       + apply                                                       4   0%
> |       + org-unescape-code-in-string                                 2   0%
> |         generate-new-buffer                                         1   0%
> |      + org-babel-generate-file-param                               89   1%
> |        org-babel-where-is-src-block-head                            2   0%
> |     + org-in-commented-heading-p                                    8   0%
> |     + org-babel-active-location-p                                   4   0%
> |     + byte-code                                                     2   0%
> |    + mapc                                                        2098  35%
> |    + run-hooks                                                      1   0%
> |   + smex                                                          122   2%
> | + ...                                                             912  15%
> | + flyspell-post-command-hook                                        4   0%
> | + redisplay_internal (C function)                                   3   0%
> | + timer-event-handler                                               3   0%
> `----

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 480 bytes --]

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

* Re: Tangling takes long - profiling and calling R
  2015-06-15  8:39 Tangling takes long - profiling and calling R Rainer M Krug
  2015-06-15  8:42 ` Rainer M Krug
@ 2015-06-15 18:52 ` Charles C. Berry
  2015-06-16 10:29   ` Rainer M Krug
  2015-06-15 19:49 ` Nicolas Goaziou
  2 siblings, 1 reply; 31+ messages in thread
From: Charles C. Berry @ 2015-06-15 18:52 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

On Mon, 15 Jun 2015, Rainer M Krug wrote:

> Hi
>
> I have a relatively large file with
> about 200 =source blocks (R) to be tangled to get an R package. But the
> tangling takes about 20 seconds.
>
> Profiling the tangling showed that the call to ~mapcar~ in
> ~org-babel-params-from-properties~ takes about 40% of the execution time
> (see profiler excerpt below). Is there anything one can do to make this
> faster?
>
> In addition to this, I observed there is some interaction with ESS when
> tangling, which in my understanding is not necessary. I get messages
> like
>
> ,----
> | ...
> | Wrote /Users/rainerkrug/Documents/Projects/EnergyBalance/.Rbuildignore
> | Wrote /Users/rainerkrug/Documents/Projects/EnergyBalance/tests/wpLELTest.R
> | You are developing: (EnergyBalance)
> | Wrote /Users/rainerkrug/Documents/Projects/EnergyBalance/R/plotwpLELFitListParDistr.R
> | You are developing: (EnergyBalance)
> | ...
> `----
>
> where the messages "You are developing: (EnergyBalance)" come from
> ESS. Is this to be expected that R is called for some blocks, but not
> for others, when tangling?

The major mode is invoked when tangling, if possible.

This enables comments to be rendered. See the docstring for 
`org-babel-spec-to-string'.

HTH,

Chuck

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

* Re: Tangling takes long - profiling and calling R
  2015-06-15  8:39 Tangling takes long - profiling and calling R Rainer M Krug
  2015-06-15  8:42 ` Rainer M Krug
  2015-06-15 18:52 ` Charles C. Berry
@ 2015-06-15 19:49 ` Nicolas Goaziou
  2015-06-16 10:34   ` Rainer M Krug
  2 siblings, 1 reply; 31+ messages in thread
From: Nicolas Goaziou @ 2015-06-15 19:49 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

Hello,

Rainer M Krug <Rainer@krugs.de> writes:

> I have a relatively large file with
> about 200 =source blocks (R) to be tangled to get an R package. But the
> tangling takes about 20 seconds.
>
> Profiling the tangling showed that the call to ~mapcar~ in
> ~org-babel-params-from-properties~ takes about 40% of the execution time
> (see profiler excerpt below). Is there anything one can do to make this
> faster?

In this function, there is

     ;; DEPRECATED header arguments specified as separate property at
     ;; point of definition
     (let (val sym)
       (org-babel-parse-multiple-vars
	(delq nil
	      (mapcar
	       (lambda (header-arg)
		 (and (setq val (org-entry-get (point) header-arg t))
		      (cons (intern (concat ":" header-arg))
			    (org-babel-read val))))
	       (mapcar
		#'symbol-name
		(mapcar
		 #'car
		 (org-babel-combine-header-arg-lists
		  org-babel-common-header-args-w-values
		  (progn
		    (setq sym (intern (concat "org-babel-header-args:" lang)))
		    (and (boundp sym) (eval sym))))))))))

While the 3 `mapcar' calls could be turned into a single one, I wonder
if this snippet could be removed altogether instead. It has been
deprecated for 2 years already.

WDYT?

Regards,

-- 
Nicolas Goaziou

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

* Re: Tangling takes long - profiling and calling R
  2015-06-15 18:52 ` Charles C. Berry
@ 2015-06-16 10:29   ` Rainer M Krug
  0 siblings, 0 replies; 31+ messages in thread
From: Rainer M Krug @ 2015-06-16 10:29 UTC (permalink / raw)
  To: Charles C. Berry; +Cc: emacs-orgmode

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

"Charles C. Berry" <ccberry@ucsd.edu> writes:

> On Mon, 15 Jun 2015, Rainer M Krug wrote:
>
>> Hi
>>
>> I have a relatively large file with
>> about 200 =source blocks (R) to be tangled to get an R package. But the
>> tangling takes about 20 seconds.
>>
>> Profiling the tangling showed that the call to ~mapcar~ in
>> ~org-babel-params-from-properties~ takes about 40% of the execution time
>> (see profiler excerpt below). Is there anything one can do to make this
>> faster?
>>
>> In addition to this, I observed there is some interaction with ESS when
>> tangling, which in my understanding is not necessary. I get messages
>> like
>>
>> ,----
>> | ...
>> | Wrote /Users/rainerkrug/Documents/Projects/EnergyBalance/.Rbuildignore
>> | Wrote /Users/rainerkrug/Documents/Projects/EnergyBalance/tests/wpLELTest.R
>> | You are developing: (EnergyBalance)
>> | Wrote /Users/rainerkrug/Documents/Projects/EnergyBalance/R/plotwpLELFitListParDistr.R
>> | You are developing: (EnergyBalance)
>> | ...
>> `----
>>
>> where the messages "You are developing: (EnergyBalance)" come from
>> ESS. Is this to be expected that R is called for some blocks, but not
>> for others, when tangling?
>
> The major mode is invoked when tangling, if possible.
>
> This enables comments to be rendered. See the docstring for
> `org-babel-spec-to-string'.
>
> HTH,

Yes - thanks,

Rainer

>
> Chuck

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 480 bytes --]

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

* Re: Tangling takes long - profiling and calling R
  2015-06-15 19:49 ` Nicolas Goaziou
@ 2015-06-16 10:34   ` Rainer M Krug
  2015-06-16 11:46     ` Nicolas Goaziou
  0 siblings, 1 reply; 31+ messages in thread
From: Rainer M Krug @ 2015-06-16 10:34 UTC (permalink / raw)
  To: emacs-orgmode

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

Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

> Hello,
>
> Rainer M Krug <Rainer@krugs.de> writes:
>
>> I have a relatively large file with
>> about 200 =source blocks (R) to be tangled to get an R package. But the
>> tangling takes about 20 seconds.
>>
>> Profiling the tangling showed that the call to ~mapcar~ in
>> ~org-babel-params-from-properties~ takes about 40% of the execution time
>> (see profiler excerpt below). Is there anything one can do to make this
>> faster?
>
> In this function, there is
>
>      ;; DEPRECATED header arguments specified as separate property at
>      ;; point of definition
>      (let (val sym)
>        (org-babel-parse-multiple-vars
> 	(delq nil
> 	      (mapcar
> 	       (lambda (header-arg)
> 		 (and (setq val (org-entry-get (point) header-arg t))
> 		      (cons (intern (concat ":" header-arg))
> 			    (org-babel-read val))))
> 	       (mapcar
> 		#'symbol-name
> 		(mapcar
> 		 #'car
> 		 (org-babel-combine-header-arg-lists
> 		  org-babel-common-header-args-w-values
> 		  (progn
> 		    (setq sym (intern (concat "org-babel-header-args:" lang)))
> 		    (and (boundp sym) (eval sym))))))))))
>
> While the 3 `mapcar' calls could be turned into a single one, I wonder
> if this snippet could be removed altogether instead. It has been
> deprecated for 2 years already.
>
> WDYT?

I would not remove it as even I have some org files using them - shame
on me.

But what about making it user configurable? a variable
~org-babel-tangle-use-deprecated-header-args~ which if set to non-nil would
enable this additional code, if nil it would be skipped? The default
should be set to ~t~ to be backward compatible.

Cheers,

Rainer

>
> Regards,

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 480 bytes --]

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

* Re: Tangling takes long - profiling and calling R
  2015-06-16 10:34   ` Rainer M Krug
@ 2015-06-16 11:46     ` Nicolas Goaziou
  2015-06-16 12:45       ` Sebastien Vauban
  2015-06-16 14:42       ` Rainer M Krug
  0 siblings, 2 replies; 31+ messages in thread
From: Nicolas Goaziou @ 2015-06-16 11:46 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

Rainer M Krug <Rainer@krugs.de> writes:

> I would not remove it as even I have some org files using them - shame
> on me.

We can check for that in Org Lint and warn the user.

> But what about making it user configurable? a variable
> ~org-babel-tangle-use-deprecated-header-args~ which if set to non-nil would
> enable this additional code, if nil it would be skipped? The default
> should be set to ~t~ to be backward compatible.

This looks like backward-compatibility hell to me. If we make it
conditional the feature is no longer deprecated, is it?

The more general question is: how many years do we need to wait before
removing a deprecated (i.e., marked as such) feature?

Regards,

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

* Re: Tangling takes long - profiling and calling R
  2015-06-16 11:46     ` Nicolas Goaziou
@ 2015-06-16 12:45       ` Sebastien Vauban
  2015-06-16 13:04         ` Nicolas Goaziou
  2015-06-16 14:47         ` Rainer M Krug
  2015-06-16 14:42       ` Rainer M Krug
  1 sibling, 2 replies; 31+ messages in thread
From: Sebastien Vauban @ 2015-06-16 12:45 UTC (permalink / raw)
  To: emacs-orgmode-mXXj517/zsQ

Nicolas Goaziou <mail-Gpy5sJQTEQHwkn9pgDnJRVAUjnlXr6A1@public.gmane.org> writes:
> Rainer M Krug <Rainer-vfylz/Ys1k4@public.gmane.org> writes:
>
>> I would not remove it as even I have some org files using them - shame
>> on me.

To be clear, are we talking of constructs such as:

--8<---------------cut here---------------start------------->8---
** Subtree
   :PROPERTIES:
   :tangle: no
   :END:
--8<---------------cut here---------------end--------------->8---

?

> We can check for that in Org Lint and warn the user.
>
>> But what about making it user configurable? a variable
>> ~org-babel-tangle-use-deprecated-header-args~ which if set to non-nil would
>> enable this additional code, if nil it would be skipped? The default
>> should be set to ~t~ to be backward compatible.
>
> This looks like backward-compatibility hell to me. If we make it
> conditional the feature is no longer deprecated, is it?

I understand your point, and I'm enclined to agree with you (for
a long-term sanity and stability of the mode we all cherish) -- even if
I dunno yet if I still use such (Well, if this is the above structure,
then, yes, I use it a lot as well...).

> The more general question is: how many years do we need to wait before
> removing a deprecated (i.e., marked as such) feature?

Your suggestion with Org-lint, or even writing a function that would
convert from the old to the new syntax, makes a shorter period
acceptable IMO.

Best regards,
  Seb

-- 
Sebastien Vauban

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

* Re: Tangling takes long - profiling and calling R
  2015-06-16 12:45       ` Sebastien Vauban
@ 2015-06-16 13:04         ` Nicolas Goaziou
  2015-06-16 14:47         ` Rainer M Krug
  1 sibling, 0 replies; 31+ messages in thread
From: Nicolas Goaziou @ 2015-06-16 13:04 UTC (permalink / raw)
  To: Sebastien Vauban; +Cc: public-emacs-orgmode-mXXj517/zsQ



Hello,

Sebastien Vauban <sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org>
writes:

> To be clear, are we talking of constructs such as:
>
> ** Subtree
>    :PROPERTIES:
>    :tangle: no
>    :END:
>
> ?

Yes, we are.

> Your suggestion with Org-lint, or even writing a function that would
> convert from the old to the new syntax, makes a shorter period
> acceptable IMO.

What about the following check, which could be integrated in Org Lint:

(defun check-deprecated-babel-properties ()
  (interactive)
  (let ((deprecated-babel-properties
         (mapcar (lambda (arg) (symbol-name (car arg)))
                 org-babel-common-header-args-w-values)))
    (org-element-map (org-element-parse-buffer 'element) 'node-property
      (lambda (p)
        (let ((key (org-element-property :key p)))
          (when (member-ignore-case key deprecated-babel-properties)
            (error
             "Deprecated Babel property \"%s\" at line %d.  Use :header-args: instead"
             key
             (save-excursion (goto-char (org-element-property :begin p))
                             (org-current-line)))))))))


Regards,

-- 
Nicolas Goaziou

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

* Re: Tangling takes long - profiling and calling R
  2015-06-16 11:46     ` Nicolas Goaziou
  2015-06-16 12:45       ` Sebastien Vauban
@ 2015-06-16 14:42       ` Rainer M Krug
  2015-06-16 21:45         ` Nicolas Goaziou
  1 sibling, 1 reply; 31+ messages in thread
From: Rainer M Krug @ 2015-06-16 14:42 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: emacs-orgmode@gnu.org



Envoyé de mon iPhone

> Le 16 juin 2015 à 13:46, Nicolas Goaziou <mail@nicolasgoaziou.fr> a écrit :
> 
> Rainer M Krug <Rainer@krugs.de> writes:
> 
>> I would not remove it as even I have some org files using them - shame
>> on me.
> 
> We can check for that in Org Lint and warn the user.

That would be a really good idea!

> 
>> But what about making it user configurable? a variable
>> ~org-babel-tangle-use-deprecated-header-args~ which if set to non-nil would
>> enable this additional code, if nil it would be skipped? The default
>> should be set to ~t~ to be backward compatible.
> 
> This looks like backward-compatibility hell to me. If we make it
> conditional the feature is no longer deprecated, is it?
> 
> The more general question is: how many years do we need to wait before
> removing a deprecated (i.e., marked as such) feature?

Before deleting it, one should get a warning that a certain feature is deprecated. At the moment, it is only mentioned in the help (as far as I am aware).

> 
> Regards,

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

* Re: Tangling takes long - profiling and calling R
  2015-06-16 12:45       ` Sebastien Vauban
  2015-06-16 13:04         ` Nicolas Goaziou
@ 2015-06-16 14:47         ` Rainer M Krug
  2015-07-01 14:03           ` Aaron Ecay
  1 sibling, 1 reply; 31+ messages in thread
From: Rainer M Krug @ 2015-06-16 14:47 UTC (permalink / raw)
  To: Sebastien Vauban; +Cc: emacs-orgmode@gnu.org



Envoyé de mon iPhone

> Le 16 juin 2015 à 14:45, Sebastien Vauban <sva-news@mygooglest.com> a écrit :
> 
> Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
>> Rainer M Krug <Rainer@krugs.de> writes:
>> 
>>> I would not remove it as even I have some org files using them - shame
>>> on me.
> 
> To be clear, are we talking of constructs such as:
> 
> --8<---------------cut here---------------start------------->8---
> ** Subtree
>   :PROPERTIES:
>   :tangle: no
>   :END:
> --8<---------------cut here---------------end--------------->8---
> 
> ?
> 
>> We can check for that in Org Lint and warn the user.
>> 
>>> But what about making it user configurable? a variable
>>> ~org-babel-tangle-use-deprecated-header-args~ which if set to non-nil would
>>> enable this additional code, if nil it would be skipped? The default
>>> should be set to ~t~ to be backward compatible.
>> 
>> This looks like backward-compatibility hell to me. If we make it
>> conditional the feature is no longer deprecated, is it?
> 
> I understand your point, and I'm enclined to agree with you (for
> a long-term sanity and stability of the mode we all cherish) -- even if
> I dunno yet if I still use such (Well, if this is the above structure,
> then, yes, I use it a lot as well...).
> 
>> The more general question is: how many years do we need to wait before
>> removing a deprecated (i.e., marked as such) feature?
> 
> Your suggestion with Org-lint, or even writing a function that would
> convert from the old to the new syntax, makes a shorter period
> acceptable IMO.

I don't think that it is that easy, as the new syntax is not equivalent to the old syntax. One example; defining one tangle target for the mother tree, and others for the child trees. This is by no means trivial (or even possible) with the new syntax, while it would be possible with the old syntax (if I remember correctly). 

So for backward compatibility, the support should stay, but one had to enable it explicitly. 

Cheers, 

Rainer

> 
> Best regards,
>  Seb
> 
> -- 
> Sebastien Vauban
> 
> 

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

* Re: Tangling takes long - profiling and calling R
  2015-06-16 14:42       ` Rainer M Krug
@ 2015-06-16 21:45         ` Nicolas Goaziou
  2015-06-17  7:16           ` org version numbers in file - WAS: " Rainer M Krug
  0 siblings, 1 reply; 31+ messages in thread
From: Nicolas Goaziou @ 2015-06-16 21:45 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode@gnu.org

Rainer M Krug <r.m.krug@gmail.com> writes:

>> We can check for that in Org Lint and warn the user.
>
> That would be a really good idea!

Done.

> Before deleting it, one should get a warning that a certain feature is
> deprecated. At the moment, it is only mentioned in the help (as far as
> I am aware).

It has been mentioned in the manual for the last two years. See footnote
in (info "(org)Header arguments in Org mode properties").

Regards,

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

* org version numbers in file - WAS: Tangling takes long - profiling and calling R
  2015-06-16 21:45         ` Nicolas Goaziou
@ 2015-06-17  7:16           ` Rainer M Krug
  2015-06-18  8:13             ` Nicolas Goaziou
  0 siblings, 1 reply; 31+ messages in thread
From: Rainer M Krug @ 2015-06-17  7:16 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode@gnu.org

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

Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

> Rainer M Krug <r.m.krug@gmail.com> writes:
>
>>> We can check for that in Org Lint and warn the user.
>>
>> That would be a really good idea!
>
> Done.

Great - thanks.

>
>> Before deleting it, one should get a warning that a certain feature is
>> deprecated. At the moment, it is only mentioned in the help (as far as
>> I am aware).
>
> It has been mentioned in the manual for the last two years. See footnote
> in (info "(org)Header arguments in Org mode properties").

Yes - that's true. But who of the longer org users reads the manual of
features they use regularly?

org-lint seems to become the place where these changes can be marked and
the user be notified - that is really brilliant.

I could imagine the following automatic workflow to enable automatic
linting of org files upon opening when they were saved under an older
(or unknown) version of org:

1) a new argument is introduced :

  #+FILE_ORG_VERSION: 8.3beta

2) when opening an org file, this version is checked. The following
cases are possible:

  - parameter not present: assume that file version is older and run org-lint
  - file version older then org version: run org-lint
  - file version identical to org version: just open
  - file version newer: run org-lint

3) after reviewing the results, org-lint could offer to update the file
version (#+FILE_ORG_VERSION) to the version of org-mode. This should be, by
the way, possible to do even when running org-lint manually.

4) this behavior should be possible to disabled by an additional header
  #+ORG_FILE_VERSION_CHECK: f
  but not via  emacs.el as this should be the standard behavior.

One could go even one step further, to define a minimum and maximum org version so
that one get's a warning that the file requires a different org version
than used:

#+REQUIRED_ORG_VERSION: min:8.0

would require org newer and including than 8.0

#+REQUIRED_ORG_VERSION: max:8.0

would require org older and including than 8.0

#+REQUIRED_ORG_VERSION: min:8.0 max:8.9.9 

a version between and including 8.0 and 8.9.9 because e.g. a feature used
was only present during these releases or

#+REQUIRED_ORG_VERSION: min:8.0 max:8.0 

require version exactly version 8.0

where the warning comes when the version is different to the ones
specified.


I really think that org files should have the org-versions that was used
to write them and the org version required to run them.

Even though that org-documents are documents, I kind of see them as
*add-ons* to org, because they can contain code to be execute,
variables to be set, and added functionality to the standard org. So to
make this more robust, to store the org version used to create the file
version and the required org versions would make perfect sense to me.

This should obviously only include release, alpha, beta, rc and not git
checkout values.

Cheers,

Rainer

>
> Regards,

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 480 bytes --]

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

* Re: org version numbers in file - WAS: Tangling takes long - profiling and calling R
  2015-06-17  7:16           ` org version numbers in file - WAS: " Rainer M Krug
@ 2015-06-18  8:13             ` Nicolas Goaziou
  2015-06-18 13:25               ` Rainer M Krug
  0 siblings, 1 reply; 31+ messages in thread
From: Nicolas Goaziou @ 2015-06-18  8:13 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode@gnu.org, Rainer M Krug

Rainer M Krug <Rainer@krugs.de> writes:

> Yes - that's true. But who of the longer org users reads the manual of
> features they use regularly?

Ah well. I turned 3 `mapcar' calls into a single one. It should,
hopefully improve speed in your case (could you confirm it).

Also, I suggest to signal the deprecation in ORG-NEWS (old timers read
it, right?) and remove this part of code during 8.4 development.

WDYT?

> org-lint seems to become the place where these changes can be marked and
> the user be notified - that is really brilliant.

Org Lint is not in master branch, yet.

> I could imagine the following automatic workflow to enable automatic
> linting of org files upon opening when they were saved under an older
> (or unknown) version of org:
>
> 1) a new argument is introduced :
>
>   #+FILE_ORG_VERSION: 8.3beta
>
> 2) when opening an org file, this version is checked. The following
> cases are possible:
>
>   - parameter not present: assume that file version is older and run org-lint
>   - file version older then org version: run org-lint
>   - file version identical to org version: just open
>   - file version newer: run org-lint
>
> 3) after reviewing the results, org-lint could offer to update the file
> version (#+FILE_ORG_VERSION) to the version of org-mode. This should be, by
> the way, possible to do even when running org-lint manually.
>
> 4) this behavior should be possible to disabled by an additional header
>   #+ORG_FILE_VERSION_CHECK: f
>   but not via  emacs.el as this should be the standard behavior.

The problem is that linting is not exact science. You shouldn't put too
much trust into it.

Also, "version" too broad: despite its name, some syntax changes were
introduced in the middle of "8.3beta".

Therefore, I'm not sure it's worth the hassle.


Regards,

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

* Re: org version numbers in file - WAS: Tangling takes long - profiling and calling R
  2015-06-18  8:13             ` Nicolas Goaziou
@ 2015-06-18 13:25               ` Rainer M Krug
  2015-06-18 13:50                 ` Nicolas Goaziou
  2015-06-18 14:23                 ` Detlef Steuer
  0 siblings, 2 replies; 31+ messages in thread
From: Rainer M Krug @ 2015-06-18 13:25 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode@gnu.org

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

Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

> Rainer M Krug <Rainer@krugs.de> writes:
>
>> Yes - that's true. But who of the longer org users reads the manual of
>> features they use regularly?
>
> Ah well. I turned 3 `mapcar' calls into a single one. It should,
> hopefully improve speed in your case (could you confirm it).

Hm - it takes actually longer (as far as I can see), but the mapcar
calls in the function now take 24% each (compared to 20 before).

>
> Also, I suggest to signal the deprecation in ORG-NEWS (old timers read
> it, right?) and remove this part of code during 8.4 development.

I guess they might skim over it...

What about putting a warning in the function in tangling (and other
places where this construct is evaluated) that this construct will not
be be allowed in the next major release?

>
> WDYT?
>
>> org-lint seems to become the place where these changes can be marked and
>> the user be notified - that is really brilliant.
>
> Org Lint is not in master branch, yet.

I know - unfortunately. But as far as I understand, it will be in the
next major release?

>
>> I could imagine the following automatic workflow to enable automatic
>> linting of org files upon opening when they were saved under an older
>> (or unknown) version of org:
>>
>> 1) a new argument is introduced :
>>
>>   #+FILE_ORG_VERSION: 8.3beta
>>
>> 2) when opening an org file, this version is checked. The following
>> cases are possible:
>>
>>   - parameter not present: assume that file version is older and run org-lint
>>   - file version older then org version: run org-lint
>>   - file version identical to org version: just open
>>   - file version newer: run org-lint
>>
>> 3) after reviewing the results, org-lint could offer to update the file
>> version (#+FILE_ORG_VERSION) to the version of org-mode. This should be, by
>> the way, possible to do even when running org-lint manually.
>>
>> 4) this behavior should be possible to disabled by an additional header
>>   #+ORG_FILE_VERSION_CHECK: f
>>   but not via  emacs.el as this should be the standard behavior.
>
> The problem is that linting is not exact science. You shouldn't put too
> much trust into it.

True - but as far as deprecation of org constructs concerned, checks
could be explicitly put into the org-lint library - for some features
there are even conversion functions available - and linting could be
more robust in regards to deprecation checks?

Another option would be to use a function which does only file version
checking, but this would probably overlap with org-lint considerably.

>
> Also, "version" too broad: despite its name, some syntax changes were
> introduced in the middle of "8.3beta".

Well - users who use git (or other cutting edge sources) should be aware
that these things can happen - if they want to avoid it (or be informed
when it happens) they should stay with the official releases. So I don't
see a problem there. And even if I overlook a change in git, the check
in the next release would pick it up in longer unused org files.

I see this as a feature for non-power users (i.e. the ones who stick
with the normal releases) and org-from-git users (or other daily build users) are power users by
definition.

>
> Therefore, I'm not sure it's worth the hassle.

As there is nobody else responding, I guess you are right, although I
think it would make org much more robust.

In the spirit of reproducibility, I would at least suggest to introduce
a function which inserts an argument

#+ORG_FILE_VERSION: TheActualOrgVersionProbablyWithGitHash

if it does not exist, and if it exist, updates it to the actual version?

This should be incorporated into the default header sets.

This would lay the groundwork for introducing this feature at a later stage.

Thanks,

Rainer

>
>
> Regards,

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 480 bytes --]

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

* Re: org version numbers in file - WAS: Tangling takes long - profiling and calling R
  2015-06-18 13:25               ` Rainer M Krug
@ 2015-06-18 13:50                 ` Nicolas Goaziou
  2015-06-23  9:04                   ` Rainer M Krug
  2015-06-18 14:23                 ` Detlef Steuer
  1 sibling, 1 reply; 31+ messages in thread
From: Nicolas Goaziou @ 2015-06-18 13:50 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode@gnu.org, Rainer M Krug

Rainer M Krug <Rainer@krugs.de> writes:

> Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
>
>> Rainer M Krug <Rainer@krugs.de> writes:
>>
>>> Yes - that's true. But who of the longer org users reads the manual of
>>> features they use regularly?
>>
>> Ah well. I turned 3 `mapcar' calls into a single one. It should,
>> hopefully improve speed in your case (could you confirm it).
>
> Hm - it takes actually longer (as far as I can see), but the mapcar
> calls in the function now take 24% each (compared to 20 before).

Considering the basic change I made, I fail to see how it could take
longer. In the worst case, it should be equivalent.

Could you provide another report, with an uncompiled Org?

>> Also, I suggest to signal the deprecation in ORG-NEWS (old timers read
>> it, right?) and remove this part of code during 8.4 development.
>
> I guess they might skim over it...

Then, it's their responsibility.

> What about putting a warning in the function in tangling (and other
> places where this construct is evaluated) that this construct will not
> be be allowed in the next major release?

This is not the usual way to deprecate features. Breaking changes are
written in ORG-NEWS, I don't see why this one would make an exception.

> I know - unfortunately. But as far as I understand, it will be in the
> next major release?

Hopefully, yes.

> True - but as far as deprecation of org constructs concerned, checks
> could be explicitly put into the org-lint library - for some features
> there are even conversion functions available - and linting could be
> more robust in regards to deprecation checks?

Not really.

For example, even if we want to check for deprecated Babel header
properties, there's no way to tell if ":cache: yes" is an obsolete way
to use them or user's own properties.

> In the spirit of reproducibility, I would at least suggest to introduce
> a function which inserts an argument
>
> #+ORG_FILE_VERSION: TheActualOrgVersionProbablyWithGitHash
>
> if it does not exist, and if it exist, updates it to the actual
> version?

I see no objection to this. 

We could extend `org-version' to do this, e.g., change its signature to
(org-version &optional full medium) where MEDIUM can be `insert',
`message' or `keyword'. In the latter case, it would create or update
any such keyword in the current document.

Of course, we can provide a brand new function, instead.

Do you want to provide a patch for that?

> This should be incorporated into the default header sets.

What are the default header sets? You mean export template? I don't
think this is needed as long as we don't use this keyword.


Regards,

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

* Re: org version numbers in file - WAS: Tangling takes long - profiling and calling R
  2015-06-18 13:25               ` Rainer M Krug
  2015-06-18 13:50                 ` Nicolas Goaziou
@ 2015-06-18 14:23                 ` Detlef Steuer
  2015-06-23  8:45                   ` Rainer M Krug
  1 sibling, 1 reply; 31+ messages in thread
From: Detlef Steuer @ 2015-06-18 14:23 UTC (permalink / raw)
  To: emacs-orgmode

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

Am Thu, 18 Jun 2015 15:25:57 +0200
schrieb Rainer M Krug <Rainer@krugs.de>:

> In the spirit of reproducibility, I would at least suggest to
> introduce a function which inserts an argument
> 
> #+ORG_FILE_VERSION: TheActualOrgVersionProbablyWithGitHash
> 
> if it does not exist, and if it exist, updates it to the actual
> version?


Wouldn´t something like 

#+BEGIN_SRC emacs-lisp :exports results
(org-version)
#+END_SRC

do it, when needed?

Regards
Detlef

[-- Attachment #2: Digitale Signatur von OpenPGP --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: org version numbers in file - WAS: Tangling takes long - profiling and calling R
  2015-06-18 14:23                 ` Detlef Steuer
@ 2015-06-23  8:45                   ` Rainer M Krug
  2015-06-23  9:32                     ` Detlef Steuer
  0 siblings, 1 reply; 31+ messages in thread
From: Rainer M Krug @ 2015-06-23  8:45 UTC (permalink / raw)
  To: Detlef Steuer; +Cc: emacs-orgmode

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

Detlef Steuer <detlef.steuer@gmx.de> writes:

> Am Thu, 18 Jun 2015 15:25:57 +0200
> schrieb Rainer M Krug <Rainer@krugs.de>:
>
>> In the spirit of reproducibility, I would at least suggest to
>> introduce a function which inserts an argument
>> 
>> #+ORG_FILE_VERSION: TheActualOrgVersionProbablyWithGitHash
>> 
>> if it does not exist, and if it exist, updates it to the actual
>> version?
>
>
> Wouldn´t something like 
>
> #+BEGIN_SRC emacs-lisp :exports results
> (org-version)
> #+END_SRC
>
> do it, when needed?

Thanks - I will use this for now.

But there are two problems with it:

1) it has a lot of information in it which is not actually relevant -
but one could definitely filter it out with some regexp stuff (although
not me - regexp are to me like magic - if they work: unbelievable - if
they don't: what are all these strange characters?)

,----
| Org-mode version 8.3beta (release_8.3beta-1209-gc532ff @ /Users/rainerkrug/.emacs.d/org-mode/lisp/)
`----

2) most importantly, I think this should be added automatically into the
org file as #+ORG_FILE_VERSION: so that one can count on it to be there.

Cheers,

Rainer

>
> Regards
> Detlef

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 480 bytes --]

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

* Re: org version numbers in file - WAS: Tangling takes long - profiling and calling R
  2015-06-18 13:50                 ` Nicolas Goaziou
@ 2015-06-23  9:04                   ` Rainer M Krug
  0 siblings, 0 replies; 31+ messages in thread
From: Rainer M Krug @ 2015-06-23  9:04 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode@gnu.org

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

Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

> Rainer M Krug <Rainer@krugs.de> writes:
>
>> Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
>>
>>> Rainer M Krug <Rainer@krugs.de> writes:
>>>
>>>> Yes - that's true. But who of the longer org users reads the manual of
>>>> features they use regularly?
>>>
>>> Ah well. I turned 3 `mapcar' calls into a single one. It should,
>>> hopefully improve speed in your case (could you confirm it).
>>
>> Hm - it takes actually longer (as far as I can see), but the mapcar
>> calls in the function now take 24% each (compared to 20 before).
>
> Considering the basic change I made, I fail to see how it could take
> longer. In the worst case, it should be equivalent.

I was surprised as well, but it could be other changes as well.

>
> Could you provide another report, with an uncompiled Org?

Thanks - I'll try to remember - for the moment I am quite busy but will come back
to your question.

>
>>> Also, I suggest to signal the deprecation in ORG-NEWS (old timers read
>>> it, right?) and remove this part of code during 8.4 development.
>>
>> I guess they might skim over it...
>
> Then, it's their responsibility.

The question is really if one can become more user friendly without to
much effort - that's why I suggested to put this check into
the linter and to run linter automatically if the file version is older
than the org version.

I can live with how it is at the moment.

>
>> What about putting a warning in the function in tangling (and other
>> places where this construct is evaluated) that this construct will not
>> be be allowed in the next major release?
>
> This is not the usual way to deprecate features. Breaking changes are
> written in ORG-NEWS, I don't see why this one would make an exception.

I know from R, that when a function is deprecated and about to be
removed from R, it will display a warning message whenever it is used.
This is quite user friendly and helps making the changes in the
code. This obviously does not work in org in the same way - which is why
I suggested to put into the tangling routine.

Would it be possible to display the changes / new features / breaking
change in a new version official release version upon starting this
version the first time, so that nobody can say "I did not read this"?

>
>> I know - unfortunately. But as far as I understand, it will be in the
>> next major release?
>
> Hopefully, yes.

Great.

>
>> True - but as far as deprecation of org constructs concerned, checks
>> could be explicitly put into the org-lint library - for some features
>> there are even conversion functions available - and linting could be
>> more robust in regards to deprecation checks?
>
> Not really.
>
> For example, even if we want to check for deprecated Babel header
> properties, there's no way to tell if ":cache: yes" is an obsolete way
> to use them or user's own properties.

OK - haven't considered the user defined properties.

>
>> In the spirit of reproducibility, I would at least suggest to introduce
>> a function which inserts an argument
>>
>> #+ORG_FILE_VERSION: TheActualOrgVersionProbablyWithGitHash
>>
>> if it does not exist, and if it exist, updates it to the actual
>> version?
>
> I see no objection to this. 
>
> We could extend `org-version' to do this, e.g., change its signature to
> (org-version &optional full medium) where MEDIUM can be `insert',
> `message' or `keyword'. In the latter case, it would create or update
> any such keyword in the current document.
>

I like this suggestion and that one possibly can specify the medium as a
prefix? That way, it would be possible to add it easily.

> Of course, we can provide a brand new function, instead.
>
> Do you want to provide a patch for that?

Sorry - I don't think that my elisp skills are sufficient for this.

>
>> This should be incorporated into the default header sets.
>
> What are the default header sets? You mean export template? I don't
> think this is needed as long as we don't use this keyword.

Yes - export templates.

I see it as an useful information to debug old non-working org files
manually - when you know the org version under which it *was* working,
you can look for significant changes since than and fix these.

In addition, if it is included, it will be easier to use it later
on.

Thanks,

Rainer

>
>
> Regards,

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 480 bytes --]

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

* Re: org version numbers in file - WAS: Tangling takes long - profiling and calling R
  2015-06-23  8:45                   ` Rainer M Krug
@ 2015-06-23  9:32                     ` Detlef Steuer
  2015-06-23 10:57                       ` Rainer M Krug
  0 siblings, 1 reply; 31+ messages in thread
From: Detlef Steuer @ 2015-06-23  9:32 UTC (permalink / raw)
  To: emacs-orgmode

Am Tue, 23 Jun 2015 10:45:45 +0200
schrieb Rainer M Krug <Rainer@krugs.de>:

> 2) most importantly, I think this should be added automatically into
> the org file as #+ORG_FILE_VERSION: so that one can count on it to be
> there.

Well. I want *nothing* to be added automatically. An org file is a text file
containing what I type or add explicitly.

If the file is exported may be org version info should be added as
some kind of comment automatically.

If it is me who adds

#+ORG_FILE_VERSION:

somewhere and that property is expanded at save or export time, that is ok.
But not everything is reproducible research. org should never have its
own ideas about the authors intention. 

Regards
Detlef

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

* Re: org version numbers in file - WAS: Tangling takes long - profiling and calling R
  2015-06-23  9:32                     ` Detlef Steuer
@ 2015-06-23 10:57                       ` Rainer M Krug
  0 siblings, 0 replies; 31+ messages in thread
From: Rainer M Krug @ 2015-06-23 10:57 UTC (permalink / raw)
  To: Detlef Steuer; +Cc: emacs-orgmode

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

Detlef Steuer <detlef.steuer@gmx.de> writes:

> Am Tue, 23 Jun 2015 10:45:45 +0200
> schrieb Rainer M Krug <Rainer@krugs.de>:
>
>> 2) most importantly, I think this should be added automatically into
>> the org file as #+ORG_FILE_VERSION: so that one can count on it to be
>> there.
>
> Well. I want *nothing* to be added automatically. An org file is a text file
> containing what I type or add explicitly.

It is still a text file and you can always delete it.

>
> If the file is exported may be org version info should be added as
> some kind of comment automatically.
>
> If it is me who adds
>
> #+ORG_FILE_VERSION:
>
> somewhere and that property is expanded at save or export time, that is ok.
> But not everything is reproducible research. org should never have its
> own ideas about the authors intention.

Well org has quite a few of it's own ideas and intentions - e.g. the *
for headers - no way around.

Some time ago there was a change of the location of property drawers for
scheduling (if I am not mistaken). So older filed would contain invalid
syntax and not see the deadlines anymore.

Now imagine opening an older file some time later and you have forgotten
to change it in this file, and it simply does not work. The single line
of the org version used for this document would make it quite easy for
you to trace back what had changed in the meantime and to fix this.

So I don't think that this would only for reproducible research useful.

But one could always add an option to disable this (if it would be
included).

Cheers,

Rainer

>
> Regards
> Detlef
>

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 480 bytes --]

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

* Re: Tangling takes long - profiling and calling R
  2015-06-16 14:47         ` Rainer M Krug
@ 2015-07-01 14:03           ` Aaron Ecay
  2015-07-02 11:51             ` Nicolas Goaziou
  0 siblings, 1 reply; 31+ messages in thread
From: Aaron Ecay @ 2015-07-01 14:03 UTC (permalink / raw)
  To: Rainer M Krug, Sebastien Vauban; +Cc: emacs-orgmode@gnu.org

Hello all,

2015ko ekainak 16an, Rainer M Krug-ek idatzi zuen:
> I don't think that it is that easy, as the new syntax is not equivalent
> to the old syntax. One example; defining one tangle target for the mother
> tree, and others for the child trees. This is by no means trivial (or
> even possible) with the new syntax, while it would be possible with the
> old syntax (if I remember correctly).

The last thread we had about this
<http://mid.gmane.org/87sijpr9nj.fsf@gmail.com>, we discussed some of
the differences.  Achim believed that some of them were due to bugs in
the property API, but these have not been fixed (AFAIK).

There is also a semantic difference in the two approaches as to whether
a remote invocation of a babel block (via e.g. #+call) uses the
properties from the block’s document position, or from the call’s.

Before deprecating the feature, the bugs should be fixed (if they are
really bugs), and the semantic differences explicated better.

-- 
Aaron Ecay

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

* Re: Tangling takes long - profiling and calling R
  2015-07-01 14:03           ` Aaron Ecay
@ 2015-07-02 11:51             ` Nicolas Goaziou
  2015-07-02 12:52               ` Rainer M Krug
                                 ` (2 more replies)
  0 siblings, 3 replies; 31+ messages in thread
From: Nicolas Goaziou @ 2015-07-02 11:51 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: Sebastien Vauban, emacs-orgmode@gnu.org

Hello,

Aaron Ecay <aaronecay@gmail.com> writes:

> There is also a semantic difference in the two approaches as to whether
> a remote invocation of a babel block (via e.g. #+call) uses the
> properties from the block’s document position, or from the call’s.
>
> Before deprecating the feature, the bugs should be fixed (if they are
> really bugs), and the semantic differences explicated better.

I'm all ears to bug reports. 

However, the point is not about deprecating the feature. It /is/ marked
as deprecated already, and has been so during the last two years.
Keeping both is just confusing and not necessary, since you can override
properties locally, with appropriate arguments.

I suggest to remove the old "dynamic" setting and improve the new
"lexical" one, if needed. Of course, it can wait Org 8.4, but it should
be signaled during Org 8.3 release already.


Regards,

-- 
Nicolas Goaziou

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

* Re: Tangling takes long - profiling and calling R
  2015-07-02 11:51             ` Nicolas Goaziou
@ 2015-07-02 12:52               ` Rainer M Krug
  2015-07-02 16:35                 ` Aaron Ecay
  2015-07-02 16:11               ` Aaron Ecay
  2015-07-02 18:51               ` Rainer M Krug
  2 siblings, 1 reply; 31+ messages in thread
From: Rainer M Krug @ 2015-07-02 12:52 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: Sebastien Vauban, emacs-orgmode@gnu.org

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

Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

> Hello,
>
> Aaron Ecay <aaronecay@gmail.com> writes:
>
>> There is also a semantic difference in the two approaches as to whether
>> a remote invocation of a babel block (via e.g. #+call) uses the
>> properties from the block’s document position, or from the call’s.
>>
>> Before deprecating the feature, the bugs should be fixed (if they are
>> really bugs), and the semantic differences explicated better.
>
> I'm all ears to bug reports. 
>
> However, the point is not about deprecating the feature. It /is/ marked
> as deprecated already, and has been so during the last two years.
> Keeping both is just confusing and not necessary, since you can override
> properties locally, with appropriate arguments.
>
> I suggest to remove the old "dynamic" setting and improve the new
> "lexical" one, if needed. Of course, it can wait Org 8.4, but it should
> be signaled during Org 8.3 release already.

What I am missing in the new syntax is the possibility to *change* the
value of one header argument or to *remove* one.

There is

,----
| :header-args: tangle testfile.R
`----

Which sets the property header-args, there is

,----
| :header-args+: noweb yes
`----

which adds to header-args, what is missing is

,----
| :header-args-: noweb
`----

which would remove the "noweb yes" from the header arguments and
possibly

,----
| :header-args-+: noweb exec
`----

which would *replace* the "noweb yes" with "noweb exec", so it is
effectively identical to

,----
| :header-args-: noweb
| :header-args+: noweb exec
`----


I know this might be difficult as header-args is simply a string, but I
think when these additions would be there, the old syntax could be
translated into the new syntax.

Cheers,

Rainer

>
>
> Regards,

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 480 bytes --]

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

* Re: Tangling takes long - profiling and calling R
  2015-07-02 11:51             ` Nicolas Goaziou
  2015-07-02 12:52               ` Rainer M Krug
@ 2015-07-02 16:11               ` Aaron Ecay
  2015-07-03 13:43                 ` Nicolas Goaziou
  2015-07-02 18:51               ` Rainer M Krug
  2 siblings, 1 reply; 31+ messages in thread
From: Aaron Ecay @ 2015-07-02 16:11 UTC (permalink / raw)
  To: Nicolas Goaziou, Rainer M Krug; +Cc: Sebastien Vauban, emacs-orgmode@gnu.org

Hi Nicolas,

2015ko uztailak 2an, Nicolas Goaziou-ek idatzi zuen:
> 
> Hello,
> 
> Aaron Ecay <aaronecay@gmail.com> writes:
> 
>> There is also a semantic difference in the two approaches as to whether
>> a remote invocation of a babel block (via e.g. #+call) uses the
>> properties from the block’s document position, or from the call’s.
>> 
>> Before deprecating the feature, the bugs should be fixed (if they are
>> really bugs), and the semantic differences explicated better.
> 
> I'm all ears to bug reports.

Could you take a look at
<http://mid.gmane.org/87fvg07vzi.fsf@Rainer.invalid>, specifically the
paragraph beginning “That looks like a bug”?

> 
> However, the point is not about deprecating the feature. It /is/ marked
> as deprecated already, and has been so during the last two years.

I don’t want to argue the semantics excessively, but “deprecated” should
mean that users:
1) actually change their behavior when creating new documents, or at
   least
2) are aware that the old behavior is in danger of disappearing.

A footnote in the manual and a comment in the elisp file don’t really
achieve this, as evidenced by the periodic discussions of this point that
we have.  Additionally, last year Eric commented that the deprecation was
“premature” <http://article.gmane.org/gmane.emacs.orgmode/87739>.  This
arguably means (among other things) that more effort to publicize it and
work on its replacement is needed, something that has not really happened.
(Unless you count repetitive and inconclusive ML threads as a publicity
campaign.)

The inclusion of the warning in org-lint is a concrete step forward.

> Keeping both is just confusing and not necessary, since you can override
> properties locally, with appropriate arguments.

Neither syntax is necessary, by this metric.  We could just make do with
local arguments, not needing properties at all.

IOW, this doesn’t distinguish between these two approaches.

> 
> I suggest to remove the old "dynamic" setting and improve the new
> "lexical" one, if needed. 

The dynamic vs. lexical metaphor is not very helpful either.  I myself
invoked it, with opposite polarity, in the last thread.  Achim and I had
a long discussion, without reaching any conclusion.  That discussion
starts here <http://mid.gmane.org/87r3zlrcnt.fsf@gmail.com>.  It might
be good if you read that whole thread (which is the same one that I have
already linked several times).

There has been no justification for the new property system proposed
other than questions of taste such as the above, and efficiency.  The
efficiency considerations could be solved in several ways.  One obvious
one would be to use a single call to org-entry-properties rather than N
calls to org-entry-get.  I feel like a broken record saying this, but it
was a solution I suggested already, in the last thread
<http://mid.gmane.org/87r3zlrcnt.fsf@gmail.com>.  Another, more
ambitious, solution would be to use the parser cache for
org-entry-{properties,get}.  There was a patch for this
<http://article.gmane.org/gmane.emacs.orgmode/89326>, which never landed
for a variety of reasons.

There are differences in the expressivity of the two systems – such as
the (AFAICS new) one pointed out by Rainer in this thread – which have
not been explained or justified.  I hope that these can be addressed,
and alternatives considered if necessary, before the change is imposed
on org users.

-- 
Aaron Ecay

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

* Re: Tangling takes long - profiling and calling R
  2015-07-02 12:52               ` Rainer M Krug
@ 2015-07-02 16:35                 ` Aaron Ecay
  2015-07-02 18:21                   ` Sebastien Vauban
  2015-07-02 18:43                   ` Rainer M Krug
  0 siblings, 2 replies; 31+ messages in thread
From: Aaron Ecay @ 2015-07-02 16:35 UTC (permalink / raw)
  To: Rainer M Krug, Rainer M Krug; +Cc: Sebastien Vauban, emacs-orgmode@gnu.org

Hi Rainer,

2015ko uztailak 2an, Rainer M Krug-ek idatzi zuen:

> What I am missing in the new syntax is the possibility to *change* the
> value of one header argument or to *remove* one.
> 
> There is
> 
> ,----
> | :header-args: tangle testfile.R
> `----

(Nit: I think all your examples are missing an additional colon before
the header arg name, so the above should be “:header-args: :tangle testfile.R”)

> 
> Which sets the property header-args, there is
> 
> ,----
> | :header-args+: noweb yes
> `----
> 
> which adds to header-args, what is missing is
> 
> ,----
> | :header-args-: noweb
> `----
> 
> which would remove the "noweb yes" from the header arguments 

This is not possible with the old syntax either, though:

* One
:PROPERTIES:
:noweb: yes
:END:

** Two
:PROPERTIES:
???????
:END:

#+begin_src emacs-lisp
  ...
#+end_src

There’s nothing you can put in the ?s at heading Two to get rid of the
noweb property inherited from One.  (Unless you have something in mind
which I’m not thinking of.)

> and possibly
> 
> ,----
> | :header-args-+: noweb exec
> `----
> 
> which would *replace* the "noweb yes" with "noweb exec", so it is
> effectively identical to
> 
> ,----
> | :header-args-: noweb
> | :header-args+: noweb exec
> `----
>

OTOH this is a real difference.  It corresponds in the old system to

* One
:PROPERTIES:
:noweb: yes
:END:

** Two
:PROPERTIES:
:noweb: exec
:END:

#+begin_src emacs-lisp
  ... ;; noweb=exec
#+end_src

** Three

#+begin_src emacs-lisp
  ... ;; noweb=yes
#+end_src


> 
> I know this might be difficult as header-args is simply a string, 

This is precisely the issue: this would require extending properties to
allow them to be used/interpreted as string-plists, instead of merely
strings as they presently are.  It would necessitate changing or adding
lots of functions related to the property API.  Then you have header
args like “:results” which can take multiple words.  Do we want to
support something like the following (from the old system), which would
require even more changes on top of properties-as-plist-strings in the
new one:

* One
:PROPERTIES:
:results: output
:END:

** Two
:PROPERTIES:
:results+: table
:END:

#+begin_src emacs-lisp
  ... ;; results = output table
#+end_src

** Three

:PROPERTIES:
:results+: list
:END:

#+begin_src emacs-lisp
  ... ;; results = output list
#+end_src

(AFAIK even whether property+ prepends or appends to the property value
as a string is not defined, which is already a potential issue though
not one that crops up for babel which is order-insensitive.)

Aaron

PS I am aware that all the examples I quoted are uninteresting in the
context of a single source block, which could just use header arguments.
Consider a large library of babel organized, taking the last example I
constructed, like:

* Blocks with interesting output
** Blocks which output interesting tables
<a dozen blocks>
** Blocks which output interesting lists
<another dozen>

PPS Under either system there’s the issue of the :post header arg, which
composes in a non-concatenative way.  You might have:

* Things which should be wrapped in delimiters
:PROPERTIES:
:post: wrap-delims(*this*)
:END:

** Things which should be in red text
:PROPERTIES:
:post: make-red(*this*)
:END:

#+begin_src emacs-lisp
  ;; produce a result which should be delimited and red
#+end_src

The result we want is for :post to read wrap-delims(make-red(*this*))
or make-red(wrap-delims(*this*)), depending on our opinion of red
delimiters.  But post is very brittle in any case, so this problem isn’t
very important.

-- 
Aaron Ecay

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

* Re: Tangling takes long - profiling and calling R
  2015-07-02 16:35                 ` Aaron Ecay
@ 2015-07-02 18:21                   ` Sebastien Vauban
  2015-07-02 18:44                     ` Rainer M Krug
  2015-07-02 18:43                   ` Rainer M Krug
  1 sibling, 1 reply; 31+ messages in thread
From: Sebastien Vauban @ 2015-07-02 18:21 UTC (permalink / raw)
  To: emacs-orgmode-mXXj517/zsQ

Aaron Ecay <aaronecay-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:
>> which adds to header-args, what is missing is
>> 
>> ,----
>> | :header-args-: noweb
>> `----
>> 
>> which would remove the "noweb yes" from the header arguments 
>
> This is not possible with the old syntax either, though:
>
> * One
> :PROPERTIES:
> :noweb: yes
> :END:
>
> ** Two
> :PROPERTIES:
> ???????
> :END:
>
> #+begin_src emacs-lisp
>   ...
> #+end_src
>
> There’s nothing you can put in the ?s at heading Two to get rid of the
> noweb property inherited from One.  (Unless you have something in mind
> which I’m not thinking of.)

Quickly, just on that particular point: what you'd put there would be
the "toggle" of the property (here ":noweb: no"), but that's of course
sort of limited to boolean values which have an explicit "no" (or "nil")
value; so I admit I just cover this particular exemple.

Best regards,
  Seb

-- 
Sebastien Vauban

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

* Re: Tangling takes long - profiling and calling R
  2015-07-02 16:35                 ` Aaron Ecay
  2015-07-02 18:21                   ` Sebastien Vauban
@ 2015-07-02 18:43                   ` Rainer M Krug
  1 sibling, 0 replies; 31+ messages in thread
From: Rainer M Krug @ 2015-07-02 18:43 UTC (permalink / raw)
  To: Aaron Ecay; +Cc: Sebastien Vauban, emacs-orgmode@gnu.org



Envoyé de mon iPhone

> Le 2 juil. 2015 à 18:35, Aaron Ecay <aaronecay@gmail.com> a écrit :
> 
> Hi Rainer,
> 
> 2015ko uztailak 2an, Rainer M Krug-ek idatzi zuen:
> 
>> What I am missing in the new syntax is the possibility to *change* the
>> value of one header argument or to *remove* one.
>> 
>> There is
>> 
>> ,----
>> | :header-args: tangle testfile.R
>> `----
> 
> (Nit: I think all your examples are missing an additional colon before
> the header arg name, so the above should be “:header-args: :tangle testfile.R”)

You are right - I always make this error. 

> 
>> 
>> Which sets the property header-args, there is
>> 
>> ,----
>> | :header-args+: noweb yes
>> `----
>> 
>> which adds to header-args, what is missing is
>> 
>> ,----
>> | :header-args-: noweb
>> `----
>> 
>> which would remove the "noweb yes" from the header arguments
> 
> This is not possible with the old syntax either, though:
> 
> * One
> :PROPERTIES:
> :noweb: yes
> :END:
> 
> ** Two
> :PROPERTIES:
> ???????
> :END:
> 
> #+begin_src emacs-lisp
>  ...
> #+end_src
> 
> There’s nothing you can put in the ?s at heading Two to get rid of the
> noweb property inherited from One.  (Unless you have something in mind
> which I’m not thinking of.)

No - not possible with the old syntax, but I was already missing it there. And it would make sense to have it. 

But one was at least able to set the header argument to the default value. 

> 
>> and possibly
>> 
>> ,----
>> | :header-args-+: noweb exec
>> `----
>> 
>> which would *replace* the "noweb yes" with "noweb exec", so it is
>> effectively identical to
>> 
>> ,----
>> | :header-args-: noweb
>> | :header-args+: noweb exec
>> `----
> 
> OTOH this is a real difference.  It corresponds in the old system to
> 
> * One
> :PROPERTIES:
> :noweb: yes
> :END:
> 
> ** Two
> :PROPERTIES:
> :noweb: exec
> :END:
> 
> #+begin_src emacs-lisp
>  ... ;; noweb=exec
> #+end_src
> 
> ** Three
> 
> #+begin_src emacs-lisp
>  ... ;; noweb=yes
> #+end_src
> 
> 
>> 
>> I know this might be difficult as header-args is simply a string,
> 
> This is precisely the issue: this would require extending properties to
> allow them to be used/interpreted as string-plists, instead of merely
> strings as they presently are.  It would necessitate changing or adding
> lots of functions related to the property API.  Then you have header
> args like “:results” which can take multiple words.  Do we want to
> support something like the following (from the old system), which would
> require even more changes on top of properties-as-plist-strings in the
> new one:
> 
> * One
> :PROPERTIES:
> :results: output
> :END:
> 
> ** Two
> :PROPERTIES:
> :results+: table
> :END:
> 
> #+begin_src emacs-lisp
>  ... ;; results = output table
> #+end_src
> 
> ** Three
> 
> :PROPERTIES:
> :results+: list
> :END:
> 
> #+begin_src emacs-lisp
>  ... ;; results = output list
> #+end_src
> 
> (AFAIK even whether property+ prepends or appends to the property value
> as a string is not defined, which is already a potential issue though
> not one that crops up for babel which is order-insensitive.)

Cheers, 

Rainer

> 
> Aaron
> 
> PS I am aware that all the examples I quoted are uninteresting in the
> context of a single source block, which could just use header arguments.
> Consider a large library of babel organized, taking the last example I
> constructed, like:
> 
> * Blocks with interesting output
> ** Blocks which output interesting tables
> <a dozen blocks>
> ** Blocks which output interesting lists
> <another dozen>
> 
> PPS Under either system there’s the issue of the :post header arg, which
> composes in a non-concatenative way.  You might have:
> 
> * Things which should be wrapped in delimiters
> :PROPERTIES:
> :post: wrap-delims(*this*)
> :END:
> 
> ** Things which should be in red text
> :PROPERTIES:
> :post: make-red(*this*)
> :END:
> 
> #+begin_src emacs-lisp
>  ;; produce a result which should be delimited and red
> #+end_src
> 
> The result we want is for :post to read wrap-delims(make-red(*this*))
> or make-red(wrap-delims(*this*)), depending on our opinion of red
> delimiters.  But post is very brittle in any case, so this problem isn’t
> very important.
> 
> -- 
> Aaron Ecay

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

* Re: Tangling takes long - profiling and calling R
  2015-07-02 18:21                   ` Sebastien Vauban
@ 2015-07-02 18:44                     ` Rainer M Krug
  0 siblings, 0 replies; 31+ messages in thread
From: Rainer M Krug @ 2015-07-02 18:44 UTC (permalink / raw)
  To: Sebastien Vauban; +Cc: emacs-orgmode@gnu.org



Envoyé de mon iPhone

> Le 2 juil. 2015 à 20:21, Sebastien Vauban <sva-news@mygooglest.com> a écrit :
> 
> Aaron Ecay <aaronecay@gmail.com> writes:
>>> which adds to header-args, what is missing is
>>> 
>>> ,----
>>> | :header-args-: noweb
>>> `----
>>> 
>>> which would remove the "noweb yes" from the header arguments 
>> 
>> This is not possible with the old syntax either, though:
>> 
>> * One
>> :PROPERTIES:
>> :noweb: yes
>> :END:
>> 
>> ** Two
>> :PROPERTIES:
>> ???????
>> :END:
>> 
>> #+begin_src emacs-lisp
>>  ...
>> #+end_src
>> 
>> There’s nothing you can put in the ?s at heading Two to get rid of the
>> noweb property inherited from One.  (Unless you have something in mind
>> which I’m not thinking of.)
> 
> Quickly, just on that particular point: what you'd put there would be
> the "toggle" of the property (here ":noweb: no"), but that's of course
> sort of limited to boolean values which have an explicit "no" (or "nil")
> value; so I admit I just cover this particular exemple.

But this was possible with the old syntax, but not with the new one - right?


> 
> Best regards,
>  Seb
> 
> -- 
> Sebastien Vauban
> 
> 

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

* Re: Tangling takes long - profiling and calling R
  2015-07-02 11:51             ` Nicolas Goaziou
  2015-07-02 12:52               ` Rainer M Krug
  2015-07-02 16:11               ` Aaron Ecay
@ 2015-07-02 18:51               ` Rainer M Krug
  2 siblings, 0 replies; 31+ messages in thread
From: Rainer M Krug @ 2015-07-02 18:51 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: Sebastien Vauban, emacs-orgmode@gnu.org



Envoyé de mon iPhone

> Le 2 juil. 2015 à 13:51, Nicolas Goaziou <mail@nicolasgoaziou.fr> a écrit :
> 
> Hello,
> 
> Aaron Ecay <aaronecay@gmail.com> writes:
> 
>> There is also a semantic difference in the two approaches as to whether
>> a remote invocation of a babel block (via e.g. #+call) uses the
>> properties from the block’s document position, or from the call’s.
>> 
>> Before deprecating the feature, the bugs should be fixed (if they are
>> really bugs), and the semantic differences explicated better.
> 
> I'm all ears to bug reports. 
> 
> However, the point is not about deprecating the feature. It /is/ marked
> as deprecated already, and has been so during the last two years.
> Keeping both is just confusing and not necessary, since you can override
> properties locally, with appropriate arguments.
> 
> I suggest to remove the old "dynamic" setting and improve the new
> "lexical" one, if needed. Of course, it can wait Org 8.4, but it should
> be signaled during Org 8.3 release already.

Just out of interest - could you give me a short explanation or a link to where it is discussed why this change was made?

Thanks,

Rainer

> 
> 
> Regards,
> 
> -- 
> Nicolas Goaziou

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

* Re: Tangling takes long - profiling and calling R
  2015-07-02 16:11               ` Aaron Ecay
@ 2015-07-03 13:43                 ` Nicolas Goaziou
  0 siblings, 0 replies; 31+ messages in thread
From: Nicolas Goaziou @ 2015-07-03 13:43 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: Sebastien Vauban, emacs-orgmode@gnu.org

Aaron Ecay <aaronecay@gmail.com> writes:

> Could you take a look at
> <http://mid.gmane.org/87fvg07vzi.fsf@Rainer.invalid>, specifically the
> paragraph beginning “That looks like a bug”?

This should be fixed in 188bae903feb942355dae6878951e9f13211e1d0. Thank
you for the notice.

> I don’t want to argue the semantics excessively, but “deprecated” should
> mean that users:
> 1) actually change their behavior when creating new documents, or at
>    least
> 2) are aware that the old behavior is in danger of disappearing.
>
> A footnote in the manual and a comment in the elisp file don’t really
> achieve this, as evidenced by the periodic discussions of this point that
> we have.

This is why I suggest to also announce the deprecation in ORG-NEWS, then
effectively remove it in the next release.

> Additionally, last year Eric commented that the deprecation was
> “premature” <http://article.gmane.org/gmane.emacs.orgmode/87739>.  This
> arguably means (among other things) that more effort to publicize it and
> work on its replacement is needed, something that has not really
> happened.

Let's move forward and discuss about what is needed then.

> Neither syntax is necessary, by this metric.  We could just make do with
> local arguments, not needing properties at all.
>
> IOW, this doesn’t distinguish between these two approaches.

You may be misunderstanding me. I don't want to distinguish between
these approaches. Both are certainly fine, but two of them in one too
many. This is just confusing and more difficult to maintain.

>> I suggest to remove the old "dynamic" setting and improve the new
>> "lexical" one, if needed. 
>
> The dynamic vs. lexical metaphor is not very helpful either.

It doesn't matter. Let's call one the "old" setting and the other the
"recent" setting. Or tag them "A" and "B".

> There has been no justification for the new property system proposed
> other than questions of taste such as the above, and efficiency.  The
> efficiency considerations could be solved in several ways.  One obvious
> one would be to use a single call to org-entry-properties rather than N
> calls to org-entry-get.  I feel like a broken record saying this, but it
> was a solution I suggested already, in the last thread
> <http://mid.gmane.org/87r3zlrcnt.fsf@gmail.com>.  Another, more
> ambitious, solution would be to use the parser cache for
> org-entry-{properties,get}.  There was a patch for this
> <http://article.gmane.org/gmane.emacs.orgmode/89326>, which never landed
> for a variety of reasons.

I don't think efficiency is a matter here. `org-entry-get' is reasonably
fast nowadays (since properties drawers change), even using inheritance.


Regards,

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

end of thread, other threads:[~2015-07-03 13:42 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-15  8:39 Tangling takes long - profiling and calling R Rainer M Krug
2015-06-15  8:42 ` Rainer M Krug
2015-06-15 18:52 ` Charles C. Berry
2015-06-16 10:29   ` Rainer M Krug
2015-06-15 19:49 ` Nicolas Goaziou
2015-06-16 10:34   ` Rainer M Krug
2015-06-16 11:46     ` Nicolas Goaziou
2015-06-16 12:45       ` Sebastien Vauban
2015-06-16 13:04         ` Nicolas Goaziou
2015-06-16 14:47         ` Rainer M Krug
2015-07-01 14:03           ` Aaron Ecay
2015-07-02 11:51             ` Nicolas Goaziou
2015-07-02 12:52               ` Rainer M Krug
2015-07-02 16:35                 ` Aaron Ecay
2015-07-02 18:21                   ` Sebastien Vauban
2015-07-02 18:44                     ` Rainer M Krug
2015-07-02 18:43                   ` Rainer M Krug
2015-07-02 16:11               ` Aaron Ecay
2015-07-03 13:43                 ` Nicolas Goaziou
2015-07-02 18:51               ` Rainer M Krug
2015-06-16 14:42       ` Rainer M Krug
2015-06-16 21:45         ` Nicolas Goaziou
2015-06-17  7:16           ` org version numbers in file - WAS: " Rainer M Krug
2015-06-18  8:13             ` Nicolas Goaziou
2015-06-18 13:25               ` Rainer M Krug
2015-06-18 13:50                 ` Nicolas Goaziou
2015-06-23  9:04                   ` Rainer M Krug
2015-06-18 14:23                 ` Detlef Steuer
2015-06-23  8:45                   ` Rainer M Krug
2015-06-23  9:32                     ` Detlef Steuer
2015-06-23 10:57                       ` Rainer M Krug

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).