all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#53663] [PATCH] gnu: services: Also accept 'undefined in maybe-foo? constructs.
@ 2022-01-31 15:27 Attila Lendvai
  2022-02-01  9:53 ` Ludovic Courtès
  0 siblings, 1 reply; 3+ messages in thread
From: Attila Lendvai @ 2022-01-31 15:27 UTC (permalink / raw)
  To: 53663; +Cc: Attila Lendvai

This is a temporary bandaid until a more explicit handling of maybe types is
introduced for configurations (e.g. by using srfi-189). Until then, with this
change it becomes possible to have definitions like:

(define-maybe string (no-serialization))

(define-configuration my-configuration
  (my-field (maybe-string))
  (no-serialization))

i.e. without providing a default value for MY-FIELD.
---
 gnu/services/configuration.scm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm
index 0de350a4df..c5f276eab5 100644
--- a/gnu/services/configuration.scm
+++ b/gnu/services/configuration.scm
@@ -141,7 +141,9 @@ (define (define-maybe-helper serialize? prefix syn)
                                     (id #'stem #'serialize-maybe- #'stem))))
        #`(begin
            (define (maybe-stem? val)
-             (or (eq? val 'disabled) (stem? val)))
+             (or (eq? val 'disabled)
+                 (eq? val 'undefined)
+                 (stem? val)))
            #,@(if serialize?
                   (list #'(define (serialize-maybe-stem field-name val)
                             (if (stem? val)
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [bug#53663] [PATCH] gnu: services: Also accept 'undefined in maybe-foo? constructs.
  2022-01-31 15:27 [bug#53663] [PATCH] gnu: services: Also accept 'undefined in maybe-foo? constructs Attila Lendvai
@ 2022-02-01  9:53 ` Ludovic Courtès
       [not found]   ` <Go3Xae9pfXgOvYZqOORu5yBtXDUCzhtCzs2XryuL9XDL_MZGi3wYlo9wRcGvm_daPJPmPbx3nEx566pf22YVGJVN9mmBL_Iu8NRwdBQN7Ec=@lendvai.name>
  0 siblings, 1 reply; 3+ messages in thread
From: Ludovic Courtès @ 2022-02-01  9:53 UTC (permalink / raw)
  To: Attila Lendvai; +Cc: 53663

Hi!

Attila Lendvai <attila@lendvai.name> skribis:

> This is a temporary bandaid until a more explicit handling of maybe types is
> introduced for configurations (e.g. by using srfi-189). Until then, with this
> change it becomes possible to have definitions like:
>
> (define-maybe string (no-serialization))
>
> (define-configuration my-configuration
>   (my-field (maybe-string))
>   (no-serialization))
>
> i.e. without providing a default value for MY-FIELD.
> ---
>  gnu/services/configuration.scm | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm
> index 0de350a4df..c5f276eab5 100644
> --- a/gnu/services/configuration.scm
> +++ b/gnu/services/configuration.scm
> @@ -141,7 +141,9 @@ (define (define-maybe-helper serialize? prefix syn)
>                                      (id #'stem #'serialize-maybe- #'stem))))
>         #`(begin
>             (define (maybe-stem? val)
> -             (or (eq? val 'disabled) (stem? val)))
> +             (or (eq? val 'disabled)
> +                 (eq? val 'undefined)
> +                 (stem? val)))

My understanding is that 'disabled is here precisely to allow users to
not provide a value, in which case the generated configuration file will
not contain anything for that field.

What would be different here?

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#53663: Fw: Re: bug#53663: [PATCH] gnu: services: Also accept 'undefined in maybe-foo? constructs.
       [not found]   ` <Go3Xae9pfXgOvYZqOORu5yBtXDUCzhtCzs2XryuL9XDL_MZGi3wYlo9wRcGvm_daPJPmPbx3nEx566pf22YVGJVN9mmBL_Iu8NRwdBQN7Ec=@lendvai.name>
@ 2022-02-02 11:47     ` Attila Lendvai
  0 siblings, 0 replies; 3+ messages in thread
From: Attila Lendvai @ 2022-02-02 11:47 UTC (permalink / raw)
  To: 53663-close@debbugs.gnu.org

> What would be different here?

the possibility of writing:

(define-configuration my-cfg
  (my-field (maybe-string)))

versus now having to write:

(define-configuration my-cfg
  (my-field (maybe-string 'disabled)))

but now that i thought about it, i think everyone is better off if i
deal with this on my side, instead of having a discussion about the
exact shape of a bandaid.

closing this for now; more later in the form of a proper cleanup
proposal of the configuration code.

--
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“There can be no greater stretch of arbitrary power than is required to seize children from their parents, teach them whatever the authorities decree they shall be taught, and expropriate from the parents the funds to pay for the procedure.”
	— Isabel Paterson (1886–1961), 'The God of the Machine' (1943)





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-02-02 11:48 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-31 15:27 [bug#53663] [PATCH] gnu: services: Also accept 'undefined in maybe-foo? constructs Attila Lendvai
2022-02-01  9:53 ` Ludovic Courtès
     [not found]   ` <Go3Xae9pfXgOvYZqOORu5yBtXDUCzhtCzs2XryuL9XDL_MZGi3wYlo9wRcGvm_daPJPmPbx3nEx566pf22YVGJVN9mmBL_Iu8NRwdBQN7Ec=@lendvai.name>
2022-02-02 11:47     ` bug#53663: Fw: Re: bug#53663: " Attila Lendvai

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.