From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id mHCcIzTGjl8TEAAA0tVLHw (envelope-from ) for ; Tue, 20 Oct 2020 11:12:52 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id gGBkHzTGjl8vFQAAB5/wlQ (envelope-from ) for ; Tue, 20 Oct 2020 11:12:52 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id E02F59404CE for ; Tue, 20 Oct 2020 11:12:51 +0000 (UTC) Received: from localhost ([::1]:55322 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kUpZS-0001AS-OJ for larch@yhetil.org; Tue, 20 Oct 2020 07:12:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50634) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kUpVd-0003oj-2U for guix-devel@gnu.org; Tue, 20 Oct 2020 07:08:53 -0400 Received: from sender4-of-o51.zoho.com ([136.143.188.51]:21127) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kUpVa-0007RO-Rx; Tue, 20 Oct 2020 07:08:52 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1603192125; cv=none; d=zohomail.com; s=zohoarc; b=GZKgqUdn62LcJBid+Wt+SzxIanLp62okHIMHHEhTE6fCYkWpd5lgrGHPpF548BErd5/iU3IP1jBy6PV5sCc2XJHopakObvvhCHT7Etp3y87GszaXwGtvSQYsAkR88216Ew39fvopbIkTmmLo1Ckk/IlaJN91FnIHGFLCJM4Or4k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1603192125; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=5M/VyNnHWJdBRi7EUVvpateWA3zjiDZ30r2e/3sUMH0=; b=I9FWyR5IA4GWPUXbQ3hlkhQkBl+hFHRcso9Kj7A3r+AzTe/yCbt4ZzGcB+rVZ/iFEFwkfjNWBBmDV95BvZ9adx9lKKLHTsiG3fiPL2WGn4/kqoWlPsqVoQ+4EwsmBJPPRkVkVrRDivrJm2GPzAJ/jkWs9DVIW/rS1HqPHC/ghR8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=elephly.net; spf=pass smtp.mailfrom=rekado@elephly.net; dmarc=pass header.from= header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1603192125; s=zoho; d=elephly.net; i=rekado@elephly.net; h=References:From:To:Cc:Subject:In-reply-to:Date:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding; bh=5M/VyNnHWJdBRi7EUVvpateWA3zjiDZ30r2e/3sUMH0=; b=RwlwuMiyFSOvGC9lt25Up4fsm9zysKJ3jsw3kDFDRfFon3+U+EX0TsjvdX4X3jOv i3Ktk6ne7WMZew7OYZ/RlBNZcVhPbajOyBpYK7hLU7MF8Hu+5qissQp5Ia/mb2z/pji ktMca0L8onXnOJTsa2In3R++0Oxr8DRlaVdChfgc= Received: from localhost (p4fd5a343.dip0.t-ipconnect.de [79.213.163.67]) by mx.zohomail.com with SMTPS id 1603192118314257.1736727075256; Tue, 20 Oct 2020 04:08:38 -0700 (PDT) References: <875z7a78ww.fsf@gnu.org> <20201020103244.GB6805@jurong> User-agent: mu4e 1.4.13; emacs 27.1 From: Ricardo Wurmus To: Andreas Enge Subject: Re: Using #true and #false everywhere? In-reply-to: <20201020103244.GB6805@jurong> X-URL: https://elephly.net X-PGP-Key: https://elephly.net/rekado.pubkey X-PGP-Fingerprint: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC Date: Tue, 20 Oct 2020 13:10:25 +0200 Message-ID: <871rhtw3tq.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-ZohoMailClient: External Received-SPF: pass client-ip=136.143.188.51; envelope-from=rekado@elephly.net; helo=sender4-of-o51.zoho.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/20 07:08:47 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=fail (rsa verify failed) header.d=elephly.net header.s=zoho header.b=RwlwuMiy; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Spam-Score: 2.99 X-TUID: csb6LHLE0N7S Andreas Enge writes: > And since we are on the bikeshedding front, I feel like writing a second > message. > > On Fri, Oct 16, 2020 at 12:38:23PM +0200, Ludovic Court=C3=A8s wrote: >> As discussed on IRC recently, several of us think that using =E2=80=9C#t= rue=E2=80=9D and >> =E2=80=9C#false=E2=80=9D instead of =E2=80=9C#t=E2=80=9D and =E2=80=9C#f= =E2=80=9D throughout or documentation and code >> would probably make it easier for newcomers to decipher that. > > Honestly, I think either of them is sufficiently easy to understand, in t= he > presence of much more difficult questions: > - The "non-typedness of booleans": Does "(if 1 2 3)" raise an exception or > work, and if the latter is true, what is the result? And if I replace > "1" by "0" or the empty list? (In Guix, this is related to the question: > Do I need to add #t or #f at the end of a phase, or is the value of its > last statement sufficient?) I think it=E2=80=99s very ugly that we still need to end phases with #T, ev= en though build systems don=E2=80=99t care any more. The only thing that abor= ts a build phase now is an exception. In the next core-updates cycle we should probably remove the warning about ending build phases with anything other than #T and then remove all spurious #Ts from existing package definitions. > - What are quotes, quasiquotes, unquotes? How do they relate to code stag= ing > in Guix? (This is to me the most difficult part of Guix code, in partic= ular > for someone coming from a language where code is code and data are > data.) It=E2=80=99s tricky. I found the toggle switch imagery (taken from =E2=80= =9CThe Land of Lisp=E2=80=9D) to be a very useful teaching aid, but it isn=E2=80=99t neces= sarily obvious to newcomers *why* we would want to quote code anyway. > - Actually, why are there two ways to define literal lists? Do they have > the same result? This is a mixture of the previous two questions; try > (eq? '(1) '(1)) > vs. > (eq? '(1) (list 1)) > or > (eq? (list 1) (list 1)) > Then try again with eqv? and equal?. > Then try again with "(eq? '() (list))" and so on. (This one still > surprises me.) > Does it matter? (Probably not much in the context of Guix.) Comparison with EQ? is rarely useful in the context of Guix, because we usually don=E2=80=99t care about identity (=E2=80=9Cis the value behind thi= s variable name and the value behind this other variable name one and the same, i.e. are the variables just aliases of an identical value?=E2=80=9D) but a= bout equivalence (=E2=80=9Cdoes evaluating this expression lead to the same resu= lt as evaluating this other expression?=E2=80=9D). The difference between a quoted list literal and an expression using LIST is that the former is immutable whereas the latter is mutable. The resulting value is equivalent, but the values themselves are not identical. > - If I want to know what are and what happens in the phases of > the perl build system, do I look in build/perl-build-system.scm or > build-system/perl.scm? Why is there no build-system/perl-build-system.s= cm > or build/perl.scm instead? (Just a little trolling at the end of my pos= t, > no real harm intended ;-) But I am honestly unable to remember the answ= er, > and look at the two files every time I wonder about a build system, whi= ch > is of course entirely feasible, some might even argue > instructional.) Hah, I also always look at both files! But the simple answer is that everything in guix/build/* is build-side code, not host code. --=20 Ricardo