John Darrington (2016-09-17 12:11 +0200) wrote:
> On Sat, Sep 17, 2016 at 05:38:26PM +0800, Alex Vong wrote:
> > > + "contrib/mmuegel"
> > > + (("/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
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.