GNU bug report logs -
#54997
[PATCH 00/12] Add "least authority" program wrapper
Previous Next
Reported by: Ludovic Courtès <ludo <at> gnu.org>
Date: Sun, 17 Apr 2022 21:02:02 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Hi Thiago,
Thiago Jung Bauermann <bauermann <at> kolabnow.com> skribis:
> This is an awesome series! It will be yet another strength of Guix to
> have many services as possible (and even desktop apps, hopefully)
> isolated.
Thanks. :-)
> Ludovic Courtès <ludo <at> gnu.org> writes:
>
>> + (define (read-graph port)
>> + ;; Return the list of references read from
>> + ;; PORT. This is a stripped-down version of
>> + ;; 'read-reference-graph'.
>> + (let loop ((items '()))
>> + (match (read-line port)
>> + ((? eof-object?)
>> + items)
>> + ((? string? item)
>> + (let ((deriver (read-line port))
>> + (count
>> + (string->number (read-line port))))
>> + (drop-lines port count)
>> + (loop (cons item items)))))))
>
> I'm sure I'm being dense, but I don't see how ‘item’ can change between
> iterations of this loop.
Each iteration reads a new line from PORT, an input port on a text file.
The file is created by guix-daemon and has a format like this:
FILE
DERIVER
NUMBER-OF-REFERENCES
REF1
...
REFN
where each FILE is a store item (see store-copy.scm for details).
Here we only care about FILE and REF*.
> Which in my mind means that ‘read-graph’ can only return a list where
> the original ‘item’ argument from ‘references-file’ is repeated many
> times over. I ran the tests/gexp.scm test and all tests pass, so this
> code must be working...
I think it does! :-) It wouldn’t hurt to add a call to
‘delete-duplicates’ though.
Ludo’.
This bug report was last modified 3 years and 72 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.