From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: question regarding substitute* and #t Date: Wed, 24 Jan 2018 23:10:33 +0100 Message-ID: <87r2qeykkm.fsf@elephly.net> References: <20180124010802.18874.3012@vcs0.savannah.gnu.org> <20180124010803.590AF2068F@vcs0.savannah.gnu.org> <874lnbzck5.fsf_-_@netris.org> <87372v8ndd.fsf_-_@igalia.com> <72d8803f-0a3d-4d31-e8c8-a5e4be9f45e3@crazy-compilers.com> <87tvvb6zw5.fsf@igalia.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38646) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eeTVG-0002J9-QG for guix-devel@gnu.org; Wed, 24 Jan 2018 17:26:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eeTVC-000347-Rm for guix-devel@gnu.org; Wed, 24 Jan 2018 17:26:46 -0500 Received: from sender-of-o51.zoho.com ([135.84.80.216]:21132) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eeTVC-0002wJ-HU for guix-devel@gnu.org; Wed, 24 Jan 2018 17:26:42 -0500 In-reply-to: <87tvvb6zw5.fsf@igalia.com> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Andy Wingo Cc: guix-devel@gnu.org Andy Wingo writes: >> 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. There is also the question what it means for substitute* to fail. Does it fail when one of the substitutions couldn=E2=80=99t be performed in one = of the files? Or does it only fail when no substitutions succeeded? Or something in between? I=E2=80=99m sure we have a bunch of places in package definitions where old substitions actually no longer apply to current versions of the sources. Cleaning this up will take quite some time. (I think that it would be helpful if substitute* failed when any substitution failed, but this would make some shortcuts impossible.) -- Ricardo GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC https://elephly.net