guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 02/02: gnu: next: Compress the executable.


From: Ludovic Courtès
Subject: Re: 02/02: gnu: next: Compress the executable.
Date: Wed, 11 Sep 2019 22:37:43 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hi Pierre,

Pierre Neidhardt <address@hidden> 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 via email to

[Prev in Thread] Current Thread [Next in Thread]