* Bug: cached code blocks should return the same value [8.3.1]
@ 2015-09-18 10:17 Benda Xu
2015-10-30 9:53 ` Aaron Ecay
0 siblings, 1 reply; 2+ messages in thread
From: Benda Xu @ 2015-09-18 10:17 UTC (permalink / raw)
To: emacs-orgmode
Hi All,
Passing values across code blocks makes Org babel a powerful meta
programming language:
#+name: input
#+BEGIN_SRC sh :results output
echo "3"
#+END_SRC
#+BEGIN_SRC R :var a=input()
a
#+END_SRC
#+RESULTS:
| 3 |
| |
However, this feature does not work with cache. In case that "input"
code block takes a long time to evaluate, it is a good idea to cache the
result. But that returns "nil" in subsequent function calls:
#+name: input
#+BEGIN_SRC sh :results output :cache yes
echo "3"
#+END_SRC
#+RESULTS[f69ecd305ebd448fc39b05809d214261a777c6bc]: input
: 3
#+BEGIN_SRC R :var a=input()
a
#+END_SRC
#+RESULTS:
: nil
Recalling the cached function should return exactly the same result by
definition of "cache".
Or is there a way to circumvent this by referring to the "RESULT" field
directly?
Cheers,
Benda
Emacs : GNU Emacs 24.4.1 (i586-pc-linux-gnu, GTK+ Version 3.14.5)
of 2015-03-08 on binet, modified by Debian
Package: Org-mode version 8.3.1 (8.3.1-dist @ /usr/share/emacs24/site-lisp/org-mode/)
current state:
==============
(setq
org-export-babel-evaluate nil
org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point org-babel-execute-safely-maybe)
org-latex-format-headline-function 'org-latex-format-headline-default-function
org-html-format-inlinetask-function 'org-html-format-inlinetask-default-function
org-archive-location "~/art/gtd/archive.org::From %s"
org-tab-first-hook '(org-hide-block-toggle-maybe org-babel-hide-result-toggle-maybe org-babel-header-arg-expand)
org-archive-hook '(org-attach-archive-delete-maybe)
org-modules '(org-bbdb org-bibtex org-docview org-gnus org-info org-jsinfo org-irc org-mew org-mhe org-rmail org-special-blocks org-vm
org-wl org-w3m)
org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-show-empty-lines
org-optimize-window-after-visibility-change)
org-agenda-before-write-hook '(org-agenda-add-entry-text)
org-confirm-babel-evaluate nil
org-speed-command-hook '(org-speed-command-default-hook org-babel-speed-command-hook)
org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default
org-babel-pre-tangle-hook '(save-buffer)
org-occur-hook '(org-first-headline-recenter)
org-html-format-headline-function 'org-html-format-headline-default-function
org-metaup-hook '(org-babel-load-in-session-maybe)
org-confirm-elisp-link-function 'yes-or-no-p
org-latex-classes '(("beamer" "\\documentclass[presentation]{beamer}" ("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}"))
("article" "\\documentclass[11pt]{article}" ("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}") ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
("report" "\\documentclass[11pt]{report}" ("\\part{%s}" . "\\part*{%s}") ("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}"))
("book" "\\documentclass[11pt]{book}" ("\\part{%s}" . "\\part*{%s}") ("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}"))
)
org-latex-format-drawer-function '(lambda (name contents) contents)
org-format-latex-options '(:foreground default :background default :scale 1.7 :html-foreground "Black" :html-background "Transparent"
:html-scale 1.0 :matchers ("begin" "$1" "$" "$$" "\\(" "\\["))
org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
org-publish-project-alist '(("example" :base-directory "~/art/example" :publishing-directory "~/art/web/projects" :email nil :footnotes
nil :section-numbers nil :table-of-contents nil :preserve-breaks t :sub-superscript nil :style
"<link rel=\"stylesheet\" href=\"pro.css\" media=\"screen\" type=\"text/css\">")
("MoGURA" :base-directory "~/art/MoGURA" :publishing-directory "~/art/web/projects" :email nil :footnotes nil
:section-numbers nil :headline-levels 3 :table-of-contents nil :preserve-breaks t :sub-superscript nil
:style "<link rel=\"stylesheet\" href=\"pro.css\" media=\"screen\" type=\"text/css\">")
)
org-mode-hook '(#[nil "\300\301\302\303\304$\207" [org-add-hook change-major-mode-hook org-show-block-all append local] 5]
#[nil "\300\301\302\303\304$\207" [org-add-hook change-major-mode-hook org-babel-show-result-all append local] 5]
org-babel-result-hide-spec org-babel-hide-all-hashes org-mode-reftex-setup)
org-latex-pdf-process '("latexmk -f -pdf %f")
org-ascii-format-drawer-function '(lambda (name contents width) contents)
org-footnote-define-inline t
org-html-format-drawer-function '(lambda (name contents) contents)
org-metadown-hook '(org-babel-pop-to-session-maybe)
org-agenda-files '("~/art/react/thesis/neutrino.org" "~/art/refBook.org")
org-file-apps '((auto-mode . emacs) ("\\.mm\\'" . default) ("\\.x?html?\\'" . default) ("\\.pdf\\'" . default)
("\\.pdf::\\([0-9]+\\)\\'" . "okular \"%s\" -p %1"))
org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer)
org-footnote-auto-label nil
org-after-todo-state-change-hook '(org-clock-out-if-current)
org-babel-tangle-lang-exts '(("python" . "py") ("emacs-lisp" . "el") ("elisp" . "el"))
org-babel-load-languages '((emacs-lisp . t) (R . t) (python . t) (sh . t))
org-latex-format-inlinetask-function 'org-latex-format-inlinetask-default-function
org-confirm-shell-link-function 'yes-or-no-p
)
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Bug: cached code blocks should return the same value [8.3.1]
2015-09-18 10:17 Bug: cached code blocks should return the same value [8.3.1] Benda Xu
@ 2015-10-30 9:53 ` Aaron Ecay
0 siblings, 0 replies; 2+ messages in thread
From: Aaron Ecay @ 2015-10-30 9:53 UTC (permalink / raw)
To: Benda Xu, emacs-orgmode
Hi Benda,
2015ko irailak 18an, Benda Xu-ek idatzi zuen:
[...]
> However, this feature does not work with cache. In case that "input"
> code block takes a long time to evaluate, it is a good idea to cache the
> result. But that returns "nil" in subsequent function calls:
>
> #+name: input
> #+BEGIN_SRC sh :results output :cache yes
> echo "3"
> #+END_SRC
>
> #+RESULTS[f69ecd305ebd448fc39b05809d214261a777c6bc]: input
> : 3
>
> #+BEGIN_SRC R :var a=input()
> a
> #+END_SRC
>
> #+RESULTS:
> : nil
>
> Recalling the cached function should return exactly the same result by
> definition of "cache".
I can’t reproduce this on org master.
>
> Or is there a way to circumvent this by referring to the "RESULT" field
> directly?
I believe you can add a name to the results, and use that:
,----
| #+name: input
| #+BEGIN_SRC sh :results output :cache yes
| echo "3"
| #+END_SRC
|
| #+name: input-results
| #+RESULTS[f69ecd305ebd448fc39b05809d214261a777c6bc]: input
| : 3
|
| #+BEGIN_SRC R :var a=input-results
| a
| #+END_SRC
|
| #+RESULTS:
| : 3
`----
Hope this helps,
--
Aaron Ecay
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-10-30 9:53 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-18 10:17 Bug: cached code blocks should return the same value [8.3.1] Benda Xu
2015-10-30 9:53 ` Aaron Ecay
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).