guix-devel
[Top][All Lists]
Advanced

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

Re: File search


From: Ludovic Courtès
Subject: Re: File search
Date: Tue, 06 Dec 2022 11:01:58 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)

Howdy!

"Antoine R. Dumont (@ardumont)" <antoine.romain.dumont@gmail.com>
skribis:

> Please, find enclosed the latest implementation as a patch (somewhat vcs
> code ;). I've edited commits to mark Ludo as author with his
> started/amended implementations first [0] (that should be in the patch).

Nice!

> For information, I extracted some number from runs to compare our
> iterations (see the org-file attachment). The first iteration being
> "extracts packages from the store" and the second one "extracts packages
> from the system manifest". Those runs happened both on a guixified
> debian host and a raw guix host (more packages).

So we went from 413s to 11s (on the Guix System node) for only 6% fewer
files in the latter case?  Do I get that right?  That’s pretty cool.

The implementation based on manifests can of course miss packages, so
it’s a tradeoff.  Purely local indexing will only find packages you
already have anyway, so eventually we’ll need a second mode that would
download a database.

BTW, I noticed outputs are not properly handled so far, as in this
example:

--8<---------------cut here---------------start------------->8---
$ GUIX_EXTENSIONS_PATH=$HOME/tmp/guix-index guix index search git-send-email
git@2.38.1           
/gnu/store/g3lgyzr749l76qma7srycclgsm0f78iq-git-2.38.1-send-email/libexec/git-core/git-send-email
git@2.37.1           
/gnu/store/n3hkzz5ydm0qm1c2jja2pwy2v19mq1k0-git-2.37.1-send-email/libexec/git-core/git-send-email
--8<---------------cut here---------------end--------------->8---

It should instead show “git@2.38.1:send-email”.  We probably need an
‘output’ field in the ‘Packages’ table.

Also going forward we’ll need a schema version, as in:

--8<---------------cut here---------------start------------->8---
create table SchemaVersion (
    version     integer not null;
);
--8<---------------cut here---------------end--------------->8---

so that the tool can upgrade or discard databases that have the wrong
version.

Oh, and progress bars too.  And a pony.  :-)

Thanks for your work!

Ludo’.



reply via email to

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