From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id QNIxINYidmSJ6wAASxT56A (envelope-from ) for ; Tue, 30 May 2023 18:22:46 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id WFgbINYidmRctQAA9RJhRA (envelope-from ) for ; Tue, 30 May 2023 18:22:46 +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 2A28533C09 for ; Tue, 30 May 2023 18:22:46 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q4270-0007sS-Jc; Tue, 30 May 2023 12:22:18 -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 1q426y-0007qf-Hu for guix-devel@gnu.org; Tue, 30 May 2023 12:22:16 -0400 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q426v-0005cQ-71; Tue, 30 May 2023 12:22:16 -0400 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-3f705976afbso5032285e9.1; Tue, 30 May 2023 09:22:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685463730; x=1688055730; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id :reply-to; bh=jhhOrRJP4G1kpPpRD9vz3UZZXhe/HMEOJG1cpK0kTLA=; b=M1VoAagLjOTt1+GukbqzrDM7tfVRrsgG4G7Dh4uZcUtN8g4DUea1sSBb9JE36eaCsE pnx7yspFM/r//9tOqbxDdYv40xuZqb8/fXnsPdAXnZopQ8QRUVv0o+76D8eUfygQpqOC 8K6GVYACU3TJCX5JAMZBD+pkxdyP1cqGpf8FinEMuI5LamINSV/PCttEJ0UrtkRs9NdL r1DtrAWboqzYBvMSlyoqRpATJtsi2AE7Brp9SGR5boh6iU7pMQQRi7NAExynSjhJoqWi v1DCv6VD32zbraJksJ6LGkwkH8J6go6Hi/lpe4pXgD9wXED035RhcoZtG54l7R3BrEag LkOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685463730; x=1688055730; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jhhOrRJP4G1kpPpRD9vz3UZZXhe/HMEOJG1cpK0kTLA=; b=MDZkpuG5BBhSYAPqb/iq2LeNp4H88LA3E87yAGhF4YJRc7lnDYx6hN5aHFpnHe5kwg do+3vnITL5bV5TmGbAhsOIck4mb0sjvGA1tFE2xzGi0JVWBjzbEDkjIW+KIhoCGr6O0X h8P2dn+AhXvpaBue7cGuhKNcMYM+1wv/ntsmlYhSsv8fEZNRM0ovPtJzK5k2MaRkUnr3 c9/PPJZhApMcttzuaTzmJQZAwPtfUKwYB1moZ0HB9ZhpNsc4e/dlD+4UoDXz0O3s8xvV /JXZSkt0DXV5S2Zza8Z8FLeIku/OGSNfSzZPlZyCIEDCAAkXTggYXmgDJx34Ohztk0Li dazQ== X-Gm-Message-State: AC+VfDwcn5slnigGfFMoB2MTafkx90UviDhmqfcwdlambV6kUE0oTKHa 19HJiK2mVX8qm77weuzdEItuq8sKDr8= X-Google-Smtp-Source: ACHHUZ4VbwGJa95bxO9CaMzEzN4eP4rCW146UwQbSOfpUBWoCN2B6/b/DZsT6LY/QoPCmviIJ2ORWA== X-Received: by 2002:a05:600c:35cc:b0:3f5:927:2b35 with SMTP id r12-20020a05600c35cc00b003f509272b35mr2585128wmq.1.1685463730203; Tue, 30 May 2023 09:22:10 -0700 (PDT) Received: from pfiuh07 ([193.48.40.241]) by smtp.gmail.com with ESMTPSA id 2-20020a05600c028200b003f42cc3262asm21437731wmk.34.2023.05.30.09.22.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 May 2023 09:22:09 -0700 (PDT) From: Simon Tournier To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: Guix Devel , Andreas Enge Subject: Re: How many bytes do we add (closure of guix) when adding one new package? In-Reply-To: <87ttvzhxm9.fsf@gnu.org> References: <875y9jzl9m.fsf@gnu.org> <874jot19fd.fsf_-_@gnu.org> <87fs7rvv5s.fsf_-_@gnu.org> <878rddooy4.fsf@gnu.org> <87r0r4uv4x.fsf@gmail.com> <87ttvzhxm9.fsf@gnu.org> Date: Tue, 30 May 2023 14:10:27 +0200 Message-ID: <87cz2it3yk.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2a00:1450:4864:20::32b; envelope-from=zimon.toutoune@gmail.com; helo=mail-wm1-x32b.google.com X-Spam_score_int: -4 X-Spam_score: -0.5 X-Spam_bar: / X-Spam_report: (-0.5 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_03_06=1.592, 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=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=1685463766; a=rsa-sha256; cv=none; b=XXfrU2mmtmkcrzsgGY5E+c1OWOJsu1STloDV1b90eGwU2yTPtcLcSWiW6u96jX8Xx30oFu J+2FgYhdlempqWSO97a0Yi/p97jl+ORNASc21WlmdTjF5JCO6CsLbpBqmKpMHHFt6DYJ1W p+1CfGROdJQ3BXrii/Q2aDo3vPx88Qgrj2AKyfZgutUAJa4HjuABARts4RAfxYsnUr6GXu q4thxuNl3Yy0yeMkmDrwBFrmrvKU83WFkh88Dm4C/veL5QfZEiyA/x9nY0Dbe18SI5bgF0 ehTntq27qcj1KCYmAu9+YfkdzX5WH7jFN6pBfpAFPXkMo3KXYxqC0jT3NmQV7A== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=M1VoAagL; 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" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1685463766; 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: 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=jhhOrRJP4G1kpPpRD9vz3UZZXhe/HMEOJG1cpK0kTLA=; b=ZXDqqr9H3bkLo9cJdehY6HhlKgXpDKG/PFKllM0kTGdxuZ86eMHmnXaVOBINEC+V1zNag3 fH4teTRjtoN2Pluyc1IMxMmxMPVGGNMdMVPAXOK0hslwI1P3Nw3CveykyMgxRnPoyuOgGv cVGH3nYrNzCPoVFTWSMaNxo0JPwdEdNS4R8YSdEHKwAJahdtw3wDFKmFfrGb8vmTlPvJ3N StTD6aYM9YBlC7icaD+sywvsG+8oVZHmiPkKhLoqFYxLyc8mfbEV7KhuOXbvN3sfrt1oJU S/5YxpnChjtelAJj4p5AFd7Shj1u09sJshxKHU+69pGZorY456lIlbPryuGqVw== X-Migadu-Spam-Score: -7.27 X-Spam-Score: -7.27 X-Migadu-Queue-Id: 2A28533C09 X-Migadu-Scanner: scn0.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=M1VoAagL; 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-TUID: mtrTJgkAo8J3 Hi, On ven., 26 mai 2023 at 18:21, Ludovic Court=C3=A8s wrote: > I agree that .go files are quite big (.scm files as well, but we=E2=80=99= ve > improved information density somewhat by removing input labels :-)). > > The size of .go files went down when we switch to the baseline compiler > (aka. -O1): > > https://lists.gnu.org/archive/html/guix-devel/2020-06/msg00071.html > > That thread has ideas of things to do to further reduce .go size. Just to put a figure on what means =E2=80=9Cbig=E2=80=9D: currently the .go= files are 5 times bigger than their associated .scm. Somehow, it=E2=80=99s the trap of DSL. :-) Packages are declarative and the information they declare is not dense. However, because they are bytecompiled to a general programming language, their specificity is not exploited. In an ideal world, the compiled binary representation of the packages should be smaller than their human-readable text-file counterpart. The mentioned improvement is nice. And it=E2=80=99s visible: --8<---------------cut here---------------start------------->8--- 145M /gnu/store/nqrb3g4l59wd74w8mr9v0b992bj2sd1w-guix-d62c9b267-modules/lib= /guile/3.0/site-ccache/gnu 117M /gnu/store/s6rqlhqr750k44ynkqqj5mwjj2cs2yln-guix-a09968565-modules/lib= /guile/3.0/site-ccache/gnu 127M /gnu/store/ndii4bpyzh2rc05ya61s89rig9hdrl4k-guix-a0178d34f-modules/lib= /guile/3.0/site-ccache/gnu 164M /gnu/store/ni63a203jf61dwxlv8kr9b8x3vb1pdsp-guix-8e2f32cee-modules/lib= /guile/3.0/site-ccache/gnu --8<---------------cut here---------------end--------------->8--- However, it has almost no impact on the whole size; scaled by the number of packages. > Download size has to be treated separately though. For example, =E2=80= =98git > pull=E2=80=99 doesn=E2=80=99t redownload all of the repo or directory, an= d it uses > compression heavily. Thus, a few hundred bytes of additional .scm text > translate in less than that. > > As for the rest, download size can be reduced for example by choosing a > content-address transport, like something based on ERIS. > > I think we must look precisely at what we want to optimize=E2=80=94on-dis= k size, > or bandwidth requirement, in particular=E2=80=94and look at the whole sol= ution > space. I think one direction is to tackle the way *package-modules* is built. Because of that, Guix is building too much and the design is not optimal =E2=80=93 whatever technical solutions we implement for improving after tha= t. On my poor laptop, Guix is becoming unusable because many operations are becoming so slow =E2=80=93 when it=E2=80=99s still acceptable with APT of D= ebian. For instance, it=E2=80=99s something like 20 minutes for running =E2=80=9Cguix = pull=E2=80=9D without substitutes. And when I am traveling without a fast Internet connection, it=E2=80=99s often too much for the network at hand. Currently, =E2=80=9Cguix pull=E2=80=9D is either building too much and down= loading too much; by design. Cheers, simon