From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57424) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eRDQZ-0006LV-Uh for guix-patches@gnu.org; Tue, 19 Dec 2017 03:39:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eRDQU-0002lh-6G for guix-patches@gnu.org; Tue, 19 Dec 2017 03:39:07 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:60731) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eRDQU-0002lT-2b for guix-patches@gnu.org; Tue, 19 Dec 2017 03:39:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eRDQT-000074-J8 for guix-patches@gnu.org; Tue, 19 Dec 2017 03:39:01 -0500 Subject: [bug#29745] [PATCH 0/3] Disallow phase returning . Resent-Message-ID: From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20171216231242.12032-1-arunisaac@systemreboot.net> <87efnt9tvw.fsf@gnu.org> <87zi6gxy6a.fsf@gnu.org> Date: Tue, 19 Dec 2017 09:38:05 +0100 In-Reply-To: (Arun Isaac's message of "Mon, 18 Dec 2017 14:36:08 +0530") Message-ID: <871sjr9kpe.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Arun Isaac Cc: Ricardo Wurmus , Mark H Weaver , 29745@debbugs.gnu.org Hi, Arun Isaac skribis: >> For instance we could change the return value of =E2=80=98substitute*=E2= =80=99 to be >> #t on success; similarly for =E2=80=98install-file=E2=80=99. > > Yes, changing the return value of these functions is a good idea, > regardless of what we decide here in this thread. OK, let=E2=80=99s do that in the next =E2=80=98core-updates=E2=80=99. > But, there will always be phases that do not end with a call to these > functions, and we won't be able to cover those cases. So, this is not > a complete solution to the problem being discussed in this thread. True. >>> Wouldn't it be simpler and more logical to accept unspecified values >>> as "true" in line with Scheme's notion of "true"? > > Also, during patch review, the reviewer has to go to the extra trouble > of manually checking if all phases return #t. If either the build system > strictly checks for #t, or if #t were not strictly required (meaning > # was tolerated), we would save ourselves some tedious > manual work. I agree. >> That=E2=80=99s a good question. My take on it is that it=E2=80=99s clea= rer: the return >> value of =E2=80=98substitute*=E2=80=99 for instance is unspecified, it= =E2=80=99s not necessarily >> *the* unspecified value. > > My take is that we have two options: > > - disallow # and strictly check for #t in the build system > even though this creates a new notion of "true" > - allow # as "true" in line with the rest of Scheme, and > stop appending #t at the end of phases > > I have no particular preference about which option we should > choose. But, we do have to choose one of these options > completely. Partial solutions might only add to the existing troubles. I get your point. I don=E2=80=99t have a strong preference either, to be honest. I think Mark did, so I=E2=80=99m Cc=E2=80=99ing him. Mark? Ludo=E2=80=99.