emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [BUG] on export resulting in endless evaluation


From: Rainer M Krug
Subject: Re: [O] [BUG] on export resulting in endless evaluation
Date: Sat, 07 Feb 2015 15:46:56 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (darwin)

Charles Berry <address@hidden> writes:

> Rainer M Krug <Rainer <at> krugs.de> writes:
>
>> 
>> 
>> Hi
>> 
>> when exporting the fillowing org file, I get an endless loop of
>> evaluations.
>> 
>> This happens with only orgmode and languages enabled
>> 
>> ,----
>> | GNU Emacs 24.4.1 (x86_64-apple-darwin14.0.0, Carbon Version 157
>> | Org-mode version 8.3beta (release_8.3beta-798-g528b90  <at>  
>> `----
>> 
>> --8<---------------cut here---------------start------------->8---
>> #+PROPERTY: header-args :exports both
>> #+PROPERTY: header-args+ :results output
>> * The bug
>> This file create an (possibly endless?) loop during export
>> * here exports both
>> #+begin_src R 
>> cat(13+14)
>> #+end_src
>> 
>> * and here only code
>> :PROPERTIES:
>> :header-args+: exports code
>> :END:
>> #+begin_src R 
>> paste(13+14)
>> #+end_src
>> --8<---------------cut here---------------end--------------->8---
>> 
>
> Add this to the end of your example and run the src block:
>
>
> #+BEGIN_SRC emacs-lisp :results pp
> (org-entry-get (point) "header-args" t)
> #+END_SRC
>
> #+RESULTS:
> : ":exports both :results output exports code"

Very useful function - I think I will use it quite often! I would have
seen the problem immediately - the missing :

>
>
>
> As you see the property API merely adds the `exports code' to the end of the
>  "header-args"value.
>
> Babel then ignores the 'exports'

I assume because it does not know it - which makes sense.

> and you end up with `:results output code' which creates an executable
> src block. Since :exports both' is set, that src block is
> executed. And so on.

OK - I think I understand this logic.

>
> A bug?

Not actually a bug I would say now, but mailny a user error (I did
forget the :...)

>
> I guess Babel could do a better job of screening header-args and barf if 
> invalid 
> args are submitted.

This would be really nice. Also, possibly in the message buffer show the
header-args when a block is executed would make this kind of error more obvious?

> I believe that `org-babel-merge-params' is the place where a check
> could be introduced, but AFAICS there is none such.

There should be at least a warning, if not an error thrown, if an
invalid header argument is passed.

>
> Of course `:exports code' solves this, but I think you knew that. :-)

Now I know...

Thanks,

Rainer

>
> HTH,
>
> Chuck
>
>
>
>
>

-- 
Rainer M. Krug
email: Rainer<at>krugs<dot>de
PGP: 0x0F52F982

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]