Currently, if you try to run a repl command (for example, "M-x guix-installed-packages") in a second Emacs instance, you'll get an unfriendly error. That's because `guix-default-port' is busy already (by another Guix REPL), so you either have to change it manually or use (setq guix-use-guile-server nil). So with the attached patch, a socket file with a generated name will be used instead of a port, which allows you to run as many Emacs instances with Guix REPLs as you want. Many thanks to Florian for the great idea! There is one small thing though: Guile does not remove socket file after exiting from "guile --listen=/tmp/foo" so these dead sockets will stay in /tmp dir. As there is no `comint-exit-hook' or alike, I don't see how a socket file can be removed after the REPL is killed.