emacs-orgmode
[Top][All Lists]
Advanced

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

bug#52545: 29.0.50; Make org-babel-execute-buffer ignore irrelevant src


From: Max Nikulin
Subject: bug#52545: 29.0.50; Make org-babel-execute-buffer ignore irrelevant src blocks
Date: Tue, 4 Jan 2022 21:59:48 +0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0

Since debbugs is not the primary bug tracker, it is better to close this issue on debbugs and maybe confirm it for https://updates.orgmode.org/

From my point of view, making babel aware that some widely used languages are data-only (so evaluation does not make sense) improves user experience.

On the other hand there is no support of BibTeX in babel, so current behavior is correct: attempt to execute a block of a language that is not enabled causes an error. (While I was reading first messages in this thread, it was not obvious for me that there in no ob-bibtex.el package.)

Anyway emacs requires enough customization, so
    (setq org-babel-default-header-args:bibtex '((:eval . "no")))
globally in inti.el or per-file setting
    #+property: header-args:bibtex :eval no
should not be a problem. User can achieve desired behavior with no changes in org code.

On 26/12/2021 20:27, Ihor Radchenko wrote:

Thanks for reminding about `org-babel-load-languages'.
Note that `org-babel-execute-src-block' (called by
org-babel-execute-buffer) does not really use it. It just checks for
(intern (concat "org-babel-execute:" lang)).

Maybe we just should not throw an error when lang is not in
`org-babel-load-languages'? Or maybe we can check for this in
`org-babel-confirm-evaluate'.

Berry, Charles. Fri, 17 Dec 2021 19:25:52 +0000
https://list.orgmode.org/A4FB4F42-64A8-4D6D-A621-D621E1AA1F04@health.ucsd.edu

If I have a typo in the name of a language, the error message you
quote tells me what my mistake was.
Certainly, if some language is mentioned in `org-babel-load-languages' than it is not a typo, but as I wrote earlier, I do not think, nil should work as ":eval no".

Side note: to notify users about a typo, it is better to check all source blocks in advance before starting to execute them in `org-babel-execute-buffer'. Export may issue warnings as well even when evaluation is disabled. See P.S. below for one more note.

I do not mind using `org-babel-load-languages' more widely. However massive clean up of worg is required to change abundant examples that replace `org-babel-load-languages' by calling `org-babel-do-load-languages'. The latter is intended for `defcustom'. It is better to provide incremental functions to load and unload languages for usage in init files or source blocks. Direct (require 'ob-something) becomes less favorable as well.

Some symbol like "noeval" may be added to nit and t as values of `org-babel-load-languages' pairs.

Berry, Charles. Fri, 31 Dec 2021 19:11:45 +0000.
https://list.orgmode.org/F641D224-52FC-45D8-95F0-9E99F824E1F7@health.ucsd.edu

#+name: yaml_header_1
#+begin_export yaml

Rudy wrote that it prevents tangling. I can add that it prevents export to e.g. HTML for documentation how to configure something that has two representations: executable script and steps that can be followed by manually typing commands and editing configuration files.

So I consider data-only languages as a convenient feature.

From security reasons I would like to have possibility to disable evaluation in a such way that it is impossible to override through per-file variables or properties.

Are we going to change anything related to `org-babel-load-language' and `org-babel-execute-buffer' or maybe just add a set `org-babel-default-header-args:something variables'?


P.S.

Berry, Charles. Sat, 18 Dec 2021 20:13:15 +0000.
https://list.orgmode.org/C61FBF93-064B-4FB2-9378-39D3078F108E@health.ucsd.edu

Also, when exporting it looks `org-babel-exp-results' does not
attempt  to run src blocks for which

(fboundp (intern (concat "org-babel-execute:" lang)))

is nil.

So doing an export should `just work'.

I would say that it is hardly consistent with mistake detection as a feature.





reply via email to

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