guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] emacs: Use socket instead of port.


From: Alex Kost
Subject: Re: [PATCH] emacs: Use socket instead of port.
Date: Tue, 15 Dec 2015 12:33:36 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Florian Paul Schmidt (2015-12-12 12:00 +0300) wrote:

> On 12.12.2015 09:50, Alex Kost wrote:
>> 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.
>>
>
> Hi,
>
> maybe wrap it into an mktemp call? Sorry, I have to run for a meeting
> now, but isn't there some semantics to mktemp, that the file
> "disappears" directly, but the fd is kept open? Maybe a little bash
> wrapper or maybe some elisp magic do the job?

Thanks, I didn't know about "mktemp", but I don't see how it can help as
it just creates a temporary file (elisp procedure `make-temp-file' does
the same).  But the problem is not to create a file, but to delete it.

After all, I think the best (actually I don't see the other ways) would
be to remove a socket file during emacs exit.

--
Alex



reply via email to

[Prev in Thread] Current Thread [Next in Thread]