From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Hinsen Subject: Re: Towards reproducibly Jupyter notebooks with Guix-Jupyter Date: Mon, 21 Oct 2019 14:50:27 +0200 Message-ID: References: <87lftt57ux.fsf@inria.fr> <87imowwt3i.fsf@gnu.org> <875zkru70u.fsf@inria.fr> <87imorqx0w.fsf@inria.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:60053) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iMX8r-0000F8-3P for guix-devel@gnu.org; Mon, 21 Oct 2019 08:50:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iMX8p-0005FX-Ra for guix-devel@gnu.org; Mon, 21 Oct 2019 08:50:32 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:54767) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iMX8p-0005EM-Gw for guix-devel@gnu.org; Mon, 21 Oct 2019 08:50:31 -0400 In-Reply-To: <87imorqx0w.fsf@inria.fr> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: Guix Devel Hi Ludo, >>> At the API level, there=E2=80=99s =E2=80=98inferior-for-channels=E2=80= =99 which does that + >>> registers a GC root + maintains a cache so that the second time you use >>> a given instance of Guix it=E2=80=99s immediately available. >> >> Just what I need... > > Awesome, let us know how it goes! Not so well... If I run "guix environment" in the inferior, it's the inferior that forks and runs the specified command in the newly created environment. But the inferior doesn't have access to the tty, so this is bound to fail for running interactive commands. Unless there is some Linux magic that I am not aware of for transferring the tty temporarily to another process, the fork would thus have to happen in the main Guix process rather than in the inferior. But any scheme I can come up with for creating a profile in the inferior and using it in the main process ends up generating the same problem that I am trying to solve: the need for a temporary reference (profile or GC root) that must later be removed. Cheers, Konrad.