Simon Tournier <zimon.touto...@gmail.com> skribis: > On my machine, I get something less spectacular for a history with 1000 > commits in between. > > scheme@(guix-user)> ,time (commit-relation* 1000th newest) > $1 = ancestor > ;; 0.128948s real time, 0.082921s run time. 0.046578s spent in GC. > scheme@(guix-user)> ,time (commit-relation 1000th newest) > $2 = ancestor > ;; 4.588075s real time, 5.521358s run time. 1.404764s spent in GC. > > I did something very similar as wolf is proposing and named it > ’commit-relation*’.
That’s an order of magnitude. Probably it could be a bit less if we put some effort in it (‘commit-relation’ is implemented in a fairly naive way.) That said, ‘commit-relation’ is just one example. I’d encourage interested people to look at (guix git-authenticate) to get a feel of what we need. Most of it is quite pedestrian, like ‘load-keyring-from-reference’ or ‘commit-signing-key’, but I don’t think we can get a decent throughput if we shell out for all these things (assuming ‘git’ can even give us raw data). Ludo’.