[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#70303] [PATCH 0/2] Use guile-final for grafting.
From: |
Ludovic Courtès |
Subject: |
[bug#70303] [PATCH 0/2] Use guile-final for grafting. |
Date: |
Mon, 15 Apr 2024 22:28:17 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Howdy!
Efraim Flashner <efraim@flashner.co.il> skribis:
> Over the years the grafting code has changed bit by bit, with various
> attempts to speed it up. By switching the grafts to not use parallelism
> in rewriting the leaves we can finally switch the guile-for-grafts to be
> guile-final. The segfault is still there if we perform the grafts in
> parallel, but I believe it is fast enough that it should be fine to do
> them sequentially.
Could you time the grafting derivation of, say, libreoffice or
ungoogled-chromium?
Typically I’d do it along these lines:
--8<---------------cut here---------------start------------->8---
$ guix build libreoffice
/gnu/store/24is7ypdx6sm56mkclxdx4hyj7yg4smb-libreoffice-7.6.3.1
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$ time guix build libreoffice --check
The following graft will be made:
/gnu/store/wdjqpxm2kbdvq7qlrzyjxb244zn3s3bv-libreoffice-7.6.3.1.drv
applying 137 grafts for libreoffice-7.6.3.1 ...
grafting '/gnu/store/5flppg3h8y235di2ilr3sx878gfl82db-libreoffice-7.6.3.1' ->
'/gnu/store/24is7ypdx6sm56mkclxdx4hyj7yg4smb-libreoffice-7.6.3.1'...
successfully built
/gnu/store/wdjqpxm2kbdvq7qlrzyjxb244zn3s3bv-libreoffice-7.6.3.1.drv
successfully built
/gnu/store/wdjqpxm2kbdvq7qlrzyjxb244zn3s3bv-libreoffice-7.6.3.1.drv
/gnu/store/24is7ypdx6sm56mkclxdx4hyj7yg4smb-libreoffice-7.6.3.1
real 0m14.921s
user 0m7.588s
sys 0m0.389s
--8<---------------cut here---------------end--------------->8---
(That’s on my 4-core i7.)
It’s a bummer that the segfault is still there. I remember week-long
‘rr’ debugging sessions in the past, where I did find a few issues; I
should try again but uh…
> There's probably room in replace-store-references in (guix build graft)
> for changes if we're not going to use guile-2.0 here anymore.
I believe ‘tests/grafts.scm’ may run some of this code under Guile 2.0
(using the ‘guile-bootstrap’ tarball provided for the tests).
Thanks,
Ludo’.