From mboxrd@z Thu Jan 1 00:00:00 1970 From: Neil Jerram Subject: Re: Bug: Problems with ob-scheme in geiser-eval--retort-output [9.2.6 (9.2.6-4-ge30905-elpa @ /home/lockywolf/.emacs.d/elpa/org-20191021/)] Date: Mon, 21 Oct 2019 15:46:49 +0100 Message-ID: References: <87h842kfgi.fsf@delllaptop.lockywolf.net> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="00000000000096b43805956cc139" Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:50553) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iMYxb-0006Bw-Pc for emacs-orgmode@gnu.org; Mon, 21 Oct 2019 10:47:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iMYxZ-00007Z-Cx for emacs-orgmode@gnu.org; Mon, 21 Oct 2019 10:47:03 -0400 Received: from mail-qt1-x833.google.com ([2607:f8b0:4864:20::833]:33223) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iMYxZ-00007J-8W for emacs-orgmode@gnu.org; Mon, 21 Oct 2019 10:47:01 -0400 Received: by mail-qt1-x833.google.com with SMTP id r5so21454756qtd.0 for ; Mon, 21 Oct 2019 07:47:01 -0700 (PDT) In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Vladimir Nikishkin , Org Mode List --00000000000096b43805956cc139 Content-Type: text/plain; charset="UTF-8" On Mon, 21 Oct 2019 at 15:16, Vladimir Nikishkin 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 --00000000000096b43805956cc139 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Mon, 21 Oct 2019 at 15:16, Vladimir Ni= kishkin <lockywolf@gmail.com&= gt; wrote:
Yeah. The "output" is not the result of gei= ser'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 produc= es 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.<= br>

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

Do you have a specific example of that?=C2=A0 It feels like the ri= ght thing to do would be to report that to the Geiser list, as this could a= nd should be fixed entirely within the Geiser code.
=C2=A0=C2=A0<= /div>

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 w= ith Guile 2.2.3 (via Geiser), and it seems a pretty stable setup to me.
=C2=A0
Best wishes,
=C2=A0 =C2=A0 =C2=A0Neil
=C2=A0
--00000000000096b43805956cc139--