Subject: Re: bug#45173: ‘guix search’ traverses all the modules when extra channels are used

From: zimoun <[email-masked]>
Date: Fri, 11 Dec 2020 13:45:00 +0100

Hi Ludo,

On Fri, 11 Dec 2020 at 10:29, Ludovic Courtès <[email-masked]> wrote:

> --8<---------------cut here---------------start------------->8---
> $ strace -o /tmp/,,s guix search sdfsdf
> $ grep gnu/services /tmp/,,s
> $ echo $?
> 1
> --8<---------------cut here---------------end--------------->8---

I do not know what is the point of the strace command, but this file
contains a lot:

--8<---------------cut here---------------start------------->8---
$ guix describe
Generation 50	Dec 01 2020 23:31:01	(current)
  guix f4450e8
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: f4450e8ca909530ee3432710b82f97e23acc7fef
$ strace -o /tmp/,,s guix search sdfsdf    
$ cat /tmp/,,s | grep ice-9 | wc -l
448
$ cat /tmp/,,s | grep srfi | wc -l
330
$ cat /tmp/,,s | grep 'guix/build' | wc -l
129
$ cat /tmp/,,s | grep 'guix/scripts' | wc -l
12
$cat /tmp/,,s | grep 'guix/import' | wc -l
9
--8<---------------cut here---------------end--------------->8---

But no ’services’, indeed.  The 3 first are expected since they used
somehow by files in ’gnu/packages/’.  I am surprised by ’guix/scripts’
or ’guix/import’, the few I tried.

And I note a variation with the option ’-L’.

--8<---------------cut here---------------start------------->8---
$ mkdir -p /tmp/foo
$ ls /tmp/foo/
$ strace -o /tmp/,,l guix search sdfsdf -L /tmp/foo
$ wc -l /tmp/,,l /tmp/,,s
  10059 /tmp/,,l
   8745 /tmp/,,s
  18804 total
$ grep services /tmp/,,l
$ echo $?
1  
--8<---------------cut here---------------end--------------->8---

Well, I am not sure to understand…  And last, the bug:

--8<---------------cut here---------------start------------->8---
$ strace -o /tmp/,,g guix search sdfsdf -L ~/src/guix/guix-past/modules
$ cat /tmp/,,g | grep 'gnu/services' | wc -l
30
$ ag services ~/src/guix/guix-past/
$ echo $?
1
$ ls -1 ~/src/guix/guix/gnu/services/*.scm | wc -l
50
--8<---------------cut here---------------end--------------->8---

All the best,
simon