On 30-08-2022 09:33, Ludovic Courtès wrote:

So are you suggesting replacing:

   (defined? 'make-inetd-constructor)

by something like:

   (version<? shepherd-version "0.9.0")

or is it something different that you have in mind?

I’m not sure how this could improve the user experience, unless by
“user” you mean the person writing the service?

(defined? '...) does not work in all contexts -- it works on the top-level, but not always inside a procedure, as it tests if the thing is defined in (current-module), and not whether it is defined in the module that calls (defined? '...).

Perhaps it works fine in the way it is used in Guix currently, but AFAIK it is not guaranteed anywhere. As such, I cannot recommend defined? here. The version<? does not have this problem.

A hypothetical defined-in-this-module macro would be ideal, but such a thing does not exist yet.

Greetings,
Maxime.

Attachment: OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to