Discussion:
[Geiser-users] eval commands always split debug window?
Scott Messick
2017-02-25 00:18:40 UTC
Permalink
I'm trying to start using Geiser with Chicken (new to both, but I have
used SLIME in the past and very briefly used Geiser with Racket).

The eval commands such as C-c C-c or C-c C-b seem to never use the REPL.
For commands with no output, they display a result in the minibuffer.
For commands with output, whether or not there is an error, they split a
debug window and display their results and output there. Is this
behavior intended?

Regardless, I'd like to change it so that these commands just send their
contents to the REPL. Is there a simple way to do this? The debug
windows, apart from being annoying, also seem useless: lack of syntax
highlighting makes them hard to read. I'm not sure if that's just an
issue with my setup, though.

I'm using Arch Linux; Emacs and Chicken are installed through the
official packages. Geiser is installed through MELPA.

Emacs 25.1.1
Chicken 4.11.0
Geiser 20170201.1455 (not sure how to get real version number?)

Thanks,
Scott
Jose A. Ortega Ruiz
2017-02-25 04:21:40 UTC
Permalink
Post by Scott Messick
I'm trying to start using Geiser with Chicken (new to both, but I have
used SLIME in the past and very briefly used Geiser with Racket).
The eval commands such as C-c C-c or C-c C-b seem to never use the REPL.
they are not designed to use its buffer. the repl's process is of
course used to perform the evaluation, and obtain their results.
Post by Scott Messick
For commands with no output, they display a result in the minibuffer.
For commands with output, whether or not there is an error, they split a
debug window and display their results and output there. Is this
behavior intended?
yes. the debug window is the recipient of output. due to
implementation reasons (the communications between the repl process and
emacs use the process's sttandard input/output), the output of an
evaluation cannot be shown in the repl buffer.
Post by Scott Messick
Regardless, I'd like to change it so that these commands just send their
contents to the REPL.
sorry, but i'm afraid this is not currently possible (see above).
Post by Scott Messick
Is there a simple way to do this? The debug windows, apart from being
annoying, also seem useless: lack of syntax highlighting makes them
hard to read. I'm not sure if that's just an issue with my setup,
though.
i'm not sure i understand correctly, but are your commands writing their
results to stdout and that's why you need syntax highlighting? when you
simply evalutate a scheme value, without writing to stdout (which is the
regular operation for me), the evaluated value appears in the
mini-buffer with syntax highlighting, and also in the debug window with
syntax highlighting (but the window is not shown most of the time).

in my case, it's very rare that my evaluations write to stdout (i.e., i
almost never evaluate things like (display foo) or (write bar)), but
certainly YMMV.

and certainly i might be misunderstanding :)

hope this helps a bit,

cheers,
jao
--
If a listener nods his head when you're explaining your program, wake
him up.
- Alan Perlis, Epigrams on Programming
Scott Messick
2017-02-25 16:42:56 UTC
Permalink
Post by Jose A. Ortega Ruiz
Post by Scott Messick
For commands with no output, they display a result in the minibuffer.
For commands with output, whether or not there is an error, they split a
debug window and display their results and output there. Is this
behavior intended?
yes. the debug window is the recipient of output. due to
implementation reasons (the communications between the repl process and
emacs use the process's sttandard input/output), the output of an
evaluation cannot be shown in the repl buffer.
Post by Scott Messick
Regardless, I'd like to change it so that these commands just send their
contents to the REPL.
sorry, but i'm afraid this is not currently possible (see above).
Okay, good to know.
Post by Jose A. Ortega Ruiz
i'm not sure i understand correctly, but are your commands writing their
results to stdout and that's why you need syntax highlighting? when you
simply evalutate a scheme value, without writing to stdout (which is the
regular operation for me), the evaluated value appears in the
mini-buffer with syntax highlighting, and also in the debug window with
syntax highlighting (but the window is not shown most of the time).
in my case, it's very rare that my evaluations write to stdout (i.e., i
almost never evaluate things like (display foo) or (write bar)), but
certainly YMMV.
Yes, I do have some things writing to stdout, mainly for
debug/development purposes. However, the bigger issue when I evaluate
something that causes errors. The lack of syntax highlighting makes the
trace much harder to read., and because it's long I'd prefer not to have
it in a half window.

I have not really established my workflow here, so I think all of this
is fine and I can figure out what I really want. On reflection, a lot
of the trouble comes because in what I'm working on now, I occasionally
have top-level definitions of data (like a list or hash-table, not a
function). So code mistakes would be likely to produce errors
immediately when these are evaluated, whereas functions would be defined
okay (with C-c C-c) and then signal errors when I test their use (in the
actual REPL buffer). Probably I can fix this by adjusting my coding
and/or debug style a little bit.

Thanks for your help!

Scott
Post by Jose A. Ortega Ruiz
Post by Scott Messick
I'm trying to start using Geiser with Chicken (new to both, but I have
used SLIME in the past and very briefly used Geiser with Racket).
The eval commands such as C-c C-c or C-c C-b seem to never use the REPL.
they are not designed to use its buffer. the repl's process is of
course used to perform the evaluation, and obtain their results.
Post by Scott Messick
For commands with no output, they display a result in the minibuffer.
For commands with output, whether or not there is an error, they split a
debug window and display their results and output there. Is this
behavior intended?
yes. the debug window is the recipient of output. due to
implementation reasons (the communications between the repl process and
emacs use the process's sttandard input/output), the output of an
evaluation cannot be shown in the repl buffer.
Post by Scott Messick
Regardless, I'd like to change it so that these commands just send their
contents to the REPL.
sorry, but i'm afraid this is not currently possible (see above).
Post by Scott Messick
Is there a simple way to do this? The debug windows, apart from being
annoying, also seem useless: lack of syntax highlighting makes them
hard to read. I'm not sure if that's just an issue with my setup,
though.
i'm not sure i understand correctly, but are your commands writing their
results to stdout and that's why you need syntax highlighting? when you
simply evalutate a scheme value, without writing to stdout (which is the
regular operation for me), the evaluated value appears in the
mini-buffer with syntax highlighting, and also in the debug window with
syntax highlighting (but the window is not shown most of the time).
in my case, it's very rare that my evaluations write to stdout (i.e., i
almost never evaluate things like (display foo) or (write bar)), but
certainly YMMV.
and certainly i might be misunderstanding :)
hope this helps a bit,
cheers,
jao
--
If a listener nods his head when you're explaining your program, wake
him up.
- Alan Perlis, Epigrams on Programming
Loading...