[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#50967] file-like objects instead of gexps
From: |
Ludovic Courtès |
Subject: |
[bug#50967] file-like objects instead of gexps |
Date: |
Sat, 09 Oct 2021 15:34:48 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
Hi Andrew,
Preamble: Guix Home is now committed and there are bug reports coming
in. To me, that means our discussion needs to be focused on addressing
specific issues; we’re not going to redesign Guix services in this
thread.
Andrew Tropin <andrew@trop.in> skribis:
[...]
>> Then that’s fine: you can have special code that emits those “source”
>> lines in .zshrc while still allowing users to provide their own
>> file-like object for .zshrc lines they want to add. Again, see how
>> ‘torrc’ is generated in ‘tor-service-type’.
>
> From what I understand you want a separate bashrc-file,
> bash-profile-file and bash-logout-file fields to be present, but where
> the content of those files should be inserted? At the beginning/end or
> instead of the rest of configuration?
>
> We already can achieve the same result by providing gexp, which will
> read the content of the file-like object, a very small helper for that
> (slurp-file-gexp) makes it even easier to do. Such approach is more
> flexible and doesn't seem much harder.
>
> I remember that you had concerns about slurp-file-gexp, but still don't
> understand what exactly you are concerned about.
Let me restate my concerns:
1. Users are unlikely to fathom what this does, given the name. It
will end up in user configurations, yet: “slurp”? “gexp”?
2. ‘slurp-file-gexp’ returns code, as a gexp. Depending on the place
where that gexp is inserted, it may or may not work. Consider:
(define (foo x)
#~(frob '(#$x)))
(foo (slurp-file-gexp …)) ;d’oh!
3. Use of ‘slurp-file-gexp’ and gexps in configuration records is not
consistent with the rest of the service APIs (and I think we can
humbly recognize that those APIs have been doing the job for a
while already.)
Let’s just to the (call-with-input-file file get-string-all) dance in
places where it’s needed rather than let users call ‘slurp-file-gexp’.
This is roughly what the ‘tor-service-type’ example I gave does.
> I'll write a few examples of service configurations and rationale behind
> the design descisions for that next week, to make the discussion more
> practically oriented.
People are starting to use the tool and to report bugs. So,
unfortunately, we have to sort out interface issues quickly now.
If some of the things being discussed turn out to be too complex to
address under those time constraints, we can consider taking them out
until we have a better idea on how to address them.
How does that sound?
Thanks,
Ludo’.
- [bug#50967] [PATCH 08/14] gnu: home-services: Move shepherd to (gnu home services)., (continued)
- [bug#50967] [PATCH 08/14] gnu: home-services: Move shepherd to (gnu home services)., Oleg Pykhalov, 2021/10/02
- [bug#50967] [PATCH 12/14] gnu: home-services: Update %service-type-path., Oleg Pykhalov, 2021/10/02
- [bug#50967] [PATCH 11/14] doc: (gnu home-services) -> (gnu home services)., Oleg Pykhalov, 2021/10/02
- [bug#50967] [PATCH 13/14] home: services: configuration: Support file-like objects., Oleg Pykhalov, 2021/10/02
- [bug#50967] [PATCH 13/14] home: services: configuration: Support file-like objects., Xinglu Chen, 2021/10/02
- [bug#50967] [PATCH 00/12] Move (gnu home-services XYZ) to (gnu services XYZ), Ludovic Courtès, 2021/10/04
- [bug#50967] file-like objects instead of gexps, Andrew Tropin, 2021/10/06
- [bug#50967] file-like objects instead of gexps, Ludovic Courtès, 2021/10/08
- [bug#50967] file-like objects instead of gexps, Andrew Tropin, 2021/10/08
- [bug#50967] file-like objects instead of gexps,
Ludovic Courtès <=
- [bug#50967] file-like objects instead of gexps, Andrew Tropin, 2021/10/14
- [bug#50967] file-like objects instead of gexps, Xinglu Chen, 2021/10/08
- [bug#50967] file-like objects instead of gexps, Andrew Tropin, 2021/10/08
- [bug#50967] [PATCH 13/14] home: services: configuration: Support file-like objects., Andrew Tropin, 2021/10/08
- [bug#50967] [PATCH 13/14] home: services: configuration: Support file-like objects., Andrew Tropin, 2021/10/14
[bug#50967] [PATCH 14/14] doc: Document guix home import., Oleg Pykhalov, 2021/10/02
[bug#50967] [PATCH 00/12] Move (gnu home-services XYZ) to (gnu services XYZ), Ludovic Courtès, 2021/10/04