From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id AFW5Bfoh9WIYeAAAbAwnHQ (envelope-from ) for ; Thu, 11 Aug 2022 17:36:26 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id 6GPMBfoh9WIriQAA9RJhRA (envelope-from ) for ; Thu, 11 Aug 2022 17:36:26 +0200 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 A84393F908 for ; Thu, 11 Aug 2022 17:36:25 +0200 (CEST) Received: from localhost ([::1]:37940 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oMAES-0002j1-HR for larch@yhetil.org; Thu, 11 Aug 2022 11:36:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49592) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oMAE6-0002in-7z for guix-patches@gnu.org; Thu, 11 Aug 2022 11:36:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:36836) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oMAE5-0001sA-VN for guix-patches@gnu.org; Thu, 11 Aug 2022 11:36:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oMAE5-0001Zu-Li for guix-patches@gnu.org; Thu, 11 Aug 2022 11:36:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#57050] [PATCH v2 04/13] gnu: Add Zuo. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 11 Aug 2022 15:36:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 57050 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Philip McGrath , 57050@debbugs.gnu.org Cc: Thiago Jung Bauermann Received: via spool by 57050-submit@debbugs.gnu.org id=B57050.16602321085996 (code B ref 57050); Thu, 11 Aug 2022 15:36:01 +0000 Received: (at 57050) by debbugs.gnu.org; 11 Aug 2022 15:35:08 +0000 Received: from localhost ([127.0.0.1]:54818 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oMADE-0001Yd-2B for submit@debbugs.gnu.org; Thu, 11 Aug 2022 11:35:08 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:37554) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oMADC-0001YA-K5 for 57050@debbugs.gnu.org; Thu, 11 Aug 2022 11:35:07 -0400 Received: by mail-ed1-f68.google.com with SMTP id b16so23436734edd.4 for <57050@debbugs.gnu.org>; Thu, 11 Aug 2022 08:35:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc; bh=Gv2RznMw4Iep6A2BBNkMjPt9Zql1Tww2keMdzMgO9Qo=; b=JPVBjilizTZMttfIXDtUiZLPafSZJTd3AHIppCDxnqS7eIHiXaC6yelkZgSMXsSoQW wUNgJoGMwwBG4PrharTfpOWJ16f1tcwE1vVVKs6v3aIJ+LfU73GxGEQD0lnbDd71WJMp fFlhuprSxPhw/OH9xHUcULH/hA6z1undrk8tUTJxg/ptYXl5gBuFvw+S+JkVYdFaP4Ch nKbBYJyGXMQWWbeL6urWoIT9ZhKqV9MnyE5v3ObvBdCiGPdRnu8PCm2PIUMTRAhrCQ74 aOIeQKG0nncHtQ/tVCrrz73DPcfxoZMqmIUGvNrwwrbuPl2o7tJxdcC8J1uwcpyYdzdk rIqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc; bh=Gv2RznMw4Iep6A2BBNkMjPt9Zql1Tww2keMdzMgO9Qo=; b=G+J76Q6G5XsTxlqDXQTvZ4VNB9V37OzGzf1bVwR032BW+qO4WCW09Xh8AQNgOox55G bRg58oCIsjjfmTysZEyZFw6H7svXRa7OEbaZQdZTuRiql8qeMYeQ2v9OFTLd5quhrJ3w MmHdBTiIuzFkRevczMx2GRyrnojdKAQTsL6afoeWxqaCmmxt3QgpW8crY8PM5M7w6msB 8aMPwSB7PpzKf13Hq/0/eJve5u6vzE5LNkb2orPpkBnnd64j2t5GTGDCuCIkfEe2AbUQ vjvd7S9Ufrfh6FsN3sJl9AMoneITRPcXz9VOpnvcMzZEUz4R8i/VFIdeDApfPjGTL7IR MLPA== X-Gm-Message-State: ACgBeo38Xk1rpGouxSsPiwyqICh3iDhjJ1mZ2RE0pIWNq+MF54oXxhQm /zCbVNSSQ+OjIehPae5UwCzyc7LqsQk= X-Google-Smtp-Source: AA6agR7Ng/bte9eSgv6cB7B7xr+Cr31saKQq1+qj8+ZX443pLjc3SndX06N23o98iuMOfUfB8PanWg== X-Received: by 2002:a05:6402:2547:b0:43e:4cc4:85d3 with SMTP id l7-20020a056402254700b0043e4cc485d3mr31023628edb.233.1660232100871; Thu, 11 Aug 2022 08:35:00 -0700 (PDT) Received: from nijino.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id b18-20020a1709063cb200b0073075122af2sm3618518ejh.225.2022.08.11.08.35.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Aug 2022 08:35:00 -0700 (PDT) Message-ID: <3fb8e7c9e08178a331726c1e5a303dfd5a622ca6.camel@gmail.com> From: Liliana Marie Prikler Date: Thu, 11 Aug 2022 17:34:59 +0200 In-Reply-To: <4ae7af77-4ab6-4642-8c2f-854adec719c5@www.fastmail.com> References: <285372112d70bcb4011d6c085592787df4f57d44.1660215295.git.philip@philipmcgrath.com> <4ae7af77-4ab6-4642-8c2f-854adec719c5@www.fastmail.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1660232185; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=Gv2RznMw4Iep6A2BBNkMjPt9Zql1Tww2keMdzMgO9Qo=; b=cpSsds5thhEFYS73+TdXRJqBdAamJrP6zfei54Jgk4fnTIZ7kk0xqpjPiaVrwsE6HnLAQj SB56wp09s2GVVUOyCFmv+fMjqv7DsAv0K42V1AdrhILPz5hdoMOc3yS/XjVGHfBkenxX4c 90qUHR/6EAedeCipTSGmpsWO0Rjic2xDV8jsCqpbccY358eL79lUYNsnkS7ZkL5PHk/j+E 7wHVUznYr9c87Kn/KmxD+ixKGRyqcWuoplDfh3ZIwP8cYV3VAJa4svAvVo70u+7JlImMHl /xNC52c4ygJSlKT7783WsbGrywt4VERCOrmN3g0ZyvcHHtHycyrJXcb37ulRgw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1660232185; a=rsa-sha256; cv=none; b=SJRHv2XGO4tAMiI6O6t/hYhOSttBCYSMkqYqw2Dza8FmDIx9Mi9oSZEtRSSyDfcF1buiRh HL3c+csWTlPfm68lzV87XFgaXoMuQjkU0KWZ3w221JTjEnU3+PyBDf7GTxNnzC/ZFzzfkO yMcfUmHcDA/nr6latFtKUaosrgKe0v3DnYS/4KoaR3nGY1XyBC4FtFxRknujtbl3nJuIe8 NPFd1Cc8pqw0nE/1Frd+T/peKJBQmT0KszK9E8LPdigKm5jOnCXBStn/G+3tHHGdV+k26p 83bTGeT379faXZU4y9eRjqOvVdUKVoGYIDotHqHfM9qJ9kSo+YE86a+trJQV2A== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20210112 header.b=JPVBjili; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 5.32 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20210112 header.b=JPVBjili; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: A84393F908 X-Spam-Score: 5.32 X-Migadu-Scanner: scn0.migadu.com X-TUID: ePe3VGRdwBBu Hi, Am Donnerstag, dem 11.08.2022 um 10:00 -0400 schrieb Philip McGrath: > > > If we expect to maintain zuo split from racket, I'd rather go with > > https://github.com/racket/zuo and git-version. > > I mean, I don't think it's profoundly essential, but I've been using > it for the last four months. I don't see any harm in leaving the > level of indentation there so it can be used more easily if it is > needed or wanted. > > Building from https://github.com/racket/zuo would basically never be > useful. It is generated intermittently from > https://github.com/racket/racket using `git subtree`. I don't think that matters much in the grand scheme of things (pun intended). Rather, having such subtrees available is beneficial in and of itself, because it means we don't have to split the monorepo. At the very least, it's one chdir less. Now, building from the zuo subtree is not a requirement, but imho it would make a better case for versioning. > > > > +         (file-name (git-file-name "racket" "8.6")))) > > > +      (outputs '("out" "debug")) > > > +      (build-system gnu-build-system) > > > +      (inputs (list bash-minimal)) > > > +      (native-inputs (list bash-minimal)) > > > +      (arguments > > > +       (list > > > +        #:configure-flags > > > +        #~`(,(string-append "CPPFLAGS=-DGUIX_RKTIO_BIN_SH=" > > > +                            #$(file-append (this-package-input > > > "bash-minimal") > > > +                                           "/bin/sh")) > > As with chez-scheme, I do think using a Racket-agnostic macro name > > is helpful here. > > I'm planning to respond in the other thread about the possibility of > a truly generic macro name, but I hope it doesn't need to become an > issue blocking this patch series. For now, I'm not entirely sure what > "Racket-agnostic" means; the bottom line for my is I think it would > be absurdly awful to have to write, e.g. if cross-compiling using > `distro-build` with the top-level Makefile: > >     ./configure CPPFLAGS="GUIX_RKTIO_BIN_SH=/input/bin/sh > GUIX_ZUO_BIN_SH=/input/bin/sh GUIX_CHEZ_BIN_SH=/input/bin/sh" > CPPFLAGS_FOR_BUILD="GUIX_RKTIO_BIN_SH=/native-input/bin/sh > GUIX_ZUO_BIN_SH=/native-input/bin/sh GUIX_CHEZ_BIN_SH=/native- > input/bin/sh" GUIX_CHEZ_BIN_SH would semantically cover all four however, no? (Ignoring more generic options for now.) > > > +      (home-page "https://github.com/racket/zuo") > > > +      ;; ^ This is downstream of > > > https://github.com/racket/racket, > > > +      ;; but it's designed to be a friendly landing place > > > +      (synopsis "Tiny Racket for build scripts") > > > +      (description "You should use Racket to write scripts. > > Sorry, but I prefer Guile. > > (At the risk of responding seriously to what was probably meant to be > a joke:) I've never tried to use Guile on Windows, but, given that > the manual chapter is called "POSIX System Calls and Networking", > it's not clear to me that Guile provides as portable and powerful > "primitives for dealing with files and running processes" as Zuo, let > alone Racket. At the risk of responding seriously to what was probably meant to be a joke, I don't use Winblows 😉️ > > > > >   But what if you > > > +need something much smaller than Racket for some reason—or what > > > if > > > you're > > > +trying to script a build of Racket itself?  Zuo is a tiny Racket > > > with > > > +primitives for dealing with files and running processes, and it > > > comes with a > > > +@command{make}-like embedded DSL. > > > + > > > +Zuo (作) is a Racket variant in the sense that program files > > > start > > > with > > > +@code{#lang}, and the module path after @code{#lang} determines > > > the > > > parsing > > > +and expansion of the file content.  That's how the > > > @command{make}- > > > like DSL is > > > +defined, and even the base Zuo language is defined by layers of > > > @code{#lang}s. > > > +One of the early layers implements macros.") > > > +      (license (list license:asl2.0 license:expat))))) > > Rarely have I read a description this long, yet uninformative.  Let > > me > > shorten that a little: "Zuo is a tiny Racket variant that can be > > used > > to bootstrap Racket.  It comes with primitives for dealing with > > files > > and processes, as well as a @command{make}-like DSL." > > > > This is the description from the Zuo documentation and readme file. I > find your shortened version less clear than the original. The details > about `#lang` as a Racketeer are important to understand in what > sense Zuo is a "Racket variant", given that it is not currently > possible to run `#lang zuo` programs using the `racket` executable. Would it make sense to call zuo a "dialect" then? > (IIUC someone is working on a Racket package implementing `#lang > zuo/kernel`, at which point that will change.) I also think "can be > used to bootstrap Racket" greatly underplays the potential of Zuo. A > number people have already taken an interest in or started > experimenting with Zuo outside of building Racket. I have not claimed that it's use is limited to bootstrapping Racket. Rather, I think this bootstrapping capability shows that Zuo can be used to do real programming™. Cheers