[Top][All Lists]

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

Re: geiser-0.28.2/geiser-guile-0.28.1: Exception raised while evaluating

From: Jose A. Ortega Ruiz
Subject: Re: geiser-0.28.2/geiser-guile-0.28.1: Exception raised while evaluating continuation in Scheme buffer
Date: Mon, 13 Mar 2023 21:29:42 +0000
User-agent: Gnus/5.13 (Gnus v5.13)

On Mon, Mar 13 2023, wrote:

> Thank you for providing and maintaining the Geiser package.
> The following exception was raised when evaluating a continuation in a
> Scheme buffer in Emacs using ‘geiser-eval-last-sexp’ (mapped to C-x
> C-e):
> *Geiser Debug* buffer:
>> (kont 2)
>> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
>> In procedure display: Wrong type argument in position 2: #<closed: string 
>> 7f318a27fd90>


I think this is expected behaviour and non-trivial to fix.  When
evaluating expressions from a scheme buffer, string ports are used to
capture the standard output fluid, so that any output can be displayed
by Emacs inmmediately.  This redirection to a string port is temporary,
and the port is closed once the evaluation has finished. Then, when you
invoke again the continuation, it's that already closed port that is
used again, giving you an error.

More generally, the problem is that capturing continuations captures
also the state of the geiser library mediating evaluations, and that
library is not reentrant.  That's arguably a bug, but one that is very
hard to fix.

It does not do to leave a live dragon out of your calculations, if you
live near him. -J.R.R. Tolkien, novelist and philologist (1892-1973)

reply via email to

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