Weird issue with running guile in a guix shell, infinite output loop, In procedure fport_read: Input/output error

Zelphir Kaltstahl <[email protected]>
Newsgroups gmane.lisp.guile.devel
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.