From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id iMZ/E0JXxmM+6AAAbAwnHQ (envelope-from ) for ; Tue, 17 Jan 2023 09:07:30 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id aO+GEkJXxmNeaAEAG6o9tA (envelope-from ) for ; Tue, 17 Jan 2023 09:07:30 +0100 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 CBEA1F16C for ; Tue, 17 Jan 2023 09:07:29 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pHgzr-0002b0-Ut; Tue, 17 Jan 2023 03:07:09 -0500 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 1pHgzq-0002aq-7b for guix-devel@gnu.org; Tue, 17 Jan 2023 03:07:06 -0500 Received: from mail-ej1-x634.google.com ([2a00:1450:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pHgzm-0000IO-1X; Tue, 17 Jan 2023 03:07:05 -0500 Received: by mail-ej1-x634.google.com with SMTP id tz11so9047407ejc.0; Tue, 17 Jan 2023 00:06:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date:sender:from:to :cc:subject:date:message-id:reply-to; bh=5SSj1SA9tBPSKJ/htdYk7ycpt4BFKGDR8jO+HjkOkf4=; b=Wp6Pvz057SS4uQJjVrbbsuqmQY/xZVqpRN6DXRF6TpbMSDhFMGBH1UEkpTPpIx2rRC qEvjZLdaQ1FHjjSijtbYpyZ1beikH52f2kP8Hmx/7YoTP6nxpPCry7p18B7YPUUPK9GX 2BveYxHfi2MCkm/q5oz2I4EvZYBWKoR/rBaofnkPJv7gIgEystmcO2T9tF8AiFw36zjT ONIoywXP3/YzuDM/3NkdQ7etECmYdfnyuTlVvdDFR4HZ4FOJgHzNzhEvSun8+Fk6ETft s8rjKw6OswgxrwfF/gvfr99wcn0jWvIa8m6H5JTDGbVrE/cnTROKjz/8fKbWVDrzcM0B MMjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date:sender :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=5SSj1SA9tBPSKJ/htdYk7ycpt4BFKGDR8jO+HjkOkf4=; b=GfgfUJwkmpDYIIB4spP8C50Dke8Nr6EHiQ41XOYEMqKaNWisA2oanqe6ZFPF/P0unD Kw6kP6WKvOR43KbYxsUC7zW389c9tpgCWqWhnSR2Tl18PLeKtrSPrxomBxLfmu73OuT3 qqMc6YGpN6iu86V93pwB8kKvQFPTktJF7Y0WnNJq62FZqlQIg0YWFanzZ9CiA/XbBkjd BsnVCQLKwRcek/D92Gx4rEYnf8T533aNHYg4BFOal6GauN8AQ/x4mWzK6zl4A+l+PsUI 4QM3DoZyaPIdbZCvBL+M6+8/NJ5ORQYCCxEGpm2uv5mTqa/5dVsoSP9A6yCXTrY5EQR7 KIbQ== X-Gm-Message-State: AFqh2krHFoECy2U2Q1e/UkmbHTkvzOPIe+zRMPNWd8xEdtCGhXdNi8tM nkkbypq8cXK/P8HESHywb/c3A/EY6t0= X-Google-Smtp-Source: AMrXdXuTJABee91isG6rIUNrN5KByeq6beyC+nTZx4d0NpCDof4Z/0IcUsmvRLK3uAoNFHELGhqFyw== X-Received: by 2002:a17:907:5014:b0:7cd:ffd:51f2 with SMTP id fw20-20020a170907501400b007cd0ffd51f2mr1579428ejc.57.1673942813016; Tue, 17 Jan 2023 00:06:53 -0800 (PST) Received: from localhost ([2a02:ed3:910:1100:b62e:99ff:fef0:7bc0]) by smtp.gmail.com with ESMTPSA id hp24-20020a1709073e1800b008720c458bd4sm1075081ejc.3.2023.01.17.00.06.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Jan 2023 00:06:52 -0800 (PST) Date: Tue, 17 Jan 2023 10:06:50 +0200 From: Efraim Flashner To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: guix-devel@gnu.org Subject: Re: Packages grow, no longer =?utf-8?Q?fit?= =?utf-8?B?IG9uIGEg8J+Svg==?= Message-ID: Mail-Followup-To: Ludovic =?utf-8?Q?Court=C3=A8s?= , guix-devel@gnu.org References: <87tu0s7otg.fsf@inria.fr> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="ce+qR0OgXLLWKOUc" Content-Disposition: inline In-Reply-To: <87tu0s7otg.fsf@inria.fr> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Received-SPF: pass client-ip=2a00:1450:4864:20::634; envelope-from=efraim.flashner@gmail.com; helo=mail-ej1-x634.google.com X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, PDS_BTC_ID=0.108, PDS_BTC_MSGID=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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-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=1673942850; a=rsa-sha256; cv=none; b=MK0xihrtBoEmdsM68RM9ladSg4brjrhtYrbKY/yR9exwtrMkLslEsbjNlEWJjMS44NF3XU tqKmdr1LVZS3JOn1IyG0PkzTM5SAC6xbspF0uZGvh5jGSgE1xIT+lev7GoWuQHE9vy+T1T L0Q002I9UJedo6OcVSQcX0MVWEJjZ2KqIm5Spj18RtQ+zNpw4netRqOODrC+RPCzFMCduh OtTaaPNE1hoyyby3d4MxmacX3lCrD9q3DUHfzFroxhMO/EvZ1M8gQ+LAEhnLvUjs7pFp6j tYPYUWkEvsBHlX83ewDg//vYxUklf6+a9gVpGPDtdpk60IyyyNS5LRPdPyiKzw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20210112 header.b=Wp6Pvz05; 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"; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1673942850; h=from:from:sender:sender: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; bh=5SSj1SA9tBPSKJ/htdYk7ycpt4BFKGDR8jO+HjkOkf4=; b=kIhE9ZQ+mHWVtp8GkEXgCs/4iGyX99R1u+87OlHYQtOAc2aVtwy6qKldbdxbcdKhgg1Ad9 9e9aCNsBHOrJ9/aYOmzGW7do5WsLvK7s0xQrOD3VCizjh8/yspIbcSm/O9l4/WKq9Yhf+F n9lDC30o3j/Tun9fGaDSx1VO7O7CC6YYc5O+iXEYh+jCjEDn6aUvZR1ipwhLPmXrfnOvvZ uqt4g45RxQy7Yi8i68fpTBWL/enz725VL3C3H+8jSoysX2cZ2yI9q4Q+JwRxnJLPUA3WOS CrQN3LG0aXYKbaVIxULJu5JH4FiLbnxWsJ5sGVG+dE9HNNorekpA/jQrJ5lOSQ== X-Migadu-Spam-Score: -3.53 X-Spam-Score: -3.53 X-Migadu-Queue-Id: CBEA1F16C X-Migadu-Scanner: scn1.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20210112 header.b=Wp6Pvz05; 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"; dmarc=none X-TUID: 8bt1mwFHoq1Q --ce+qR0OgXLLWKOUc Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Jan 14, 2023 at 11:07:23PM +0100, Ludovic Court=C3=A8s wrote: > Hello! >=20 > Over the course of a few years, the size of our packages has apparently > kept growing. Example: >=20 > --8<---------------cut here---------------start------------->8--- > $ guix time-machine --commit=3Dv1.2.0 -- size emacs=20 > store item total = self > /gnu/store/118xpdazyylxa1rlc68h9lmh38vhxrb4-llvm-10.0.0 210.8 = 139.3 16.2% > /gnu/store/1qmd9achfkm1njzxf8hi86q53pmy9sxk-mesa-20.0.7 369.2 = 131.3 15.3% > /gnu/store/d83hc7cqgnhl1vlz1rv4ibkvaqaq2g35-emacs-27.1 859.7 = 106.2 12.4% > /gnu/store/18hp7flyb3yid3yp49i6qcdq0sbi5l1n-guile-3.0.2 132.8 = 53.2 6.2% > /gnu/store/9lckq1194qcy4a7kv8bihagd58shj7yr-gtk+-3.24.20 723.7 = 49.0 5.7% > /gnu/store/qizplwwgqwyq6qmz1i6jlaib5kgzrgwq-icu4c-66.1 110.2 = 38.1 4.4% > /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31 38.4 = 36.7 4.3% > [=E2=80=A6] > total: 859.7 MiB > $ guix time-machine --commit=3Dv1.3.0 -- size emacs=20 > store item total = self > /gnu/store/g3idjpqsp2p2d163qfzskxj4k58nrx7f-llvm-11.0.0 220.0 = 148.6 16.9% > /gnu/store/jf269s6clr6r57p8v5c3c1qkyra6apq2-mesa-20.2.4 389.1 = 141.6 16.1% > /gnu/store/7nlq2v4000pw8vgj3m4vrwz072ib58xh-emacs-27.2 880.5 = 106.4 12.1% > /gnu/store/18hp7flyb3yid3yp49i6qcdq0sbi5l1n-guile-3.0.2 132.8 = 53.2 6.0% > /gnu/store/czf23hay13pp25yzrb4yq3n4gcri5r70-gtk+-3.24.24 744.3 = 49.1 5.6% > /gnu/store/2wqjj3mkqdvsvksndr2hpjpi7qqwi7kr-icu4c-66.1 110.2 = 38.1 4.3% > /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31 38.4 = 36.7 4.2% > [=E2=80=A6] > total: 880.5 MiB > $ guix time-machine --commit=3Dv1.4.0 -- size emacs=20 > store item total = self > /gnu/store/i11jmrc90drpx9mc6cyb6s4pjny91qx6-emacs-28.2 1592.7 = 250.6 15.7% > /gnu/store/sdzfljm6san79pqiy42yp0nzmkr2bafc-mesa-21.3.8 411.6 = 169.6 10.6% > /gnu/store/6pdzpmxg5afzss6dlivq8z84sfa31x22-llvm-11.0.0 221.5 = 149.5 9.4% > /gnu/store/lphzb1z0r4kbb453rsvnw7msrxxzp5r7-libgccjit-10.3.0 244.8 = 128.5 8.1% > /gnu/store/pfas3c4lhr1jwkj2gl0yx8dg4xjjlp4r-mozjs-91.13.0 261.2 = 65.4 4.1% > /gnu/store/hy6abswwv4d89zp464fw52z65fkzr7h5-perl-5.34.0 147.7 = 58.6 3.7% > /gnu/store/zyqimpkmpffc24nwwqp46cicj8ss85y5-binutils-2.37 126.0 = 54.4 3.4% > /gnu/store/cnfsv9ywaacyafkqdqsv2ry8f01yr7a9-guile-3.0.7 129.1 = 52.0 3.3% > /gnu/store/4aq7hw017s9ihpm1rxpwfz28c80569z9-gtk+-3.24.30 1002.2 = 48.6 3.1% > /gnu/store/vaxkf8cbc7slgc3ikm5qr3815wih93w8-ghostscript-with-cups-9.54.0 = 219.1 39.1 2.5% > /gnu/store/bjycxjjkp1da53ijsa4hfdrz9mcgg55h-icu4c-69.1 110.7 = 38.0 2.4% > /gnu/store/ayc9r7162rphy4zjw8ch01pmyh214h82-glibc-2.33 76.6 = 36.6 2.3% > [=E2=80=A6] > total: 1592.7 MiB > --8<---------------cut here---------------end--------------->8--- >=20 > I think something went wrong here. :-) >=20 > In particular with Emacs itself (due to JIT + dependency on libgccjit, > Binutils, etc.?) and with GTK+ (due to mozjs in polkit?). >=20 > And then MESA and LLVM have always been problematically big. >=20 > We should do better. I mean, it=E2=80=99s just a text editor, isn=E2=80= =99t it? I've made some progress on LLVM and I think I have a working LLVM that can be used as an input for mesa. (ins)efraim@3900XT ~$ du -sch /gnu/store/36kmnxmb1h8pxw0x71wril67fdvjx7ny-l= lvm-11.0.0/* 3.9M /gnu/store/36kmnxmb1h8pxw0x71wril67fdvjx7ny-llvm-11.0.0/bin 8.0K /gnu/store/36kmnxmb1h8pxw0x71wril67fdvjx7ny-llvm-11.0.0/etc 21M /gnu/store/36kmnxmb1h8pxw0x71wril67fdvjx7ny-llvm-11.0.0/include 67M /gnu/store/36kmnxmb1h8pxw0x71wril67fdvjx7ny-llvm-11.0.0/lib 16K /gnu/store/36kmnxmb1h8pxw0x71wril67fdvjx7ny-llvm-11.0.0/share 92M total (define llvm-for-mesa (package/inherit llvm-11 ;; If we can separate out the include directory we'd save another 21MB. (outputs (list "out")) (arguments (substitute-keyword-arguments (package-arguments llvm-11) ((#:configure-flags cf ''()) ;; AMDGPU is needed by the vulkan drivers. `(list ,(string-append "-DLLVM_TARGETS_TO_BUILD=3D" (system->llvm-target) ";AMDGPU") "-DLLVM_BUILD_TOOLS=3DNO" "-DLLVM_BUILD_LLVM_DYLIB=3DYES" "-DLLVM_LINK_LLVM_DYLIB=3DYES")) ((#:phases phases) `(modify-phases ,phases (add-after 'install 'delete-static-libraries (lambda* (#:key outputs #:allow-other-keys) (for-each delete-file (find-files (string-append (assoc-ref outputs "out") "/lib") "\\.a$")))) (replace 'install-opt-viewer (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (delete-file-recursively (string-append out "/share/opt-viewer"))))) (add-after 'install 'build-and-install-llvm-config (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (substitute* "tools/llvm-config/CMakeFiles/llvm-config.dir/link.txt" (("/tmp/guix-build-llvm-11.0.0.drv-0/build/lib") (string-append out "/lib"))) (invoke "make" "llvm-config") (install-file "bin/llvm-config" (string-append out "/bin"))))))))))) In addition to what I have below I found that nix has a patch to make llvm-11 (and the others) use the GNUInstallDirs, so we'd be able to move the include directory to another output, saving another 21MB, bringing llvm-for-mesa down to 71MB. Another possibility would be to have llvm-for-mesa use llvm as an input, and then to use some configure-flags to tell llvm-for-mesa to use the includes from llvm (the input). --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --ce+qR0OgXLLWKOUc Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmPGVxcACgkQQarn3Mo9 g1GqzBAAm/c+LpAWbaZCibvGcpygumH5A6sybEj/XF3kmMDJsLYfcXNDPV4t+YcT qwUzCpu97o0dtIvJQovr2yA+hDv1CBgKZp1pxJ8+SkUWWVryB1VmoqSuk2/QISI1 5SgtzWdoFrbOZFeYHT5Oz/TbuE2Hs2Vj58JrpWZZrw90cfjQANP5xHoFfngmzOX6 AXTuJG/Y68LthgqBOkC34GAaK/mdt8+m4S6Bi5oiT1Wk8zhRHGq1ZXpOz/+m6MAR WwW8UWtSpNcVFWUk+qXnH6RaDbmUGWJnuAcUL6jMpIkPhOylBR7P4/8CRbDaAsEW H+CyrDLmou1xLDvSedBJWD9gdIOkoQuB2L5p70qsz+zjcnnhZaZa853trjwu6irH xdQiVoeYtdrHOj9aYJQKA9vHuq5DSuAd7cCiHJ/0swt2mfwcTjLSZLm27yWc/L7F qhzHHVNgop7GanSKSxYL6O3ACtdwJLqCaxP9SGVtN/b/OHG/aA5aLNW/1eGWZEoG 4RDu3aaSMPYAPqiogepa2ym/2X3M7/xnp3JGLSHc41hvfQx+Gpe5wq55dmOdjQw4 NWc3FxTGl4YkRdwQHrtP6wnQwckGSR7GDYtW534puthvoumjJFaw4ZFnJQIGLJqu JWiM3h4Re7eBekmZU6xUiWAU7MThG+RxCp+0wt7UKP4xrKur3KI= =mOE6 -----END PGP SIGNATURE----- --ce+qR0OgXLLWKOUc--