Subject: bug#73462: emacs-guix: shell commands broken

From: Christopher Howard <[email-masked]>
Date: Mon, 04 Nov 2024 10:35:52 -0900

With some exploration, I figured out I can make the popup work again by doing the following from inside *Guix Internal REPL*:

```
scheme@(emacs-guix)> ,m (guix gexp)
scheme@(guix gexp)>   (read-hash-extend #\~ read-gexp)
  (read-hash-extend #\$ read-ungexp)
  (read-hash-extend #\+ (cut read-ungexp <> <> #t))
$12 = ((#\. . #<procedure 7f4a564aa3d0 at ice-9/boot-9.scm:2251:18 (c port)>))
$13 = ((#\~ . #<procedure read-gexp (chr port)>) (#\. . #<procedure 7f4a564aa3d0 at ice-9/boot-9.scm:2251:18 (c port)>))
$14 = ((#\$ . #<procedure read-ungexp (chr port #:optional native?)>) (#\~ . #<procedure read-gexp (chr port)>) (#\. . #<procedure 7f4a564aa3d0 at ice-9/boot-9.scm:2251:18 (c port)>))
scheme@(guix gexp)> ,m emacs-guix
```

I.e., if I drop into the (guix gexp) and run read-hash-extend myself. After that, I can successfully run M-x guix c. (The popup itself seems to have something else wrong with it, but we'll leave that for another bug report...)

It seems worth noting that I do have access to other variables and such inside the eval-when block, though I'm not sure what that tells us:

```
scheme@(emacs-guix)> ,m (guix gexp)
scheme@(guix gexp)> read-syntax-redefined?
$15 = #t
```

-- 
Christopher Howard