Hello Guile developers,
I observe something weird happening, when I develop some Guile module, and test things out in a Guile REPL, which I start in a Guix shell, in order to have dependencies installed.
~~~~ guix time-machine --channels=guix-env/channels.scm -- shell --check --manifest=guix-env/manifest.scm -- bash -c guile ~~~~
Using time machine here, to pin to one specific version of whatever I install. Content of other files:
~~~~manifest.scm~~~~ (specifications->manifest '("guile" "guile-pfds")) ~~~~ ~~~~channels.scm~~~~ (list (channel (name 'guix) (url "https://git.savannah.gnu.org/git/guix.git") (branch "master") (commit "4473f8ae902c2192cab6919363a9101ce9861e45") (introduction (make-channel-introduction "9edb3f66fd807b096b48283debdcddccfea34bad" (openpgp-fingerprint "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))) ~~~~
So the time machine drops me into a Guile REPL:
~~~~ $ guix time-machine --channels=guix-env/channels.scm -- shell --check --manifest=guix-env/manifest.scm -- bash -c guile guix shell: checking the environment variables visible from shell '/bin/bash'... guix shell: All is good! The shell gets correct environment variables. GNU Guile 3.0.9 Copyright (C) 1995-2023 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guile-user)> ~~~~
If I press ctrl+c at any time in that REPL, the REPL exits, instead of merely saying user interrupt. I get dropped back to bash. That seems weird in itself, but if I then in that bash shell press enter/return, then suddenly I get an endless loop of output spewing out:
~~~~ In procedure fport_read: Input/output error scheme@(guile-user)> While reading expression: In procedure fport_read: Input/output error scheme@(guile-user)> While reading expression: In procedure fport_read: Input/output error scheme@(guile-user)> While reading expression: ~~~~
And so on, infinitely.
I don't know what is going on there. Perhaps it is also a guix problem, not a guile problem. However, if I try the same with Python, no such endless output is produced.
Of course, it is very likely to, at some point when using the REPL, make a mistake and wanting to cancel current input, hitting ctrl+c.
Any ideas what is going on?
Best regards,
Zelphir
-- repositories: https://notabug.org/ZelphirKaltstahl, https://codeberg.org/ZelphirKaltstahl