On Wed 24 Jan 2018 15:45, Hartmut Goebel <h.goe...@crazy-compilers.com> writes:

> Am 24.01.2018 um 13:14 schrieb Andy Wingo:
>> On Wed 24 Jan 2018 13:06, Mark H Weaver <m...@netris.org> writes:
>>
>>> +             ;; Install to the right directory
>>> +             (substitute* '("Makefile"
>>> +                            "Qsci/Makefile")
>>> +               (("\\$\\(INSTALL_ROOT\\)/gnu/store/[^/]+")
>>> +                (assoc-ref outputs "out")))
>>> +             #t)))))
>> I guess once we switch over all instances of "system" and "system*" to
>> use invoke, does that mean we will also be able to remove these
>> vestigial "#t" returns?
> I wonder why substitute* not simply returns #t?!

There was a proposal to make it return #t!  However then someone pointed
out that actually instead of making phases return boolean results, we
should instead signal problems via exceptions, and that drove the shift
from system / system* to invoke.  In the future world where completion
means success, it doesn't matter what substitute* returns.

However!  Because it doesn't matter, perhaps in the interest of
transition we should make substitute* return #t, so that once we switch
to the new exception-based error signalling, that we have less code to
clean up later.

Andy

Reply via email to