GNU bug report logs -
#39258
Faster guix search using an sqlite cache
Previous Next
Full log
View this message in rfc822 format
Hi Arun,
Arun Isaac <arunisaac <at> systemreboot.net> skribis:
> * guix/ui.scm (relevance): When one of the regexps does not match, cut off
> early and return 0. Do not try to match the remaining regexps.
Good catch, LGTM!
> diff --git a/guix/ui.scm b/guix/ui.scm
> index ea5f460865..4a22358963 100644
> --- a/guix/ui.scm
> +++ b/guix/ui.scm
> @@ -1519,11 +1519,16 @@ score, the more relevant OBJ is to REGEXPS."
> (+ relevance (* weight (apply + (map score-regexp lst)))))))))
> 0 metrics)))
>
> - (let ((scores (map regexp->score regexps)))
> - ;; Return zero if one of REGEXPS doesn't match.
> - (if (any zero? scores)
> - 0
> - (reduce + 0 scores))))
> + (let loop ((regexps regexps)
> + (total-score 0))
> + (match regexps
> + ((head . tail)
> + (let ((score (regexp->score head)))
> + ;; Return zero if one of PATTERNS doesn't match.
> + (cond
> + ((zero? score) 0)
> + (else (loop tail (+ total-score score))))))
You can use ‘if’ since there are only two arms.
Thanks,
Ludo’.
This bug report was last modified 73 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.