* bug#74484: reader syntax trouble across socket
@ 2024-11-22 20:51 Christopher Howard
2024-12-09 17:08 ` Ludovic Courtès
0 siblings, 1 reply; 2+ messages in thread
From: Christopher Howard @ 2024-11-22 20:51 UTC (permalink / raw)
To: 74484
Hi, I'm trying to troubleshoot some bugs in the venerable emacs-guix package, which you've probably heard of. In its default configuration, emacs-guix uses geiser to set up one Guile REPL (*Guix REPL*) to handle various guix operations, and tells it to --listen on a domain socket; and then it uses some comint functions to connect to the domain socket, to provide another Guile REPL (*Guix Internal REPL*) which it uses for various other guix operations while the main REPL is busy.
In guix bug#73462, I figured out that the bug was caused by, for some unknown reason, (guix gexp) reader syntax was working in the main REPL (*Guix REPL*) but not in the REPL that was over the socket (*Guix Internal REPL*). A work around is available, which is to run an extra ",re (guix gexp)" in the internal REPL buffer, and then after that it works fine, but I don't understand why that should be necessary. Can somebody help me figure if this is some kind of bug in Guile, or a different issue...?
This can be reproduced this one my system command line with the following commands. Of course, you would need to adjust for your own paths. On one terminal:
``` shell
christopher@theoden ~$ /gnu/store/g1fhmjs2mh8a0djfnyaha49ihb5cmkas-profile/bin/guile --no-auto-compile -L /home/christopher/Repos/emacs-guix/scheme -C /home/christopher/Repos/emacs-guix/scheme -L /home/christopher/.config/guix/current/share/guile/site/3.0 -C /home/christopher/.config/guix/current/lib/guile/3.0/site-ccache --listen=/tmp/test-socket
```
Then on another terminal:
```shell
christopher@theoden /gnu/store/pg7s74p1p3bf2k848xy4j0x8dcqv248l-netcat-openbsd-1.219-1/bin$ ./nc -U /tmp/test-socket
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)> ,m (emacs-guix)
scheme@(emacs-guix)> (guix-command "pull")
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Building from this channel:
guix https://git.savannah.gnu.org/git/guix.git 8a7bd21
ice-9/boot-9.scm:1685:16: In procedure raise-exception:
/gnu/store/hhnw8gr26smc267yy2hzk57p4b0g6iyb-guix-8a7bd21/build-aux/build-self.scm:84:18: Unknown # object: "#~"
```
But the same command, which is (guix-command "pull") works fine in the first terminal.
Some system information:
``` guix describe
Generation 153 Nov 20 2024 09:29:24 (current)
guix 804f8b2
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 804f8b2094f3214c5b129047c1b18a7779720496
```
``` guile --version
guile (GNU Guile) 3.0.9
```
Regarding the sockets issue, there is another bug I have found related to the use of the socket based REPL, described in bug#74250, but that one is more difficult to point to a specific cause or try to blame on Guile.
--
📛 Christopher Howard
🚀 gemini://gem.librehacker.com
🌐 http://gem.librehacker.com
בראשית ברא אלהים את השמים ואת הארץ
^ permalink raw reply [flat|nested] 2+ messages in thread
* bug#74484: reader syntax trouble across socket
2024-11-22 20:51 bug#74484: reader syntax trouble across socket Christopher Howard
@ 2024-12-09 17:08 ` Ludovic Courtès
0 siblings, 0 replies; 2+ messages in thread
From: Ludovic Courtès @ 2024-12-09 17:08 UTC (permalink / raw)
To: Christopher Howard; +Cc: 74484
Hi Christopher,
Christopher Howard <christopher@librehacker.com> scribans:
> scheme@(guile-user)> ,m (emacs-guix)
> scheme@(emacs-guix)> (guix-command "pull")
> Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
> Building from this channel:
> guix https://git.savannah.gnu.org/git/guix.git 8a7bd21
> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> /gnu/store/hhnw8gr26smc267yy2hzk57p4b0g6iyb-guix-8a7bd21/build-aux/build-self.scm:84:18: Unknown # object: "#~"
The read syntax for #~ (gexp) is installed by loading the (guix gexp)
module or simply the (guix) module, which loads (guix gexp).
It seems that somehow Emacs-Guix does not load (guix gexp) upfront.
It’s fishy though because (guix scripts pull) definitely loads (guix
gexp), directly and indirectly.
Ludo’.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-12-09 17:08 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-22 20:51 bug#74484: reader syntax trouble across socket Christopher Howard
2024-12-09 17:08 ` Ludovic Courtès
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).