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 ms9.migadu.com with LMTPS id D+b8G4m3SmQ7ewEASxT56A (envelope-from ) for ; Thu, 27 Apr 2023 19:57:29 +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 RtUXGom3SmS8QwAAG6o9tA (envelope-from ) for ; Thu, 27 Apr 2023 19:57:29 +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 1831E381AF for ; Thu, 27 Apr 2023 19:57:29 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ps5rY-0000mt-Uz; Thu, 27 Apr 2023 13:57:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ps5rX-0000mM-63 for guix-devel@gnu.org; Thu, 27 Apr 2023 13:56:59 -0400 Received: from uggla.sjd.se ([2001:9b1:8633::107]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ps5rU-0006VQ-OS for guix-devel@gnu.org; Thu, 27 Apr 2023 13:56:58 -0400 DKIM-Signature: v=1; a=ed25519-sha256; q=dns/txt; c=relaxed/relaxed; d=josefsson.org; s=ed2303; h=Content-Type:MIME-Version:Message-ID:In-Reply-To :Date:References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding :Content-ID:Content-Description; bh=Rn9S2yvpFppu5q1Ir6Qqp4bNYC/LQb1ym84fWI5t5Po=; t=1682618198; x=1683827798; b=wlkRcJcCxISNMr7vDqvkH57MOdeuwgH0gK8/mcUMOjVwq3l5qNgHdSx41UPSnuFbOQaQ2QiecEv MJlJfs3EVDQ==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=josefsson.org; s=rsa2303; h=Content-Type:MIME-Version:Message-ID: In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=Rn9S2yvpFppu5q1Ir6Qqp4bNYC/LQb1ym84fWI5t5Po=; t=1682618198; x=1683827798; b=o6tAy+QIPbhab4ss60aE0q+wTMiGQiqoC5ycDQPZssXl+dXNI7M45Z2lN8U5shqf+wHxuwur12Q mFZQGwKwuQ8vrJ8VQt6GxwgZrSHk4xMkY8MqOEvcXqJLSY7QROKS2C4zZLypxqZ/jUuAF8YsHmbgJ zXyx/WgMPO53J92+Sw2+6tssoPJ25fUxlCN2A1t3JAjt9PJllPyzMMRG4k6i1f3A3nutZKV6NHU/g UK7jK4Y0Wn7etdwjVOoWto3aDDps72buN5Z2lQz7kAqkTTTacSz0MOrXt8W7vDSKgZn2wLsusNZ5Z MmbnquFiA0l+rnS94RTLGJ5loI4SnqpmD9fzmnAezz0hBrumusd8Te2Fv3T3tie6vrggjnBli2scW YXPt/vRubSr68PH/arodMlpGS/FgsXtIkjWIYs45Vem5yQ2nETakfJFWl+GK54favwvyirzHI; Received: from [2001:9b1:41ac:ff00:823f:5dff:fe09:16ac] (port=56544 helo=kaka) by uggla.sjd.se with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1ps5r9-00BDbC-Ng; Thu, 27 Apr 2023 17:56:35 +0000 To: Andreas Enge Cc: guix-devel@gnu.org Subject: Build dependency inflation (was: Re: Core-updates merge) References: OpenPGP: id=B1D2BD1375BECB784CF4F8C4D73CF638C53C06BE; url=https://josefsson.org/key-20190320.txt X-Hashcash: 1:22:230427:guix-devel@gnu.org::NgrjhRMIZXfxCcyV:1RBF X-Hashcash: 1:22:230427:andreas@enge.fr::13NrOQoZSYYsbF3Y:2xcd Date: Thu, 27 Apr 2023 19:56:38 +0200 In-Reply-To: (Andreas Enge's message of "Tue, 25 Apr 2023 16:09:23 +0200") Message-ID: <87a5ytw6nd.fsf@kaka.sjd.se> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Received-SPF: pass client-ip=2001:9b1:8633::107; envelope-from=simon@josefsson.org; helo=uggla.sjd.se X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-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: , Reply-to: Simon Josefsson From: Simon Josefsson via "Development of GNU Guix and the GNU System distribution." Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Seal: i=1; s=key1; d=yhetil.org; t=1682618249; a=rsa-sha256; cv=none; b=B1C8I/UAf/Rnf8CF8waono9WZ9BJQMn+4g4IK5AeFq2HDHsA51fzjwRQdgnUmsXZR8/VAF EN+eFFGepu2oA6C5OkrNkMxE2ax9xaAR1QLfXsxM/R+AEmxsQ3mGssUfppsh/qdR7QftLC Cy5R+awj/VGnvs8FFygSlnI3tBIyEoH4rIwCQRNer38zoSxPgp7yTl5ZYbCfK346/aThx1 Uzw4718LC1KFr2ZiXv6vnEff7n5SVOhaiiOHzSgEnMjTHpM/QJ34lSWrJBM37CXN8lYfAN Hcy/4Vfvz7jALUcDYHerIKxFmFLitgQ84/59xTZu/0NpP+m8cwRGHJQEbrAF/w== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers eddsa verify failed") header.d=josefsson.org header.s=ed2303 header.b=wlkRcJcC; dkim=fail ("headers rsa verify failed") header.d=josefsson.org header.s=rsa2303 header.b=o6tAy+QI; dmarc=pass (policy=none) header.from=gnu.org; 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" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1682618249; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature:openpgp:openpgp; bh=Rn9S2yvpFppu5q1Ir6Qqp4bNYC/LQb1ym84fWI5t5Po=; b=bunw2LvieG5yD8fNeAorHUddFULm/OkchiTgRdFwRr2R5sQujSmu8fVQZ2hlQukr/hz+ce u6huevCoSjOnvtLrZwgXaRrM6AfueW7ibBPgSC/+nFD05rWWYbUv5cdzMzmPIqOWIh6YCk zGLBmgVDGokglYBbGRX9Henu0XfSuiNL2DYSBnSz/KGnpw+HePP8K/s42rpyBA+goOYUYg pQukjJMCyJH12P5mbGJBhV+FdCRm846/Mko9gjUMc5vBKWjcZyH31NwaaTxUMQobRx1FpQ fXXxtznTOV6SlMZe/+0MUv259fL/mbOvX06CJEV1Bav4dKlpAAkhz4JapSSlKA== X-Migadu-Spam-Score: -4.80 X-Spam-Score: -4.80 X-Migadu-Queue-Id: 1831E381AF X-Migadu-Scanner: scn0.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers eddsa verify failed") header.d=josefsson.org header.s=ed2303 header.b=wlkRcJcC; dkim=fail ("headers rsa verify failed") header.d=josefsson.org header.s=rsa2303 header.b=o6tAy+QI; dmarc=pass (policy=none) header.from=gnu.org; 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-TUID: 9hJQ/f/I99a1 --=-=-= Content-Type: text/plain Andreas Enge writes: > - Too much in Guix depends on too much else, which makes building things > needlessly entangled; in particular time zone data should not be referred > to by packages, but be loaded at runtime (Leo Famulari). This is an important open problem -- is there any way to attack this problem in a systematic way? I guess it is hard to understand which packages ends up depending on what since it is a large graph with long cycles, and also to understand which build depencies are essential and which are superficial, and thus consequently challenging to know where to start working to reduce build dependencies? I wonder if it is possible to graph all the build dependencies, and do something like a monte-carlo what-if simulation: randomly pick one build-dependency from the entire build-dependency graph and remove it, and recompute the graph. If the difference between these two graphs leads to a significantly lower total build computational cost than before, we may be on to something. My theory is that "true" build dependencies will show up in so many places that removing just one instance of it will not affect total build time. But "needless" build dependencies may occur just once or few times, and this approach would catch low-hanging fruit to work on. Maybe the simulation needs to be done on more than just removing one build-dependency, it could play what-if games removing two build-dependencies etc, or three random build-dependencies, and so on. Maybe my idea is flawed, and this will only lead to a list of build-dependencies that are impossible to get rid off anyway. Is there some other method to understand what build dependencies would be important to remove, to speed up total rebuild time? Maybe we could analyze how much of a particular build-dependency actually is used by a particular build? By looking into file-access patterns etc. /Simon --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iIoEARYIADIWIQSjzJyHC50xCrrUzy9RcisI/kdFogUCZEq3VhQcc2ltb25Aam9z ZWZzc29uLm9yZwAKCRBRcisI/kdFor76AP9bxr8T3gfpktCfpHhWsYRZx+Bik0o6 EGj0cDVkr1ZQ0AEA/z/cVP/PZav/vQQ0hMnPpJqnwfwAqA+nnrDESw+HowA= =qDNs -----END PGP SIGNATURE----- --=-=-=--