[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] gnu: Add sendmail
From: |
Alex Kost |
Subject: |
Re: [PATCH] gnu: Add sendmail |
Date: |
Sat, 24 Sep 2016 20:50:47 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.95 (gnu/linux) |
Alex Vong (2016-09-24 16:22 +0800) wrote:
> Alex Kost <address@hidden> writes:
>
>> John Darrington (2016-09-17 12:11 +0200) wrote:
>>
>>> On Sat, Sep 17, 2016 at 05:38:26PM +0800, Alex Vong wrote:
>> [...]
>>> > > + "contrib/mmuegel" "devtools/bin/configure.sh")
>>> > > + (("/bin/sh") (which "bash")))
>>> > > +
>>> > > + (substitute* "devtools/bin/Build"
>>> > > + (("SHELL=/bin/sh") (string-append "SHELL=" (which "bash"))))
>>> > > + #t))
>>> > I think the `#t' is not neccessary here, since `substitute*'
>>> uses
>>> > `substitute', which will either return #t or throw an exception.
>>> >
>>> > WTF?? Didn't you complain earlier this week when I *didn't* put #t
>>> in
>>> > exactly this
>>> > scenario??
>>> >
>>> Yes, I am a different Alex :)
>>> Also, it seems we are not being consistent here, sometimes we put `#t'
>>> after `substitute*', sometimes we don't. Anyone has an idea?
>>>
>>> I did raise some suggestions in my earlier posts. But again I don't
>>> have any strong
>>> opinion.
>>
>> I have a strong opinion: if a docstring of a procedure says what value
>> it returns, we can rely on it, otherwise we should not guess what value
>> will be returned. In case of 'substitute*' (and 'substitute'), the
>> returned value is not specified, so I think if a phase ends with
>> 'substitute*', we should (or even must) add #t after it.
>
> I see your point that one should not be relying on undocumented
> features, which I agree. But I also see an alternative: to make
> 'substitute*' either return true or throw an exception and document
> it. I think the heart of the problem is scheme is "untyped", so we rely
> on the documentation. What do you think?
I don't think my opinion matters, I'm not the man to decide. As for me,
I would prefer if 'substitute*' returned #t if substitution was
successful and #f if it failed (if nothing was substituted).
OTOH 'substitute*' is only one of the several procedures that are used
often in phases; there also can be met such general guile procedures as
'setenv', 'copy-file', etc. After them (in the end of the phases) we
have to use #t anyway.
--
Alex
- [PATCH] gnu: Add sendmail, John Darrington, 2016/09/16
- Re: [PATCH] gnu: Add sendmail, Alex Vong, 2016/09/17
- Re: [PATCH] gnu: Add sendmail, John Darrington, 2016/09/17
- Re: [PATCH] gnu: Add sendmail, John Darrington, 2016/09/17
- Re: [PATCH] gnu: Add sendmail, Alex Vong, 2016/09/17
- Re: [PATCH] gnu: Add sendmail, John Darrington, 2016/09/17
- Re: [PATCH] gnu: Add sendmail, Alex Kost, 2016/09/18
- Re: [PATCH] gnu: Add sendmail, Alex Vong, 2016/09/24
- Re: [PATCH] gnu: Add sendmail,
Alex Kost <=