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. -- Alex