GNU bug report logs -
#46776
[PATCH] inferior: Extend cached-channel-instance scope.
Previous Next
Reported by: Mathieu Othacehe <othacehe <at> gnu.org>
Date: Thu, 25 Feb 2021 17:22:01 UTC
Severity: normal
Tags: patch
Done: Mathieu Othacehe <othacehe <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Hi,
Mathieu Othacehe <othacehe <at> gnu.org> skribis:
> * guix/inferior.scm (cached-channel-instance): Turn channels argument into
> channels-or-instances. Adapt the rest of the procedure.
[...]
> (define* (cached-channel-instance store
> - channels
> + channels-or-instances
> #:key
> (authenticate? #t)
> (cache-directory (%inferior-cache-directory))
> (ttl (* 3600 24 30)))
> - "Return a directory containing a guix filetree defined by CHANNELS, a list of channels.
> -The directory is a subdirectory of CACHE-DIRECTORY, where entries can be reclaimed after TTL seconds.
> -This procedure opens a new connection to the build daemon. AUTHENTICATE?
> -determines whether CHANNELS are authenticated."
> + "Return a directory containing a guix filetree defined by
> +CHANNELS-OR-INSTANCES, a list of channels or channel instances. The directory
> +is a subdirectory of CACHE-DIRECTORY, where entries can be reclaimed after TTL
> +seconds. This procedure opens a new connection to the build daemon.
> +AUTHENTICATE? determines whether CHANNELS are authenticated."
> + ;; Determine if we are dealing with channels or channel instances.
> + (define channels?
> + (match (pk channels-or-instances)
> + (((? channel? c) rest ...)
> + #t)
> + (else #f)))
> +
> (define commits
> ;; Since computing the instances of CHANNELS is I/O-intensive, use a
> ;; cheaper way to get the commit list of CHANNELS. This limits overhead
> ;; to the minimum in case of a cache hit.
> - (map channel-full-commit channels))
> + (if channels?
> + (map channel-full-commit channels-or-instances)
> + (map channel-instance-commit channels-or-instances)))
This would only accept homogeneous lists, which is kinda weird.
Could we instead have a separate procedure taking channel instances, and
arrange to factorize common code in a third procedure?
Thanks,
Ludo’.
This bug report was last modified 4 years and 54 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.