* Bug: Infinite recursion in org-babel-get-src-block-info [9.1.13 (9.1.13-elpaplus @ mixed installation!
@ 2018-12-04 16:45 Tobias Zawada
2018-12-04 17:33 ` Berry, Charles
0 siblings, 1 reply; 7+ messages in thread
From: Tobias Zawada @ 2018-12-04 16:45 UTC (permalink / raw)
To: emacs-orgmode
I mostly cite here from https://emacs.stackexchange.com/q/41208/2370:
The following example causes an infinite recursion in ~org-babel-get-src-block-info~.
#+BEGIN_SRC org
,#+BEGIN_SRC org
,#+NAME: add3
,#+BEGIN_SRC elisp :var num=0
(+ 3 num)
,#+END_SRC
,* Use function drawer header arg
:PROPERTIES:
:header-args: :var n=add3(5)
:END:
,#+NAME: whatIsN
,#+BEGIN_SRC sh
echo $n
,#+END_SRC
,#+RESULTS: whatIsN
: 8
,#+BEGIN_SRC sh :var a=whatIsN
echo $a
,#+END_SRC
#+END_SRC
The problem is located in org-babel-get-src-block-info.
The function org-babel-params-from-properties is used there. Its doc-string is:
Retrieve parameters specified as properties. Return a list of association lists of source block params specified in the properties of the current outline entry.
But they do not say what the current outline entry is. In org-babel-get-src-block-info they assumed that the current outline entry would be that one at point but org-babel-params-from-properties uses also org-babel-current-src-block-location to retrieve parameters from there.
Even if (point) is 1 for the first source block add3 the variable org-babel-current-src-block-location in org-babel-params-from-properties points to the source block whatIsN.
So not the header-args for add3 are collected by org-babel-params-from-properties but those of whatIsN.
The consequence is that add3 gets the header arg n=add3(5) from the drawer. Naturally, that leads to infinite recursion.
The funny thing is that they already tried to make sure that org-babel-params-from-properties gets the right header args from the location of datum. I cite a small section of org-babel-get-src-block-info:
;; If DATUM is provided, make sure we get node
;; properties applicable to its location within
;; the document.
(org-with-point-at (org-element-property :begin datum)
(org-babel-params-from-properties lang))
You can avoid the error if you additionally let-bind org-babel-current-src-block-location to the location of datum:
;; If DATUM is provided, make sure we get node
;; properties applicable to its location within
;; the document.
(let ((org-babel-current-src-block-location (org-element-property :begin datum)))
(org-with-point-at org-babel-current-src-block-location
(org-babel-params-from-properties lang)))
I am not sure about the full consequences of that change through.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Bug: Infinite recursion in org-babel-get-src-block-info [9.1.13 (9.1.13-elpaplus @ mixed installation!
2018-12-04 16:45 Bug: Infinite recursion in org-babel-get-src-block-info [9.1.13 (9.1.13-elpaplus @ mixed installation! Tobias Zawada
@ 2018-12-04 17:33 ` Berry, Charles
2018-12-05 0:01 ` Tobias Zawada
0 siblings, 1 reply; 7+ messages in thread
From: Berry, Charles @ 2018-12-04 17:33 UTC (permalink / raw)
To: Tobias Zawada; +Cc: org-mode-email
I cannot reproduce this in 9.1.14
C-c C-v C-i on each src block works as expected.
org-babel-execute-buffer runs to successful completion.
HTH,
Chuck
> On Dec 4, 2018, at 8:45 AM, Tobias Zawada <i_inbox@tn-home.de> wrote:
>
> I mostly cite here from https://emacs.stackexchange.com/q/41208/2370:
>
> The following example causes an infinite recursion in ~org-babel-get-src-block-info~.
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Bug: Infinite recursion in org-babel-get-src-block-info [9.1.13 (9.1.13-elpaplus @ mixed installation!
2018-12-04 17:33 ` Berry, Charles
@ 2018-12-05 0:01 ` Tobias Zawada
2018-12-05 15:59 ` Tobias Zawada
0 siblings, 1 reply; 7+ messages in thread
From: Tobias Zawada @ 2018-12-05 0:01 UTC (permalink / raw)
To: Berry, Charles; +Cc: org-mode-email
Dear Charles,
thanks for the quick test.
You wrote:
> I cannot reproduce this in 9.1.14
> C-c C-v C-i on each src block works as expected.
> org-babel-execute-buffer runs to successful completion.
I had a look at the orgmode master.
The problem has already been fixed in the master by substituting the
reference to |org-babel-current-src-block-location with (point).|
See:
https://code.orgmode.org/bzg/org-mode/src/04641c4bbefc5f90e05fe4e846f4aeab15f1c262/lisp/ob-core.el#L1446
NOTE however that the problem is still present in the maint branch:
See:
https://code.orgmode.org/bzg/org-mode/src/1315315465d49ebe32e533515ec81fd1ba165a55/lisp/ob-core.el#L1444
Best regards,
Tobias Zawada
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Bug: Infinite recursion in org-babel-get-src-block-info [9.1.13 (9.1.13-elpaplus @ mixed installation!
2018-12-05 0:01 ` Tobias Zawada
@ 2018-12-05 15:59 ` Tobias Zawada
2018-12-05 17:44 ` Berry, Charles
0 siblings, 1 reply; 7+ messages in thread
From: Tobias Zawada @ 2018-12-05 15:59 UTC (permalink / raw)
To: Berry, Charles; +Cc: org-mode-email
Dear Charles,
I installed orgmode 9.14 from org via ~package-install~.
The problem is still present there.
The messages from the evaluation of the last code block and the output of ~org-version~:
#+BEGIN_QUOTE
Wrote /temp/test1.org
executing Elisp code block (add3)...
(num (quote 5))
"8"
outline-on-heading-p: Variable binding depth exceeds max-specpdl-size
Org mode version 9.1.14 (9.1.14-1-g4931fc-elpa @ /cygdrive/c/Users/.../.emacs.d/elpa/org-9.1.14/)
#+END_QUOTE
> Tobias Zawada <i_inbox@tn-home.de> hat am 5. Dezember 2018 um 01:01 geschrieben:
>
>
> Dear Charles,
> thanks for the quick test.
> You wrote:
> > I cannot reproduce this in 9.1.14 > C-c C-v C-i on each src block works as expected. > org-babel-execute-buffer runs to successful completion.
>
> I had a look at the orgmode master.
> The problem has already been fixed in the master by substituting the
> reference to |org-babel-current-src-block-location with (point).|
> See:
> https://code.orgmode.org/bzg/org-mode/src/04641c4bbefc5f90e05fe4e846f4aeab15f1c262/lisp/ob-core.el#L1446
>
> NOTE however that the problem is still present in the maint branch:
> See:
> https://code.orgmode.org/bzg/org-mode/src/1315315465d49ebe32e533515ec81fd1ba165a55/lisp/ob-core.el#L1444
>
> Best regards,
> Tobias Zawada
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Bug: Infinite recursion in org-babel-get-src-block-info [9.1.13 (9.1.13-elpaplus @ mixed installation!
2018-12-05 15:59 ` Tobias Zawada
@ 2018-12-05 17:44 ` Berry, Charles
2018-12-05 23:07 ` Tobias Zawada
0 siblings, 1 reply; 7+ messages in thread
From: Berry, Charles @ 2018-12-05 17:44 UTC (permalink / raw)
To: Tobias Zawada; +Cc: org-mode-email
Hmmm.
I just updated from master using `make update2'.
I ran
/Applications/Emacs.app/Contents/MacOS/Emacs -q
which is morally equivalent to `emacs -q' on a linux box.
I had to customize `org-babel-load-languages' to add `shell'.
I copied your text to an org buffer did C-c ' to extract the org src and saved it as a file.
I ran the last code block using C-c C-c.
It gave me the expected result. The message buffer had:
,----
| executing Elisp code block (add3)...
|
| (num (quote 5))
|
| "8"
| executing Elisp code block (add3)...
|
| (num (quote 5))
|
| "8"
| executing Sh code block (whatIsN)...
| Wrote /var/folders/kb/2hchpbyj7lb6z76l0q73w_fh0000gn/T/babel-994SoA/ob-input-994MXT
| "8"
| executing Sh code block...
| Wrote /var/folders/kb/2hchpbyj7lb6z76l0q73w_fh0000gn/T/babel-994SoA/ob-input-994AAs
| Code block evaluation complete.
| Auto-saving...
`----
I suggest you try `emacs -q' to be sure it isn't something in your init file.
If that doesn't work, my best guess is you have a mixed installation that you will need to repair.
HTH,
Chuck
> On Dec 5, 2018, at 7:59 AM, Tobias Zawada <i_inbox@tn-home.de> wrote:
>
> Dear Charles,
> I installed orgmode 9.14 from org via ~package-install~.
>
> The problem is still present there.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Bug: Infinite recursion in org-babel-get-src-block-info [9.1.13 (9.1.13-elpaplus @ mixed installation!
2018-12-05 17:44 ` Berry, Charles
@ 2018-12-05 23:07 ` Tobias Zawada
2018-12-05 23:35 ` Nicolas Goaziou
0 siblings, 1 reply; 7+ messages in thread
From: Tobias Zawada @ 2018-12-05 23:07 UTC (permalink / raw)
To: Berry, Charles; +Cc: org-mode-email
Dear Charles,
The problem is the update from master.
From my understanding Master is more or less the development branch.
It is not what can be installed from org via package-install.
I believe that is the maint branch. But I can be mistaken.
Nevertheless, I had a look at the 9.14-Tag on https://code.orgmode.org/bzg/org-mode.
And the problem is there.
AFAIK from general understanding of software development bugfixes should also be applied to the maintenance version of a program.
You find a more exact description inclusive the relevant links at
https://emacs.stackexchange.com/a/46424/2370
Best regards,
Tobias Zawada
> "Berry, Charles" <ccberry@ucsd.edu> hat am 5. Dezember 2018 um 18:44 geschrieben:
>
>
> Hmmm.
>
> I just updated from master using `make update2'.
>
> I ran
>
> /Applications/Emacs.app/Contents/MacOS/Emacs -q
>
> which is morally equivalent to `emacs -q' on a linux box.
>
> I had to customize `org-babel-load-languages' to add `shell'.
>
> I copied your text to an org buffer did C-c ' to extract the org src and saved it as a file.
>
> I ran the last code block using C-c C-c.
>
> It gave me the expected result. The message buffer had:
>
> ,----
> | executing Elisp code block (add3)...
> |
> | (num (quote 5))
> |
> | "8"
> | executing Elisp code block (add3)...
> |
> | (num (quote 5))
> |
> | "8"
> | executing Sh code block (whatIsN)...
> | Wrote /var/folders/kb/2hchpbyj7lb6z76l0q73w_fh0000gn/T/babel-994SoA/ob-input-994MXT
> | "8"
> | executing Sh code block...
> | Wrote /var/folders/kb/2hchpbyj7lb6z76l0q73w_fh0000gn/T/babel-994SoA/ob-input-994AAs
> | Code block evaluation complete.
> | Auto-saving...
> `----
>
> I suggest you try `emacs -q' to be sure it isn't something in your init file.
>
> If that doesn't work, my best guess is you have a mixed installation that you will need to repair.
>
> HTH,
>
> Chuck
> > On Dec 5, 2018, at 7:59 AM, Tobias Zawada <i_inbox@tn-home.de> wrote:
> >
> > Dear Charles,
> > I installed orgmode 9.14 from org via ~package-install~.
> >
> > The problem is still present there.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Bug: Infinite recursion in org-babel-get-src-block-info [9.1.13 (9.1.13-elpaplus @ mixed installation!
2018-12-05 23:07 ` Tobias Zawada
@ 2018-12-05 23:35 ` Nicolas Goaziou
0 siblings, 0 replies; 7+ messages in thread
From: Nicolas Goaziou @ 2018-12-05 23:35 UTC (permalink / raw)
To: Tobias Zawada; +Cc: org-mode-email, Berry, Charles
Hello,
Tobias Zawada <i_inbox@tn-home.de> writes:
> AFAIK from general understanding of software development bugfixes
> should also be applied to the maintenance version of a program.
Org maint is totally frozen and bugfixes are applied to master instead.
It is inconvenient. Hopefully, it will change once Org 9.2 is released.
Regards,
--
Nicolas Goaziou
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-12-05 23:36 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-12-04 16:45 Bug: Infinite recursion in org-babel-get-src-block-info [9.1.13 (9.1.13-elpaplus @ mixed installation! Tobias Zawada
2018-12-04 17:33 ` Berry, Charles
2018-12-05 0:01 ` Tobias Zawada
2018-12-05 15:59 ` Tobias Zawada
2018-12-05 17:44 ` Berry, Charles
2018-12-05 23:07 ` Tobias Zawada
2018-12-05 23:35 ` Nicolas Goaziou
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).