Subject: Error with `guix-start-repl', No prompt found
From: Michael Pagan <[email-masked]>
To: [email-masked]
Date: Thu, 12 Nov 2020 18:20:26 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Guix works just fine; however, the `emacs-guix' interface does not
connect to the REPL (it creates one, but won't connect to it).

When I enter `M-x guix', the Magit-like interface appears.  Pressing the
`c' key should bring me straight into the REPL, but it doesn't.

The first time I execute the command, I receive this error:
Debugger entered--Lisp error: (error "No Geiser REPL for this buffer (try M-x run-geiser...")
  (signal error ("No Geiser REPL for this buffer (try M-x run-geiser..."))
  (error "No Geiser REPL for this buffer (try M-x run-geiser...")
  (geiser-repl--connection)
  (geiser-eval--send/wait ",use (geiser emacs)\n'done")
  (geiser-guile--startup nil)
  (apply geiser-guile--startup nil)
  (geiser-impl--call-method repl-startup guile nil)
  (geiser-repl--startup guile nil)
  (guix-start-repl #<buffer *Guix REPL*> nil)
  (guix-start-repl-maybe nil "Starting Guix REPL ..." nil)
  (guix-start-process-maybe)
  (guix-get-repl-buffer internal)
  (guix-eval-read "(help-string )")
  (guix-help-string nil)
  (guix-command-parse-arguments nil)
  (guix-command--all-arguments nil)
  (guix-command-all-arguments nil)
  (guix-command-generate-popup guix-command-popup nil)
  (guix-command nil)
  (funcall-interactively guix-command nil)
  (call-interactively guix-command)
  (magit-invoke-popup-action 99)
  (funcall-interactively magit-invoke-popup-action 99)
  (call-interactively magit-invoke-popup-action nil nil)
  (command-execute magit-invoke-popup-action)

The second time I execute the command, I receive this error:
Debugger entered--Lisp error: (error "No prompt found!")
  (signal error ("No prompt found!"))
  (error "%s" "No prompt found!")
  (geiser-repl--wait-for-prompt 10000)
  (geiser-repl--start-scheme guile nil "\\([^@()]+@([^)]*?)> \\|[^@()]+@([^)]*?) \\[[0-9]+\\]>...")
  (guix-start-repl #<buffer *Guix REPL*> nil)
  (guix-start-repl-maybe nil "Starting Guix REPL ..." nil)
  (guix-start-process-maybe)
  (guix-get-repl-buffer internal)
  (guix-eval-read "(help-string )")
  (guix-help-string nil)
  (guix-command-parse-arguments nil)
  (guix-command--all-arguments nil)
  (guix-command-all-arguments nil)
  (guix-command-generate-popup guix-command-popup nil)
  (guix-command nil)
  (funcall-interactively guix-command nil)
  (call-interactively guix-command)
  (magit-invoke-popup-action 99)
  (funcall-interactively magit-invoke-popup-action 99)
  (call-interactively magit-invoke-popup-action nil nil)
  (command-execute magit-invoke-popup-action)

I noticed that Guix recommended me to run `M-x run-geiser', so I did:
(run-geiser 'guile).  This created a REPL with a buffer name of
"* Guile REPL *", whilst Guix created one named "*Guix REPL*".

Essentially, it was as if Guix did not recognize the REPL that it
recommended to be used and hence created another REPL with a different
name. I tried evaluating (setq guix-repl-buffer-name "* Guile REPL *"),
so that Guix would not create a new REPL and try the existing one, but
this did not change anything.

Not sure what to do to fix this.  I've tried the interface before, when
GuixSD was at around version 0.8, and it worked like a charm.  Now, this
is my preferred operating system of choice and it would be nice to have
this interface working again.

Thanks in advance for your support!

Guix version: guix (GNU Guix) 5f799dd119f8b2396ed35add58affc301cf563db
Guile version: guile (GNU Guile) 2.2.6

Kind regards
--
Michael Pagan (pegzmasta) | Casual GNU Emacs user
GPG Key ID: A99A 235B 599C 0894 20AF  2937 D675 7575 27CD F56D