--- Begin Message ---
Subject: |
[PATCH] system: vm: Auto-detect if inputs should be registered. |
Date: |
Sat, 11 May 2019 20:50:54 -0400 |
Hello!
The argument REGISTER-CLOSURE? of the SYSTEM-DOCKER-IMAGE procedure can be
removed and its value computed automatically, since the operating-system
definition is available in its context. When the operating-system definition
does not contain the GUIX-SERVICE-TYPE, do not register the closure in the
database of Guix, as it takes time and doesn't serve a purpose.
The time saving is close to 2 minutes on my machine for every test using
a very minimal OS configuration and building it with `guix system
docker-image my-config.scm'.
Thank you,
Maxim
0001-system-vm-Auto-detect-if-inputs-should-be-registered.patch
Description: Text Data
--- End Message ---
--- Begin Message ---
Subject: |
Re: [bug#35692] [PATCH] system: vm: Auto-detect if inputs should be registered. |
Date: |
Mon, 13 May 2019 23:09:31 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) |
Hello!
Ludovic Courtès <address@hidden> writes:
[...]
>>>From 59d78c066727d5c3df22a6e269025ae7e058b45c Mon Sep 17 00:00:00 2001
>> From: Maxim Cournoyer <address@hidden>
>> Date: Tue, 16 Apr 2019 17:15:02 -0400
>> Subject: [PATCH] system: vm: Auto-detect if inputs should be registered.
> ^
> I’d just write “vm:” here.
Done.
>> The argument REGISTER-CLOSURE? of the SYSTEM-DOCKER-IMAGE procedure can be
>> removed and its value computed automatically, since the operating-system
>> definition is available in its context. When the operating-system definition
>> does not contain the GUIX-SERVICE-TYPE, do not register the closure in the
>> database of Guix, as it takes time and doesn't serve a purpose.
>>
>> * gnu/system/vm.scm (use-modules): Add (gnu services base).
>
> Nitpick: We don’t usually document ‘use-modules’ changes here.
OK. I've removed it.
>> (system-docker-image): Remove the REGISTER-CLOSURES? argument, as well as its
>> associate documentation in the docstring.
>> [has-guix-service-type?] Add predicate and use it to compute the value of the
>> REGISTER-CLOSURE? argument of the INITIALIZE procedure.
>
>> +(define (has-guix-service-type? os)
>> + (find (lambda (service)
>> + (eq? (service-kind service) guix-service-type))
>> + (operating-system-services os)))
>
> Please add a docstring and make sure there are not tabs. :-)
> Otherwise LGTM, thank you!
No, thanks to you for tirelessly reviewing many contributions while also
producing a mind boggling amount of new code/features :-).
I noticed that this change was breaking tests/guix-system.sh. The reason
was that the HAS-GUIX-SERVICE predicate could return a service type as a
truthy value, which was unwieldy when passed to environments which lack
the service definition. The solution is to ensure that the predicate
return booleans values, using (not (not ...)).
I've also slightly improved the commit message and some docstrings, and pushed
as
commit d03de6be0aa2e2889314b5ed9a8867375363d79f.
Thank you!
Maxim
--- End Message ---