Hi Ian, ian martins <ia...@jhu.edu> writes:
> The doc says functional mode (=:results value=) is the default for > most Babel libraries [1]. I haven't looked at many, but it is the > default for ob-python and ob-shell. Scripting mode (=:results output > =) is the default for ob-C, and the old ob-java (neither of these > provided a functional mode). > > When I added functional mode to ob-java, I made it the default since > that seemed correct. But that change breaks anyone that relied on > the old default (the workaround is to add a =:results output= > header). I will change the default in the short term to unbreak the > experience, but what, if anything, should be done long term? The default for ob-shell execution was to use the output, not the value. Then we had a long discussion, leading to this: - The default (no :result) is to display the functional value - For some languages, it may break expectations, so in this case we allow a variable that let the default (no :result) use the output instead of the functional value. This is what is being done for ob-shell.el where we have `org-babel-shell-results-defaults-to-output' set to `t'. See https://orgmode.org/list/877dt5trjr....@bzg.fr/ for the conclusion of the discussion. Also see `org-babel-shell-results-defaults-to-output' docstring: Let shell execution defaults to ":results output". When set to t, use ":results output" when no :results setting is set. This is especially useful for inline source blocks. When set to nil, stick to the convention of using :results value as the default setting when no :results is set, the "value" of a shell execution being its exit code. > And is this inconsistent behavior across languages something that > should be fixed? or is it intentional or at least not worth doing > anything about? What was suggested is to have a page on Worg listing the behavior of various packages regarding block execution. I started a section on https://orgmode.org/worg/library-of-babel.html with a table -- feel free to add more to this table. Thanks, -- Bastien