emacs-orgmode
[Top][All Lists]
Advanced

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

Re: org-babel-execute-src-block filters characters from :session *shell*


From: Ihor Radchenko
Subject: Re: org-babel-execute-src-block filters characters from :session *shell* output
Date: Tue, 02 Jul 2024 20:05:34 +0000

Phil <pe@7d.nz> writes:

> I'd like to add a few general remarks about *error status*.
> I'm starting to notice there are not much subprocesses
> that to do get called through =call-process= with
> ‘(REAL-DESTINATION ERROR-DESTINATION)’ kept as
> separate.  You all know how useful stdin/out/err and
> the return codes are, but they're absent from Babel.

They are not.
See `org-babel-eval-error-notify'.
Not for sessions though.

> That's why a failed command will still provide a result
> — an empty array for instance, something that looks
> legit even when it's not.  I had again this experience
> with =ob-http :pretty= and =ob-mongo= lastly: errors are
> silenced.

The API is there, as long as individual backends can separate stderr
from the rest.

> Comint reads and write from/to terminals with all
> three standard channels together. It's meant to
> provide requirements to communicate with non-POSIX
> terminals too. It's a great library but perhaps
> there's a need to specialize things further when
> dealing with one shell?

> So In Emacs, those specs would land either in one precise
> (possibly low-level) shell extension or a generic one that
> would once more care for the many idiosyncracies every one
> of them have.

It would be nice indeed, but it will be a huge work.

> Something I figured when dealing with ob-sql-session is
> that if several commands are given in one batch (what a
> babel source block is in many cases), they can either be
> all run until the end or be stopped when an error is
> met. In both cases, knowing the number of errors met is
> possible in one shell that do agree with the convention
> of returning a value for every command (or command line).

May you elaborate?

> Otherwise, a terminal "reader" has to reinterpret the
> results.
>
> [[info:elisp#Synchronous
>   Processes][elisp#Synchronous Processes]] says :
>
>     You can’t directly specify a buffer to put the
>     error output in; that is too difficult to
>     implement.
>
> Can someone explain why?

No idea. You better ask on emacs-devel.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>



reply via email to

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