From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id uCE7O4oM9WIOfwEAbAwnHQ (envelope-from ) for ; Thu, 11 Aug 2022 16:04:59 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id YHZSO4oM9WJlYQEA9RJhRA (envelope-from ) for ; Thu, 11 Aug 2022 16:04:58 +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 C0C3D2E833 for ; Thu, 11 Aug 2022 16:04:42 +0200 (CEST) Received: from localhost ([::1]:55324 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oM8ni-0007AG-0e for larch@yhetil.org; Thu, 11 Aug 2022 10:04:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52918) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oM8l8-0005el-HU for guix-patches@gnu.org; Thu, 11 Aug 2022 10:02:05 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:36721) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oM8l8-0002u0-2w for guix-patches@gnu.org; Thu, 11 Aug 2022 10:02:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oM8l7-0007ZX-Uy for guix-patches@gnu.org; Thu, 11 Aug 2022 10:02:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#57050] [PATCH v2 04/13] gnu: Add Zuo. Resent-From: "Philip McGrath" Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 11 Aug 2022 14:02: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: "Liliana Marie Prikler" , 57050@debbugs.gnu.org Cc: Liliana Marie Prikler , Thiago Jung Bauermann Received: via spool by 57050-submit@debbugs.gnu.org id=B57050.166022649929061 (code B ref 57050); Thu, 11 Aug 2022 14:02:01 +0000 Received: (at 57050) by debbugs.gnu.org; 11 Aug 2022 14:01:39 +0000 Received: from localhost ([127.0.0.1]:54699 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oM8kk-0007Ye-JD for submit@debbugs.gnu.org; Thu, 11 Aug 2022 10:01:39 -0400 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:43797) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oM8ki-0007YM-Ky for 57050@debbugs.gnu.org; Thu, 11 Aug 2022 10:01:37 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id A046C320079B; Thu, 11 Aug 2022 10:01:28 -0400 (EDT) Received: from imap52 ([10.202.2.102]) by compute4.internal (MEProxy); Thu, 11 Aug 2022 10:01:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:cc:content-transfer-encoding :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to; s=fm1; t=1660226488; x=1660312888; bh=D7m1Hcpcgm +8j0eT0bfFEBCglPpu3Bett2c7uZVhSbQ=; b=Xdx07IKw8rOaUotocpP4YrS8QK hWGYgF6FPQ7MC7m/8UbpRex89TwsUsjnxl8tOeoVwxKO36Ijiu7h0Xjxl9AvZCnx 1R2xuDvKkud5xnlYZzn2KUg3AhEOzn6h+kRejjTpb0R36B8uUTlRf1l0/MXoBhym 8CPPKN6/A7oX3PUKJNng1wv+/Uv8kGNT1JD1TEoMFrMwm7GpJwPFXiBdyYa4ngJl ryxRg8BGlRVPlly4iq32MfR/SlVNZr/AI0usMSzs4BgqOIgT/mLcP3pcCrz9zrsg VLm79AysMnLTFnBrWhRVPm9pih0a2yCDTMYl1mZ9Jnms3Os0oPTFCiczUNJg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1660226488; x= 1660312888; bh=D7m1Hcpcgm+8j0eT0bfFEBCglPpu3Bett2c7uZVhSbQ=; b=e e5ferc//7pGp0pLRi6tLvPY/xnstt8XslginQ1Xz18p66xH0c3gIR0P5buIUWavu keZyYMmjLWzXWCRNyYVCmKS/IM2tmCAtYeQUqYx5qlwjZNcUqiSySQX+EcjdQDoW S2c/jomH9zl2QUVKeJIgoh+3yWdIhkO0t8KCiPnXGox5fwZzv6lwUAptauIID0Mu Cod0kl5LL1AQYU7Oc5Ty2ui3IVNf2XkalSTGuYUlyh5HlgPbLpQBJREKLOxoZ2l1 HNZfh3LN2xnrLcK19rslz3psKMETpyN4cRyErryEN+G9Bc19HiqLMQYgTCWfKGyK n+JkkDiljbX+vn7u+wR+A== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrvdeggedgjeduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkjghffffhvfevufgtgfesthhqredtreerjeenucfhrhhomhepfdfr hhhilhhiphcuofgtifhrrghthhdfuceophhhihhlihhpsehphhhilhhiphhmtghgrhgrth hhrdgtohhmqeenucggtffrrghtthgvrhhnpeeggfejffejhefgfeekleefffeuudfhieek tdekkeelvedtveejudejvdfgkeeltdenucffohhmrghinhepughishgtohhurhhsvgdrgh hrohhuphdpghhithhhuhgsrdgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghr rghmpehmrghilhhfrhhomhepphhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtoh hm X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 520B6C6008B; Thu, 11 Aug 2022 10:01:27 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.7.0-alpha0-811-gb808317eab-fm-20220801.001-gb808317e Mime-Version: 1.0 Message-Id: <4ae7af77-4ab6-4642-8c2f-854adec719c5@www.fastmail.com> In-Reply-To: References: <285372112d70bcb4011d6c085592787df4f57d44.1660215295.git.philip@philipmcgrath.com> Date: Thu, 11 Aug 2022 10:00:52 -0400 From: "Philip McGrath" Content-Type: text/plain;charset=utf-8 Content-Transfer-Encoding: quoted-printable 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=1660226682; 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=D7m1Hcpcgm+8j0eT0bfFEBCglPpu3Bett2c7uZVhSbQ=; b=o/9mxaDiNI3gNzhgRWXZaHmjlaVgv6/ZH0kEbEk5EDWuf5VOAd30/hyAJacXfbTHJ1RBkv xOSiDliz7lG+XzzGMRUyner0HJX30LOGjoTJEZ5bOzeRJjmntlBDy+vRn2cHJeOFoG8eqd MNhw+euUOzqehal49NHMkzHwolHz2s2TctJiQYMkzChHQltUcCFS0jnCPE6VzEFVp5nvKk 2iQaoCWelxai4XEyMGCZZ6DmqCSJDQWMqmjZmO7Wk4psKyIWIz5Os+k/GrzxQuhmjeer5U QFcvm6mAzDNIOaLquyRLbLRrvwtEX57TLEfqZ+JGMoy22EI9Xmr4n4QW6/O7JQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1660226682; a=rsa-sha256; cv=none; b=fiYwJI/PbfozRJPiHuOteLbhYsrz8yAqx/zAWXLUWGnyPGdntp7b+wrKCPsYr4eIRt4JMz 8iZ4iT3nFbfFWim1XWkyNtdjqJfKHC/+Menmc0b9O+YFvbmwDdvlRoujMUEsTpYl9I95/3 CYfRhBwCkQWf+h2z3kEM2rVMurSrxz8saIORtJDeJBGaBuKGOeRn8O24ifgQVLMfndVJa5 QNyPrZOnCWaf58tYCJHp7lX4typ58lPXijUynB22IbjEPHdeQKxL6eqKH9EKT4KLBl5zFH wkf9/ubrvgq1V2d6HYJ8594fpjzNOE+uax5AF3ZCg8+OlsYQFJmy3kTO9I61dQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=philipmcgrath.com header.s=fm1 header.b=Xdx07IKw; dkim=fail ("headers rsa verify failed") header.d=messagingengine.com header.s=fm1 header.b="e e5ferc"; dmarc=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: 3.53 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=philipmcgrath.com header.s=fm1 header.b=Xdx07IKw; dkim=fail ("headers rsa verify failed") header.d=messagingengine.com header.s=fm1 header.b="e e5ferc"; dmarc=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: C0C3D2E833 X-Spam-Score: 3.53 X-Migadu-Scanner: scn1.migadu.com X-TUID: uG24sEm0o2I/ Hi, On Thu, Aug 11, 2022, at 7:31 AM, Liliana Marie Prikler wrote: > Am Donnerstag, dem 11.08.2022 um 07:08 -0400 schrieb Philip McGrath: >> [...] >> =C2=A0 >> =C2=A0(define %racket-version "8.5") ; Remember to update chez-scheme= -for- >> racket! >> +(define %zuo-version "1.0") ; defined in racket/src/zuo/zuo.c > Is that publicly visible? For example: echo "#lang zuo (hash-ref (runtime-env) 'version)" | zuo "" See also https://racket.discourse.group/t/writing-the-zuo-version-number= /1105 I likewise have comments in the definitions of 'chez-scheme' and 'chez-s= cheme-for-racket' explaining where in the source code to find the versio= n number. >> + >> +(define-public zuo >> +=C2=A0 (let ((revision #f)) >> +=C2=A0=C2=A0=C2=A0 (package >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (name "zuo") >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (version (string-append %zuo-version >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 "-racket" >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 "8.6" >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (if revision "-guix" "") >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (or revision ""))) > Is this really needed? 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 i= ndentation 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 use= ful. It is generated intermittently from https://github.com/racket/racke= t using `git subtree`. >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (file-name (git-fil= e-name "racket" "8.6")))) >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (outputs '("out" "debug")) >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (build-system gnu-build-system) >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (inputs (list bash-minimal)) >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (native-inputs (list bash-minimal)) >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (arguments >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (list >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #:configure-flags >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #~`(,(string-append "CPPF= LAGS=3D-DGUIX_RKTIO_BIN_SH=3D" >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 #$(file-append (this-package-input >> "bash-minimal") >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 "/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 t= ruly generic macro name, but I hope it doesn't need to become an issue b= locking this patch series. For now, I'm not entirely sure what "Racket-a= gnostic" means; the bottom line for my is I think it would be absurdly a= wful to have to write, e.g. if cross-compiling using `distro-build` with= the top-level Makefile: ./configure CPPFLAGS=3D"GUIX_RKTIO_BIN_SH=3D/input/bin/sh GUIX_ZUO_B= IN_SH=3D/input/bin/sh GUIX_CHEZ_BIN_SH=3D/input/bin/sh" CPPFLAGS_FOR_BUI= LD=3D"GUIX_RKTIO_BIN_SH=3D/native-input/bin/sh GUIX_ZUO_BIN_SH=3D/native= -input/bin/sh GUIX_CHEZ_BIN_SH=3D/native-input/bin/sh" >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (home-page "https://github.com/racket= /zuo") >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ;; ^ This is downstream of https://gi= thub.com/racket/racket, >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ;; but it's designed to be a friendly= landing place >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (synopsis "Tiny Racket for build scri= pts") >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (description "You should use Racket t= o 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 man= ual chapter is called "POSIX System Calls and Networking", it's not clea= r to me that Guile provides as portable and powerful "primitives for dea= ling with files and running processes" as Zuo, let alone Racket. > >> =C2=A0 But what if you >> +need something much smaller than Racket for some reason=E2=80=94or w= hat if >> you're >> +trying to script a build of Racket itself?=C2=A0 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 (=E4=BD=9C) 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.=C2=A0 That's how the @command{mak= e}- >> 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.") >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (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 fi= nd your shortened version less clear than the original. The details abou= t `#lang` as a Racketeer are important to understand in what sense Zuo i= s a "Racket variant", given that it is not currently possible to run `#l= ang zuo` programs using the `racket` executable. (IIUC someone is workin= g on a Racket package implementing `#lang zuo/kernel`, at which point th= at will change.) I also think "can be used to bootstrap Racket" greatly = underplays the potential of Zuo. A number people have already taken an i= nterest in or started experimenting with Zuo outside of building Racket. -Philip