From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 01 06:50:03 2020 Received: (at 41702) by debbugs.gnu.org; 1 Jul 2020 10:50:03 +0000 Received: from localhost ([127.0.0.1]:52358 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jqaJW-0003iI-Pm for submit@debbugs.gnu.org; Wed, 01 Jul 2020 06:50:02 -0400 Received: from eggs.gnu.org ([209.51.188.92]:57450) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jqaJU-0003hk-Kz for 41702@debbugs.gnu.org; Wed, 01 Jul 2020 06:50:01 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:37461) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jqaJP-0001mO-9I; Wed, 01 Jul 2020 06:49:55 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=53866 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jqaJO-0008B6-JD; Wed, 01 Jul 2020 06:49:54 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Lars-Dominik Braun Subject: Re: bug#41702: `guix environment` performance issues References: <20200604082316.GA3146@zpidnp36> <87mu5gtbwg.fsf@gnu.org> <20200608090453.GC3166@zpidnp36> <87k10hp6ba.fsf@gnu.org> <20200609091522.GB8597@zpidnp36> <87wo3sjjdw.fsf@gnu.org> Date: Wed, 01 Jul 2020 12:49:51 +0200 In-Reply-To: <87wo3sjjdw.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Sat, 27 Jun 2020 23:20:27 +0200") Message-ID: <87y2o3zf00.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 41702 Cc: 41702@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi, Ludovic Court=C3=A8s skribis: > + (when open-connection > + (let* ((sock (open-connection host port))) > + ;; Since 'session-set!' doesn't increase the revealed count of S= OCK > + ;; (as of Guile-SSH 0.12.0), do it ourselves. > + (set-port-revealed! sock 1) > + (session-set! session 'fd sock))) The problem with this approach is that =E2=80=98open-connection=E2=80=99 is= past the raw host name; aliases, proxy commands, etc. from ~/.ssh/config are ignored. So it cannot go in as is. :-/ What we need is Guile-SSH bindings for =E2=80=98ssh_get_fd=E2=80=99, which = would allow us to get at the actual file descriptor after the connection has been opened, and to set TCP_NODELAY there: http://api.libssh.org/stable/group__libssh__session.html#gafe509fcea47714= b5cd277d1e35e83276 It=E2=80=99s not 100% clear though if it returns that =E2=80=9Cright=E2=80= =9D FD when there=E2=80=99s a proxy command. Ludo=E2=80=99.