On Mon, 21 Oct 2019 at 15:16, Vladimir Nikishkin <lockywolf@gmail.com> wrote:
Yeah. The "output" is not the result of geiser's elisp functions, as far
as I understand, it comes from comint, which reads it from a scheme
interpreter, and is expected to be formatted specifically to be fed into
geiser-eval--retort-output by the geiser scheme functions (running
inside a scheme interpreter).

So "output" is never 'nil, because comint, when scheme produces some
rubbish, just makes it an empty string, which is not 'nil.

Then, "output" is expected to be "retorted" back from a serialized
scheme expression into an elisp expression by
geiser-eval--retort-output. And this actually may and produce a 'nil,
but there is no check for it.

So, again, both of the geiser steps (namely, (a) serializing a sexp in
scheme, and (b) de-serializing it in geiser-eval--retort-output) may fail.

I agree that it's fragile for geiser/scheme to output a sexp that it hopes geiser/elisp will be able to read back.  (I'm guilty of doing that in the past too!)

Do you have a specific example of that?  It feels like the right thing to do would be to report that to the Geiser list, as this could and should be fixed entirely within the Geiser code.
  

Yes, I have seen this going on, actually quite a lot, because both
geiser and different scheme interpreters are in constant development and
get broken every other day.

I use Org with Guile 2.2.3 (via Geiser), and it seems a pretty stable setup to me.
 
Best wishes,
     Neil