emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Eric Schulte" <schulte.eric@gmail.com>
To: Dan Davison <dandavison7@gmail.com>
Cc: "mailing list" <emacs-orgmode@gnu.org>
Subject: Re: [Babel] No output returned if just one command is failing
Date: Thu, 02 Dec 2010 07:35:34 -0700	[thread overview]
Message-ID: <87fwug9r8y.fsf@gmail.com> (raw)
In-Reply-To: 87d3pkialo.fsf@gmail.com

Hi,

You both make good points in favor of this behavior, and I had no idea
this would be as easy as Dan's patch below, I was thinking that some
sort of intermediate results return would be required.

I would be open to either of Dan's suggested changes
1. return partial results for ":results output"
2. return partial results controlled by some new header argument

I am worried by the prospect of partial results being used by another
code block in chained code block execution.  Perhaps some special care
should be taken to ensure that this will not happen, or perhaps this
should happen only in case two above where the user has explicitly
specified that partial results are OK.

Thoughts? -- Eric

Dan Davison <dandavison7@gmail.com> writes:

> Hi Seb, I definitely have some sympathy with your request. On two
> occasions I've had to manually make this change just to carry on
> working. The change I made is straightforward if you need it as a
> temporary hack:
>
> diff --git a/lisp/ob-eval.el b/lisp/ob-eval.el
> index 8832d91..1cce003 100644
> --- a/lisp/ob-eval.el
> +++ b/lisp/ob-eval.el
> @@ -57,7 +57,7 @@ STDERR with `org-babel-eval-error-notify'."
>           (progn
>             (with-current-buffer err-buff
>               (org-babel-eval-error-notify exit-code (buffer-string)))
> -           nil)
> +           (buffer-string))
>         (buffer-string)))))
>  
>  (defun org-babel-eval-read-file (file)
>
> But do we actually change babel in this direction? It's important to
> distinguish between :results output and :results value here. The change
> that seems superficially attractive is to allow :results output to
> output the contents of standard output, even if there has been an
> error. After all, stdout might contain some useful data, and currently
> babel refuses point blank to give it to you if there's been an
> error. And as you say, this is the behavior we are used to in the
> shell. This hypothetical change would leave the default :results value
> alone (so the above patch would need modification).
>
> The thing is that babel currently has a clear, simple, rule which says:
> if there's an error, the result is the elisp value nil.
>
> Eric and I have discussed in the past whether there should be any change
> in this direction. The idea of a :debug header arg has been floated,
> that would allow this behavior. Or tacking stdout on to the error
> output. I tend to think that the behavior you request does need to be
> made available, somehow, whether by default or not.
>
> Dan
>
> Sébastien Vauban <wxhgmqzgwmuf-geNee64TY+gS+FvcfC7Uqw@public.gmane.org>
> writes:
>
>> Hi Eric,
>>
>> "Eric Schulte" wrote:
>>> I don't forsee adding partial results insertion both because
>>>
>>> - it would add a good deal of complexity to the code to insert results
>>>   part-way through a run
>>
>> I can't comment on this, of course.
>>
>>> - the current behavior of only inserting results on a fully successful
>>>   run is reasonable and is probably more obvious (at least to me) than
>>>   inserting partial results
>>
>> Being fond of Babel, I'm using it always, everywhere. I prefer:
>>
>> 1. typing my shell commands in an Org buffer,
>> 2. evaluate the block,
>> 3. get the results automagically inserted in the buffer,
>> 4. (eventually, version the whole file for later comparisons when updating the
>>    code),
>> 5. export the whole to HTML and/or PDF.
>>
>> The current behavior, even if totally respectable and defendable, inhibits
>> such a way of working: if you write (or update) a shell code, and don't see
>> (more or less) the same things as the ones you would see in a shell buffer,
>> then you can't use such an Org buffer -- as long as one command fails.
>>
>> I don't especially want you to change your position, but I'm explaining the
>> "negative" consequences for me.
>>
>> Thanks!
>>
>> Best regards,
>>   Seb

  reply	other threads:[~2010-12-02 14:37 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-01  9:25 [Babel] No output returned if just one command is failing Sébastien Vauban
2010-12-01 14:29 ` Eric Schulte
2010-12-01 15:25   ` Sébastien Vauban
2010-12-02 10:03     ` Sébastien Vauban
2010-12-02 13:10     ` Dan Davison
2010-12-02 14:35       ` Eric Schulte [this message]
2010-12-02 20:34         ` Sébastien Vauban
2010-12-02 15:43       ` Sébastien Vauban
2010-12-02 18:02         ` Dan Davison
2010-12-02 20:27           ` Sébastien Vauban

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87fwug9r8y.fsf@gmail.com \
    --to=schulte.eric@gmail.com \
    --cc=dandavison7@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).