all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: Pierre Neidhardt <mail@ambrevar.xyz>
Cc: guix-devel@gnu.org
Subject: Re: 02/02: gnu: next: Compress the executable.
Date: Wed, 11 Sep 2019 22:37:43 +0200	[thread overview]
Message-ID: <87h85ipo14.fsf@gnu.org> (raw)
In-Reply-To: <875zm0co0t.fsf@ambrevar.xyz> (Pierre Neidhardt's message of "Tue, 10 Sep 2019 14:51:46 +0200")

Hi Pierre,

Pierre Neidhardt <mail@ambrevar.xyz> skribis:

> Hmm, reading myself again I realize this was poorly phrased.  Allow me
> to explain that again.  In
>
> ./pre-inst-env guix gc --references /gnu/store/sypf1iq80b2i192jp0mxm43bk6dj6fcc-next-1.3.1
> /gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib
> /gnu/store/a0rffysgyr66q5fjgm1iibjm4ma1jbk3-next-1.3.1-lib
> /gnu/store/h2j8gy8d2yrmrklavrik1y864zg7qwqd-sbcl-1.5.6
> /gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28
> /gnu/store/nq4lsyipmfb0q7g26ra45rwwqrh3x8zw-zlib-1.2.11
> /gnu/store/sypf1iq80b2i192jp0mxm43bk6dj6fcc-next-1.3.1
>
> we see that next-1.3.1-lib is a dependency, which holds references to
> all the other libraries.
>
> So my question is, why would `guix gc` collect sqlite, libfixposix,
> etc. if they are indirect dependencies?
>
> In other words?  Wasn't I right to check for dependencies with `guix
> size` (or `guix gc -R`) instead of `guix gc --references`?

‘guix size’ and ‘guix gc -R’ show you the whole closure of the store
item, so you might not realize that some of the things that ought to be
direct dependencies are now in fact indirect dependencies.

If sqlite ought to be a direct dependency and is now, in fact, an
indirect dependency, things won’t break right away: sqlite won’t be
deleted as long as next is live.

But you’ll already run into problems: grafting will yield a broken next,
as in <https://issues.guix.gnu.org/issue/33848>.

Furthermore, sqlite might eventually vanish entirely from the closure of
next, as a consequence of changes in a dependency, and at that point
running the GC may remove sqlite and thus break next.  ‘guix pack’ would
also produce an incomplete pack.

To draw a parallel, it’s as if SBCL’s GC were unable to see some of the
pointers to the heap, unpredictably: your code might keep running for a
while, but sooner or later, it’ll break badly.  :-)

HTH,
Ludo’.

  reply	other threads:[~2019-09-11 20:37 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20190905095602.15524.75425@vcs0.savannah.gnu.org>
     [not found] ` <20190905095603.AC57A209A5@vcs0.savannah.gnu.org>
2019-09-05 12:31   ` 02/02: gnu: next: Compress the executable Ricardo Wurmus
2019-09-05 12:51     ` Pierre Neidhardt
2019-09-08 21:19       ` Ludovic Courtès
2019-09-09  8:06         ` Pierre Neidhardt
2019-09-10 12:51           ` Pierre Neidhardt
2019-09-11 20:37             ` Ludovic Courtès [this message]
2019-09-12  9:49               ` Pierre Neidhardt
2019-09-16 15:56                 ` Ludovic Courtès
2019-09-16 17:46                   ` Pierre Neidhardt
2019-09-27 14:35                     ` Pierre Neidhardt
2019-09-28 21:02                       ` Ludovic Courtès
2019-09-29  7:59                         ` Pierre Neidhardt
2019-09-29 13:24                         ` Maxim Cournoyer
2019-09-29 13:43                           ` Pierre Neidhardt
2019-10-02  7:53                             ` Efraim Flashner
2019-10-02 13:27                               ` Pierre Neidhardt
2019-10-02 15:01                             ` Maxim Cournoyer
2019-10-02 15:20                               ` Pierre Neidhardt
2019-10-02 15:59                                 ` btrfs and Guix features [was: gnu: next: Compress the executable.] Tobias Geerinckx-Rice
2019-10-02 16:31                                   ` Pierre Neidhardt
2019-10-02 17:48                                     ` Tobias Geerinckx-Rice
2019-10-02 18:59                                       ` Pierre Neidhardt
2019-10-08  4:41                                     ` Maxim Cournoyer
2019-10-08  7:44                                       ` Pierre Neidhardt
2019-10-09  1:58                                         ` Maxim Cournoyer
2019-10-03  7:09                               ` 02/02: gnu: next: Compress the executable Efraim Flashner
2019-10-03 18:28                                 ` Bengt Richter
2019-10-04  8:08                                   ` Pierre Neidhardt
2019-10-08  7:05                                 ` Maxim Cournoyer
2019-10-08  7:48                                   ` Pierre Neidhardt
2019-10-09  1:50                                     ` Maxim Cournoyer
2019-10-09  8:05                                       ` Pierre Neidhardt
2020-02-27 15:38                                         ` Maxim Cournoyer
2020-02-27 15:48                                           ` Pierre Neidhardt
2020-03-03  5:14                                             ` Maxim Cournoyer
2020-03-03  9:43                                               ` Pierre Neidhardt
2020-03-11  2:09                                                 ` Maxim Cournoyer
2020-03-26  8:38                                                   ` Pierre Neidhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87h85ipo14.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=guix-devel@gnu.org \
    --cc=mail@ambrevar.xyz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.