Subject: bug#66268: Guix makes invalid assumptions regarding guile-git guarantees leading to guix pull failing

From: Ludovic Courtès <[email-masked]>
Date: Mon, 14 Apr 2025 12:08:30 +0200

Hi Tomas!

Tomas Volf <[email-masked]> writes:

> So, the good news is that it seems to work, the checks at the start of
> the script now pass.  Full output from both runs (the current guile-git
> 0.9.0 and the commit being tested) are attached.
>
> However, now the bad news.  The performance of the new version is
> atrocious.  Run from the previous version finished in slightly over 6
> minutes (6:13.37), run from the commit above *did not finish* after 16
> hours (16:05:27) and I had to kill it.  So we are looking at a slowdown
> of *at least* 155.3x, probably significantly worse (see below).

Ouch this is terrible—and shows just how naïve I was. :-)

Taking a step back, I think we can sidestep the issue entirely.  Based
on 45mg’s initial work, I added (git graph).  This includes
‘graph-descendant?’, which is all we need in (guix git).

So I think I’ll revert the offending commit
(cd91dc908ac4b215bc87a97455ff64ed4d89b721) and then come up with a patch
in Guix to use ‘graph-descendant?’ instead of our home-made graph
traversal code.

How does that sound?

Thanks for testing it!

Ludo’.