GNU bug report logs -
#56799
(gnu services configuration) usage of *unspecified* is problematic
Previous Next
Full log
Message #17 received at 56799 <at> debbugs.gnu.org (full text, mbox):
Hi,
Tobias Geerinckx-Rice <me <at> tobias.gr> writes:
> Hi Maxim,
>
> Maxim Cournoyer 写道:
>> I'd suggest we revisit 8cb1a49a3998c39f315a4199b7d4a121a6d66449 to
>> use
>> 'unspecified (the symbol) instead of *unspecified*, which *can* be
>> serialized without any fuss in gexps.
>
> Bah. Could we provide our own reader?
>
> I'd much rather this be addressed in Guile (or failing that,
> transparently by Guix) than have to deal with some magical
> symbol. IIRC that was the argument for using *unspecified* in the
> first place, and I think it makes sense.
>
> This looks more like an unexplored oversight than a well-reasoned
> restriction to me.
This was my original impression, but thinking more about it, it became
apparent that *unspecified* is well, unspecified and shouldn't be relied
on by people to be something well defined. For some background reading,
see [0]. So it seems wrong in Scheme to actively set things to
*unspecified*, and give a specific meaning to that.
I think the semantic of the language is that it is to be used as the
lack of a return value from a procedure or syntax, e.g.:
(unspecified? (if #f 'one-arm-if)) -> #t
Having 'unspecified?' even defined in Guile seems to go against that
idea; perhaps because Wingo themselves seems to disagree in [0].
I'm also thinking 'unspecified being too close to *unspecified* is
probably going to cause confusion down the line. Reverting to the
originally used 'disabled may be the lesser evil.
Other thoughts?
Thanks,
Maxim
[0] https://scheme-reports.scheme-reports.narkive.com/QSQtJSAh/unspecified-values
This bug report was last modified 2 years and 327 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.