From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id KDMnAB6bcWJIWQEAbAwnHQ (envelope-from ) for ; Tue, 03 May 2022 23:14:06 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id EEjROh2bcWJvewEAG6o9tA (envelope-from ) for ; Tue, 03 May 2022 23:14:05 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 9DD2E11E78 for ; Tue, 3 May 2022 23:14:05 +0200 (CEST) Received: from localhost ([::1]:43226 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nlzqM-0006jx-IL for larch@yhetil.org; Tue, 03 May 2022 17:14:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43010) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nlylb-0008WS-7Q for guix-devel@gnu.org; Tue, 03 May 2022 16:05:03 -0400 Received: from mail-ed1-x542.google.com ([2a00:1450:4864:20::542]:39459) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nlylZ-00084y-Gf for guix-devel@gnu.org; Tue, 03 May 2022 16:05:02 -0400 Received: by mail-ed1-x542.google.com with SMTP id g20so21062708edw.6 for ; Tue, 03 May 2022 13:05:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:subject:from:to:date:in-reply-to:references:user-agent :mime-version:content-transfer-encoding; bh=994h6Qg1RvztG0I1GV7RjWybvW/3dUusAOa1JVgKjdA=; b=hW0gI2l8piGbqbIlgUZGbESKSh6DyIdb6tXyVGahVBdj5rBLBTzi4FbzzpvtbaGnWz cPgDJFg96aSt1iZ8vr3UEOKJ0NXejYTQK18zlwVhqML3KIdugN/Y+ol8sphEGasCBHVu jge5WKmjrBETWh/ge4iXhScLx1c8tBnt7pDJgPsaRkzhStEigVeRtm1Lnx/k/Xmu4iQH N8siMvKU1ZazXxfwoOb9jtwh17isI7wvDnro85Zro40hCQ9S1smMvOqSBLsVsK2HqpCP yOwTmfGkzSrDCuOW/c01qR9hmy+MsKtPHoyJCdFdone9UZUpaQgGyuPMi+a4I12BNQky LsyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=994h6Qg1RvztG0I1GV7RjWybvW/3dUusAOa1JVgKjdA=; b=QvW1/VGTeRrGCy261yHqsfu7yPbm2XmII3TiutCwHtJi+OtHPuoY7P7lxLoGOD+LVZ bTJISC/D/ENH3n9QMzTpd8Gbv7TeYWoy4DVQiQd5HF8vUN26vgb1AJ74STir/3cqRAXT fRTb3H7C5vLjlqhApRDN0Y09iyRgOgXOgnRTATcD/ZfTenskV4fpBRGXpwoCrQWuS6ru 3NYyAu0zJS/AdNX7iOdCkVmBQ6zuydfl0m7VTVl55IwrIlQSXM+NWf9Mu+Hfr659IJxL b4yL4X424cLj02+74fHiq9EpxwTFPCjVSThtl65K4BiBduYQRNlqrjjBF8mhrdas3Xpc Z3Bw== X-Gm-Message-State: AOAM533ojM4I7Ael92U29g+OfX6MPfIMykZnH43qtjZWZCGtzqc7/IeF M2au53Gy+TMTo4YN3ozn1w8= X-Google-Smtp-Source: ABdhPJyleRq1ZRYkH1T/NWj4yUVrChFiZmm7qEqcCl2KNI6bRWrXnVRLRs+tXqANSaOyAOGZk7+eHA== X-Received: by 2002:a05:6402:2363:b0:425:bc13:4c8b with SMTP id a3-20020a056402236300b00425bc134c8bmr19871105eda.140.1651608299755; Tue, 03 May 2022 13:04:59 -0700 (PDT) Received: from nijino.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id em20-20020a170907289400b006f3ef214e05sm4923164ejc.107.2022.05.03.13.04.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 May 2022 13:04:58 -0700 (PDT) Message-ID: <8b66e609b7c9d5183017ccf7fef47c818fcea231.camel@gmail.com> Subject: Re: Multiple profiles with Guix Home From: Liliana Marie Prikler To: Maxime Devos , Andrew Tropin , guix-devel@gnu.org Date: Tue, 03 May 2022 22:04:57 +0200 In-Reply-To: References: <8735hqvh4a.fsf@trop.in> <8a42a0c84d35231b360a421fe0b846c8e1aa3d2c.camel@gmail.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=2a00:1450:4864:20::542; envelope-from=liliana.prikler@gmail.com; helo=mail-ed1-x542.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list 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+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1651612445; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=994h6Qg1RvztG0I1GV7RjWybvW/3dUusAOa1JVgKjdA=; b=aV1x1H2fScIzfw/1jgXG/H3fPNJ2xVfK4cKkBnc2UF8f1UdVnm6aMPc2vQugBtFsT0maJp 4s3uvv6chJ0Fv4dgowUo0sTApznK1TR1FH0R+XzPRMLk1pIUJZVszBaGzHQdwk4MSIboR5 IwUVbjKzsNKj1zCQw7teACHSUt/NAOk3z9rcRmW0fugUg/oO08ZpA69/fSv1eOyzRgScT/ 5Fqb3hF5gv/2Ciyp7AKId9V2hzcp8Ks8GkaRO0Ax/JKCdWZKnee3U6vd/xzT9dy9U6inTE uIG24lwEdUeDBjUwJReejCTvWzFkrhCeybGOUo+SvpCk4j+MLcMdwYXcyIYV1w== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1651612445; a=rsa-sha256; cv=none; b=otXTP3zb/lIYqxnbJQ0dOb43y3fJFfR7A1YAlNwSMF1/rH2pUQwL4+dEDvMf1ZNLQX+1kc gtuRRv1sX0Xq8nPPd4MshqQoCTVam5p3VvmtAyzvDGlqjeqSNk9NYmhQJmjg8+lVbH0lCJ 0VjRF7zKdviFN3cTCkQwIFwk/RxAS8L8fsuPFXZihEuh0vsZ74HTo3qHkvoPe01zUxgx2n QnJXk6mbT15JLQa8hEGcR1Wj8jwHkmVWffimTsSNZHWc1h4omVnWOPiGRuemlXbVHeD8kK oCUqnDEC41LFsnXLKG9/2FzrEuG+nQzYx4Rwfdmh0MBQo2k/sBGbvjGwLausHw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=hW0gI2l8; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -5.48 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=hW0gI2l8; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 9DD2E11E78 X-Spam-Score: -5.48 X-Migadu-Scanner: scn0.migadu.com X-TUID: 0m8XUT6cEzdg Am Dienstag, dem 03.05.2022 um 21:13 +0200 schrieb Maxime Devos: > Liliana Marie Prikler schreef op di 03-05-2022 om 20:34 [+0200]: > > > Also, cross-profile package installation can be error-prone, for > > > example if user install an emacs in main profile and emacs > > > packages in emacsy profile we will end up in a situation, where > > > those emacs package aren't available in Emacs.  Probably some > > > other issues will become clearer during implementation. > > The solution to that would be evaluating the search paths over all > > enabled packages.  However, I do think it's fine to do as we did > > before for now; people are already used to this aspect of Guix, > > They shouldn't have to be.  If there's a problem in the past that > doesn't mean that it isn't a problem in the present anymore.  Also, > while I'm aware of this problem, it's only due to having looked at > some Guix code, I don't mix profiles so I wouldn't have seen this > problem otherwise.  But if I didn't know the internals, started using > Guix Home and saw some recommendation to split profiles, then I could > end up with inscrutenable errors. That's why I say the long-term goal is evaluating search paths over multiple profiles. However, given that Guix Home is currently a technological preview and given on top that multiple profile support is "write your own shell script, will ya?", I think we can leave that as a nice to have for later. > > but the fact that they need to code up their own shell wrappers to > > manage multiple profiles is not good optics imo. > > They don't have to code up shell wrappers or split profiles.  They > can just use a single profile. This sentence signals to me that you didn't think about this mail at all. Consider that people may want to split their packages across small thematic profiles, but the current implementation of Guix hinders them in doing so. > > [...].  If you do split your home in multiple > > profiles however, you will benefit from faster union builds, which > > themselves have quadratic complexity as a lower bound. > > Instead of working around quadratic behaviour, could we just make it > linear behaviour?   If you're really clever, you might find a way to get O(n log n) through sorting. In fact, looking closer at union-build, it seems to already use hash tables, which would make much of the implementation O(n log n), but that's a very naive analysis at a time in which I shouldn't do too much complexity analysis. Needless to say, you can't get better than sorting. > Also, why would the user need to split things, couldn't Guix do that > automatically? Oh, sure, I'll just train a machine learning model to partition packages into profiles. This will obviously be better than a human figuring things out, because machines can't fail ever. In case the above wasn't clear enough, I'd rather leave this decision to the user along with the decision of whether or not to waste electricity in training an artificial intelligence. Offering a declarative interface to profile splitting benefits everyone here. Cheers