From unknown Fri Jun 20 07:21:13 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#70065 <70065@debbugs.gnu.org> To: bug#70065 <70065@debbugs.gnu.org> Subject: Status: [PATCH 0/6] gnu: Update to Racket 8.12, Chez Scheme 10, and Zuo 1.9. Reply-To: bug#70065 <70065@debbugs.gnu.org> Date: Fri, 20 Jun 2025 14:21:13 +0000 retitle 70065 [PATCH 0/6] gnu: Update to Racket 8.12, Chez Scheme 10, and Z= uo 1.9. reassign 70065 guix-patches submitter 70065 Philip McGrath severity 70065 normal tag 70065 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 29 01:16:33 2024 Received: (at submit) by debbugs.gnu.org; 29 Mar 2024 05:16:33 +0000 Received: from localhost ([127.0.0.1]:41460 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rq4bP-0004js-HJ for submit@debbugs.gnu.org; Fri, 29 Mar 2024 01:16:32 -0400 Received: from lists.gnu.org ([2001:470:142::17]:41622) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rq4bN-0004iL-A7 for submit@debbugs.gnu.org; Fri, 29 Mar 2024 01:16:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rq4bA-0002z2-4Z for guix-patches@gnu.org; Fri, 29 Mar 2024 01:16:16 -0400 Received: from wfhigh2-smtp.messagingengine.com ([64.147.123.153]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rq4b7-0005Y3-VC for guix-patches@gnu.org; Fri, 29 Mar 2024 01:16:15 -0400 Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailfhigh.west.internal (Postfix) with ESMTP id 4B80E1800103; Fri, 29 Mar 2024 01:16:09 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Fri, 29 Mar 2024 01:16:09 -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:message-id :mime-version:reply-to:subject:subject:to:to; s=fm2; t= 1711689368; x=1711775768; bh=MG59RjW/dUg4uHIYGM8dxQ+GS+ipb63d1P0 p8NFyUWE=; b=K+oGmHKBXZkE5rLR3yiyFumCnvBWjAqKq2RPJ9sk77K5x3cOC7c aaoF0zK/+TWmhFquuJBZWUDqVQGBD2ruN/iAFyGyl7EXBmTUDFO+4Xxqv+z/2JIl KDqVsChg3qfvXdGsTXAXhgXJKd335aWd4y4h/fN4nVlqL7PYzEkBNpJylc0yJWc8 sManYM/LRtteSNWmHKnTbxrZWSB0IDdlHst6uLWLTWWCHFoeFbcQvYn9ntOz+qen SM73c1r4bumb0FfURJIXHIAHTtZeBb5VXQOrNAoxS4Qe8cqK1z/hbpBLPrBfFIaW VvNEynIsyy0NkzhJTSAINqP1tcC28KF19+g== 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:message-id:mime-version:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1711689368; x=1711775768; bh=MG59RjW/dUg4uHIYGM8dxQ+GS+ip b63d1P0p8NFyUWE=; b=q4I9342Hd67TbFzq2go6LH006VgLVnFOq9St8rSeiMfD CBU/OG34Zl3TjmF7eNyrDLFbiDbx3KwW8bL+dXsIyg2YjfqnlEMpVsAXKPqrwvgX eYTjj7cqvlPhjQDHzSatXr1xHfz+ehlSDUlFPWr9LmXCcN+Gw7JacJaj7p3Gcg6f WwAZb2qXHC6R2yqZYbaheMo1Y1sK/todG8NqarSu/eX08nmTb1FI1lVurFuIy941 H1bZIFEvhHUhuYDUZ1jXTH17w1rACT3SDZykE/VRI37kB+7as05fKKJwwp07M93D sr2T5v8sdq1+acRBlGFEv7268+WJXXxVXK1/ilHOjg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvtddgfeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucgoufhushhpvggtthffohhmrghinhculdegledmne cujfgurhephffvvefufffkofgggfestdekredtredttdenucfhrhhomheprfhhihhlihhp ucfotgfirhgrthhhuceophhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtohhmqe enucggtffrrghtthgvrhhnpeejvdfhgfeiteethfetfefgleduieeuveejgfevieefgfeh leefffeuudffkefhueenucffohhmrghinhepghhoohhglhgvrdgtohhmnecuvehluhhsth gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphhhihhlihhpsehphhhi lhhiphhmtghgrhgrthhhrdgtohhm X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 29 Mar 2024 01:16:08 -0400 (EDT) From: Philip McGrath To: guix-patches@gnu.org Subject: [PATCH 0/6] gnu: Update to Racket 8.12, Chez Scheme 10, and Zuo 1.9. Date: Fri, 29 Mar 2024 01:15:28 -0400 Message-ID: X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 X-Debbugs-CC: Philip McGrath X-Debbugs-Cc: Philip McGrath Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=64.147.123.153; envelope-from=philip@philipmcgrath.com; helo=wfhigh2-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: submit Cc: Philip McGrath X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi, This patch series updates packages to Racket 8.12, Chez Scheme 10.0.0, and Zuo 1.9. As announced in , all of the changes from Racket's branch have been merged into upstream Chez Scheme, forming the basis for the 10.0.0 release. Since Chez Scheme 10.0.0 also uses Zuo for build scripting, Zuo will now be getting tagged releases in its own Git repository, independent of the Racket release cycle. These exciting developments mean that this series has a larger diff than a typical Racket update, as I've tried to remove much of the complexity from packagine two diverging forks of Chez Scheme. In particular, the last commit in the series bootstraps Chez Scheme 10.0.0 from source. -Philip Philip McGrath (6): gnu: zuo: Update to 1.9. gnu: racket: Update to 8.12. gnu: chez-scheme: Reorganize package definitions. gnu: chez-scheme: Update to 10.0.0. gnu: chez-scheme: Update and simplify machine-type handling. gnu: chez-scheme: Bootstrap from source. gnu/local.mk | 9 +- gnu/packages/chez.scm | 1019 ++++++++--------- gnu/packages/emacs-xyz.scm | 2 +- .../chez-scheme-backport-configure.patch | 463 ++++++++ gnu/packages/patches/chez-scheme-bin-sh.patch | 37 +- .../racket-backport-8.11-layered-docs.patch | 36 - .../racket-backport-8.12-chez-configure.patch | 423 +++++++ .../patches/racket-chez-scheme-bin-sh.patch | 21 +- .../patches/racket-rktio-bin-sh.patch | 17 +- ...cket-zuo-bin-sh.patch => zuo-bin-sh.patch} | 33 +- gnu/packages/racket.scm | 143 +-- 11 files changed, 1522 insertions(+), 681 deletions(-) create mode 100644 gnu/packages/patches/chez-scheme-backport-configure.patch delete mode 100644 gnu/packages/patches/racket-backport-8.11-layered-docs.patch create mode 100644 gnu/packages/patches/racket-backport-8.12-chez-configure.patch rename gnu/packages/patches/{racket-zuo-bin-sh.patch => zuo-bin-sh.patch} (72%) base-commit: 0e8f7ee3a95011dd9ebdc99e0f3b754160524b5d -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 29 01:19:13 2024 Received: (at 70065) by debbugs.gnu.org; 29 Mar 2024 05:19:14 +0000 Received: from localhost ([127.0.0.1]:41475 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rq4dz-0004ws-7t for submit@debbugs.gnu.org; Fri, 29 Mar 2024 01:19:13 -0400 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]:56749) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rq4dv-0004wS-DZ for 70065@debbugs.gnu.org; Fri, 29 Mar 2024 01:19:09 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 582F93200488 for <70065@debbugs.gnu.org>; Fri, 29 Mar 2024 01:19:00 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Fri, 29 Mar 2024 01:19:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to; s=fm2; t=1711689539; x=1711775939; bh=mr+5j6eHQoU8P/DNDo4dg 2o9zytkAnUvN1VhQ9t7qu8=; b=QhjlPDttJBj8EhDKMFOIdqo9UIgynBoAPLm6I Tlby2nqcIktQWgJhBQZ935tPGrxs4RFsvbK7ug5A8w8VDGrbuu1OlGBxXYCPwJjB D1+0DcScQcfsAp3lEZdpxv61KxiQscQkPFUkrEMKWIsAQKGpi/hHQUuHfrOHV3r5 FrJbmJJS0tDhoR3szKfivSIBAWANe9BIqSNchsVM05iSJWiVgIyzUk1lBsE2PX37 Jt500Me9zS+xJzaEYCGqAKyNk3YTFASrwBUQT26y+VmpexSRPTvQuahwfzTnPSm2 idBZs7sRapon43qks5xvHadmgLTK0BYotEQJyIq/JYj7Es8bA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711689539; x= 1711775939; bh=mr+5j6eHQoU8P/DNDo4dg2o9zytkAnUvN1VhQ9t7qu8=; b=i odlFSG8hNKx0m4Ik9hR7rDkROf0t+QDYjspdaRRsQpZ/xzfVOe0lJbHzO5WGdlX9 dCUXcvuuJc5WR+Zp/7852cfD8qbLBuNnBxvgV7YZEd1aCzXwQtWq25zXeFLl2u7E dJtqi2m8Zpv+HoobWgsKGFmuGwPaOeBj4tAyiYjypT0HRTWVGgpPbeVInHCZW1h/ ui1GuDXAHUm95lAw3/zYkBQw6N5qu82J7igCTKF0yPxvf8d4ACq6NjL3rzNt/FQd oOD7vEslYnDvxfdmb0ZjeMPnEw0RvyNyGOk8iLdTT7WAWFKCeg3QkfAstxj/uuN/ wnBzmQU/lXwHmgV/+rC4w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvtddgfeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucgfrhhlucfvnfffucdludegmdenucfjughrpefhvf fufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpefrhhhilhhiphcuofgtifhr rghthhcuoehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomheqnecuggftrf grthhtvghrnhepgeeggeetgfejtedugeegteegleekvedtudevjeelhfeijeefhefhffel tdffffehnecuffhomhgrihhnpehgihhthhhusgdrtghomhenucevlhhushhtvghrufhiii gvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehphhhilhhiphesphhhihhlihhpmhgt ghhrrghthhdrtghomh X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for <70065@debbugs.gnu.org>; Fri, 29 Mar 2024 01:18:59 -0400 (EDT) From: Philip McGrath To: 70065@debbugs.gnu.org Subject: [PATCH 1/6] gnu: zuo: Update to 1.9. Date: Fri, 29 Mar 2024 01:18:50 -0400 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Debbugs-CC: Philip McGrath X-Debbugs-Cc: Philip McGrath Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 70065 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Zuo now has tagged releases independent of the Racket release cycle. * gnu/packages/patches/racket-zuo-bin-sh.patch: Move to ... * gnu/packages/patches/zuo-bin-sh.patch: ... this file, and refresh it. * gnu/local.mk (dist_patch_DATA): Update accordingly. * gnu/packages/racket/scm (%racket-origin)[patches]: Likewise. * gnu/packages/patches/racket-chez-scheme-bin-sh.patch: Refresh patch. * gnu/packages/patches/racket-rktio-bin-sh.patch: Likewise. * gnu/packages/racket/scm (%zuo-version): Move to ... (zuo)[version]: ... this field, and update to 1.9. [source]: Change to the repository where Zuo releases are tagged. [arguments]: Stop supplying '#:phases'. Change-Id: Ia82c0f7a8e4696ae08e30965e3f4ec85673b86e5 --- gnu/local.mk | 4 +- .../patches/racket-chez-scheme-bin-sh.patch | 21 +++++--- .../patches/racket-rktio-bin-sh.patch | 17 +++--- ...cket-zuo-bin-sh.patch => zuo-bin-sh.patch} | 33 +++++++----- gnu/packages/racket.scm | 54 +++++++++---------- 5 files changed, 70 insertions(+), 59 deletions(-) rename gnu/packages/patches/{racket-zuo-bin-sh.patch => zuo-bin-sh.patch} (72%) diff --git a/gnu/local.mk b/gnu/local.mk index 5429dc498c..a025276390 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1984,7 +1984,6 @@ dist_patch_DATA = \ %D%/packages/patches/racket-chez-scheme-bin-sh.patch \ %D%/packages/patches/racket-backport-8.11-layered-docs.patch \ %D%/packages/patches/racket-rktio-bin-sh.patch \ - %D%/packages/patches/racket-zuo-bin-sh.patch \ %D%/packages/patches/remake-impure-dirs.patch \ %D%/packages/patches/restartd-update-robust.patch \ %D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \ @@ -2225,7 +2224,8 @@ dist_patch_DATA = \ %D%/packages/patches/zig-do-not-link-against-librt.patch \ %D%/packages/patches/zig-use-baseline-cpu-by-default.patch \ %D%/packages/patches/zig-use-system-paths.patch \ - %D%/packages/patches/zsh-egrep-failing-test.patch + %D%/packages/patches/zsh-egrep-failing-test.patch \ + %D%/packages/patches/zuo-bin-sh.patch MISC_DISTRO_FILES = \ %D%/packages/ld-wrapper.in diff --git a/gnu/packages/patches/racket-chez-scheme-bin-sh.patch b/gnu/packages/patches/racket-chez-scheme-bin-sh.patch index 331b4f244b..e77c26f303 100644 --- a/gnu/packages/patches/racket-chez-scheme-bin-sh.patch +++ b/gnu/packages/patches/racket-chez-scheme-bin-sh.patch @@ -1,4 +1,4 @@ -From f86370295c5bb14d4bb93d0ccfa37a2b79f19f25 Mon Sep 17 00:00:00 2001 +From 5398e6d3305def343a009aba7c5f8915851c4115 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 24 Aug 2022 19:55:14 -0400 Subject: [PATCH] Chez Scheme: patch s_process for "/bin/sh" on Guix @@ -14,17 +14,22 @@ then `s_process` will call `execl` with the file specified by `_PATH_BSHELL` instead of "/bin/sh". Checking that the path specified by `_PATH_BSHELL` exists safeguards -against obscure errors if attempting to use stand-alone executables -built by the patched Racket in non-Guix envoronments. +against obscure errors if attempting to use the patched Chez Scheme +or executables it builds in non-Guix envoronments. This patch does not change the behavior of `s_system`, which relies on `system` from the C library. --- + +Notes: + See also chez-scheme-bin-sh.patch, racket-rktio-bin-sh.patch, + and zuo-bin-sh.patch. + racket/src/ChezScheme/c/prim5.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/racket/src/ChezScheme/c/prim5.c b/racket/src/ChezScheme/c/prim5.c -index 82bbf8d687..be8f603447 100644 +index 90b087f125..284f063f8b 100644 --- a/racket/src/ChezScheme/c/prim5.c +++ b/racket/src/ChezScheme/c/prim5.c @@ -27,6 +27,12 @@ @@ -40,7 +45,7 @@ index 82bbf8d687..be8f603447 100644 /* locally defined functions */ static INT s_errno(void); static IBOOL s_addr_in_heap(uptr x); -@@ -861,6 +867,17 @@ static ptr s_process(char *s, IBOOL stderrp) { +@@ -875,6 +881,17 @@ static ptr s_process(char *s, IBOOL stderrp) { INT tofds[2], fromfds[2], errfds[2]; struct sigaction act, oint_act; @@ -58,7 +63,7 @@ index 82bbf8d687..be8f603447 100644 if (pipe(tofds)) S_error("process","cannot open pipes"); if (pipe(fromfds)) { -@@ -897,7 +914,9 @@ static ptr s_process(char *s, IBOOL stderrp) { +@@ -911,7 +928,9 @@ static ptr s_process(char *s, IBOOL stderrp) { } } #endif /* __GNU__ Hurd */ @@ -70,7 +75,7 @@ index 82bbf8d687..be8f603447 100644 /*NOTREACHED*/ } else { -base-commit: 87eee6e2adb8c6bc11e60619c706fa6295096085 +base-commit: 78fef00d4d16a79fdf6ab31924b3a80cadf4b368 -- -2.32.0 +2.41.0 diff --git a/gnu/packages/patches/racket-rktio-bin-sh.patch b/gnu/packages/patches/racket-rktio-bin-sh.patch index ec6f0d9c56..d777c0979a 100644 --- a/gnu/packages/patches/racket-rktio-bin-sh.patch +++ b/gnu/packages/patches/racket-rktio-bin-sh.patch @@ -1,4 +1,4 @@ -From 6a553f24439fe64fd3a2f0b5902f00590ca4241f Mon Sep 17 00:00:00 2001 +From 5e546a30789e5c9b3c94674b94cb63e16ee2e951 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Thu, 4 Mar 2021 04:11:50 -0500 Subject: [PATCH] rktio: patch rktio_process for "/bin/sh" on Guix @@ -28,11 +28,16 @@ Checking that the path specified by `_PATH_BSHELL` exists safeguards against obscure errors if attempting to use stand-alone executables built by the patched Racket in non-Guix envoronments. --- + +Notes: + See also chez-scheme-bin-sh.patch, racket-chez-scheme-bin-sh.patch, + and zuo-bin-sh.patch. + racket/src/rktio/rktio_process.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/racket/src/rktio/rktio_process.c b/racket/src/rktio/rktio_process.c -index fafaf728c1..796ebc59ce 100644 +index 862850d93a..87daafef76 100644 --- a/racket/src/rktio/rktio_process.c +++ b/racket/src/rktio/rktio_process.c @@ -9,6 +9,7 @@ @@ -43,7 +48,7 @@ index fafaf728c1..796ebc59ce 100644 # ifdef USE_ULIMIT # include # endif -@@ -1301,12 +1302,14 @@ int rktio_process_allowed_flags(rktio_t *rktio) +@@ -1358,12 +1359,14 @@ int rktio_process_allowed_flags(rktio_t *rktio) /*========================================================================*/ rktio_process_result_t *rktio_process(rktio_t *rktio, @@ -59,7 +64,7 @@ index fafaf728c1..796ebc59ce 100644 rktio_process_result_t *result; intptr_t to_subprocess[2], from_subprocess[2], err_subprocess[2]; int pid; -@@ -1333,6 +1336,18 @@ rktio_process_result_t *rktio_process(rktio_t *rktio, +@@ -1390,6 +1393,18 @@ rktio_process_result_t *rktio_process(rktio_t *rktio, int i; #endif @@ -79,7 +84,7 @@ index fafaf728c1..796ebc59ce 100644 to_subprocess[0] = -1; to_subprocess[1] = -1; -base-commit: 9d228d16fb99c274c964e5bef93e97333888769f +base-commit: 78fef00d4d16a79fdf6ab31924b3a80cadf4b368 -- -2.32.0 +2.41.0 diff --git a/gnu/packages/patches/racket-zuo-bin-sh.patch b/gnu/packages/patches/zuo-bin-sh.patch similarity index 72% rename from gnu/packages/patches/racket-zuo-bin-sh.patch rename to gnu/packages/patches/zuo-bin-sh.patch index bcdcb8e963..92e3774424 100644 --- a/gnu/packages/patches/racket-zuo-bin-sh.patch +++ b/gnu/packages/patches/zuo-bin-sh.patch @@ -1,7 +1,7 @@ -From 73d9b77a11b4516905caf579abb559736f715ea6 Mon Sep 17 00:00:00 2001 +From cd6bed5d22ea9cb7bae2be134d5d04433fc8e313 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Mon, 11 Apr 2022 20:43:18 -0400 -Subject: [PATCH] Zuo: patch zuo_process for "/bin/sh" on Guix +Subject: [PATCH] patch zuo_process for "/bin/sh" on Guix If: @@ -16,17 +16,22 @@ then `zuo_process` will execute the file specified by `_PATH_BSHELL` instead of "/bin/sh". Checking that the path specified by `_PATH_BSHELL` exists safeguards -against obscure errors if attempting to use stand-alone executables -built by the patched Racket in non-Guix envoronments. +against obscure errors if attempting to use the patched Zuo +or derived executables in non-Guix envoronments. --- - racket/src/zuo/zuo.c | 20 ++++++++++++++++++-- + +Notes: + See also chez-scheme-bin-sh.patch, racket-chez-scheme-bin-sh.patch, + racket-rktio-bin-sh.patch. + + zuo.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) -diff --git a/racket/src/zuo/zuo.c b/racket/src/zuo/zuo.c -index 17f161826d..c4fb3929bb 100644 ---- a/racket/src/zuo/zuo.c -+++ b/racket/src/zuo/zuo.c -@@ -15,6 +15,7 @@ +diff --git a/zuo.c b/zuo.c +index d4163eb..bfc5484 100644 +--- a/zuo.c ++++ b/zuo.c +@@ -16,6 +16,7 @@ #include #include #ifdef ZUO_UNIX @@ -34,7 +39,7 @@ index 17f161826d..c4fb3929bb 100644 # include # include # include -@@ -5730,7 +5731,10 @@ static void zuo_pipe(zuo_raw_handle_t *_r, zuo_raw_handle_t *_w) +@@ -5949,7 +5950,10 @@ static void zuo_pipe(zuo_raw_handle_t *_r, zuo_raw_handle_t *_w) zuo_t *zuo_process(zuo_t *command_and_args) { const char *who = "process"; @@ -46,7 +51,7 @@ index 17f161826d..c4fb3929bb 100644 zuo_t *args = _zuo_cdr(command_and_args), *rev_args = z.o_null; zuo_t *options = z.o_empty_hash, *opt; zuo_t *dir, *l, *p_handle, *result; -@@ -5741,7 +5745,19 @@ zuo_t *zuo_process(zuo_t *command_and_args) +@@ -5960,7 +5964,19 @@ zuo_t *zuo_process(zuo_t *command_and_args) void *env; int as_child, exact_cmdline; @@ -68,7 +73,7 @@ index 17f161826d..c4fb3929bb 100644 zuo_t *a = _zuo_car(l); if (a == z.o_null) { -base-commit: 87eee6e2adb8c6bc11e60619c706fa6295096085 +base-commit: a0faa82c8383d206aa38d21462ca4ae699851a0b -- -2.32.0 +2.41.0 diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 5c863f1afd..6e19be1da3 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013-2016, 2018, 2020-2022 Ludovic Courtès ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Pierre Neidhardt -;;; Copyright © 2021, 2022, 2023 Philip McGrath +;;; Copyright © 2021-2024 Philip McGrath ;;; Copyright © 2021 jgart ;;; ;;; This file is part of GNU Guix. @@ -192,7 +192,6 @@ (define-module (gnu packages racket) ;; CODE: (define %racket-version "8.11.1") ; Remember to update chez-scheme-for-racket! -(define %zuo-version "1.7") ; defined in racket/src/zuo/zuo.c (define %racket-commit (string-append "v" %racket-version)) (define %racket-origin @@ -206,8 +205,7 @@ (define %racket-origin (file-name (git-file-name "racket" %racket-version)) (patches (search-patches "racket-chez-scheme-bin-sh.patch" "racket-backport-8.11-layered-docs.patch" - "racket-rktio-bin-sh.patch" - "racket-zuo-bin-sh.patch")) + "racket-rktio-bin-sh.patch")) (modules '((guix build utils))) (snippet #~(begin @@ -229,30 +227,28 @@ (define %racket-origin (define-public zuo - (let ((revision #f)) - (package - (name "zuo") - (version (string-append %zuo-version - "-racket" - %racket-version - (if revision "-guix" "") - (or revision ""))) - (source %racket-origin) - (outputs '("out" "debug")) - (build-system gnu-build-system) - (arguments - (list - #:out-of-source? #t - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'chdir - (lambda args - (chdir "racket/src/zuo")))))) - (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 "Zuo is a tiny Racket with primitives for dealing + (package + (name "zuo") + (version "1.9") ; defined in racket/src/zuo/zuo.c or the following + #;(displayln (~a (hash-ref (runtime-env) 'version) "." + (hash-ref (runtime-env) 'minor-version))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/racket/zuo") + (commit (string-append "v" version)))) + (sha256 + (base32 "0zasir33nx1qi1ciz9dn6h8k39i443lr6apw5d1i6mjmhpzxmdhp")) + (file-name (git-file-name name version)) + (patches (search-patches "zuo-bin-sh.patch")))) + (outputs '("out" "debug")) + (build-system gnu-build-system) + (arguments + (list + #:out-of-source? #t)) + (home-page "https://github.com/racket/zuo") + (synopsis "Tiny Racket for build scripts") + (description "Zuo is a tiny Racket with primitives for dealing with files and running processes. It comes with a @command{make}-like embedded DSL, which is used to build Racket itself. @@ -261,7 +257,7 @@ (define-public zuo 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))))) + (license (list license:asl2.0 license:expat)))) (define racket-vm-common-configure-flags -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 29 01:19:19 2024 Received: (at 70065) by debbugs.gnu.org; 29 Mar 2024 05:19:19 +0000 Received: from localhost ([127.0.0.1]:41486 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rq4e3-0004xL-SS for submit@debbugs.gnu.org; Fri, 29 Mar 2024 01:19:19 -0400 Received: from wfhigh2-smtp.messagingengine.com ([64.147.123.153]:56595) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rq4dw-0004wb-Qd for 70065@debbugs.gnu.org; Fri, 29 Mar 2024 01:19:12 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailfhigh.west.internal (Postfix) with ESMTP id E99A118000C5 for <70065@debbugs.gnu.org>; Fri, 29 Mar 2024 01:19:01 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Fri, 29 Mar 2024 01:19:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to; s=fm2; t=1711689541; x=1711775941; bh=MpWRHpFtbFtpvtdW1VSsJ egA9fKpG+xQu1xia8JwE/0=; b=dxzNzRKuoK6H8Tz8xM/3f96ZfV0w4gBMrt8tU JAaZKGB9mnJKk9DzDujUe3XRFzaQXWTx+IG9kd+gVloXeLNv1o5FxLe/nXbVw8rw 3wYPXgj3o8HQkOUJTYKcS+2cmh3Mb8RffnlC8FGNcssYq0XA+0FdTfP/gCe/VHaM 7HzwaNbHkxcpnPNNwHFa2jzMKLspKc1SgGV27klYZABnNIVbuHSn5gNdGy+PBC5l OhJvz7E4x+/2kVaI5nNwb6NpapWhhMyiDzncRmkgJhvy/Ob0bwW041H1nhu5eB2T oZdjWfCdTP5aaLz6CZCA0kyaXOkSMu5fkJgZHLRje7Vn8swVg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711689541; x= 1711775941; bh=MpWRHpFtbFtpvtdW1VSsJegA9fKpG+xQu1xia8JwE/0=; b=w CWHRTNTKtaxiRnHwUqCaDz6CnJ84LAzm5hwNd/HMtm8FZw3lbuQF5b0rPanvH28O kt1a7+SV9bBpyZDui8EakPxX99/B9RCChHlDuddlA/+IX9h4W6rXY8vuiNC+yEyj J4ZtwrJQOxS0HxYq8Gh1aVqxSSgtWCsacaan6yGcnesvCpuwmAOH+cXJfH1e+9aS 9b7NdAAFtUmHPsDzxUQXoeKsvRV4GPz8QbfqFKTb8vwGsENDGoHv4udM4BYHroyw j92sompk3y6BiD7BIznWZcPAMKxua+u+bh1myQhGqZq1UZ2/Nf048DUQuXEgCQqz Uf136w9r7KU6xmHb/aRbw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvtddgfeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucgoufhushhpvggtthffohhmrghinhculdegledmne gfrhhlucfvnfffucdljedmnecujfgurhephffvufffkffojghfgggtgfesthekredtredt jeenucfhrhhomheprfhhihhlihhpucfotgfirhgrthhhuceophhhihhlihhpsehphhhilh hiphhmtghgrhgrthhhrdgtohhmqeenucggtffrrghtthgvrhhnpeeihedvgfegveehvdet udfhgffhffdtfeeliedtvdfhtdejleehgeetudeigfduveenucffohhmrghinhepughish gtohhurhhsvgdrghhrohhuphdpghhithhhuhgsrdgtohhmpdhgihhthhhusgdrihhopdhr rggtkhgvthdqlhgrnhhgrdhorhhgpdhgnhhurdhorhhgnecuvehluhhsthgvrhfuihiivg eptdenucfrrghrrghmpehmrghilhhfrhhomhepphhhihhlihhpsehphhhilhhiphhmtghg rhgrthhhrdgtohhm X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for <70065@debbugs.gnu.org>; Fri, 29 Mar 2024 01:19:00 -0400 (EDT) From: Philip McGrath To: 70065@debbugs.gnu.org Subject: [PATCH 2/6] gnu: racket: Update to 8.12. Date: Fri, 29 Mar 2024 01:18:51 -0400 Message-ID: <6b2db55dfe43979e28bd85d2999919419d56dd84.1711688274.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Debbugs-CC: Philip McGrath X-Debbugs-Cc: Philip McGrath Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 70065 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) All of Racket's changes to Chez Scheme have been merged upstream. They are the basis for the Chez Scheme 10.0.0 release. For the forseeable future, Racket will continue to depend on a specific pre-release version of Chez Scheme as part of Racket's "ABI": see upstream discussion at . * gnu/packages/chez.scm (chez-configure): Change to define a phase to run the Chez Scheme configure script, renaming the old definition to ... (configure-chezschemelibdirs): ... this new variable. (chez-srfi, chez-matchable, chez-irregex, chez-fmt, chez-mit) (chez-scmutils)[arguments]<#:phases>: Update accordingly. (unpack-nanopass+stex): Replace with ... (unpack-nanopass): ... this new variable. (chez-scheme)[arguments]<#:phases>: Inline old definition of 'unpack-nanopass+stex' to facilitate transition. (chez-scheme-for-racket): Stop inheriting from 'chez-scheme'. [version]: Update to 9.9.9-pre-release.23. [outputs]: Add "debug" output. [native-inputs]: Add 'texlive-enumitem' for native builds. For cross builds, omit TeX-related inputs and add this-package:doc. [inputs, native-search-paths, home-page]: Rewrite without inheritance. [arguments]: Likewise, and adjust for upstream changes. [synopsis, description]: Rewrite to reflect upstreaming of Racket's changes to Chez Scheme. (chez-scheme-for-racket-bootstrap-bootfiles): Stop inheriting from 'chez-scheme-bootstrap-bootfiles'. [arguments]: Rewrite without inheritance. Use `make cross.boot` instead of broken experimental script for cross builds. [home-page]: Use bootstrapping Racket package instead of archived Git repository. [description]: Rewrite to reflect upstreaming of Racket's changes to Chez Scheme. * gnu/packages/patches/racket-backport-8.11-layered-docs.patch: Delete file. * gnu/packages/patches/racket-backport-8.12-chez-configure.patch: New file. * gnu/local.mk (dist_patch_DATA): Update accordingly. * gnu/packages/racket.scm (%racket-origin)[patches]: Likewise. [snippet]: Also unbundle Zuo and potential pre-built boot files. (%racket-version): Update to 8.12. (racket-vm-cs)[arguments]<#:phases>: Use 'unpack-nanopass' instead of 'unpack-nanopass+stex'. (racket)[inputs] : Update hashes. : Likewise, and remove obsolete snippet. Change-Id: I11e7f44be37c60c91b03d246a50e75e418bd0672 --- gnu/local.mk | 4 +- gnu/packages/chez.scm | 519 ++++++++++-------- .../racket-backport-8.11-layered-docs.patch | 36 -- .../racket-backport-8.12-chez-configure.patch | 423 ++++++++++++++ gnu/packages/racket.scm | 61 +- 5 files changed, 758 insertions(+), 285 deletions(-) delete mode 100644 gnu/packages/patches/racket-backport-8.11-layered-docs.patch create mode 100644 gnu/packages/patches/racket-backport-8.12-chez-configure.patch diff --git a/gnu/local.mk b/gnu/local.mk index a025276390..a10aa2cefd 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -41,7 +41,7 @@ # Copyright © 2020, 2023 Vinicius Monego # Copyright © 2021 Björn Höfling # Copyright © 2021 Greg Hogan -# Copyright © 2021, 2022, 2023 Philip McGrath +# Copyright © 2021-2024 Philip McGrath # Copyright © 2021 Arun Isaac # Copyright © 2021 Sharlatan Hellseher # Copyright © 2021 Dmitry Polyakov @@ -1982,7 +1982,7 @@ dist_patch_DATA = \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ %D%/packages/patches/rtags-separate-rct.patch \ %D%/packages/patches/racket-chez-scheme-bin-sh.patch \ - %D%/packages/patches/racket-backport-8.11-layered-docs.patch \ + %D%/packages/patches/racket-backport-8.12-chez-configure.patch \ %D%/packages/patches/racket-rktio-bin-sh.patch \ %D%/packages/patches/remake-impure-dirs.patch \ %D%/packages/patches/restartd-update-robust.patch \ diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 2811cf3e01..c71d6fafd5 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2019 Brett Gilio ;;; Copyright © 2020 Brendan Tildesley -;;; Copyright © 2021, 2022, 2023 Philip McGrath +;;; Copyright © 2021-2024 Philip McGrath ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,7 +51,7 @@ (define-module (gnu packages chez) #:export (chez-scheme-for-system racket-cs-native-supported-system? nix-system->pbarch-machine-type - unpack-nanopass+stex)) + unpack-nanopass)) ;; Commentary: ;; @@ -273,19 +273,14 @@ (define* (racket-cs-native-supported-system? #:optional ;; Chez Scheme: ;; - -(define unpack-nanopass+stex - #~(begin - (copy-recursively - (dirname (search-input-file %build-inputs - "lib/chez-scheme/nanopass.ss")) - "nanopass" - #:keep-mtime? #t) - (mkdir-p "stex") - (with-output-to-file "stex/Mf-stex" - (lambda () - ;; otherwise, it will try to download submodules - (display "# to placate ../configure"))))) +(define unpack-nanopass + #~(lambda* (#:key inputs native-inputs #:allow-other-keys) + (with-directory-excursion (if (directory-exists? "racket/src/ChezScheme") + "racket/src/ChezScheme" + ".") + (symlink (dirname (search-input-file (or native-inputs inputs) + "lib/chez-scheme/nanopass.ss")) + "nanopass")))) (define-public chez-scheme (package @@ -357,7 +352,17 @@ (define-public chez-scheme #~(modify-phases %standard-phases (add-after 'unpack 'unpack-nanopass+stex (lambda args - #$unpack-nanopass+stex)) + (begin + (copy-recursively + (dirname (search-input-file %build-inputs + "lib/chez-scheme/nanopass.ss")) + "nanopass" + #:keep-mtime? #t) + (mkdir-p "stex") + (with-output-to-file "stex/Mf-stex" + (lambda () + ;; otherwise, it will try to download submodules + (display "# to placate ../configure")))))) (add-after 'unpack-nanopass+stex 'unpack-bootfiles (lambda* (#:key native-inputs inputs #:allow-other-keys) (when (directory-exists? "boot") @@ -462,152 +467,223 @@ (define-public chez-scheme and 32-bit PowerPC architectures.") (license asl2.0))) +(define chez-configure + ;; The custom Chez 'configure' script doesn't allow unrecognized flags, such + ;; as those automatically added by `gnu-build-system`. This replacement + ;; phase uses only the explicitly provided `#:configure-flags`. + #~(lambda* (#:key inputs (configure-flags '()) out-of-source? + #:allow-other-keys) + (let* ((abs-srcdir (getcwd)) + (srcdir (if out-of-source? + (string-append "../" (basename abs-srcdir)) + "."))) + (format #t "source directory: ~s (relative from build: ~s)~%" + abs-srcdir srcdir) + (when out-of-source? + (begin + (mkdir "../build") + (chdir "../build"))) + (format #t "build directory: ~s~%" (getcwd)) + (format #t "configure flags: ~s~%" configure-flags) + (apply invoke + (string-append srcdir "/configure") + configure-flags)))) + (define-public chez-scheme-for-racket (package - (inherit chez-scheme) (name "chez-scheme-for-racket") - (version "9.9.9-pre-release.18") - ;; The version should match `scheme-version`. - ;; See racket/src/ChezScheme/s/cmacros.ss c. line 360. - ;; It will always be different than the upstream version! - ;; When updating, remember to also update %racket-version in racket.scm. - (source #f) ; avoid problematic cycle with racket.scm - (inputs - (let ((inputs (modify-inputs (package-inputs chez-scheme) - (replace "chez-scheme-bootstrap-bootfiles" - chez-scheme-for-racket-bootstrap-bootfiles) - (delete "libx11" "util-linux:lib")))) - (if (racket-cs-native-supported-system?) - inputs - (modify-inputs inputs - (prepend libffi))))) - (native-inputs - (let ((native-inputs (modify-inputs (package-native-inputs chez-scheme) - (prepend zuo)))) - (if (%current-target-system) - (modify-inputs native-inputs - (prepend this-package)) - native-inputs))) + ;; The version should match `(scheme-version-number #t)`. + ;; See s/cmacros.ss c. line 360. + (version "9.9.9-pre-release.23") + (source #f) + (build-system gnu-build-system) + (inputs `(,@(if (racket-cs-native-supported-system?) + '() + (list libffi)) + ,chez-scheme-for-racket-bootstrap-bootfiles + ,lz4 + ,ncurses ;<-- for expeditor + ,zlib)) + (native-inputs `(,@(if (%current-target-system) + (list this-package + `(,this-package "doc")) + (list stex-bootstrap + (texlive-updmap.cfg + (list texlive-enumitem)))) + ,chez-nanopass-bootstrap + ,zuo)) + (native-search-paths + (list (search-path-specification + (variable "CHEZSCHEMELIBDIRS") + (files '("lib/chez-scheme"))))) + (outputs '("out" "debug" "doc")) (arguments - (substitute-keyword-arguments (package-arguments chez-scheme) - ((#:out-of-source? _ #f) - #t) - ((#:configure-flags cfg-flags #~'()) - #~`("--disable-x11" - "--threads" ;; ok to potentially duplicate - #$(string-append "-m=" (or (racket-cs-native-supported-system?) - (nix-system->pbarch-machine-type))) - ;; ^ could skip -m= for non-cross non-pbarch builds - #$@(if (racket-cs-native-supported-system?) - #~() - ;; not inferred on non-native platforms: see - ;; https://racket.discourse.group/t/950/9 - #~("--enable-libffi" - "CFLAGS=-g -O2 -D_REENTRANT -pthread" - "LIBS=-lm -ldl -lrt -lffi -lncurses")) - #$@(if (%current-target-system) - (list (string-append "--toolprefix=" - (%current-target-system) - "-")) - '()) - ,@(let* ((chez+version (strip-store-file-name #$output)) - (doc-prefix (assoc-ref %outputs "doc")) - (doc-dir (string-append doc-prefix - "/share/doc/" - chez+version))) - (list (string-append "--installcsug=" - doc-dir - "/csug") - (string-append "--installreleasenotes=" - doc-dir - "/release_notes"))) - ,@#$cfg-flags)) - ((#:make-flags mk-flags #~'()) - #~(cons* (string-append "ZUO=" - #+(this-package-native-input "zuo") - "/bin/zuo") - (string-append "STEXLIB=" - #+(this-package-native-input "stex") - "/lib/stex") - #$mk-flags)) - ((#:phases those-phases #~%standard-phases) - #~(let* ((those-phases #$those-phases) - (gnu:unpack (assoc-ref those-phases 'unpack)) - (gnu:build (assoc-ref those-phases 'build))) - (modify-phases those-phases - (replace 'build - ;; need to override target for cross-compilation - ;; https://racket.discourse.group/t/950/19 - (lambda* (#:key target (make-flags '()) (parallel-build? #t) - #:allow-other-keys) - (gnu:build #:make-flags (if target - (cons "kernel" make-flags) - make-flags) - #:parallel-build? parallel-build?))) - (replace 'install-docs - (lambda* (#:key native-inputs (make-flags '()) - #:allow-other-keys) - ;; The tests for 'native-inputs' are cross-compilation - ;; workarounds that would be better to address upstream: - ;; see . - (when native-inputs - (substitute* "Makefile" - (("install-docs: build \\$[(]ZUO[)]") - "install-docs: $(ZUO)"))) - (apply invoke - "make" - "install-docs" - (if native-inputs - (cons (string-append - "Scheme=" - (search-input-file native-inputs - "/bin/scheme")) - make-flags) - make-flags)))) - (replace 'unpack - (lambda args - (gnu:unpack #:source #$(or (package-source this-package) - (package-source racket-vm-bc))))) - (add-after 'unpack 'chdir - (lambda args - (chdir "racket/src/ChezScheme")))))))) - (supported-systems %supported-systems) - (home-page "https://github.com/racket/ChezScheme") - ;; ^ This is downstream of https://github.com/racket/racket, - ;; but it's designed to be a friendly landing place for people - ;; who want a ChezScheme-shaped repositroy. - (synopsis "Variant of Chez Scheme extended for Racket") - (description "This variant of Chez Scheme is extended to support the -implementation of Racket. It may be useful on platforms that are not yet -supported by upstream Chez Scheme. - -Main additions to Chez Scheme in the Racket variant: -@itemize @bullet -@item -AArch64 and RV64G (RISC-V) code generation -@item -Portable bytecode (@code{pb}) mode, which is mainly useful for bootstrapping a -build on any platform, but can also be used on platforms without native-code -generation, compiled via Emscripten, linked with @code{libffi}, or used with -bytecode partially compiled to C -@item -Unboxed floating-point arithmetic and flvectors -@item -Faster multiplication and division for large exact numbers -@item -Type reconstruction during optimization (especially for safe code) -@item -Continuation marks -@item -Parallel garbage collection, in-place garbage collection for old-generation -objects (instead of always copying), and reachability-based memory -accounting -@item -Ordered finalization, immobile (but collectable) objects, weak/ephemeron -generic hash tables, and reference bytevectors -@item -Easier bootstrapping via old versions of Chez Scheme -@end itemize") + (list + #:modules + '((guix build gnu-build-system) + (guix build utils) + (ice-9 ftw) + (ice-9 match) + (srfi srfi-34)) + #:out-of-source? #t + ;; Intermittent failures: https://github.com/cisco/ChezScheme/issues/809 + #:tests? #f + #:test-target "test" ; test-one test-some-fast test-some test test-more + #:configure-flags + #~`(,@(let* ((chez+version (strip-store-file-name #$output)) + (doc-dir (string-append #$output:doc + "/share/doc/" + chez+version))) + (list (string-append "--installcsug=" + doc-dir + "/csug") + (string-append "--installreleasenotes=" + doc-dir + "/release_notes"))) + ,(string-append "--installprefix=" #$output) + #$@(if (%current-target-system) + (list (string-append "--toolprefix=" + (%current-target-system) + "-")) + '()) + ,@(if (false-if-exception + (search-input-directory %build-inputs "/include/X11")) + '() + '("--disable-x11")) + #$(string-append "-m=" (or (racket-cs-native-supported-system?) + (nix-system->pbarch-machine-type))) + ;; ^ could skip -m= for non-cross non-pbarch builds + #$@(if (racket-cs-native-supported-system?) + #~() + ;; not inferred on non-native platforms: see + ;; https://racket.discourse.group/t/950/9 + #~("--enable-libffi" + "CFLAGS+=-g -D_REENTRANT -pthread" + "LIBS+=-lm -ldl -lrt -lncurses")) + ,(string-append "STEXLIB=" + (or (false-if-exception + (search-input-directory %build-inputs + "/lib/stex")) + "/GuixNotUsingStex")) + "ZUO=zuo" + "ZLIB=-lz" + "LZ4=-llz4" + ;; Guix will do 'compress-man-pages', + ;; and letting Chez try caused an error (at one point) + "--nogzip-man-pages") + #:phases + #~(modify-phases %standard-phases + (replace 'unpack + (let ((unpack (assoc-ref %standard-phases 'unpack))) + (lambda args + (unpack #:source #$(or (package-source this-package) + (package-source racket-vm-bc)))))) + (add-after 'unpack 'unpack-nanopass + #$unpack-nanopass) + (add-after 'unpack-nanopass 'maybe-chdir + (lambda args + (when (directory-exists? "racket/src/ChezScheme") + (chdir "racket/src/ChezScheme")))) + (add-after 'maybe-chdir 'unpack-bootfiles + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (when (directory-exists? "boot") + (delete-file-recursively "boot")) + (copy-recursively + (search-input-directory inputs "lib/chez-scheme-bootfiles") + "boot"))) + (replace 'configure + #$chez-configure) + (add-after 'configure 'configure-environment-variables + (lambda args + ;; mats/6.ms needs HOME to be set: + (setenv "HOME" "/tmp"))) + (replace 'build + ;; need to override target for cross-compilation + ;; https://racket.discourse.group/t/950/19 + (let ((gnu:build (assoc-ref %standard-phases 'build))) + (lambda* (#:key target (make-flags '()) (parallel-build? #t) + #:allow-other-keys) + (gnu:build #:make-flags (if target + (cons "kernel" make-flags) + make-flags) + #:parallel-build? parallel-build?)))) + (add-before 'check 'build-docs + ;; This comes BEFORE 'check because the test suite may take on the + ;; order of an hour (without parallelism), so we want to get any + ;; other errors first. + ;; TODO: improve cross support upstream. + (lambda* (#:key native-inputs (make-flags '()) #:allow-other-keys) + #$(if (%current-target-system) + #~(format #t "not building docs for cross~%") + #~(apply invoke "make" "docs" make-flags)))) + ;; The binary file name is called "scheme" as is the one from + ;; MIT/GNU Scheme. We add a symlink to use in case both are + ;; installed. + (add-after 'install 'install-symlink + (lambda* (#:key outputs #:allow-other-keys) + (let* ((bin-dir + (dirname (search-input-file outputs "/bin/scheme"))) + (boot-dir + (match (find-files (string-append bin-dir "/../lib") + "scheme.boot") + ((scheme.boot) + (dirname scheme.boot))))) + (for-each (lambda (dir) + (with-directory-excursion dir + (symlink "./scheme" "chez-scheme") + (when (file-exists? "scheme.boot") + (symlink "./scheme.boot" "chez-scheme.boot")))) + (list bin-dir boot-dir))))) + ;; Building the documentation requires stex and a running scheme. + ;; TODO: improve cross support upstream. + (add-after 'install-symlink 'install-docs + (lambda* (#:key native-inputs (make-flags '()) #:allow-other-keys) + #$(if (%current-target-system) + #~(let* ((rel + (string-append "share/doc/" + (strip-store-file-name #$output))) + (found/csug + (search-input-directory + native-inputs (string-append rel "/csug"))) + (found (substring found/csug + 0 + (- (string-length found/csug) + (string-length "/csug")))) + (dest (string-append #$output:doc "/" rel))) + (mkdir-p dest) + (with-directory-excursion dest + (for-each (lambda (f) + (symlink (string-append found "/" f) + f)) + '("csug" "csug.pdf" + "release_notes" "release_notes.pdf")))) + #~(apply invoke "make" "install-docs" make-flags)))) + (add-after 'install-docs 'link-doc-pdfs + ;; otherwise, it's hard to notice them in a forest of HTML files + ;; TODO: improve cross support upstream. + (lambda* (#:key outputs #:allow-other-keys) + #$(if (%current-target-system) + #~(format #t "nothing to be done for cross~%") + #~(with-directory-excursion + (string-append (or (assoc-ref outputs "doc") + (assoc-ref outputs "out")) + "/share/doc/" + (strip-store-file-name #$output)) + (symlink "release_notes/release_notes.pdf" + "release_notes.pdf") + (match (find-files + "csug" + "csug.*\\.pdf$" ;; embeded version number + #:fail-on-error? #t) + ((pth) + (symlink pth + "csug.pdf")))))))))) + (home-page "https://cisco.github.io/ChezScheme/") + (synopsis "Bootstrapping version of Chez Scheme") + (description + "This is the precise pre-release version of Chez Scheme from a specific +Racket release. It is used to build Racket and to bootstrap the released +version of Chez Scheme.") (license asl2.0))) ;; @@ -646,58 +722,70 @@ (define-public chez-scheme-bootstrap-bootfiles (define-public chez-scheme-for-racket-bootstrap-bootfiles (package - (inherit chez-scheme-bootstrap-bootfiles) (name "chez-scheme-for-racket-bootstrap-bootfiles") (version (package-version chez-scheme-for-racket)) (source #f) ; avoid problematic cycle with racket.scm (native-inputs - (cons* chez-nanopass-bootstrap - (if (%current-target-system) - (list zuo - chez-scheme-for-racket) - (list racket-vm-bc)))) + (cons chez-nanopass-bootstrap + (if (%current-target-system) + (list zuo + chez-scheme-for-racket) + (list racket-vm-bc)))) + (build-system copy-build-system) (arguments - (substitute-keyword-arguments - (package-arguments chez-scheme-bootstrap-bootfiles) - ((#:phases those-phases #~%standard-phases) - #~(let* ((those-phases #$those-phases) - (unpack (assoc-ref those-phases 'unpack))) - (modify-phases those-phases - (replace 'unpack - (lambda args - (unpack #:source #$(or (package-source this-package) - (package-source racket-vm-bc))))) - (add-after 'unpack 'chdir - (lambda args - (chdir "racket/src/ChezScheme"))) - (add-after 'chdir 'unpack-nanopass+stex - (lambda args - #$unpack-nanopass+stex)) - (add-before 'install 'build - (lambda* (#:key native-inputs inputs #:allow-other-keys) - #$(cond - ((%current-target-system) - ;; cross-compiling - #~(invoke - (search-input-file (or native-inputs inputs) - "/bin/zuo") - "makefiles/boot.zuo" - (search-input-file (or native-inputs inputs) - "/bin/scheme") - #$(or (racket-cs-native-supported-system?) - (nix-system->pbarch-machine-type)))) - (else - ;; bootstrapping - #~(invoke - (search-input-file (or native-inputs inputs) - "/opt/racket-vm/bin/racket") - "../rktboot/main.rkt")))))))))) - (supported-systems - (package-supported-systems chez-scheme-for-racket)) - (home-page "https://github.com/racket/ChezScheme") - ;; ^ This is downstream of https://github.com/racket/racket, - ;; but it's designed to be a friendly landing place for people - ;; who want a ChezScheme-shaped repositroy. + (list + #:install-plan + #~`(("boot/" "lib/chez-scheme-bootfiles")) + #:phases + #~(modify-phases %standard-phases + (replace 'unpack + (let ((unpack (assoc-ref %standard-phases 'unpack))) + (lambda args + (unpack #:source #$(or (package-source this-package) + (package-source racket-vm-bc)))))) + (add-after 'unpack 'unpack-nanopass + #$unpack-nanopass) + (add-after 'unpack-nanopass 'chdir + (lambda args + (chdir "racket/src/ChezScheme"))) + (add-before 'install 'build + #$(cond + ((%current-target-system) + ;; cross-compiling + ;; TODO: share more of this with upstream, once we figure out + ;; how best to manage running Chez as a cross-compiler and the + ;; unfortate cycle with %racket-origin. + #~(lambda* (#:key native-inputs inputs (parallel-build? #t) + #:allow-other-keys) + (invoke "./configure" + "--force" ; don't complain about missing bootfiles + #$(string-append + "-m=" (or (racket-cs-native-supported-system?) + (nix-system->pbarch-machine-type))) + "ZUO=zuo" + ;; ignore submodules: + "ZLIB=-lz" + "LZ4=-llz4" + "STEXLIB=/GuixNotUsingStex") + (apply invoke + "make" + `(,@(if parallel-build? + `("-j" ,(number->string + (parallel-job-count))) + '()) + ,(string-append "SCHEME=" + (search-input-file + (or native-inputs inputs) + "/bin/scheme")) + "cross.boot")))) + (else + ;; bootstrapping + #~(lambda* (#:key native-inputs inputs #:allow-other-keys) + (invoke + (search-input-file (or native-inputs inputs) + "/opt/racket-vm/bin/racket") + "../rktboot/main.rkt")))))))) + (home-page "https://pkgs.racket-lang.org/package/cs-bootstrap") (synopsis "Chez Scheme bootfiles bootstrapped by Racket") (description "Chez Scheme is a self-hosting compiler: building it requires ``bootfiles'' containing the Scheme-implemented portions compiled for @@ -709,11 +797,8 @@ (define-public chez-scheme-for-racket-bootstrap-bootfiles Scheme compiler purely from source into Racket and apply the compiler to itself, thus bootstrapping Chez Scheme. Bootstrapping takes about 10 times as long as using an existing Chez Scheme, but @code{cs-bootstrap} supports Racket -7.1 and later, including the Racket BC variant. - -Note that the generated bootfiles are specific to Racket's fork of Chez -Scheme, and @code{cs-bootstrap} does not currently support building upstream -Chez Scheme."))) +7.1 and later, including the Racket BC variant.") + (license asl2.0))) ;; ;; Chez's bootstrap dependencies: @@ -935,7 +1020,7 @@ (define-public chez-nanopass ;; Help function for Chez Scheme to add the current path to ;; CHEZSCHEMELIBDIRS. -(define chez-configure +(define configure-chezschemelibdirs #~(lambda _ (let ((chez-env (getenv "CHEZSCHEMELIBDIRS"))) (setenv "CHEZSCHEMELIBDIRS" @@ -975,7 +1060,7 @@ (define-public chez-srfi #:test-target "test" #:phases #~(modify-phases %standard-phases (replace 'configure - #$chez-configure)))) + #$configure-chezschemelibdirs)))) (home-page "https://github.com/fedeinthemix/chez-srfi") (synopsis "SRFI libraries for Chez Scheme") (description @@ -1159,7 +1244,7 @@ (define-public chez-matchable #:test-target "test" #:phases #~(modify-phases %standard-phases (replace 'configure - #$chez-configure)))) + #$configure-chezschemelibdirs)))) (synopsis "Portable hygienic pattern matcher for Scheme") (description "This package provides a superset of the popular Scheme @code{match} package by Andrew Wright, written in fully portable @@ -1191,7 +1276,7 @@ (define-public chez-irregex #:test-target "test" #:phases #~(modify-phases %standard-phases (replace 'configure - #$chez-configure)))) + #$configure-chezschemelibdirs)))) (home-page "https://github.com/fedeinthemix/chez-irregex") (synopsis "Portable regular expression library for Scheme") (description "This package provides a portable and efficient @@ -1223,7 +1308,7 @@ (define-public chez-fmt #:phases #~(modify-phases %standard-phases (replace 'configure - #$chez-configure) + #$configure-chezschemelibdirs) (replace 'build (lambda* (#:key (make-flags '()) #:allow-other-keys) (apply invoke "make" "chez-build" make-flags))) @@ -1285,7 +1370,7 @@ (define-public chez-mit #:test-target "test" #:phases #~(modify-phases %standard-phases (replace 'configure - #$chez-configure)))) + #$configure-chezschemelibdirs)))) (synopsis "MIT/GNU Scheme compatibility library for Chez Scheme") (description "This package provides a set of MIT/GNU Scheme compatibility libraries for Chez Scheme. The main goal was to provide the functionality @@ -1320,7 +1405,7 @@ (define-public chez-scmutils #:phases #~(modify-phases %standard-phases (replace 'configure - #$chez-configure) + #$configure-chezschemelibdirs) ;; Since the documentation is lacking, we install the source ;; code. For things to work correctly we have to replace ;; relative paths by absolute ones in 'include' forms. This diff --git a/gnu/packages/patches/racket-backport-8.11-layered-docs.patch b/gnu/packages/patches/racket-backport-8.11-layered-docs.patch deleted file mode 100644 index 07f105bb24..0000000000 --- a/gnu/packages/patches/racket-backport-8.11-layered-docs.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 1d8dbdf408db9e99f1382323477561d5148cd451 Mon Sep 17 00:00:00 2001 -From: Philip McGrath -Date: Fri, 20 Oct 2023 17:19:50 -0400 -Subject: [PATCH] racket-index: fix release.scrbl for layered installations -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Configure the release notes page to be rendered separately at every -installation layer. Otherwise, rendering documentation for packages -installed in a new layer might try to write to `release/in.sxref` -in the parent layer’s docs directory. - -Related to https://github.com/videolang/video/issues/67 -Related to https://issues.guix.gnu.org/56534 - -(cherry picked from commit 85f21854c0a41564b755fbe180fe6b85de6c4730) ---- - pkgs/racket-index/scribblings/main/info.rkt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pkgs/racket-index/scribblings/main/info.rkt b/pkgs/racket-index/scribblings/main/info.rkt -index 75c507848a..a6a3798f7c 100644 ---- a/pkgs/racket-index/scribblings/main/info.rkt -+++ b/pkgs/racket-index/scribblings/main/info.rkt -@@ -6,4 +6,4 @@ - ("local-redirect.scrbl" (depends-all-main no-depend-on every-main-layer) (omit) "local-redirect" 1 10) - ("license.scrbl" () (omit)) - ("acks.scrbl" () (omit)) -- ("release.scrbl" (depends-all-main no-depend-on) (omit)))) -+ ("release.scrbl" (depends-all-main no-depend-on every-main-layer) (omit)))) - -base-commit: c3a502c0ae9f4d615bfd85fc7d88b781826bbb09 --- -2.41.0 - diff --git a/gnu/packages/patches/racket-backport-8.12-chez-configure.patch b/gnu/packages/patches/racket-backport-8.12-chez-configure.patch new file mode 100644 index 0000000000..483948fec9 --- /dev/null +++ b/gnu/packages/patches/racket-backport-8.12-chez-configure.patch @@ -0,0 +1,423 @@ +From 82157f5b3fb9f71ad7fc978c428d423d06a4a0df Mon Sep 17 00:00:00 2001 +From: Philip McGrath +Date: Wed, 28 Feb 2024 19:41:22 -0500 +Subject: [PATCH 1/2] Chez Scheme: Repairs and improvements for building with + external dependencies + +* configure: support `ZUO=` + +Supplying `ZUO=` skips the submodule check in `configure` +and configures the generated makefile not to build or remove Zuo. + +* configure: support `STEXLIB=` + +For compatibility with older scripts, when not explicitly configured, +continue to honor the `STEXLIB` environment variable at build time. + +(cherry picked from commit 694fbd47a125c7fde10a328c6fda199dac19f802) +--- + racket/src/ChezScheme/BUILDING | 5 ++-- + racket/src/ChezScheme/build.zuo | 13 +++++++--- + racket/src/ChezScheme/configure | 27 ++++++++++++++++++++- + racket/src/ChezScheme/makefiles/Makefile.in | 6 ++--- + 4 files changed, 40 insertions(+), 11 deletions(-) + +diff --git a/racket/src/ChezScheme/BUILDING b/racket/src/ChezScheme/BUILDING +index 50fde27771..2df29b5bd8 100644 +--- a/racket/src/ChezScheme/BUILDING ++++ b/racket/src/ChezScheme/BUILDING +@@ -155,7 +155,8 @@ information on the supported options. + The generated makefile mostly just ensures that a `zuo` executable is + built in a `bin` directory, and then it defers the actual build work + to `zuo`, which uses the "main.zuo" file. If you have `zuo` installed, +-you can use `zuo` directly instead of `make`. In general, instead of ++you can use `zuo` directly instead of `make`: in that case, you may ++wish to use `./configure ZUO=`. In general, instead of + the command `make X` to build target `X` as described below, you can + use `zuo . X` (or `bin/zuo . X` after `bin/zuo` is built). + +@@ -339,7 +340,7 @@ The makefile supports several targets: + * `make clean` + + Removes all built elements from the workarea, and then removes +- `bin/zuo`. ++ `bin/zuo` (unless configured with `ZUO=`). + + + WINDOWS VIA COMMAND PROMPT +diff --git a/racket/src/ChezScheme/build.zuo b/racket/src/ChezScheme/build.zuo +index a211632a89..432cc6e5a1 100644 +--- a/racket/src/ChezScheme/build.zuo ++++ b/racket/src/ChezScheme/build.zuo +@@ -218,10 +218,15 @@ + token)) + + (define stexlib +- (let ((found (assoc "STEXLIB" (hash-ref (runtime-env) 'env)))) +- (if found +- (cdr found) +- (at-source "stex")))) ++ (let ([configured (hash-ref config 'STEXLIB "")] ++ [env (assoc "STEXLIB" (hash-ref (runtime-env) 'env))]) ++ (cond ++ [(not (equal? "" configured)) ++ configured] ++ [env ++ (cdr env)] ++ [else ++ (at-source "stex")]))) + (define stex-sources + (source-tree stexlib)) + +diff --git a/racket/src/ChezScheme/configure b/racket/src/ChezScheme/configure +index 721d1d1335..f88c6f7625 100755 +--- a/racket/src/ChezScheme/configure ++++ b/racket/src/ChezScheme/configure +@@ -93,6 +93,7 @@ default_warning_flags="-Wpointer-arith -Wall -Wextra -Wno-implicit-fallthrough" + CFLAGS_ADD= + zlibLib= + LZ4Lib= ++STEXLIB= + Kernel=KernelLib + buildKernelOnly=no + enableFrompb=yes +@@ -102,6 +103,7 @@ empetite=no + moreBootFiles= + preloadBootFiles= + alwaysUseBootFile= ++zuoExternal= + + CONFIG_UNAME=`uname` + +@@ -442,6 +444,12 @@ while [ $# != 0 ] ; do + LZ4=*) + LZ4Lib=`echo $1 | sed -e 's/^LZ4=//'` + ;; ++ STEXLIB=*) ++ STEXLIB=`echo $1 | sed -e 's/^STEXLIB=//'` ++ ;; ++ ZUO=*) ++ zuoExternal=`echo $1 | sed -e 's/^ZUO=//'` ++ ;; + *) + echo "option '$1' unrecognized or missing an argument; try $0 --help" + exit 1 +@@ -667,6 +675,8 @@ if [ "$help" = "yes" ]; then + echo " STRIP= executable stripper" + echo " ZLIB= link to instead of own zlib" + echo " LZ4= link to instead of own LZ4" ++ echo " STEXLIB= build docs with instead of own stex" ++ echo " ZUO= build with instead of own Zuo" + echo "" + echo "Available machine types: $machs" + echo "" +@@ -869,6 +879,16 @@ if [ "$addflags" = "yes" ] ; then + fi + fi + ++if [ "${zuoExternal}" = "" ] ; then ++ ZUO="bin/zuo" ++ RM_ZUO="rm -f bin/zuo" ++ ZUO_TARGET="bin/zuo" ++else ++ ZUO="${zuoExternal}" ++ RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'" ++ ZUO_TARGET="DoNotBuildZuo" ++fi ++ + # more compile and link flags for c/Mf-unix and mats/Mf-unix + mdinclude= + mdcppflags= +@@ -1039,7 +1059,7 @@ cp "$srcdir"/makefiles/buildmain.zuo main.zuo + # Some idea, but in the workarea, so it refers to "workarea.zuo" here: + cp "$srcdir"/makefiles/workmain.zuo $w/main.zuo + +-# The content of "$w/Makefile" records configuration decisions, ++# The content of "$w/Mf-config" records configuration decisions, + # and the Zuo build script takes it from there + cat > $w/Mf-config << END + srcdir=$srcdir +@@ -1075,6 +1095,7 @@ cursesLib=$cursesLib + ncursesLib=$ncursesLib + zlibLib=$zlibLib + LZ4Lib=$LZ4Lib ++STEXLIB=$STEXLIB + warningFlags=$warningFlags + Kernel=$Kernel + installscriptname=$installscriptname +@@ -1086,6 +1107,10 @@ preloadBootFiles=$preloadBootFiles + alwaysUseBootFile=$alwaysUseBootFile + relativeBootFiles=$relativeBootFiles + ++ZUO=$ZUO ++RM_ZUO=$RM_ZUO ++ZUO_TARGET=$ZUO_TARGET ++ + InstallBin=$installbin + InstallLib=$installlib + InstallMan=$installman/man1 +diff --git a/racket/src/ChezScheme/makefiles/Makefile.in b/racket/src/ChezScheme/makefiles/Makefile.in +index cfdd0230a3..4865bf2e2f 100644 +--- a/racket/src/ChezScheme/makefiles/Makefile.in ++++ b/racket/src/ChezScheme/makefiles/Makefile.in +@@ -3,8 +3,6 @@ workarea=$(w) + + include $(workarea)/Mf-config + +-ZUO=bin/zuo +- + .PHONY: build + build: $(ZUO) + + $(ZUO) $(workarea) MAKE="$(MAKE)" +@@ -140,9 +138,9 @@ pkg: $(ZUO) + .PHONY: clean + clean: $(ZUO) + + $(ZUO) $(workarea) clean MAKE="$(MAKE)" +- rm -f bin/zuo ++ $(RM_ZUO) + + # Using `+` here means that $(ZUO) gets built even if `-n`/`--dry-run` is provided to `make` +-$(ZUO): $(srcdir)/../zuo/zuo.c ++$(ZUO_TARGET): $(srcdir)/../zuo/zuo.c + + mkdir -p bin + + $(CC_FOR_BUILD) -DZUO_LIB_PATH='"'"$(upsrcdir)/../zuo/lib"'"' -o $(ZUO) $(srcdir)/../zuo/zuo.c + +base-commit: 78fef00d4d16a79fdf6ab31924b3a80cadf4b368 +-- +2.41.0 + + +From e2bc69c5ce7437dd9a1b30ac1b12b3a56872c491 Mon Sep 17 00:00:00 2001 +From: Matthew Flatt +Date: Sun, 10 Mar 2024 09:13:40 -0600 +Subject: [PATCH 2/2] Chez Scheme: adjust `configure ZUO=` support + +Continuing from 694fbd47a1, adjust the generated makefile so the +supplied `` is not a makefile dependency. That way, `ZUO=zuo` +works if `zuo` is installed and the current build directory is not the +source directory. (The `zuo` executable is a dependency in a real and +relevant sense, but not in the sense of dependencies that we normally +track in makefiles.) + +Also adapt the makefile for the case that `ZUO=...` is not supplied +and the build directory is not the source directory, in which case +`ZUO_LIB_PATH` needs to be relative to the source directory. + +Using `make ZUO=zuo` can also work, but in that case, `bin/zuo` is +still built as a dependency. It's possible that some portable makefile +magic could overcome that limitation, but it doesn't seem important. + +(cherry picked from commit 28157ba88d48fe645563f46f6c00d6626b3428fa) +--- + racket/src/ChezScheme/configure | 3 + + racket/src/ChezScheme/makefiles/Makefile.in | 70 +++++++++++---------- + 2 files changed, 40 insertions(+), 33 deletions(-) + +diff --git a/racket/src/ChezScheme/configure b/racket/src/ChezScheme/configure +index f88c6f7625..201dbe580f 100755 +--- a/racket/src/ChezScheme/configure ++++ b/racket/src/ChezScheme/configure +@@ -881,10 +881,12 @@ fi + + if [ "${zuoExternal}" = "" ] ; then + ZUO="bin/zuo" ++ ZUO_DEP="${ZUO}" + RM_ZUO="rm -f bin/zuo" + ZUO_TARGET="bin/zuo" + else + ZUO="${zuoExternal}" ++ ZUO_DEP="" + RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'" + ZUO_TARGET="DoNotBuildZuo" + fi +@@ -1108,6 +1110,7 @@ alwaysUseBootFile=$alwaysUseBootFile + relativeBootFiles=$relativeBootFiles + + ZUO=$ZUO ++ZUO_DEP=$ZUO_DEP + RM_ZUO=$RM_ZUO + ZUO_TARGET=$ZUO_TARGET + +diff --git a/racket/src/ChezScheme/makefiles/Makefile.in b/racket/src/ChezScheme/makefiles/Makefile.in +index 4865bf2e2f..5ce237178e 100644 +--- a/racket/src/ChezScheme/makefiles/Makefile.in ++++ b/racket/src/ChezScheme/makefiles/Makefile.in +@@ -4,51 +4,55 @@ workarea=$(w) + include $(workarea)/Mf-config + + .PHONY: build +-build: $(ZUO) ++build: $(ZUO_DEP) + + $(ZUO) $(workarea) MAKE="$(MAKE)" + + .PHONY: run +-run: $(ZUO) ++run: $(ZUO_DEP) + + $(ZUO) $(workarea) run + + .PHONY: kernel +-kernel: $(ZUO) ++kernel: $(ZUO_DEP) + + $(ZUO) $(workarea) kernel MAKE="$(MAKE)" + + .PHONY: install +-install: $(ZUO) ++install: $(ZUO_DEP) + $(ZUO) $(workarea) install MAKE="$(MAKE)" + + .PHONY: uninstall +-uninstall: $(ZUO) ++uninstall: $(ZUO_DEP) + + $(ZUO) $(workarea) uninstall MAKE="$(MAKE)" + +-.PHONY: test +-test: $(ZUO) +- + $(ZUO) $(workarea) test MAKE="$(MAKE)" ++.PHONY: test-one ++test-one: $(ZUO_DEP) ++ + $(ZUO) $(workarea) test-one MAKE="$(MAKE)" + + .PHONY: test-some-fast +-test-some-fast: $(ZUO) ++test-some-fast: $(ZUO_DEP) + + $(ZUO) $(workarea) test-some-fast MAKE="$(MAKE)" + + .PHONY: test-some +-test-some: $(ZUO) ++test-some: $(ZUO_DEP) + + $(ZUO) $(workarea) test-some MAKE="$(MAKE)" + ++.PHONY: test ++test: $(ZUO_DEP) ++ + $(ZUO) $(workarea) test MAKE="$(MAKE)" ++ + .PHONY: test-more +-test-more: $(ZUO) ++test-more: $(ZUO_DEP) + + $(ZUO) $(workarea) test-more MAKE="$(MAKE)" + + .PHONY: coverage +-coverage: $(ZUO) ++coverage: $(ZUO_DEP) + + $(ZUO) $(workarea) coverage MAKE="$(MAKE)" + + .PHONY: bootfiles +-bootfiles: $(ZUO) ++bootfiles: $(ZUO_DEP) + + $(ZUO) $(workarea) bootfiles MAKE="$(MAKE)" + + .PHONY: reset +-reset: $(ZUO) ++reset: $(ZUO_DEP) + + $(ZUO) $(workarea) reset MAKE="$(MAKE)" + + # Supply XM= to build boot files for +@@ -57,86 +61,86 @@ boot: + + $(ZUO) $(workarea) boot "$(XM)" MAKE="$(MAKE)" + + # `.boot` as alias for `boot XM=` +-%.boot: $(ZUO) ++%.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) boot $* MAKE="$(MAKE)" + + .PHONY: auto.boot +-auto.boot: $(ZUO) ++auto.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) boot MAKE="$(MAKE)" + + SCHEME=scheme + + .PHONY: cross.boot +-cross.boot: $(ZUO) ++cross.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) boot SCHEME="$(SCHEME)" MAKE="$(MAKE)" + + .PHONY: re.boot +-re.boot: $(ZUO) ++re.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) reboot SCHEME="$(SCHEME)" + + # Supply XM= to build boot files for + # with o=3 d=0 for the cross compiler, and only after + # building the kernel for the configured machine + .PHONY: bootquick +-bootquick: $(ZUO) ++bootquick: $(ZUO_DEP) + + $(ZUO) $(workarea) bootquick "$(XM)" MAKE="$(MAKE)" + + # `.bootquick` as alias for `boot XM=` +-%.bootquick: $(ZUO) ++%.bootquick: $(ZUO_DEP) + + $(ZUO) $(workarea) bootquick $* MAKE="$(MAKE)" + +-auto.bootquick: $(ZUO) ++auto.bootquick: $(ZUO_DEP) + + $(ZUO) $(workarea) bootquick MAKE="$(MAKE)" + + # Supply XM=-.bootpbchunk to repackage boot files for + # with pbchunk sources, including additional + # boot files + .PHONY: bootpbchunk +-bootpbchunk: $(ZUO) ++bootpbchunk: $(ZUO_DEP) + + $(ZUO) $(workarea) bootpbchunk "$(XM)" $(ARGS) MAKE="$(MAKE)" + + # `.bootpbchunk` as alias for `pbchunk XM=` +-%.bootpbchunk: $(ZUO) ++%.bootpbchunk: $(ZUO_DEP) + + $(ZUO) $(workarea) bootpbchunk $* $(ARGS) MAKE="$(MAKE)" + + .PHONY: docs +-docs: build $(ZUO) ++docs: build $(ZUO_DEP) + + $(ZUO) $(workarea) docs MAKE="$(MAKE)" + + .PHONY: csug +-csug: build $(ZUO) ++csug: build $(ZUO_DEP) + + $(ZUO) $(workarea) csug MAKE="$(MAKE)" + + .PHONY: release_notes +-release_notes: build $(ZUO) ++release_notes: build $(ZUO_DEP) + + $(ZUO) $(workarea) release_notes MAKE="$(MAKE)" + + .PHONY: install-docs +-install-docs: build $(ZUO) ++install-docs: build $(ZUO_DEP) + + $(ZUO) $(workarea) install-docs MAKE="$(MAKE)" + + .PHONY: install-csug +-install-csug: build $(ZUO) ++install-csug: build $(ZUO_DEP) + + $(ZUO) $(workarea) install-csug MAKE="$(MAKE)" + + .PHONY: install-release_notes +-install-release_notes: build $(ZUO) ++install-release_notes: build $(ZUO_DEP) + + $(ZUO) $(workarea) install-release_notes MAKE="$(MAKE)" + + .PHONY: bintar +-bintar: $(ZUO) ++bintar: $(ZUO_DEP) + + $(ZUO) $(workarea) bintar MAKE="$(MAKE)" + + .PHONY: rpm +-rpm: $(ZUO) ++rpm: $(ZUO_DEP) + + $(ZUO) $(workarea) rpm MAKE="$(MAKE)" + + .PHONY: pkg +-pkg: $(ZUO) ++pkg: $(ZUO_DEP) + + $(ZUO) $(workarea) pkg MAKE="$(MAKE)" + + .PHONY: clean +-clean: $(ZUO) ++clean: $(ZUO_DEP) + + $(ZUO) $(workarea) clean MAKE="$(MAKE)" + $(RM_ZUO) + +-- +2.41.0 + diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 6e19be1da3..d366f89845 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -105,7 +105,9 @@ (define-module (gnu packages racket) ;; 'distro-build' package to assemble custom Racket distributions. (Again, ;; the makefile just delegates to Zuo.) It is not part of Racket source ;; distributions: the root of a source distribution is basically 'racket/src' -;; with some extra package sources and configuration added. +;; with some extra package sources and configuration added. In fact, the +;; top-level 'Makefile' and the 'distro-build' package are what create Racket +;; source distributions. ;; ;; A ''minimal Racket'' installation includes two packages: 'base', which is a ;; sort of bridge between the current ``built-in'' collections and the package @@ -191,7 +193,7 @@ (define-module (gnu packages racket) ;; ;; CODE: -(define %racket-version "8.11.1") ; Remember to update chez-scheme-for-racket! +(define %racket-version "8.12") ; Remember to update chez-scheme-for-racket! (define %racket-commit (string-append "v" %racket-version)) (define %racket-origin @@ -201,16 +203,16 @@ (define %racket-origin (url "https://github.com/racket/racket") (commit %racket-commit))) (sha256 - (base32 "1iny1mn1lw07lj6h704ch5g2q1nsf0h88dgwqrlxhf8pwj4i76gl")) + (base32 "1f52yadmrsd2ddry47s68kxig185a58n19j23458wkck19nawjz5")) (file-name (git-file-name "racket" %racket-version)) (patches (search-patches "racket-chez-scheme-bin-sh.patch" - "racket-backport-8.11-layered-docs.patch" + "racket-backport-8.12-chez-configure.patch" "racket-rktio-bin-sh.patch")) (modules '((guix build utils))) (snippet #~(begin (use-modules (guix build utils)) - ;; Unbundle Chez submodules. + ;; Unbundle Chez submodules and boot files. (with-directory-excursion "racket/src/ChezScheme" ;; TODO: consider putting this in a (guix ...) or (guix build ...) ;; module so it can be shared with the upstream Chez Scheme origin @@ -218,10 +220,14 @@ (define %racket-origin (for-each (lambda (dir) (when (directory-exists? dir) (delete-file-recursively dir))) - '("stex" - "nanopass" + '("boot" "lz4" - "zlib"))) + "nanopass" + "stex" + "zlib" + "zuo"))) + ;; Unbundle Zuo. + (delete-file-recursively "racket/src/zuo") ;; Unbundle libffi. (delete-file-recursively "racket/src/bc/foreign/libffi"))))) @@ -445,10 +451,8 @@ (define-public racket-vm-cs (substitute-keyword-arguments (package-arguments racket-vm-cgc) ((#:phases those-phases #~%standard-phases) #~(modify-phases #$those-phases - (add-after 'unpack 'unpack-nanopass+stex - (lambda args - (with-directory-excursion "racket/src/ChezScheme" - #$unpack-nanopass+stex))))) + (add-after 'unpack 'unpack-nanopass + #$unpack-nanopass))) ((#:configure-flags _ '()) #~(cons* "--enable-csonly" "--enable-libz" @@ -697,7 +701,7 @@ (define-public racket "contract-profile" (base32 "1xm2z8g0dpv5d9h2sg680vx1a8ix9gbsdpxxb8qv1w7akp73paj3") '(("contract-profile" "."))) (simple-racket-origin - "data" (base32 "1pml8g3zgvnaiqb659psh99m70v96m6nh9zash2vfgir46j4rjnh") + "data" (base32 "01sinnsnjiazvkj83k84izdnp38pd2aglbrs14mrdkwajgmpampk") '("data" "data-doc" "data-enumerate-lib" "data-lib")) (simple-racket-origin "datalog" (base32 "0nf6cy4djpyhfvgpa6yn72apbz9s83gp0qg95pzjd0az4v6qwq1s") @@ -706,7 +710,7 @@ (define-public racket "db" (base32 "0xx0k8yw2vb9b4vk2dwjfbpixnmriqsv7kpv3fvfxbwyg42y0db5") '("db" "db-doc" "db-lib")) (simple-racket-origin - "deinprogramm" (base32 "0ijngjyg2i528a4xv20db4adirvx5rj4m86fd70l33lgwv53w3s0") + "deinprogramm" (base32 "0f41sh90i4mml95x2gcmfvl2rc7m77vjbagmgjx270ng7xvz16lj") '("deinprogramm" "deinprogramm-signature")) (simple-racket-origin "distributed-places" (base32 "1dajpkj9balqcpv6cdk9hwjz592h1vq8rrx5vncariiac4vbdpa0") @@ -715,7 +719,7 @@ (define-public racket "draw" (base32 "1h7mckay8yjcgmj3r0jkf1csn430gn43n8jl1l956q9gcprlmncl") '("draw" "draw-doc" "draw-lib")) (simple-racket-origin - "drracket" (base32 "00ay3pwl648wq8nnaap665c38clr39k0g1wslh2wclar32wjpgdc") + "drracket" (base32 "17bdbvsf5l8z96bwzg1q75gg70c6svbhw0g1k239fsjd3mivmki4") '("drracket" "drracket-plugin-lib" "drracket-tool" @@ -749,13 +753,13 @@ (define-public racket "games" (base32 "13z7fnbr48s98lmfxc0nbfhbqkd4hphymy2r63hqm783xzn6ylzi") '(("games" "."))) (simple-racket-origin - "gui" (base32 "10mlajn5xqgdwi7gf9lgszfv609pjp8m24lm97b8xh6fmjlkqi4b") + "gui" (base32 "08kzyscqc8hgc1f8q0bhibl44fkq8iiyz12f8bqdhqkcz8nx44sw") '("gui" "gui-doc" "gui-lib" "tex-table")) (simple-racket-origin "gui-pkg-manager" (base32 "1ji9448d723nklqvycwdswj0ni28sabrncag14f9mx47did5myb5") '("gui-pkg-manager-lib")) (simple-racket-origin - "htdp" (base32 "04p2xp4hnnsnmrmvw05fg4fv18k3g2rz5gmgs89sc6g8y886m6zz") + "htdp" (base32 "13d8xsvs60d7797w93g14dbdm98bixgy65akayij256pyiwnqwdc") '("htdp" "htdp-doc" "htdp-lib")) (simple-racket-origin "html" (base32 "18n1jnjgzfknc8nv8dppi85nb8q08gqdwkg6hfjk08x0p00anx2x") @@ -797,7 +801,7 @@ (define-public racket (url "https://github.com/RenaissanceBug/racket-cookies") (commit %racket-commit))) (sha256 (base32 - "05lnml9nszcq72k8bi4iwdyplp2iv23ywb2gmrs2hr8837fqi65y")) + "1zr31y1gqa3kkrwlf9bnw08nzij00x1l70qhfbpz0239bksn4mmb")) (file-name (git-file-name "RenaissanceBug-racket-cookies" %racket-version))) '("net-cookies" "net-cookies-doc" "net-cookies-lib")) @@ -823,7 +827,7 @@ (define-public racket "pconvert" (base32 "00czi0p399mmyrvxyrs5kniizpkqfxyz2ncxqi2jy79a7wk79pb1") '("pconvert-lib")) (simple-racket-origin - "pict" (base32 "1vsn91r167wssaflzz080nsrcf0jfhl2a48zcj9hvdb77arbj8kc") + "pict" (base32 "1ghds5by8i0k2djbig82xqp2ssy3nvdwm45l8ibsr99y0ay6z7gv") '("pict" "pict-doc" "pict-lib")) (simple-racket-origin "pict-snip" (base32 "081nwiy4a0n4f7xws16hqbhf0j3kz5alizndi3nnyr3chm4kng6x") @@ -838,7 +842,7 @@ (define-public racket "planet" (base32 "0r2yqrzrmdjjyr14k6hhlzc5kzrcx3583m1s02mhrcmpfw0s85w9") '("planet" "planet-doc" "planet-lib")) (simple-racket-origin - "plot" (base32 "17fhsymy884xr4jqk585rm5kwdgkgz0635916gh5y0fsnp5pir70") + "plot" (base32 "0jq9a366g7b2c9vp6yvpqikvklgyd6p4xj6v224g99yj8cgip40b") '("plot" "plot-compat" "plot-doc" "plot-gui-lib" "plot-lib")) (simple-racket-origin "preprocessor" (base32 "1p5aid58ifnjy4xl0ysh85cq39k25661v975jrpk182z3k5621mg") @@ -852,11 +856,8 @@ (define-public racket (uri (git-reference (url "https://github.com/Metaxal/quickscript") (commit %racket-commit))) - (snippet - ;; See https://github.com/Metaxal/quickscript/issues/73 - #~(delete-file "register.rkt")) (sha256 (base32 - "0v27qknghfi0058vk8xwwlwqgqwdsxxmprrmag64cyygdz95sxym")) + "1ahznb9rhgaixd3fqn0pxighw4zbflwqc84r2yvn5nsfbp0mrq9b")) (file-name (git-file-name "Metaxal-quickscript" %racket-version))) '(("quickscript" "."))) (simple-racket-origin @@ -880,7 +881,7 @@ (define-public racket "racklog" (base32 "0fr8xij0sssfnmwn6dfdi4jj3l62f2yj3jrjljv13kaycrfls032") '(("racklog" "."))) (simple-racket-origin - "rackunit" (base32 "0axcy8283qqmcrhwwn0q0sfjznc8gkwbx06j41anayi5v9xp4698") + "rackunit" (base32 "06kpl51alm7akgmmh110ya28zgmx3as0szykfv2gwqmf7xcms1b7") '("rackunit" "rackunit-doc" "rackunit-gui" @@ -896,7 +897,7 @@ (define-public racket "realm" (base32 "0rlvwyd6rpyl0zda4a5p8dp346fvqzc8555dgfnrhliymkxb6x4g") '(("realm" "."))) (simple-racket-origin - "redex" (base32 "016m2fvfxjnx7l0ai6jlcmz4s8xipbq9k58fq7109akj9mvczgp9") + "redex" (base32 "1mwnxbfk2vbalndlq0996rzdi3a2z48m5xnb1ywzlsvnydrnkrk2") '("redex" "redex-benchmark" "redex-doc" @@ -911,7 +912,7 @@ (define-public racket "scheme-lib" (base32 "0pcf0y8rp4qyjhaz5ww5sr5diq0wpcdfrrnask7zapyklzx1jx8x") '(("scheme-lib" "."))) (simple-racket-origin - "scribble" (base32 "0igcjgmpzbzzn1jfpa4jq18lqyhr6dsdwnbv6zv87x8cib9rwqrh") + "scribble" (base32 "0rk5q9r9fw826ag0npk5cwkzkapj2p243wwm9gn2l7j7cr6z1rvb") '("scribble" "scribble-doc" "scribble-html-lib" @@ -943,7 +944,7 @@ (define-public racket "snip" (base32 "1b90ccqilnyszbphms3svm3c7dbk7870ifybjjipss5srb32mj2d") '("snip" "snip-lib")) (simple-racket-origin - "typed-racket" (base32 "17mz7zqrialxfzkynj7h3kfhawdd6cgs24ns437gz087g2pmwi1x") + "typed-racket" (base32 "0vdsyr0qhpvac6h8mfdy6vqrsqsfa7kpg39n3h637hccxyfxv63f") '("source-syntax" "typed-racket" "typed-racket-compatibility" @@ -954,7 +955,7 @@ (define-public racket "srfi" (base32 "1l3nr3a8mlp505aaxlyp4i8jfijmpyl9h1wwv8hzm4kzzjv4sl8p") '("srfi" "srfi-doc" "srfi-lib" "srfi-lite-lib")) (simple-racket-origin - "string-constants" (base32 "1djbjhsimikk18dkrajrlgjhlqfyvna4nz64ha4wjcaj5cfgcvdx") + "string-constants" (base32 "0225f1wmq1n9f2x1pg50fssdnd4bpc11q1jgsykwf4ik4fnaa520") '("string-constants" "string-constants-doc" "string-constants-lib")) (simple-racket-origin "swindle" (base32 "1q8vdxpzczzwdw2mys2caab45yvadmqkixsr29k8pl03n8dsg8j9") @@ -969,7 +970,7 @@ (define-public racket "unix-socket" (base32 "02dfwas5ynbpyz74w9kwb4wgb37y5wys7svrlmir8k0n9ph9vq0y") '("unix-socket" "unix-socket-doc" "unix-socket-lib")) (simple-racket-origin - "web-server" (base32 "0vhw1hwdcv1ham086dy0nkl4r0a5qvsimw8048zjakvax7q4shsg") + "web-server" (base32 "1i4sxmcgj00ml7czsbyx1433hgf091n1p54xyal2f1fsskx5fg0y") '("web-server" "web-server-doc" "web-server-lib")) (simple-racket-origin "wxme" (base32 "1qp5gr9gqsakiq3alw6m4yyv5vw4i3hp4y4nhq8vl2nkjmirvn0b") -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 29 01:19:20 2024 Received: (at 70065) by debbugs.gnu.org; 29 Mar 2024 05:19:20 +0000 Received: from localhost ([127.0.0.1]:41488 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rq4e7-0004xa-IT for submit@debbugs.gnu.org; Fri, 29 Mar 2024 01:19:20 -0400 Received: from wfout2-smtp.messagingengine.com ([64.147.123.145]:59851) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rq4dy-0004wd-QD for 70065@debbugs.gnu.org; Fri, 29 Mar 2024 01:19:12 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailfout.west.internal (Postfix) with ESMTP id 85ADD1C00089 for <70065@debbugs.gnu.org>; Fri, 29 Mar 2024 01:19:03 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Fri, 29 Mar 2024 01:19:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:content-transfer-encoding:content-type :date:date:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:subject:subject:to:to; s=fm2; t=1711689543; x=1711775943; bh=vQqPRe3LRDGDDpUSHjZ4K7+PW2DVaq30 0T3tV3JtIDk=; b=X/epFJ4Yo2HEzRhP9l61V34Hrt1ZvJaBA2SBeXOtyijHM+RJ nHoEMz8JpIcz0U1julXuPtSiP2rNT+bcjLdqF2VoYrFqBOo7BJc+sAEvV1qrCDTP hd5QFW05RPMwdmqQxqMG0ROYo2r6/qS3EDNH3/RJKj2CZh2JffqyiPHw2J/gXSPj WK+XHmAA+3hL6Xo4Im3pGeDT9ucVSy3UVQpwBPNB03+P6SwiFZaEjo8M0ORxka7w jAs3NW4lCUAfUCGVeHtWbho/RHj7KibPGPe/k9gdaC8XNpGPc7kpLLs4jHmRPkcd wv/bcWp9KbnpPZjtWBg7CnN7v/UTCCLFW4CedQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=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:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; t=1711689543; x=1711775943; bh=vQqPRe3LRDGDD pUSHjZ4K7+PW2DVaq300T3tV3JtIDk=; b=c3ABSD0m0+ksX+zsTfXfxHsykljr9 I3Ulpz8Ge+Aj1cLXVYpS/jV4VuK4veFa6aQ4SMxH3L0wx0A6v6ksN5rBwfVRUe8u kV5xBYUU5FPkevoKauRzBh2lB/xSnqlfA/MAfAHXESVt5+wbCGlKDQDr6QbNWEF/ Tpw3DMkXtk7zUPBgEy3+wL/IEKSwIcuPFsLUVTKdTKa3rJYC3TojAp8jcE+ddFl5 8W20wC0m0IkYt7CjGLGSE+e+TvQk7ecRSWIubkXDFOsBYtHu7eylXkxFq5KBTvtC 9Wg0pJbpNgN2xFJNitmU7huWA0Yzztkj4Wk+ToYTBB6l5oGaQFZSkSBkw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvtddgfeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucgoufhushhpvggtthffohhmrghinhculdegledmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefrhhhilhhi phcuofgtifhrrghthhcuoehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomh eqnecuggftrfgrthhtvghrnhepteevudeuteeuteehteeuteeiffefieefjeejtdeltdej feehteeuvdejvdehvedunecuffhomhgrihhnpehgihhthhhusgdrtghomhdpghhithhhuh gsrdhiohenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhm pehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomh X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for <70065@debbugs.gnu.org>; Fri, 29 Mar 2024 01:19:02 -0400 (EDT) From: Philip McGrath To: 70065@debbugs.gnu.org Subject: [PATCH 3/6] gnu: chez-scheme: Reorganize package definitions. Date: Fri, 29 Mar 2024 01:18:52 -0400 Message-ID: <5c84a4bda522531288944d78c505c4328735ac5d.1711688274.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Debbugs-CC: Philip McGrath X-Debbugs-Cc: Philip McGrath Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70065 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) A future commit will change 'chez-scheme' to inherit from 'chez-scheme-for-racket', so 'chez-scheme-for-racket' will need to be defined before 'chez-scheme'. In an attempt to produce better diffs, this commit re-orders the definitions while keeping their contents exactly the same. * gnu/packages/chez.scm (chez-scheme): Move below 'chez-scheme-for-racket'. (chez-scheme-bootstrap-bootfiles): Move below 'chez-scheme-for-racket-bootstrap-bootfiles'. Change-Id: Ie088abea2b44329f9d8399fbfb95c51d8912b05e --- gnu/packages/chez.scm | 426 +++++++++++++++++++++--------------------- 1 file changed, 213 insertions(+), 213 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index c71d6fafd5..3b7e6a67b3 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -282,191 +282,6 @@ (define unpack-nanopass "lib/chez-scheme/nanopass.ss")) "nanopass")))) -(define-public chez-scheme - (package - (name "chez-scheme") - ;; The version should match `(scheme-version-number)`. - ;; See s/cmacros.ss c. line 360. - (version "9.5.8") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/cisco/ChezScheme") - (commit (string-append "v" version)))) - (sha256 - (base32 - "0xchqq8cm0ka5wgpn18sjs0hh15rc3nb7xrjqbbc9al3asq0d7gc")) - (file-name (git-file-name name version)) - (patches (search-patches "chez-scheme-bin-sh.patch")) - (snippet #~(begin - (use-modules (guix build utils)) - ;; TODO: consider putting this in a (guix ...) or - ;; (guix build ...) module so it can be shared - ;; with the Racket origin without cyclic issues. - (for-each (lambda (dir) - (when (directory-exists? dir) - (delete-file-recursively dir))) - '("stex" - "nanopass" - "lz4" - "zlib")))))) - (build-system gnu-build-system) - (inputs - (list - chez-scheme-bootstrap-bootfiles - `(,util-linux "lib") ;<-- libuuid - zlib - lz4 - ncurses ;<-- for expeditor - ;; for X11 clipboard support in expeditor: - ;; https://github.com/cisco/ChezScheme/issues/9#issuecomment-222057232 - libx11)) - (native-inputs (list chez-nanopass-bootstrap - stex-bootstrap)) - (native-search-paths - (list (search-path-specification - (variable "CHEZSCHEMELIBDIRS") - (files '("lib/chez-scheme"))))) - (outputs '("out" "doc")) - (arguments - (list - #:modules - '((guix build gnu-build-system) - (guix build utils) - (ice-9 ftw) - (ice-9 match)) - #:test-target "test" - #:configure-flags - #~`(,(string-append "--installprefix=" #$output) - #$@(if (and=> (chez-upstream-features-for-system) - (cut memq 'threads <>)) - #~("--threads") - #~()) - "ZLIB=-lz" - "LZ4=-llz4" - "--libkernel" - ;; Guix will do 'compress-man-pages', - ;; and letting Chez try causes an error - "--nogzip-man-pages") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'unpack-nanopass+stex - (lambda args - (begin - (copy-recursively - (dirname (search-input-file %build-inputs - "lib/chez-scheme/nanopass.ss")) - "nanopass" - #:keep-mtime? #t) - (mkdir-p "stex") - (with-output-to-file "stex/Mf-stex" - (lambda () - ;; otherwise, it will try to download submodules - (display "# to placate ../configure")))))) - (add-after 'unpack-nanopass+stex 'unpack-bootfiles - (lambda* (#:key native-inputs inputs #:allow-other-keys) - (when (directory-exists? "boot") - (delete-file-recursively "boot")) - (copy-recursively - (search-input-directory inputs - "lib/chez-scheme-bootfiles") - "boot"))) - ;; NOTE: The custom Chez 'configure' script doesn't allow - ;; unrecognized flags, such as those automatically added - ;; by `gnu-build-system`. This replacement phase uses only - ;; the explicitly provided `#:configure-flags`. - (replace 'configure - (lambda* (#:key inputs (configure-flags '()) out-of-source? - #:allow-other-keys) - (let* ((abs-srcdir (getcwd)) - (srcdir (if out-of-source? - (string-append "../" (basename abs-srcdir)) - "."))) - (format #t "source directory: ~s (relative from build: ~s)~%" - abs-srcdir srcdir) - (if out-of-source? - (begin - (mkdir "../build") - (chdir "../build"))) - (format #t "build directory: ~s~%" (getcwd)) - (format #t "configure flags: ~s~%" configure-flags) - (apply invoke - (string-append srcdir "/configure") - configure-flags)))) - (add-after 'configure 'configure-environment-variables - (lambda args - ;; Some makefiles (for tests) don't seem to propagate CC - ;; properly, so we take it out of their hands: - (setenv "CC" #$(cc-for-target)) - ;; Likewise, some tests have needed HOME to be set: - (setenv "HOME" "/tmp"))) - ;; The binary file name is called "scheme" as is the one from - ;; MIT/GNU Scheme. We add a symlink to use in case both are - ;; installed. - (add-after 'install 'install-symlink - (lambda* (#:key outputs #:allow-other-keys) - (let* ((scheme (search-input-file outputs "/bin/scheme")) - (bin-dir (dirname scheme))) - (symlink scheme - (string-append bin-dir "/chez-scheme")) - (match (find-files (string-append bin-dir "/../lib") - "scheme.boot") - ((scheme.boot) - (symlink scheme.boot - (string-append (dirname scheme.boot) - "/chez-scheme.boot"))))))) - ;; Building the documentation requires stex and a running scheme. - (add-after 'install-symlink 'install-docs - (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) - (let* ((doc-prefix (or (assoc-ref outputs "doc") - (assoc-ref outputs "out"))) - (chez+version (strip-store-file-name #$output)) - (scheme (search-input-file outputs "/bin/scheme")) - (stexlib (search-input-directory (or native-inputs - inputs) - "/lib/stex")) - (doc-dir (string-append doc-prefix - "/share/doc/" - chez+version))) - (define* (stex-make #:optional (suffix "")) - (invoke "make" "install" - (string-append "Scheme=" scheme) - (string-append "STEXLIB=" stexlib) - (string-append "installdir=" doc-dir suffix))) - (with-directory-excursion "csug" - (stex-make "/csug")) - (with-directory-excursion "release_notes" - (stex-make "/release_notes"))))) - (add-after 'install-docs 'link-doc-pdfs - ;; otherwise, it's hard to notice them in a forest of HTML files - (lambda* (#:key outputs #:allow-other-keys) - (with-directory-excursion - (string-append (or (assoc-ref outputs "doc") - (assoc-ref outputs "out")) - "/share/doc/" - (strip-store-file-name #$output)) - (symlink "release_notes/release_notes.pdf" - "release_notes.pdf") - (match (find-files "csug" - "csug.*\\.pdf$" ;; embeded version number - #:fail-on-error? #t) - ((pth) - (symlink pth - "csug.pdf"))))))))) - (supported-systems - (delete - "armhf-linux" ;; XXX reportedly broken, needs checking - (filter chez-upstream-features-for-system - %supported-systems))) - (home-page "https://cisco.github.io/ChezScheme/") - (synopsis "R6RS Scheme compiler and run-time") - (description - "Chez Scheme is a compiler and run-time system for the language of the -Revised^6 Report on Scheme (R6RS), with numerous extensions. The compiler -generates native code for each target processor, with support for x86, x86_64, -and 32-bit PowerPC architectures.") - (license asl2.0))) - (define chez-configure ;; The custom Chez 'configure' script doesn't allow unrecognized flags, such ;; as those automatically added by `gnu-build-system`. This replacement @@ -686,39 +501,194 @@ (define-public chez-scheme-for-racket version of Chez Scheme.") (license asl2.0))) -;; -;; Bootfiles: -;; - -(define-public chez-scheme-bootstrap-bootfiles +(define-public chez-scheme (package - (inherit chez-scheme) - (name "chez-scheme-bootstrap-bootfiles") - (inputs '()) - (native-inputs '()) - (outputs '("out")) - (build-system copy-build-system) - ;; TODO: cross compilation + (name "chez-scheme") + ;; The version should match `(scheme-version-number)`. + ;; See s/cmacros.ss c. line 360. + (version "9.5.8") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cisco/ChezScheme") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0xchqq8cm0ka5wgpn18sjs0hh15rc3nb7xrjqbbc9al3asq0d7gc")) + (file-name (git-file-name name version)) + (patches (search-patches "chez-scheme-bin-sh.patch")) + (snippet #~(begin + (use-modules (guix build utils)) + ;; TODO: consider putting this in a (guix ...) or + ;; (guix build ...) module so it can be shared + ;; with the Racket origin without cyclic issues. + (for-each (lambda (dir) + (when (directory-exists? dir) + (delete-file-recursively dir))) + '("stex" + "nanopass" + "lz4" + "zlib")))))) + (build-system gnu-build-system) + (inputs + (list + chez-scheme-bootstrap-bootfiles + `(,util-linux "lib") ;<-- libuuid + zlib + lz4 + ncurses ;<-- for expeditor + ;; for X11 clipboard support in expeditor: + ;; https://github.com/cisco/ChezScheme/issues/9#issuecomment-222057232 + libx11)) + (native-inputs (list chez-nanopass-bootstrap + stex-bootstrap)) + (native-search-paths + (list (search-path-specification + (variable "CHEZSCHEMELIBDIRS") + (files '("lib/chez-scheme"))))) + (outputs '("out" "doc")) (arguments - (list #:install-plan - #~`(("boot/" "lib/chez-scheme-bootfiles")))) + (list + #:modules + '((guix build gnu-build-system) + (guix build utils) + (ice-9 ftw) + (ice-9 match)) + #:test-target "test" + #:configure-flags + #~`(,(string-append "--installprefix=" #$output) + #$@(if (and=> (chez-upstream-features-for-system) + (cut memq 'threads <>)) + #~("--threads") + #~()) + "ZLIB=-lz" + "LZ4=-llz4" + "--libkernel" + ;; Guix will do 'compress-man-pages', + ;; and letting Chez try causes an error + "--nogzip-man-pages") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'unpack-nanopass+stex + (lambda args + (begin + (copy-recursively + (dirname (search-input-file %build-inputs + "lib/chez-scheme/nanopass.ss")) + "nanopass" + #:keep-mtime? #t) + (mkdir-p "stex") + (with-output-to-file "stex/Mf-stex" + (lambda () + ;; otherwise, it will try to download submodules + (display "# to placate ../configure")))))) + (add-after 'unpack-nanopass+stex 'unpack-bootfiles + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (when (directory-exists? "boot") + (delete-file-recursively "boot")) + (copy-recursively + (search-input-directory inputs + "lib/chez-scheme-bootfiles") + "boot"))) + ;; NOTE: The custom Chez 'configure' script doesn't allow + ;; unrecognized flags, such as those automatically added + ;; by `gnu-build-system`. This replacement phase uses only + ;; the explicitly provided `#:configure-flags`. + (replace 'configure + (lambda* (#:key inputs (configure-flags '()) out-of-source? + #:allow-other-keys) + (let* ((abs-srcdir (getcwd)) + (srcdir (if out-of-source? + (string-append "../" (basename abs-srcdir)) + "."))) + (format #t "source directory: ~s (relative from build: ~s)~%" + abs-srcdir srcdir) + (if out-of-source? + (begin + (mkdir "../build") + (chdir "../build"))) + (format #t "build directory: ~s~%" (getcwd)) + (format #t "configure flags: ~s~%" configure-flags) + (apply invoke + (string-append srcdir "/configure") + configure-flags)))) + (add-after 'configure 'configure-environment-variables + (lambda args + ;; Some makefiles (for tests) don't seem to propagate CC + ;; properly, so we take it out of their hands: + (setenv "CC" #$(cc-for-target)) + ;; Likewise, some tests have needed HOME to be set: + (setenv "HOME" "/tmp"))) + ;; The binary file name is called "scheme" as is the one from + ;; MIT/GNU Scheme. We add a symlink to use in case both are + ;; installed. + (add-after 'install 'install-symlink + (lambda* (#:key outputs #:allow-other-keys) + (let* ((scheme (search-input-file outputs "/bin/scheme")) + (bin-dir (dirname scheme))) + (symlink scheme + (string-append bin-dir "/chez-scheme")) + (match (find-files (string-append bin-dir "/../lib") + "scheme.boot") + ((scheme.boot) + (symlink scheme.boot + (string-append (dirname scheme.boot) + "/chez-scheme.boot"))))))) + ;; Building the documentation requires stex and a running scheme. + (add-after 'install-symlink 'install-docs + (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) + (let* ((doc-prefix (or (assoc-ref outputs "doc") + (assoc-ref outputs "out"))) + (chez+version (strip-store-file-name #$output)) + (scheme (search-input-file outputs "/bin/scheme")) + (stexlib (search-input-directory (or native-inputs + inputs) + "/lib/stex")) + (doc-dir (string-append doc-prefix + "/share/doc/" + chez+version))) + (define* (stex-make #:optional (suffix "")) + (invoke "make" "install" + (string-append "Scheme=" scheme) + (string-append "STEXLIB=" stexlib) + (string-append "installdir=" doc-dir suffix))) + (with-directory-excursion "csug" + (stex-make "/csug")) + (with-directory-excursion "release_notes" + (stex-make "/release_notes"))))) + (add-after 'install-docs 'link-doc-pdfs + ;; otherwise, it's hard to notice them in a forest of HTML files + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion + (string-append (or (assoc-ref outputs "doc") + (assoc-ref outputs "out")) + "/share/doc/" + (strip-store-file-name #$output)) + (symlink "release_notes/release_notes.pdf" + "release_notes.pdf") + (match (find-files "csug" + "csug.*\\.pdf$" ;; embeded version number + #:fail-on-error? #t) + ((pth) + (symlink pth + "csug.pdf"))))))))) (supported-systems - (filter (lambda (system) - (and=> (chez-upstream-features-for-system system) - (cut memq 'bootstrap-bootfiles <>))) - %supported-systems)) - (synopsis "Chez Scheme bootfiles (binary seed)") + (delete + "armhf-linux" ;; XXX reportedly broken, needs checking + (filter chez-upstream-features-for-system + %supported-systems))) + (home-page "https://cisco.github.io/ChezScheme/") + (synopsis "R6RS Scheme compiler and run-time") (description - "Chez Scheme is a self-hosting compiler: building it requires -``bootfiles'' containing the Scheme-implemented portions compiled for the -current platform. (Chez can then cross-compile bootfiles for all other -supported platforms.) + "Chez Scheme is a compiler and run-time system for the language of the +Revised^6 Report on Scheme (R6RS), with numerous extensions. The compiler +generates native code for each target processor, with support for x86, x86_64, +and 32-bit PowerPC architectures.") + (license asl2.0))) -This package provides bootstrap bootfiles for upstream Chez Scheme. -Currently, it simply packages the binaries checked in to the upstream -repository. Hopefully we can eventually adapt Racket's @code{cs-bootstrap} to -work with upstream Chez Scheme so that we can bootstrap these files from -source."))) +;; +;; Bootfiles: +;; (define-public chez-scheme-for-racket-bootstrap-bootfiles (package @@ -800,6 +770,36 @@ (define-public chez-scheme-for-racket-bootstrap-bootfiles 7.1 and later, including the Racket BC variant.") (license asl2.0))) +(define-public chez-scheme-bootstrap-bootfiles + (package + (inherit chez-scheme) + (name "chez-scheme-bootstrap-bootfiles") + (inputs '()) + (native-inputs '()) + (outputs '("out")) + (build-system copy-build-system) + ;; TODO: cross compilation + (arguments + (list #:install-plan + #~`(("boot/" "lib/chez-scheme-bootfiles")))) + (supported-systems + (filter (lambda (system) + (and=> (chez-upstream-features-for-system system) + (cut memq 'bootstrap-bootfiles <>))) + %supported-systems)) + (synopsis "Chez Scheme bootfiles (binary seed)") + (description + "Chez Scheme is a self-hosting compiler: building it requires +``bootfiles'' containing the Scheme-implemented portions compiled for the +current platform. (Chez can then cross-compile bootfiles for all other +supported platforms.) + +This package provides bootstrap bootfiles for upstream Chez Scheme. +Currently, it simply packages the binaries checked in to the upstream +repository. Hopefully we can eventually adapt Racket's @code{cs-bootstrap} to +work with upstream Chez Scheme so that we can bootstrap these files from +source."))) + ;; ;; Chez's bootstrap dependencies: ;; -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 29 01:19:21 2024 Received: (at 70065) by debbugs.gnu.org; 29 Mar 2024 05:19:21 +0000 Received: from localhost ([127.0.0.1]:41490 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rq4e8-0004xo-Mq for submit@debbugs.gnu.org; Fri, 29 Mar 2024 01:19:21 -0400 Received: from wfout2-smtp.messagingengine.com ([64.147.123.145]:38521) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rq4e1-0004wi-Pc for 70065@debbugs.gnu.org; Fri, 29 Mar 2024 01:19:14 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailfout.west.internal (Postfix) with ESMTP id 052DD1C000A6 for <70065@debbugs.gnu.org>; Fri, 29 Mar 2024 01:19:06 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Fri, 29 Mar 2024 01:19:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to; s=fm2; t=1711689546; x=1711775946; bh=l99BGI7dBeu6d8SAQn/mt lZ+Mp4fNGrNbT7WRFCLA+I=; b=ECMVpEuTbyNrQv12u2ZRgHy57FfynM6NaKtHB ZFUIkFFQkBltdOsCFHVRqWYXFKSKcjrSeosm3NFSUothRS0+uyPZiHb/VnJIKHbP F+/Ej7wiAt2/wHp8wL9LB7MrMjunoyjwjGFPATVJLLVml1+A41CeenNVcJ5hJZjw S3AyDmLKIV8OtfiAjAtWPXkiOvmPP53Hf1+9yKHyxvWLNzt8DxPTt8rhRfbEZhLF SQEE9bfJ7bnV6vvC/ZbYHOhV+AFLW/EHUXiZ0AugwUcA0uAPU50RmN4iL1A8dp/F x4aON0z0tOBcQC7Tu87Q+KrxdOiRUVNMSwsfwgKv/M3JN11AA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711689546; x= 1711775946; bh=l99BGI7dBeu6d8SAQn/mtlZ+Mp4fNGrNbT7WRFCLA+I=; b=p GsxRf/MQP7SUzI/xFfRRtCPjfQXkPdMZbj58u3dyfCGhpVaYS9LswMihVd3+o918 EG/faRUl6puIcS2dlM1/jVpTdkuWB08mSedgkKo2XsVZZ/eFkPNK6NkL/GkhEo93 e47D82Plr6tTV4DT8MoHMKDibVAqIZRJxx+uIWAcFyQ7WilJs5v7UFf+cn75X0N9 mFoQkVoVKGg7n4zqwAlYr0S1yKnpGalX3Mw2lEKOJH6AvZoFeQC0nFo8wmAu2nwr NiwxIWqNr/N6P5VjwqWYo5vV5SuLHUOqTk/hw6bZPLPCE5ae9m2ljzFH/4TX0Hvr 3dihZRgZFYWbGpce+tzvA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvtddgfeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgjfhggtgfgsehtke ertdertdejnecuhfhrohhmpefrhhhilhhiphcuofgtifhrrghthhcuoehphhhilhhiphes phhhihhlihhpmhgtghhrrghthhdrtghomheqnecuggftrfgrthhtvghrnhephffgieefhf egieelhfehvdekteekvdffkeeiieekhffglefhkeeigffggeevheevnecuffhomhgrihhn peguihhstghouhhrshgvrdhgrhhouhhpnecuvehluhhsthgvrhfuihiivgeptdenucfrrg hrrghmpehmrghilhhfrhhomhepphhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgt ohhm X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for <70065@debbugs.gnu.org>; Fri, 29 Mar 2024 01:19:06 -0400 (EDT) From: Philip McGrath To: 70065@debbugs.gnu.org Subject: [PATCH 5/6] gnu: chez-scheme: Update and simplify machine-type handling. Date: Fri, 29 Mar 2024 01:18:54 -0400 Message-ID: <1b01392a622c3ba51360ffccfa1746738fc39837.1711688274.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Debbugs-CC: Philip McGrath X-Debbugs-Cc: Philip McGrath Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70065 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Since Chez Scheme 10.0.0 supports all of the backends added in Racket's branch, the complexity of '%chez-features-table' is no longer needed. Ideally, even more of this logic could be maintained upstream, but this change will simplify maintenance in the mean time. * gnu/packages/chez.scm (target-chez-arch): Recognize loongarch64. (chez-upsteam-features-for-system): Remove function. (%chez-features-table): Replace with ... (define-machine-types, %machine-types): ... this new macro and variable, using the list copied directly from the Chez Scheme source code. (nix-system->pbarch-machine-type): Update docstring, since pbarch machine types are supported upstream as of Chez Scheme 10.0.0. (racket-cs-native-supported-system?): Replace with ... (nix-system->native-chez-machine-type): ... this new function, implemented using '%machine-types'. (chez-scheme-for-racket): Update accordingly. (chez-scheme-for-racket-bootstrap-bootfiles): Likewise. * gnu/packages/racket.scm (racket-vm-cs): Likewise. Change-Id: I46efebaf48cce388075ab4873c16a6f5f9692bb7 --- gnu/packages/chez.scm | 197 ++++++++++++++++------------------------ gnu/packages/racket.scm | 4 +- 2 files changed, 81 insertions(+), 120 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 406180ce0f..3f9bdbfbfc 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -50,7 +50,7 @@ (define-module (gnu packages chez) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:export (chez-scheme-for-system - racket-cs-native-supported-system? + nix-system->native-chez-machine-type nix-system->pbarch-machine-type unpack-nanopass)) @@ -93,6 +93,8 @@ (define* (target-chez-arch #:optional (system "ppc32") ((target-riscv64? system) "rv64") + ((string-prefix? "loongarch64-" system) + "la64") (else #f))) @@ -127,111 +129,67 @@ (define* (target-chez-os #:optional (system (or (%current-target-system) (else #f))) -(define %chez-features-table - ;; An alist of alists mapping: - ;; os -> arch -> (or/c #f (listof symbol?)) - ;; where: - ;; - `os` is a string for the OS part of a Chez Scheme machine type; and - ;; - `arch` is a string for the architecture part of a Chez machine type. - ;; - ;; The absence of an entry for a given arch--os pair means that neither - ;; upstream Chez Scheme nor the Racket variant can generate native code for - ;; that system. (The Racket variant can still provide support via its - ;; ``portable bytecode'' backends and optional compilation to C.) A value - ;; of `#f` means that upstream Chez Scheme does not support the arch--os - ;; pair at all, but the Racket variant does. A list has the same meaning as - ;; a result from `chez-upstream-features-for-system`. - ;; - ;; The arch--os pairs marked "commented out" have been commented out in the - ;; STeX source for the upstream release notes since the initial release as - ;; free software, but they are reported to work and/or have been described - ;; as supported by upstream maintainers. - ;; - ;; For this overall approach to make sense, we assume that Racket's variant - ;; of Chez Scheme can generate native code for a superset of the platforms - ;; supported upstream, supports threads on all platforms it supports at all - ;; (because they are needed for Racket), and doesn't need bootstrap - ;; bootfiles. Those assumptions have held for several years. - '(;; Linux - ("le" - ("i3" threads bootstrap-bootfiles) - ("a6" threads bootstrap-bootfiles) - ("arm32" bootstrap-bootfiles) - ("arm64" . #f) - ("rv64" . #f) - ("ppc32" threads)) - ;; Hurd - ("gnu" - ("i3" . #f)) - ;; FreeBSD - ("fb" - ("i3" threads) ;; commented out - ("a6" threads) ;; commented out - ("arm32" . #f) - ("arm64" . #f) - ("ppc32" . #f)) - ;; OpenBSD - ("ob" - ("i3" threads) ;; commented out - ("a6" threads) ;; commented out - ("arm32" . #f) - ("arm64" . #f) - ("ppc32" . #f)) - ;; NetBSD - ("nb" - ("i3" threads) ;; commented out - ("a6" threads) ;; commented out - ("arm32" . #f) - ("arm64" . #f) - ("ppc32" . #f)) - ;; OpenSolaris / OpenIndiana / Illumos - ("s2" - ("i3" threads) ;; commented out - ("a6" threads)) ;; commented out - ;; QNX - ("qnx" - ("i3" . #f)) - ;; Windows - ("nt" - ("i3" threads bootstrap-bootfiles) - ("a6" threads bootstrap-bootfiles) - ;; ^ threads "experiemental", but reportedly fine - ("arm64" . #f)) - ;; Darwin - ("osx" - ("i3" threads bootstrap-bootfiles) - ("a6" threads bootstrap-bootfiles) - ("arm64" . #f) - ("ppc32" . #f)))) - -(define* (chez-upstream-features-for-system #:optional - (system - (or (%current-target-system) - (%current-system)))) - "Return a list of symbols naming features supported by upstream Chez Scheme -for the Nix system identifier SYSTEM, or @code{#f} if upstream Chez Scheme -does not support SYSTEM at all. - -If native threads are supported, the returned list will include -@code{'threads}. If bootstrap bootfiles for SYSTEM are distributed in the -upstream Chez Scheme repository, the returned list will include -@code{'bootstrap-bootfiles}. Other feature symbols may be added in the -future." - (let ((chez-arch (target-chez-arch system)) - (chez-os (target-chez-os system))) - (and=> (assoc-ref %chez-features-table chez-os) - (cut assoc-ref <> chez-arch)))) +(define-syntax define-machine-types + (lambda (stx) + (syntax-case stx (any) + ((_ any id0 id ...) + #`(define #,(datum->syntax #'id0 '%machine-types) + '(id0 id ...)))))) +;; The following is copied from s/cmacros.ss, line 36, in the Chez source +(define-machine-types + any + pb tpb + pb32l tpb32l + pb32b tpb32b + pb64l tpb64l + pb64b tpb64b + i3nt ti3nt + i3osx ti3osx + i3le ti3le + i3fb ti3fb + i3ob ti3ob + i3nb ti3nb + i3s2 ti3s2 + i3qnx ti3qnx + i3gnu ti3gnu + a6nt ta6nt + a6osx ta6osx + a6le ta6le + a6fb ta6fb + a6ob ta6ob + a6nb ta6nb + a6s2 ta6s2 + ppc32osx tppc32osx + ppc32le tppc32le + ppc32fb tppc32fb + ppc32ob tppc32ob + ppc32nb tppc32nb + arm32le tarm32le + arm32fb tarm32fb + arm32ob tarm32ob + arm32nb tarm32nb + arm64nt tarm64nt + arm64osx tarm64osx + arm64le tarm64le + arm64fb tarm64fb + arm64ob tarm64ob + arm64nb tarm64nb + rv64le trv64le + rv64fb trv64fb + rv64ob trv64ob + rv64nb trv64nb + la64le tla64le +) (define* (nix-system->pbarch-machine-type #:optional (system (or (%current-target-system) (%current-system))) #:key (threads? #t)) - "Return a string naming the pseudo–machine type used by Racket's variant of -Chez Scheme to represent the appropriate ``pbarch'' backend for SYSTEM: that -is, the ``portable bytecode'' backend specialized for SYSTEM's word size and -endianness. The result will name the threaded machine type unless THREADS? is -provided and is #f." + "Return a string naming the Chez Scheme machine type of the appropriate +``pbarch'' backend for SYSTEM: that is, the ``portable bytecode'' backend +specialized for SYSTEM's word size and endianness. The result will name the +threaded machine type unless THREADS? is provided as #f." (string-append (if threads? "t" "") @@ -243,20 +201,23 @@ (define* (nix-system->pbarch-machine-type #:optional "l" "b"))) -(define* (racket-cs-native-supported-system? #:optional - (system - (or (%current-target-system) - (%current-system)))) - "Can Racket's variant of Chez Scheme generate native code for SYSTEM? If -so, return the applicable machine type as a string. Otherwise, when SYSTEM -can use only the ``portable bytecode'' backends, return #f." - (let ((chez-arch (target-chez-arch system)) - (chez-os (target-chez-os system))) - (and (and=> (assoc-ref %chez-features-table chez-os) - ;; NOT assoc-ref: supported even if cdr is #f - (cut assoc chez-arch <>)) - (string-append "t" chez-arch chez-os)))) - +(define* (nix-system->native-chez-machine-type #:optional + (system + (or (%current-target-system) + (%current-system))) + #:key (threads? #t)) + "Return a string naming the Chez Scheme machine type of the native-code +backend for SYSTEM, if such a native-code backend exists. Otherwise, when +SYSTEM can use only the ``portable bytecode'' backends, return #f. The result +will name the threaded machine type unless THREADS? is provided as #f." + (let* ((chez-arch (target-chez-arch system)) + (chez-os (target-chez-os system)) + (machine + (and chez-arch chez-os + (string-append (if threads? "t" "") chez-arch chez-os)))) + (and machine + (memq (string->symbol machine) %machine-types) + machine))) ;; ;; Chez Scheme: ;; @@ -300,7 +261,7 @@ (define-public chez-scheme-for-racket (version "9.9.9-pre-release.23") (source #f) (build-system gnu-build-system) - (inputs `(,@(if (racket-cs-native-supported-system?) + (inputs `(,@(if (nix-system->native-chez-machine-type) '() (list libffi)) ,chez-scheme-for-racket-bootstrap-bootfiles @@ -353,10 +314,10 @@ (define-public chez-scheme-for-racket (search-input-directory %build-inputs "/include/X11")) '() '("--disable-x11")) - #$(string-append "-m=" (or (racket-cs-native-supported-system?) + #$(string-append "-m=" (or (nix-system->native-chez-machine-type) (nix-system->pbarch-machine-type))) ;; ^ could skip -m= for non-cross non-pbarch builds - #$@(if (racket-cs-native-supported-system?) + #$@(if (nix-system->native-chez-machine-type) #~() ;; not inferred on non-native platforms: see ;; https://racket.discourse.group/t/950/9 @@ -585,7 +546,7 @@ (define-public chez-scheme-for-racket-bootstrap-bootfiles (invoke "./configure" "--force" ; don't complain about missing bootfiles #$(string-append - "-m=" (or (racket-cs-native-supported-system?) + "-m=" (or (nix-system->native-chez-machine-type) (nix-system->pbarch-machine-type))) "ZUO=zuo" ;; ignore submodules: diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index d366f89845..f50f6f3eab 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -433,7 +433,7 @@ (define-public racket-vm-cs (inputs (let ((inputs (modify-inputs (package-inputs racket-vm-cgc) (prepend zlib lz4)))) - (if (racket-cs-native-supported-system?) + (if (nix-system->native-chez-machine-type) (modify-inputs inputs (delete "libffi")) inputs))) @@ -461,7 +461,7 @@ (define-public racket-vm-cs #+(this-package-native-input "chez-scheme-for-racket") "/bin/scheme") - #$@(if (racket-cs-native-supported-system?) + #$@(if (nix-system->native-chez-machine-type) #~() #~(#$(string-append "--enable-mach=" (nix-system->pbarch-machine-type)) -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 29 01:19:27 2024 Received: (at 70065) by debbugs.gnu.org; 29 Mar 2024 05:19:27 +0000 Received: from localhost ([127.0.0.1]:41492 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rq4eE-0004yB-MU for submit@debbugs.gnu.org; Fri, 29 Mar 2024 01:19:27 -0400 Received: from wfout2-smtp.messagingengine.com ([64.147.123.145]:57777) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rq4e3-0004wr-BV for 70065@debbugs.gnu.org; Fri, 29 Mar 2024 01:19:16 -0400 Received: from compute7.internal (compute7.nyi.internal [10.202.2.48]) by mailfout.west.internal (Postfix) with ESMTP id 8B5A71C000A5 for <70065@debbugs.gnu.org>; Fri, 29 Mar 2024 01:19:08 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Fri, 29 Mar 2024 01:19:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to; s=fm2; t=1711689548; x=1711775948; bh=yq81QbPyW8nLfJOKbwkZ0 m0ui5wMDlMKyykyox9aK0c=; b=LihfTXCaRsJSQ7RUdQzS+EIY14PoLigyehupJ t3Dg02EPx1CllamBmI+22sqmQ4ZWuie90pgfWoghhHnMayEOeqmaUpb6YR0gr7eF YqqTcLRTwUa7B7fdVQUR1LCoqaBmaBE8PKy/AtC+VJejv5ZvgDoMhtCqvly8I9NN 3YzM+aRXU1P+0tj/JXogLqkvI97z3ptBxnDAS0jZnasSuOdzCt1+SD+14TBpUhjS wrQ8i5fF60WgwLa0OB3kSn7HmG7i+wn/VoWkoDQm5yANc1m/NKVc1i9EW07XeGHK m/4zlXGU07VCNFiiks6PCbCgdmt2dpGil1IKo6Q8tIWYNJjMg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711689548; x= 1711775948; bh=yq81QbPyW8nLfJOKbwkZ0m0ui5wMDlMKyykyox9aK0c=; b=C EMtTFCY8elzHffX254B+2SHKnqLZCF6jzTFzKn9nZr0jp1hcBgjZ0uZ436BPc5do Ghw7CxTHx9PsWO1DUTVlrGV24goc+rak0BhQbwL74qL7SctGBiFENanH90xkes5S sfp53XFZVNRNoJQ+WSPzt7D3mwS23eq8pTKsmdNv1jr8Woks4bDTcBUPgpB5yBED 7bbkaZsLlR3KnS2CjkVNpvB3LcQ5BRVae2mAI+KWzzHnm4cyA7H8YrTU15dKOB0f yxVPKA+Asd+ZC9pDILKG6gfLgpKxOsEivlURNKt7F38x3bqbxRAORzIV6KIjUuay wMT8xcLfZQgOZbLQCwxCg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvtddgfeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucgoufhushhpvggtthffohhmrghinhculdegledmne cujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomheprfhhihhl ihhpucfotgfirhgrthhhuceophhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtoh hmqeenucggtffrrghtthgvrhhnpeeggeeuvdeuieffgeeigfegkefgfffgjeegleeghfeh fffgkeeuueffhffgieehieenucffohhmrghinheprhgrtghkvghtqdhlrghnghdrohhrgh dpghhithhhuhgsrdhiohdpughishgtohhurhhsvgdrghhrohhuphenucevlhhushhtvghr ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehphhhilhhiphesphhhihhlih hpmhgtghhrrghthhdrtghomh X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for <70065@debbugs.gnu.org>; Fri, 29 Mar 2024 01:19:07 -0400 (EDT) From: Philip McGrath To: 70065@debbugs.gnu.org Subject: [PATCH 6/6] gnu: chez-scheme: Bootstrap from source. Date: Fri, 29 Mar 2024 01:18:55 -0400 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Debbugs-CC: Philip McGrath X-Debbugs-Cc: Philip McGrath Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70065 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/chez.scm (chez-scheme)[source]: Also unbundle pre-built boot files. (chez-scheme-bootstrap-bootfiles): Stop inheriting from 'chez-scheme'. [native-inputs]: Add 'zuo', 'chez-nanopass-bootstrap', and either 'chez-scheme-for-racket' or, for cross builds, 'chez-scheme'. [build-system]: Change to gnu-build-system. [arguments]: Change to run 'configure' and then bootstrap via `make re.boot` or, for cross builds, `make cross.boot` [synopsis, description]: Update accordingly. (chez-scheme-for-racket-bootstrap-bootfiles)[synopsis]: Write "boot files" as two words in prose. [description]: Likewise. * gnu/packages/racket.scm: Update comments. Change-Id: I55d9b57090ecaca0aa2ab19c2c3ebae2243a9173 --- gnu/packages/chez.scm | 123 +++++++++++++++++++++++++++++++--------- gnu/packages/racket.scm | 24 +++++--- 2 files changed, 112 insertions(+), 35 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 3f9bdbfbfc..11de3b9523 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -57,15 +57,54 @@ (define-module (gnu packages chez) ;; Commentary: ;; ;; The bootstrapping paths for Chez Scheme and Racket are closely -;; entwined. Racket CS (the default Racket implementation) is based on (a fork -;; of) Chez Scheme. Racket's variant of Chez Scheme shares sources for -;; nanopass and stex with upstream Chez Scheme. +;; entwined. See "Bootstrapping Racket" in the commentary on "racket.scm" for +;; details on the Racket portion of Chez Scheme's bootstrapping path. ;; -;; Racket's variant of Chez Scheme can be bootstrapped by an older Racket -;; implementation, Racket BC, which can be bootstrapped from C. Porting that -;; code to work with upstream Chez Scheme (or finding an old version that -;; does) is our best hope for some day bootstrapping upstream Chez Scheme from -;; source. +;; Chez Scheme is a self-hosting compiler. A small kernel implemented in C +;; loads "boot files" (in a custom object file format) compiled from the parts +;; of the system implemented in Chez Scheme. (While Chez Scheme generates +;; native machine code, it implements its own linker and loader.) +;; +;; As of Chez Scheme 10.0.0 (and the pre-release versions that preceded it on +;; the Racket branch), there are several ways to obtain boot files: +;; +;; 1. The Racket package "cs-bootstrap" (in the "racket/src/rktboot/" +;; directory of the main Racket Git repository) simulates enough of Chez +;; Scheme to load the Chez Scheme compiler purely from source into Racket +;; and apply the compiler to itself, producing the needed boot files +;; (albeit very slowly). +;; Any variant of Racket since version 7.1 can run the simulation. Using +;; the older Racket BC implementation, which does not depend on Chez +;; Scheme, breaks the dependency cycle. +;; However, the simulation relies on implementation details of Chez +;; Scheme, so a given version of Chez Scheme can only be bootstrapped by +;; the corresponding version of the "cs-bootstrap" package. +;; +;; 2. The Chez Scheme makefile provides a "re.boot" target for bootstrapping +;; via a different version of Chez Scheme (9.5.4 or later). +;; This path manages potential differences in implementation details +;; across Chez Scheme versions using a strategy similar to "cs-bootstrap", +;; but the compatibility shim is maintained with the Chez Scheme source +;; code (in "s/reboot.ss"). Also, it's faster, since less indirection is +;; needed. +;; +;; 3. For cross-compilation, or with an extremely similar Chez Scheme, the +;; makefile provides "cross.boot" and related targets. +;; +;; 4. The Chez Scheme Git repository includes pre-built "pb" (portable +;; bytecode) boot files, which can be used for bootstrapping on any +;; platform, but these binary files are removed from the source Guix uses. +;; +;; Concretely, we use racket-vm-bc to bootstrap chez-scheme-for-racket, which +;; we then use to bootstrap both chez-scheme and racket-vm-cs. +;; +;; In principle, it would be possible instead to use chez-scheme to bootstrap +;; chez-scheme-for-racket. However, since Racket is ultimately used for +;; bootstrapping, chez-scheme would still need to be rebuilt when Racket +;; changes, whereas treating chez-scheme as a leaf avoids having to rebuild +;; Racket when upstream Chez Scheme changes. Furthermore, since "cs-bootstrap" +;; is developed in the Racket source repository, we don't have to look for the +;; version of "cs-bootstrap" compatible with the upstream Chez Scheme release. ;; ;; Code: @@ -476,7 +515,8 @@ (define-public chez-scheme (for-each (lambda (dir) (when (directory-exists? dir) (delete-file-recursively dir))) - '("lz4" + '("boot" + "lz4" "nanopass" "stex" "zlib" @@ -572,10 +612,10 @@ (define-public chez-scheme-for-racket-bootstrap-bootfiles "/opt/racket-vm/bin/racket") "../rktboot/main.rkt")))))))) (home-page "https://pkgs.racket-lang.org/package/cs-bootstrap") - (synopsis "Chez Scheme bootfiles bootstrapped by Racket") - (description "Chez Scheme is a self-hosting compiler: building it -requires ``bootfiles'' containing the Scheme-implemented portions compiled for -the current platform. (Chez can then cross-compile bootfiles for all other + (synopsis "Chez Scheme boot files bootstrapped by Racket") + (description "Chez Scheme is a self-hosting compiler: building it requires +``boot files'' containing the Scheme-implemented portions compiled for the +current platform. (Chez can then cross-compile boot files for all other supported platforms.) The Racket package @code{cs-bootstrap} (part of the main Racket Git @@ -588,28 +628,57 @@ (define-public chez-scheme-for-racket-bootstrap-bootfiles (define-public chez-scheme-bootstrap-bootfiles (package - (inherit chez-scheme) (name "chez-scheme-bootstrap-bootfiles") - (inputs '()) - (native-inputs '()) + (version (package-version chez-scheme)) + (source (package-source chez-scheme)) + (native-inputs (list chez-nanopass-bootstrap + (if (%current-target-system) + chez-scheme + chez-scheme-for-racket) + zuo)) (outputs '("out")) - (build-system copy-build-system) - ;; TODO: cross compilation + (build-system gnu-build-system) (arguments - (list #:install-plan - #~`(("boot/" "lib/chez-scheme-bootfiles")))) - (synopsis "Chez Scheme bootfiles (binary seed)") + (list + #:configure-flags + #~`("--force" ; don't complain about missing bootfiles + "ZLIB=-lz" "LZ4=-llz4" "STEXLIB=/GuixNotUsingStex" ; ignore submods + "ZUO=zuo" + ;; could skip -m= for non-cross non-pbarch builds + #$(string-append "-m=" (or (nix-system->native-chez-machine-type) + (nix-system->pbarch-machine-type)))) + #:make-flags + #~(list (string-append "SCHEME=" + (search-input-file %build-inputs "/bin/scheme")) + #$(if (%current-target-system) + "cross.boot" + "re.boot")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'unpack-nanopass + #$unpack-nanopass) + (replace 'configure + #$chez-configure) + (delete 'check) + (replace 'install + (lambda args + (mkdir-p (string-append #$output "/lib")) + (copy-recursively + "boot" + (string-append #$output "/lib/chez-scheme-bootfiles"))))))) + (home-page "https://cisco.github.io/ChezScheme/") + (synopsis "Bootstrapped Chez Scheme boot files") (description "Chez Scheme is a self-hosting compiler: building it requires -``bootfiles'' containing the Scheme-implemented portions compiled for the +``boot files'' containing the Scheme-implemented portions compiled for the current platform. (Chez can then cross-compile bootfiles for all other supported platforms.) -This package provides bootstrap bootfiles for upstream Chez Scheme. -Currently, it simply packages the binaries checked in to the upstream -repository. Hopefully we can eventually adapt Racket's @code{cs-bootstrap} to -work with upstream Chez Scheme so that we can bootstrap these files from -source."))) +This package provides boot files for the released version of Chez Scheme +bootstrapped by @code{chez-scheme-for-racket}. Chez Scheme 9.5.4 or any later +version can be used for bootstrapping. Guix ultimately uses the Racket package +@code{cs-bootstrap} to bootstrap its initial version of Chez Scheme.") + (license asl2.0))) ;; ;; Chez's bootstrap dependencies: diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index f50f6f3eab..2b20353159 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -72,6 +72,7 @@ (define-module (gnu packages racket) ;; ├── bc/ ;; ├── cs/ ;; ├── ChezScheme/ +;; ├── rktboot/ ;; ├── zuo/ ;; └── ... ;; @@ -149,14 +150,12 @@ (define-module (gnu packages racket) ;; - Racket BC [3M] needs an existing Racket to run "xform", ;; which transforms its own C source code to add additional annotations ;; for the precise garbage collector. -;; - Racket CS needs (bootfiles for) Racket's fork of Chez Scheme. -;; It also needs an existing Racket to compile Racket-implemented +;; - Racket CS needs (boot files for) the corresponding version of Chez +;; Scheme. It also needs an existing Racket to compile Racket-implemented ;; parts of the runtime system to R6RS libraries. -;; - Chez Scheme also needs bootfiles for itself, but Racket can simulate -;; enough of Chez Scheme to load Racket's fork of the Chez Scheme compiler -;; purely from source into Racket and apply the compiler to itself, -;; producing the needed bootfiles (albeit very slowly). -;; Any variant of Racket since version 7.1 can run the simulation. +;; - Chez Scheme also needs boot files for itself, but Racket BC can +;; bootstrap these using the code in "racket/src/rktboot/". +;; See the commentary in "chez.scm" for further details ;; ;; So, we build CGC to build 3M to build bootfiles and CS. ;; @@ -164,6 +163,14 @@ (define-module (gnu packages racket) ;; often use "BC" to mean "3M", consistent with `(banner)` and the ;; suffixes used on executables when more than one variant co-exists.) ;; +;; Since the pre-releases for Chez Scheme 10.0.0, all of Racket's changes have +;; been merged upstream, and development will be kept in sync going +;; forward. However, there is no plan to align the Chez Scheme and Racket +;; release cycles. For the near fulture, a given released version of Racket +;; will continue to depend on a specific pre-release version of Chez Scheme as +;; part of Racket CS's "ABI". See upstream discussion at +;; . +;; ;; One remaining bootstrapping limitation is that Racket's reader, module ;; system, and macro expander are implemented in Racket. For Racket CS, ;; they are compiled to R6RS libraries as discussed above. This note from the @@ -189,7 +196,8 @@ (define-module (gnu packages racket) ;; Zuo is notably *not* a problem for bootstrapping. The implementation is a ;; single hand-written C file designed to build with just `cc -o zuo zuo.c`, ;; even with very old or limited compilers. (We use the Autoconf support for -;; convienience.) +;; convienience.) As of Zuo 1.8, Zuo has tagged releases in its own repository +;; independent of the Racket release cycle. ;; ;; CODE: -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 29 01:19:29 2024 Received: (at 70065) by debbugs.gnu.org; 29 Mar 2024 05:19:29 +0000 Received: from localhost ([127.0.0.1]:41494 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rq4eF-0004yF-LB for submit@debbugs.gnu.org; Fri, 29 Mar 2024 01:19:29 -0400 Received: from wfhigh2-smtp.messagingengine.com ([64.147.123.153]:54093) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rq4e0-0004wg-3X for 70065@debbugs.gnu.org; Fri, 29 Mar 2024 01:19:17 -0400 Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailfhigh.west.internal (Postfix) with ESMTP id 2B5C218000F1 for <70065@debbugs.gnu.org>; Fri, 29 Mar 2024 01:19:05 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Fri, 29 Mar 2024 01:19:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:content-transfer-encoding:content-type :date:date:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:subject:subject:to:to; s=fm2; t=1711689544; x=1711775944; bh=0WBNIW92DLokPdD1YMHEZMuWmocdLqN9 5kt3C6QB4uI=; b=iBl+btoQZIxnfAZm56hoM4WJaEq+MgkrA4Uib7UbeFeyCd7H 5OFc1mY/MultUF6bokJaTH2ACW0bMbtA4ksn7uNRAAzR+Tie22oBafBUYWRfoB+y Mk0LkHAm+MDQxzV5g68ZNlOB8C8bjlYwGz+qIHXOZd72VJ4T+Fn83f5N5qNid3MC lgYmXxzzrhX+hjSI+U8AxgbLr1TskNLFHuzUzzPKkDf7YQHos7FytLRuAyJ64Zk/ lOQmaHLoXYZ5WhViczSSe5xUPNJGJ1uMHyzHD+2e1T6W77PoomEp+cA3eb7aBOYr +561qadcVGsrgVNsA0UEeL/CD7g+KbMAHS3rYw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=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:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; t=1711689544; x=1711775944; bh=0WBNIW92DLokP dD1YMHEZMuWmocdLqN95kt3C6QB4uI=; b=l8641E2J6mebzbEcmm0/K33kjB8jm 8wF0Rk33yXpaHo1+idpronUkGPW5m8IBYYivnqvvvmXfH7+ugLDrDBAlZ/x4Ii0y m/AfC7e9xmk6H0RelCnGFAa4PB3ux2ssKAu0Nb1Zpgxpdx47IX0ERMNaRhAHnNnK nCpWVS+LpjgoFGAQx5Asxfq7sQTbpkGEisB/AXSrKax5BsWHVRhNJ+36UMT11fVt d0Evt7UtEncwObc/eaX70BwbHpzT2Tmg03NsAXShYjDA2cCeuer0q+VnrmNAxq0z IBh/4Tl1cTc0azuMNsCJ15Ylo/2ozdar3mGcqgL8FoS+8ke81FdJLmaZA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvtddgfeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucgoufhushhpvggtthffohhmrghinhculdegledmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefrhhhilhhi phcuofgtifhrrghthhcuoehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomh eqnecuggftrfgrthhtvghrnhepudeigedvhfeuteetveektdeffeettdfhkeehudehtdel leetteeigedvjeeufffhnecuffhomhgrihhnpehgihhthhhusgdrtghomhdpghhithhhuh gsrdhiohdpnhhonhhgnhhurdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghr rghmpehmrghilhhfrhhomhepphhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtoh hm X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for <70065@debbugs.gnu.org>; Fri, 29 Mar 2024 01:19:04 -0400 (EDT) From: Philip McGrath To: 70065@debbugs.gnu.org Subject: [PATCH 4/6] gnu: chez-scheme: Update to 10.0.0. Date: Fri, 29 Mar 2024 01:18:53 -0400 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Debbugs-CC: Philip McGrath X-Debbugs-Cc: Andrew Tropin , Katherine Cox-Buday , Liliana Marie Prikler , Philip McGrath Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 70065 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) * gnu/packages/patches/chez-scheme-bin-sh.patch: Refresh patch. * gnu/packages/patches/chez-scheme-backport-configure.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/chez.scm (chez-scheme): Update to 10.0.0. Inherit from 'chez-scheme-for-racket'. [source]: Use "chez-scheme-backport-configure.patch". : Also unbundle Zuo. [native-inputs, native-search-paths, outputs, arguments] [supported-systems]: Inherit from 'chez-scheme-for-racket'. [inputs]: Likewise, replacing the bootfile package and adding libx11. [description]: Update based on the User's Guide, release notes, man page, and README file. (chez-scheme-bootstrap-bootfiles)[supported-systems]: All systems are now supported. (chez-scheme-for-system): Deprecate it, since 'chez-scheme' now supports all systems. (chez-srfi, chez-web, chez-sockets, chez-matchable, chez-irregex) (chez-fmt, chez-mit, chez-scmutils)[native-inputs]: Use 'chez-scheme' instead of 'chez-scheme-for-system'. * gnu/packages/emacs-xyz.scm (emacs-geiser-chez)[inputs]: Likewise. Change-Id: I287ff66f385f20e69c1411abcc94f19dd45870c5 --- gnu/local.mk | 1 + gnu/packages/chez.scm | 222 ++------- gnu/packages/emacs-xyz.scm | 2 +- .../chez-scheme-backport-configure.patch | 463 ++++++++++++++++++ gnu/packages/patches/chez-scheme-bin-sh.patch | 37 +- 5 files changed, 522 insertions(+), 203 deletions(-) create mode 100644 gnu/packages/patches/chez-scheme-backport-configure.patch diff --git a/gnu/local.mk b/gnu/local.mk index a10aa2cefd..b5f922b538 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1017,6 +1017,7 @@ dist_patch_DATA = \ %D%/packages/patches/ccextractor-add-missing-header.patch \ %D%/packages/patches/ccextractor-autoconf-tesseract.patch \ %D%/packages/patches/ccextractor-fix-ocr.patch \ + %D%/packages/patches/chez-scheme-backport-configure.patch \ %D%/packages/patches/chez-scheme-bin-sh.patch \ %D%/packages/patches/circos-remove-findbin.patch \ %D%/packages/patches/cdparanoia-fpic.patch \ diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 3b7e6a67b3..406180ce0f 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -27,6 +27,7 @@ (define-module (gnu packages chez) #:select (gpl2+ gpl3+ lgpl2.0+ lgpl2.1+ asl2.0 bsd-3 expat public-domain)) #:use-module (guix packages) + #:use-module (guix deprecation) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) @@ -68,22 +69,9 @@ (define-module (gnu packages chez) ;; ;; Code: -(define* (chez-scheme-for-system #:optional - (system (or (%current-target-system) - (%current-system)))) - "Return 'chez-scheme' if it fully supports SYSTEM, including support for -bootstrapping and native threads. Otherwise, return -'chez-scheme-for-racket'." - (if (and=> (chez-upstream-features-for-system system) - (lambda (features) - (every (cut memq <> features) - '(threads - ;; We can cross-compile for platforms without - ;; bootstrap bootfiles, but we can't self-host - ;; on them short of adding more binary seeds. - bootstrap-bootfiles)))) - chez-scheme - chez-scheme-for-racket)) +(define-deprecated (chez-scheme-for-system #:optional system) chez-scheme + "Returns 'chez-scheme'." + chez-scheme) (define* (target-chez-arch #:optional (system (or (%current-target-system) @@ -503,10 +491,11 @@ (define-public chez-scheme-for-racket (define-public chez-scheme (package + (inherit chez-scheme-for-racket) (name "chez-scheme") - ;; The version should match `(scheme-version-number)`. + ;; The version should match `(scheme-version-number #t)`. ;; See s/cmacros.ss c. line 360. - (version "9.5.8") + (version "10.0.0") (source (origin (method git-fetch) (uri (git-reference @@ -514,9 +503,10 @@ (define-public chez-scheme (commit (string-append "v" version)))) (sha256 (base32 - "0xchqq8cm0ka5wgpn18sjs0hh15rc3nb7xrjqbbc9al3asq0d7gc")) + "1q66vafhiwk617z51qkm1v64r3bxqhhf5lzrmsa4l9d5yhvlyk09")) (file-name (git-file-name name version)) - (patches (search-patches "chez-scheme-bin-sh.patch")) + (patches (search-patches "chez-scheme-backport-configure.patch" + "chez-scheme-bin-sh.patch")) (snippet #~(begin (use-modules (guix build utils)) ;; TODO: consider putting this in a (guix ...) or @@ -525,165 +515,30 @@ (define-public chez-scheme (for-each (lambda (dir) (when (directory-exists? dir) (delete-file-recursively dir))) - '("stex" + '("lz4" "nanopass" - "lz4" - "zlib")))))) + "stex" + "zlib" + "zuo")))))) (build-system gnu-build-system) (inputs - (list - chez-scheme-bootstrap-bootfiles - `(,util-linux "lib") ;<-- libuuid - zlib - lz4 - ncurses ;<-- for expeditor - ;; for X11 clipboard support in expeditor: - ;; https://github.com/cisco/ChezScheme/issues/9#issuecomment-222057232 - libx11)) - (native-inputs (list chez-nanopass-bootstrap - stex-bootstrap)) - (native-search-paths - (list (search-path-specification - (variable "CHEZSCHEMELIBDIRS") - (files '("lib/chez-scheme"))))) - (outputs '("out" "doc")) - (arguments - (list - #:modules - '((guix build gnu-build-system) - (guix build utils) - (ice-9 ftw) - (ice-9 match)) - #:test-target "test" - #:configure-flags - #~`(,(string-append "--installprefix=" #$output) - #$@(if (and=> (chez-upstream-features-for-system) - (cut memq 'threads <>)) - #~("--threads") - #~()) - "ZLIB=-lz" - "LZ4=-llz4" - "--libkernel" - ;; Guix will do 'compress-man-pages', - ;; and letting Chez try causes an error - "--nogzip-man-pages") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'unpack-nanopass+stex - (lambda args - (begin - (copy-recursively - (dirname (search-input-file %build-inputs - "lib/chez-scheme/nanopass.ss")) - "nanopass" - #:keep-mtime? #t) - (mkdir-p "stex") - (with-output-to-file "stex/Mf-stex" - (lambda () - ;; otherwise, it will try to download submodules - (display "# to placate ../configure")))))) - (add-after 'unpack-nanopass+stex 'unpack-bootfiles - (lambda* (#:key native-inputs inputs #:allow-other-keys) - (when (directory-exists? "boot") - (delete-file-recursively "boot")) - (copy-recursively - (search-input-directory inputs - "lib/chez-scheme-bootfiles") - "boot"))) - ;; NOTE: The custom Chez 'configure' script doesn't allow - ;; unrecognized flags, such as those automatically added - ;; by `gnu-build-system`. This replacement phase uses only - ;; the explicitly provided `#:configure-flags`. - (replace 'configure - (lambda* (#:key inputs (configure-flags '()) out-of-source? - #:allow-other-keys) - (let* ((abs-srcdir (getcwd)) - (srcdir (if out-of-source? - (string-append "../" (basename abs-srcdir)) - "."))) - (format #t "source directory: ~s (relative from build: ~s)~%" - abs-srcdir srcdir) - (if out-of-source? - (begin - (mkdir "../build") - (chdir "../build"))) - (format #t "build directory: ~s~%" (getcwd)) - (format #t "configure flags: ~s~%" configure-flags) - (apply invoke - (string-append srcdir "/configure") - configure-flags)))) - (add-after 'configure 'configure-environment-variables - (lambda args - ;; Some makefiles (for tests) don't seem to propagate CC - ;; properly, so we take it out of their hands: - (setenv "CC" #$(cc-for-target)) - ;; Likewise, some tests have needed HOME to be set: - (setenv "HOME" "/tmp"))) - ;; The binary file name is called "scheme" as is the one from - ;; MIT/GNU Scheme. We add a symlink to use in case both are - ;; installed. - (add-after 'install 'install-symlink - (lambda* (#:key outputs #:allow-other-keys) - (let* ((scheme (search-input-file outputs "/bin/scheme")) - (bin-dir (dirname scheme))) - (symlink scheme - (string-append bin-dir "/chez-scheme")) - (match (find-files (string-append bin-dir "/../lib") - "scheme.boot") - ((scheme.boot) - (symlink scheme.boot - (string-append (dirname scheme.boot) - "/chez-scheme.boot"))))))) - ;; Building the documentation requires stex and a running scheme. - (add-after 'install-symlink 'install-docs - (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) - (let* ((doc-prefix (or (assoc-ref outputs "doc") - (assoc-ref outputs "out"))) - (chez+version (strip-store-file-name #$output)) - (scheme (search-input-file outputs "/bin/scheme")) - (stexlib (search-input-directory (or native-inputs - inputs) - "/lib/stex")) - (doc-dir (string-append doc-prefix - "/share/doc/" - chez+version))) - (define* (stex-make #:optional (suffix "")) - (invoke "make" "install" - (string-append "Scheme=" scheme) - (string-append "STEXLIB=" stexlib) - (string-append "installdir=" doc-dir suffix))) - (with-directory-excursion "csug" - (stex-make "/csug")) - (with-directory-excursion "release_notes" - (stex-make "/release_notes"))))) - (add-after 'install-docs 'link-doc-pdfs - ;; otherwise, it's hard to notice them in a forest of HTML files - (lambda* (#:key outputs #:allow-other-keys) - (with-directory-excursion - (string-append (or (assoc-ref outputs "doc") - (assoc-ref outputs "out")) - "/share/doc/" - (strip-store-file-name #$output)) - (symlink "release_notes/release_notes.pdf" - "release_notes.pdf") - (match (find-files "csug" - "csug.*\\.pdf$" ;; embeded version number - #:fail-on-error? #t) - ((pth) - (symlink pth - "csug.pdf"))))))))) - (supported-systems - (delete - "armhf-linux" ;; XXX reportedly broken, needs checking - (filter chez-upstream-features-for-system - %supported-systems))) + (modify-inputs (package-inputs chez-scheme-for-racket) + (replace "chez-scheme-for-racket-bootstrap-bootfiles" + chez-scheme-bootstrap-bootfiles) + ;; for X11 clipboard support in expeditor: + ;; https://github.com/cisco/ChezScheme/issues/9#issuecomment-222057232 + (prepend libx11))) + ;; replace unpack phase? (home-page "https://cisco.github.io/ChezScheme/") (synopsis "R6RS Scheme compiler and run-time") (description - "Chez Scheme is a compiler and run-time system for the language of the -Revised^6 Report on Scheme (R6RS), with numerous extensions. The compiler -generates native code for each target processor, with support for x86, x86_64, -and 32-bit PowerPC architectures.") + "Chez Scheme is both a programming language and a high-performance +implementation of that language. The language is a superset of R6RS Scheme +with numerous extensions, including native threads, non-blocking I/O, local +modules, and much more. Chez Scheme compiles source expressions incrementally +to machine code, providing the speed of compiled code in an interactive +system. The system is intended to be as reliable and efficient as possible, +with reliability taking precedence over efficiency if necessary.") (license asl2.0))) ;; @@ -782,11 +637,6 @@ (define-public chez-scheme-bootstrap-bootfiles (arguments (list #:install-plan #~`(("boot/" "lib/chez-scheme-bootfiles")))) - (supported-systems - (filter (lambda (system) - (and=> (chez-upstream-features-for-system system) - (cut memq 'bootstrap-bootfiles <>))) - %supported-systems)) (synopsis "Chez Scheme bootfiles (binary seed)") (description "Chez Scheme is a self-hosting compiler: building it requires @@ -1054,7 +904,7 @@ (define-public chez-srfi (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs - (list (chez-scheme-for-system))) + (list chez-scheme)) (arguments (list #:make-flags (chez-make-flags name version) #:test-target "test" @@ -1085,7 +935,7 @@ (define-public chez-web (base32 "1dq25qygyncbfq4kwwqqgyyakfqjwhp5q23vrf3bff1p66nyfl3b")))) (build-system gnu-build-system) (native-inputs - (list (chez-scheme-for-system) + (list chez-scheme ghostscript (texlive-updmap.cfg (list texlive-charter @@ -1152,7 +1002,7 @@ (define-public chez-sockets (base32 "1n5fbwwz51fdzvjackgmnsgh363g9inyxv7kmzi0469cwavwcx5m")))) (build-system gnu-build-system) (native-inputs - (list (chez-scheme-for-system) + (list chez-scheme chez-web (texlive-updmap.cfg))) (arguments @@ -1238,7 +1088,7 @@ (define-public chez-matchable (inputs (list chez-srfi)) ; for tests (native-inputs - (list (chez-scheme-for-system))) + (list chez-scheme)) (arguments (list #:make-flags (chez-make-flags name version) #:test-target "test" @@ -1270,7 +1120,7 @@ (define-public chez-irregex (propagated-inputs (list chez-srfi)) ; for irregex-utils (native-inputs - (list (chez-scheme-for-system))) + (list chez-scheme)) (arguments (list #:make-flags (chez-make-flags name version) #:test-target "test" @@ -1301,7 +1151,7 @@ (define-public chez-fmt (propagated-inputs (list chez-srfi)) ; for irregex-utils (native-inputs - (list (chez-scheme-for-system))) + (list chez-scheme)) (arguments (list #:make-flags (chez-make-flags name version) #:test-target "chez-check" @@ -1364,7 +1214,7 @@ (define-public chez-mit (inputs (list chez-srfi)) ; for tests (native-inputs - (list (chez-scheme-for-system))) + (list chez-scheme)) (arguments (list #:make-flags (chez-make-flags name version) #:test-target "test" @@ -1395,7 +1245,7 @@ (define-public chez-scmutils (inputs (list chez-srfi)) ; for tests (native-inputs - (list (chez-scheme-for-system))) + (list chez-scheme)) (propagated-inputs (list chez-mit chez-srfi)) (arguments diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index d4819c62ce..731f479560 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -767,7 +767,7 @@ (define-public emacs-geiser-chez (string-append "(eval-after-load 'geiser-impl '" all ")")))))))) (inputs - (list (chez-scheme-for-system))) + (list chez-scheme)) (propagated-inputs (list emacs-geiser)) (home-page "https://nongnu.org/geiser/") diff --git a/gnu/packages/patches/chez-scheme-backport-configure.patch b/gnu/packages/patches/chez-scheme-backport-configure.patch new file mode 100644 index 0000000000..584dcb3f0b --- /dev/null +++ b/gnu/packages/patches/chez-scheme-backport-configure.patch @@ -0,0 +1,463 @@ +From 24ab36374f2e366b6c939fffe8c129c8b0ae3b9c Mon Sep 17 00:00:00 2001 +From: Philip McGrath +Date: Wed, 28 Feb 2024 19:41:22 -0500 +Subject: [PATCH 1/2] Repairs and improvements for building with external + dependencies (#807) + +* configure: fix zlib and lz4 submodule checks + +Conditionals to skip the submodule checks were using the wrong +variable names, so the checks were always skipped. The correct +behavior is to perform the check unless given `ZLIB=` or +`LZ4=`, as applicable. + +* configure: support `ZUO=` + +Supplying `ZUO=` skips the submodule check in `configure` +and configures the generated makefile not to build or remove Zuo. + +* configure: support `STEXLIB=` + +For compatibility with older scripts, when not explicitly configured, +continue to honor the `STEXLIB` environment variable at build time. + +(cherry picked from commit b8838c3280ef10e115236d2f7ac9ae857f83e268) +--- + BUILDING | 5 +++-- + build.zuo | 13 +++++++++---- + configure | 40 +++++++++++++++++++++++++++++++++------- + makefiles/Makefile.in | 6 ++---- + 4 files changed, 47 insertions(+), 17 deletions(-) + +diff --git a/BUILDING b/BUILDING +index 7b3dc9c8..9e9a268b 100644 +--- a/BUILDING ++++ b/BUILDING +@@ -149,7 +149,8 @@ information on the supported options. + The generated makefile mostly just ensures that a `zuo` executable is + built in a `bin` directory, and then it defers the actual build work + to `zuo`, which uses the "main.zuo" file. If you have `zuo` installed, +-you can use `zuo` directly instead of `make`. In general, instead of ++you can use `zuo` directly instead of `make`: in that case, you may ++wish to use `./configure ZUO=`. In general, instead of + the command `make X` to build target `X` as described below, you can + use `zuo . X` (or `bin/zuo . X` after `bin/zuo` is built). + +@@ -333,7 +334,7 @@ The makefile supports several targets: + * `make clean` + + Removes all built elements from the workarea, and then removes +- `bin/zuo`. ++ `bin/zuo` (unless configured with `ZUO=`). + + + WINDOWS VIA COMMAND PROMPT +diff --git a/build.zuo b/build.zuo +index c21d2caa..c5896396 100644 +--- a/build.zuo ++++ b/build.zuo +@@ -224,10 +224,15 @@ + token)) + + (define stexlib +- (let ((found (assoc "STEXLIB" (hash-ref (runtime-env) 'env)))) +- (if found +- (cdr found) +- (at-source "stex")))) ++ (let ([configured (hash-ref config 'STEXLIB "")] ++ [env (assoc "STEXLIB" (hash-ref (runtime-env) 'env))]) ++ (cond ++ [(not (equal? "" configured)) ++ configured] ++ [env ++ (cdr env)] ++ [else ++ (at-source "stex")]))) + (define stex-sources + (source-tree stexlib)) + +diff --git a/configure b/configure +index 2b4b594e..782dd09b 100755 +--- a/configure ++++ b/configure +@@ -93,6 +93,7 @@ default_warning_flags="-Wpointer-arith -Wall -Wextra -Wno-implicit-fallthrough" + CFLAGS_ADD= + zlibLib= + LZ4Lib= ++STEXLIB= + Kernel=KernelLib + buildKernelOnly=no + enableFrompb=yes +@@ -103,6 +104,7 @@ moreBootFiles= + preloadBootFiles= + alwaysUseBootFile= + skipSubmoduleUpdate= ++zuoExternal= + + CONFIG_UNAME=`uname` + +@@ -446,6 +448,12 @@ while [ $# != 0 ] ; do + LZ4=*) + LZ4Lib=`echo $1 | sed -e 's/^LZ4=//'` + ;; ++ STEXLIB=*) ++ STEXLIB=`echo $1 | sed -e 's/^STEXLIB=//'` ++ ;; ++ ZUO=*) ++ zuoExternal=`echo $1 | sed -e 's/^ZUO=//'` ++ ;; + *) + echo "option '$1' unrecognized or missing an argument; try $0 --help" + exit 1 +@@ -672,6 +680,8 @@ if [ "$help" = "yes" ]; then + echo " STRIP= executable stripper" + echo " ZLIB= link to instead of own zlib" + echo " LZ4= link to instead of own LZ4" ++ echo " STEXLIB= build docs with instead of own stex" ++ echo " ZUO= build with instead of own Zuo" + echo "" + echo "Available machine types: $machs" + echo "" +@@ -889,28 +899,39 @@ submod_instructions () { + exit 1 + } + +-if [ ! -f "$srcdir"/zuo/configure ] ; then +- submod_instructions 'Source in "zuo" is missing' ++if [ "${zuoExternal}" = "" ] ; then ++ if [ ! -f "$srcdir"/zuo/configure ] ; then ++ submod_instructions 'Source in "zuo" is missing' ++ fi ++ ZUO="bin/zuo" ++ RM_ZUO="rm -f bin/zuo" ++ ZUO_TARGET="bin/zuo" ++else ++ ZUO="${zuoExternal}" ++ RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'" ++ ZUO_TARGET="DoNotBuildZuo" + fi + + if [ ! -f "$srcdir"/nanopass/nanopass.ss ] ; then + submod_instructions 'Source in "nanopass" is missing' + fi + +-if [ "${zlibDep}" != "" ] ; then ++if [ "${zlibLib}" = "" ] ; then + if [ ! -f "$srcdir"/zlib/configure ] ; then + submod_instructions 'Source in "zlib" is missing' + fi + fi + +-if [ "${LZ4Dep}" != "" ] ; then ++if [ "${LZ4Lib}" = "" ] ; then + if [ ! -f "$srcdir"/lz4/lib/Makefile ] ; then + submod_instructions 'Source in "lz4" is missing' + fi + fi + +-if [ ! -f "$srcdir"/stex/Mf-stex ] ; then +- submod_instructions 'Source in "stex" is missing' ++if [ "${STEXLIB}" = "" ] ; then ++ if [ ! -f "$srcdir"/stex/Mf-stex ] ; then ++ submod_instructions 'Source in "stex" is missing' ++ fi + fi + + # more compile and link flags for c/Mf-unix and mats/Mf-unix +@@ -1083,7 +1104,7 @@ cp "$srcdir"/makefiles/buildmain.zuo main.zuo + # Some idea, but in the workarea, so it refers to "workarea.zuo" here: + cp "$srcdir"/makefiles/workmain.zuo $w/main.zuo + +-# The content of "$w/Makefile" records configuration decisions, ++# The content of "$w/Mf-config" records configuration decisions, + # and the Zuo build script takes it from there + cat > $w/Mf-config << END + srcdir=$srcdir +@@ -1119,6 +1140,7 @@ cursesLib=$cursesLib + ncursesLib=$ncursesLib + zlibLib=$zlibLib + LZ4Lib=$LZ4Lib ++STEXLIB=$STEXLIB + warningFlags=$warningFlags + Kernel=$Kernel + installscriptname=$installscriptname +@@ -1130,6 +1152,10 @@ preloadBootFiles=$preloadBootFiles + alwaysUseBootFile=$alwaysUseBootFile + relativeBootFiles=$relativeBootFiles + ++ZUO=$ZUO ++RM_ZUO=$RM_ZUO ++ZUO_TARGET=$ZUO_TARGET ++ + InstallBin=$installbin + InstallLib=$installlib + InstallMan=$installman/man1 +diff --git a/makefiles/Makefile.in b/makefiles/Makefile.in +index 3b95f065..0e3d307d 100644 +--- a/makefiles/Makefile.in ++++ b/makefiles/Makefile.in +@@ -3,8 +3,6 @@ workarea=$(w) + + include $(workarea)/Mf-config + +-ZUO=bin/zuo +- + .PHONY: build + build: $(ZUO) + + $(ZUO) $(workarea) MAKE="$(MAKE)" +@@ -144,9 +142,9 @@ pkg: $(ZUO) + .PHONY: clean + clean: $(ZUO) + + $(ZUO) $(workarea) clean MAKE="$(MAKE)" +- rm -f bin/zuo ++ $(RM_ZUO) + + # Using `+` here means that $(ZUO) gets built even if `-n`/`--dry-run` is provided to `make` +-$(ZUO): $(srcdir)/zuo/zuo.c ++$(ZUO_TARGET): $(srcdir)/zuo/zuo.c + + mkdir -p bin + + $(CC_FOR_BUILD) -DZUO_LIB_PATH='"'"../zuo/lib"'"' -o $(ZUO) $(srcdir)/zuo/zuo.c + +base-commit: 253230f7dfbb4fe777277d6bbf93f39f9567f086 +-- +2.41.0 + + +From 665bccc1c074131e790879adc1436f8059801171 Mon Sep 17 00:00:00 2001 +From: Matthew Flatt +Date: Sun, 17 Mar 2024 09:06:30 -0600 +Subject: [PATCH 2/2] adjust `configure ZUO=` support (#816) + +Continuing from b8838c3280, adjust the generated makefile so the +supplied `` is not a makefile dependency. That way, `ZUO=zuo` +works if `zuo` is installed and the current build directory is not the +source directory. (The `zuo` executable is a dependency in a real and +relevant sense, but not in the sense of dependencies that we normally +track in makefiles.) + +Also adapt the makefile for the case that `ZUO=...` is not supplied +and the build directory is not the source directory, in which case +`ZUO_LIB_PATH` needs to be relative to the source directory. + +Using `make ZUO=zuo` can also work, but in that case, `bin/zuo` is +still built as a dependency. It's possible that some portable makefile +magic could overcome that limitation, but it doesn't seem important. + +(cherry picked from commit d327968f37cdf669d15a9ad6d356bbf92c502bb9) +--- + configure | 3 ++ + makefiles/Makefile.in | 66 +++++++++++++++++++++---------------------- + 2 files changed, 36 insertions(+), 33 deletions(-) + +diff --git a/configure b/configure +index 782dd09b..9adae37a 100755 +--- a/configure ++++ b/configure +@@ -904,10 +904,12 @@ if [ "${zuoExternal}" = "" ] ; then + submod_instructions 'Source in "zuo" is missing' + fi + ZUO="bin/zuo" ++ ZUO_DEP="${ZUO}" + RM_ZUO="rm -f bin/zuo" + ZUO_TARGET="bin/zuo" + else + ZUO="${zuoExternal}" ++ ZUO_DEP="" + RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'" + ZUO_TARGET="DoNotBuildZuo" + fi +@@ -1153,6 +1155,7 @@ alwaysUseBootFile=$alwaysUseBootFile + relativeBootFiles=$relativeBootFiles + + ZUO=$ZUO ++ZUO_DEP=$ZUO_DEP + RM_ZUO=$RM_ZUO + ZUO_TARGET=$ZUO_TARGET + +diff --git a/makefiles/Makefile.in b/makefiles/Makefile.in +index 0e3d307d..fc8605a0 100644 +--- a/makefiles/Makefile.in ++++ b/makefiles/Makefile.in +@@ -4,55 +4,55 @@ workarea=$(w) + include $(workarea)/Mf-config + + .PHONY: build +-build: $(ZUO) ++build: $(ZUO_DEP) + + $(ZUO) $(workarea) MAKE="$(MAKE)" + + .PHONY: run +-run: $(ZUO) ++run: $(ZUO_DEP) + + $(ZUO) $(workarea) run + + .PHONY: kernel +-kernel: $(ZUO) ++kernel: $(ZUO_DEP) + + $(ZUO) $(workarea) kernel MAKE="$(MAKE)" + + .PHONY: install +-install: $(ZUO) ++install: $(ZUO_DEP) + $(ZUO) $(workarea) install MAKE="$(MAKE)" + + .PHONY: uninstall +-uninstall: $(ZUO) ++uninstall: $(ZUO_DEP) + + $(ZUO) $(workarea) uninstall MAKE="$(MAKE)" + + .PHONY: test-one +-test-one: $(ZUO) ++test-one: $(ZUO_DEP) + + $(ZUO) $(workarea) test-one MAKE="$(MAKE)" + + .PHONY: test-some-fast +-test-some-fast: $(ZUO) ++test-some-fast: $(ZUO_DEP) + + $(ZUO) $(workarea) test-some-fast MAKE="$(MAKE)" + + .PHONY: test-some +-test-some: $(ZUO) ++test-some: $(ZUO_DEP) + + $(ZUO) $(workarea) test-some MAKE="$(MAKE)" + + .PHONY: test +-test: $(ZUO) ++test: $(ZUO_DEP) + + $(ZUO) $(workarea) test MAKE="$(MAKE)" + + .PHONY: test-more +-test-more: $(ZUO) ++test-more: $(ZUO_DEP) + + $(ZUO) $(workarea) test-more MAKE="$(MAKE)" + + .PHONY: coverage +-coverage: $(ZUO) ++coverage: $(ZUO_DEP) + + $(ZUO) $(workarea) coverage MAKE="$(MAKE)" + + .PHONY: bootfiles +-bootfiles: $(ZUO) ++bootfiles: $(ZUO_DEP) + + $(ZUO) $(workarea) bootfiles MAKE="$(MAKE)" + + .PHONY: reset +-reset: $(ZUO) ++reset: $(ZUO_DEP) + + $(ZUO) $(workarea) reset MAKE="$(MAKE)" + + # Supply XM= to build boot files for +@@ -61,90 +61,90 @@ boot: + + $(ZUO) $(workarea) boot "$(XM)" MAKE="$(MAKE)" + + # `.boot` as alias for `boot XM=` +-%.boot: $(ZUO) ++%.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) boot $* MAKE="$(MAKE)" + + .PHONY: auto.boot +-auto.boot: $(ZUO) ++auto.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) boot MAKE="$(MAKE)" + + SCHEME=scheme + + .PHONY: cross.boot +-cross.boot: $(ZUO) ++cross.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) boot SCHEME="$(SCHEME)" MAKE="$(MAKE)" + + .PHONY: re.boot +-re.boot: $(ZUO) ++re.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) reboot SCHEME="$(SCHEME)" + + # Supply XM= to build boot files for + # with o=3 d=0 for the cross compiler, and only after + # building the kernel for the configured machine + .PHONY: bootquick +-bootquick: $(ZUO) ++bootquick: $(ZUO_DEP) + + $(ZUO) $(workarea) bootquick "$(XM)" MAKE="$(MAKE)" + + # `.bootquick` as alias for `boot XM=` +-%.bootquick: $(ZUO) ++%.bootquick: $(ZUO_DEP) + + $(ZUO) $(workarea) bootquick $* MAKE="$(MAKE)" + +-auto.bootquick: $(ZUO) ++auto.bootquick: $(ZUO_DEP) + + $(ZUO) $(workarea) bootquick MAKE="$(MAKE)" + + # Supply XM=-.bootpbchunk to repackage boot files for + # with pbchunk sources, including additional + # boot files + .PHONY: bootpbchunk +-bootpbchunk: $(ZUO) ++bootpbchunk: $(ZUO_DEP) + + $(ZUO) $(workarea) bootpbchunk "$(XM)" $(ARGS) MAKE="$(MAKE)" + + # `.bootpbchunk` as alias for `pbchunk XM=` +-%.bootpbchunk: $(ZUO) ++%.bootpbchunk: $(ZUO_DEP) + + $(ZUO) $(workarea) bootpbchunk $* $(ARGS) MAKE="$(MAKE)" + + .PHONY: docs +-docs: build $(ZUO) ++docs: build $(ZUO_DEP) + + $(ZUO) $(workarea) docs MAKE="$(MAKE)" + + .PHONY: csug +-csug: build $(ZUO) ++csug: build $(ZUO_DEP) + + $(ZUO) $(workarea) csug MAKE="$(MAKE)" + + .PHONY: release_notes +-release_notes: build $(ZUO) ++release_notes: build $(ZUO_DEP) + + $(ZUO) $(workarea) release_notes MAKE="$(MAKE)" + + .PHONY: install-docs +-install-docs: build $(ZUO) ++install-docs: build $(ZUO_DEP) + + $(ZUO) $(workarea) install-docs MAKE="$(MAKE)" + + .PHONY: install-csug +-install-csug: build $(ZUO) ++install-csug: build $(ZUO_DEP) + + $(ZUO) $(workarea) install-csug MAKE="$(MAKE)" + + .PHONY: install-release_notes +-install-release_notes: build $(ZUO) ++install-release_notes: build $(ZUO_DEP) + + $(ZUO) $(workarea) install-release_notes MAKE="$(MAKE)" + + .PHONY: bintar +-bintar: $(ZUO) ++bintar: $(ZUO_DEP) + + $(ZUO) $(workarea) bintar MAKE="$(MAKE)" + + .PHONY: rpm +-rpm: $(ZUO) ++rpm: $(ZUO_DEP) + + $(ZUO) $(workarea) rpm MAKE="$(MAKE)" + + .PHONY: pkg +-pkg: $(ZUO) ++pkg: $(ZUO_DEP) + + $(ZUO) $(workarea) pkg MAKE="$(MAKE)" + + .PHONY: clean +-clean: $(ZUO) ++clean: $(ZUO_DEP) + + $(ZUO) $(workarea) clean MAKE="$(MAKE)" + $(RM_ZUO) + + # Using `+` here means that $(ZUO) gets built even if `-n`/`--dry-run` is provided to `make` + $(ZUO_TARGET): $(srcdir)/zuo/zuo.c + + mkdir -p bin +- + $(CC_FOR_BUILD) -DZUO_LIB_PATH='"'"../zuo/lib"'"' -o $(ZUO) $(srcdir)/zuo/zuo.c ++ + $(CC_FOR_BUILD) -DZUO_LIB_PATH='"'"$(upsrcdir)/zuo/lib"'"' -o $(ZUO) $(srcdir)/zuo/zuo.c +-- +2.41.0 + diff --git a/gnu/packages/patches/chez-scheme-bin-sh.patch b/gnu/packages/patches/chez-scheme-bin-sh.patch index 7650914f01..c2a4b292f7 100644 --- a/gnu/packages/patches/chez-scheme-bin-sh.patch +++ b/gnu/packages/patches/chez-scheme-bin-sh.patch @@ -1,6 +1,6 @@ -From 3c838e6a0c3214d95bf02048cddccfd1b69a679f Mon Sep 17 00:00:00 2001 +From b8428ad25b437acf4bd8210b14db207b71fe44c3 Mon Sep 17 00:00:00 2001 From: Philip McGrath -Date: Thu, 19 May 2022 13:41:56 -0400 +Date: Wed, 24 Aug 2022 19:55:14 -0400 Subject: [PATCH] patch s_process for "/bin/sh" on Guix If: @@ -14,22 +14,27 @@ then `s_process` will call `execl` with the file specified by `_PATH_BSHELL` instead of "/bin/sh". Checking that the path specified by `_PATH_BSHELL` exists safeguards -against obscure errors if attempting to use stand-alone executables -built by the patched Racket in non-Guix envoronments. +against obscure errors if attempting to use the patched Chez Scheme +or executables it builds in non-Guix envoronments. This patch does not change the behavior of `s_system`, which relies on `system` from the C library. --- + +Notes: + See also racket-chez-scheme-bin-sh.patch, racket-rktio-bin-sh.patch, + and zuo-bin-sh.patch. + c/prim5.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/c/prim5.c b/c/prim5.c -index 5a07893..bc2736c 100644 +index 90b087f1..284f063f 100644 --- a/c/prim5.c +++ b/c/prim5.c -@@ -23,6 +23,12 @@ - #include - #include +@@ -27,6 +27,12 @@ + #include + #endif +/* BEGIN PATCH for Guix */ +#ifndef WIN32 @@ -39,8 +44,8 @@ index 5a07893..bc2736c 100644 + /* locally defined functions */ static INT s_errno(void); - static iptr s_addr_in_heap(uptr x); -@@ -746,6 +752,17 @@ static ptr s_process(char *s, IBOOL stderrp) { + static IBOOL s_addr_in_heap(uptr x); +@@ -875,6 +881,17 @@ static ptr s_process(char *s, IBOOL stderrp) { INT tofds[2], fromfds[2], errfds[2]; struct sigaction act, oint_act; @@ -58,10 +63,10 @@ index 5a07893..bc2736c 100644 if (pipe(tofds)) S_error("process","cannot open pipes"); if (pipe(fromfds)) { -@@ -771,7 +788,9 @@ static ptr s_process(char *s, IBOOL stderrp) { - CLOSE(1); if (dup(fromfds[1]) != 1) _exit(1); - CLOSE(2); if (dup(stderrp ? errfds[1] : 1) != 2) _exit(1); - {INT i; for (i = 3; i < NOFILE; i++) (void)CLOSE(i);} +@@ -911,7 +928,9 @@ static ptr s_process(char *s, IBOOL stderrp) { + } + } + #endif /* __GNU__ Hurd */ - execl("/bin/sh", "/bin/sh", "-c", s, NULL); + /* BEGIN PATCH for Guix */ + execl(guix_sh, guix_sh, "-c", s, NULL); @@ -70,7 +75,7 @@ index 5a07893..bc2736c 100644 /*NOTREACHED*/ } else { -base-commit: 9df56e7b25bc523663eac3da24be33afc5f76c84 +base-commit: 253230f7dfbb4fe777277d6bbf93f39f9567f086 -- -2.32.0 +2.41.0 -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 30 03:57:16 2024 Received: (at 70065) by debbugs.gnu.org; 30 Mar 2024 07:57:16 +0000 Received: from localhost ([127.0.0.1]:43868 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqTaR-0005Yj-K1 for submit@debbugs.gnu.org; Sat, 30 Mar 2024 03:57:16 -0400 Received: from mail-ej1-x642.google.com ([2a00:1450:4864:20::642]:43183) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqTaL-0005Y6-Uy for 70065@debbugs.gnu.org; Sat, 30 Mar 2024 03:57:10 -0400 Received: by mail-ej1-x642.google.com with SMTP id a640c23a62f3a-a47385a4379so641752466b.0 for <70065@debbugs.gnu.org>; Sat, 30 Mar 2024 00:57:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711785417; x=1712390217; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=/GEP33h1WLVqP/6hJ2cYi/nZWDcjuHKf6ttfFN141Jw=; b=BTHFfOPHZFSf+LTb/VnsFxVt9e5Fhw6Z8IQS+IS3ALAtfg1d/MeYOhvG5p54MMJm63 eKflDPpaYFT3Wg5f2xTMdQkOOMmuHRVAF9zF2QTh/D1X5ZbXX4/GQ1ZWucnZTLa29B0j LaLcfYb4rhIJ1cJzPAfiz4RZel6SynA3gOzUxKzQNpaCIUB0bV9EJP8Yg6i1ZtCzDWDu D2OsDJX2fmPp565Zgz0EK2ryh+QyK96PerenFjdN4ykW9jIyFNGbIY/YpmVl9jJwAO2R hlr8wBXYdGp7EY0Jx2Ja1qOXrPSSbgFkRKougS24iIgkZ8L4Cf25sRAP0q1NUT5xJXGk SCzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711785417; x=1712390217; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=/GEP33h1WLVqP/6hJ2cYi/nZWDcjuHKf6ttfFN141Jw=; b=lyAnHUGXwLLthGh//e+R+xm95WAYji6nvhR3a2FQaJnfdtZeDywDcGYBXWjvDJqwSA TaDnDcopeZ/UgO1+s66KnUKh19rv4z94AlTBqZMjfsc5w9HMRDHk67eJvLaHZlk60rvD XXpiJM4WFFn+GsiygACEcTne9ILLRqzzOut6Csov7QgnRvIQo2CzxyxfifIpuKnlM+bt JotcQ1Z/TYIWRzpdM+tcNVcqgMwUoy9LXir+tT1CuTsXFjQ+CBMbM9B8eUi1nnWiDVfw T/6BIGHTnTF9StebLft+V8nxPw3KO9cF2TJ9/0DQLnVF6uwGUdI2lZ/PGki46Y7EWb+K mshQ== X-Forwarded-Encrypted: i=1; AJvYcCWu8WQuyc1vs6PN4Pbto6Vj9wH0+bolm0qxfhaAe0nL5SdTgSS4sqxELb4C7E4wOs42WXb1Kok80LTLL9WyVhDUMAfsMmY= X-Gm-Message-State: AOJu0YzRJ9e6dXsDo1edeyD5jmo1X5egNgg0gepRlaG8WUbbl9G49kO6 8K1wfV9luBaFWxvoQWMTVOQU+rLdL7nzNwHL8lUX5ZTmE5Qw3jxAZ8dY0Ztlc6o= X-Google-Smtp-Source: AGHT+IHdyWnTvubKdYJ8JM0wXhvZwO7QanZ32Pyt21O52Zslsy25do6+rqdykYlXomfzeRP4X3IN8A== X-Received: by 2002:a17:907:944c:b0:a4d:fe2f:a70e with SMTP id dl12-20020a170907944c00b00a4dfe2fa70emr7397745ejc.1.1711785416985; Sat, 30 Mar 2024 00:56:56 -0700 (PDT) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id bu13-20020a170906a14d00b00a46aba003eesm2799527ejb.215.2024.03.30.00.56.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Mar 2024 00:56:56 -0700 (PDT) Message-ID: <8a2d805ad3c7bbed6c2c778837e8548c505fcef0.camel@gmail.com> Subject: Re: [bug#70065] [PATCH 4/6] gnu: chez-scheme: Update to 10.0.0. From: Liliana Marie Prikler To: Philip McGrath , 70065@debbugs.gnu.org Date: Sat, 30 Mar 2024 08:56:53 +0100 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Andrew Tropin X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Am Freitag, dem 29.03.2024 um 01:18 -0400 schrieb Philip McGrath: > * gnu/packages/patches/chez-scheme-bin-sh.patch: Refresh patch. > * gnu/packages/patches/chez-scheme-backport-configure.patch: New > file. > * gnu/local.mk (dist_patch_DATA): Add it. > * gnu/packages/chez.scm (chez-scheme): Update to 10.0.0.=C2=A0 Inherit > from > 'chez-scheme-for-racket'. Is there a good reason to do it this way? Or could we build racket with regular chez-scheme afterwards? > [source]: Use "chez-scheme-backport-configure.patch". > : Also unbundle Zuo. > [native-inputs, native-search-paths, outputs, arguments] > [supported-systems]: Inherit from 'chez-scheme-for-racket'. > [inputs]: Likewise, replacing the bootfile package and adding libx11. > [description]: Update based on the User's Guide, release notes, man > page, and README file. > (chez-scheme-bootstrap-bootfiles)[supported-systems]: All systems are > now supported. > (chez-scheme-for-system): Deprecate it, since 'chez-scheme' now > supports > all systems. > (chez-srfi, chez-web, chez-sockets, chez-matchable, chez-irregex) > (chez-fmt, chez-mit, chez-scmutils)[native-inputs]: Use 'chez-scheme' > instead of 'chez-scheme-for-system'. > * gnu/packages/emacs-xyz.scm (emacs-geiser-chez)[inputs]: Likewise. >=20 > Change-Id: I287ff66f385f20e69c1411abcc94f19dd45870c5 I think I got pinged for this due to the emacs side, which as far as I can see LGTM. I haven't looked at all of the patch however, let alone the series. As usual for these large rackets (pun intended), I do wonder whether it'd be possible to split the commits into more reviewable hunks. For instance, I don't think chez-scheme-for-system would need to be adjusted yet =E2=80=93 it could simply return chez-scheme and then in the n= ext commit be deprecated or dropped. Cheers From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 30 10:28:41 2024 Received: (at 70065) by debbugs.gnu.org; 30 Mar 2024 14:28:41 +0000 Received: from localhost ([127.0.0.1]:45951 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqZhI-0003RE-Ju for submit@debbugs.gnu.org; Sat, 30 Mar 2024 10:28:40 -0400 Received: from mail-40131.protonmail.ch ([185.70.40.131]:57125) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqZhE-0003QL-Ue for 70065@debbugs.gnu.org; Sat, 30 Mar 2024 10:28:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1711808908; x=1712068108; bh=Pc3mBoZXdhAo7GR6x/489wcg8bf9c7hTSanWHruLXgg=; h=Date:To:From:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=vOknkcEVKPLV8tAz2GmFGb89qZDzNRtkkXHlpvd4cMSjbsotXp4iyGRpc8VDc4w37 JZAMqIr+ezlrMliriJ5c0HZE25XI78C1N0IFQk4D9jYhNS85b+vd5j49zdj7OmjVyf HXQwajfdQIq4a/AA2jreOgTd2GkqTf4NP6l1dC550XTPG5Atwwmw97ZTpoZ6J3/h++ T5AyboOc3CEeWKXtMCmwVQL3RH9QIFlSMZdJPfDQuAqDk1w00csAj9D4RQQJYPOA7J woqUm0gPW27JNSznChrBOaRJyz8yJ/juiKWkntraFsujYt2t2szWbGZFODzWBcYg9g Dds0flIIs+RRQ== Date: Sat, 30 Mar 2024 14:28:19 +0000 To: Philip McGrath , 70065@debbugs.gnu.org, cox.katherine.e+guix@gmail.com From: Skyler Ferris Subject: Re: [bug#70065] [PATCH 0/6] gnu: Update to Racket 8.12, Chez Scheme 10, and Zuo 1.9. Message-ID: <053c4001-5bab-4077-abb6-b883e7b053d2@protonmail.com> In-Reply-To: References: Feedback-ID: 40635331:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 70065 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi all! I started reviewing these patches last night and just finished=20 up.=C2=A0 I'll reply to each patch individually with notes, the big thing i= s=20 loko-scheme running into an error due to the change to=20 chez-scheme-for-system (I think the deprecation definition might need an=20 update, because IIUC the syntax is supposed to be backwards-compatible=20 until it is removed). > Is there a good reason to do it this way? Or could we build racket > with regular chez-scheme afterwards? I believe this is addressed by this comment from patch 6/6; we can't=20 rely on chez-scheme being the correct version to use for racket. But=20 please correct me if I misunderstood Philip! > Since the pre-releases for Chez Scheme 10.0.0, all of Racket's changes ha= ve > been merged upstream, and development will be kept in sync going > forward. However, there is no plan to align the Chez Scheme and Racket > release cycles. For the near fulture, a given released version of Racket > will continue to depend on a specific pre-release version of Chez Scheme = as > part of Racket CS's "ABI". See upstream discussion at > . In solidarity, Skyler From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 30 10:31:28 2024 Received: (at 70065) by debbugs.gnu.org; 30 Mar 2024 14:31:28 +0000 Received: from localhost ([127.0.0.1]:45962 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqZjz-0003bJ-MQ for submit@debbugs.gnu.org; Sat, 30 Mar 2024 10:31:27 -0400 Received: from mail-40131.protonmail.ch ([185.70.40.131]:48283) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqZjx-0003b6-W5 for 70065@debbugs.gnu.org; Sat, 30 Mar 2024 10:31:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1711809078; x=1712068278; bh=5sYGbK6j85i38rLJ38XTKt18GIVyj025w0EVDMZXFdo=; h=Date:To:From:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=jvReCnHYMWiY37pnEMAIERN6QLeQd12kXORr4ahchAJfPuWGBuRVRvZXMdrAki0pS snwxJEC5/E/mKB7m2MfsJLREql1TJKl7HbGQOOzL1/hnzy5loVnnR8am+EnIbd9c5x wTyj5hOxErO+Z+Xem+LvwYx+sOu7gt/XV5lvxMejHV+L/j+KccDGP8zEyR1+txPUni vBBW6oMFZ/UUemuVXDNySfjxlLatuKP9+Pxmv4NYDM4acJ8umd73BuzyeRhgrBYah6 dkdpnLnA6PDw8l6aYzK6IvxFztDdSICuGS2wHBKM0I9KXMb/O0A7sQfIKnY4H8INox gbNcRSN+c+EoA== Date: Sat, 30 Mar 2024 14:31:11 +0000 To: Philip McGrath , 70065@debbugs.gnu.org From: Skyler Ferris Subject: Re: [bug#70065] [PATCH 1/6] gnu: zuo: Update to 1.9. Message-ID: In-Reply-To: References: Feedback-ID: 40635331:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 70065 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) No comments on this patch; looks fine. From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 30 10:35:27 2024 Received: (at 70065) by debbugs.gnu.org; 30 Mar 2024 14:35:27 +0000 Received: from localhost ([127.0.0.1]:45971 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqZnq-0003mI-Mi for submit@debbugs.gnu.org; Sat, 30 Mar 2024 10:35:26 -0400 Received: from mail-4316.protonmail.ch ([185.70.43.16]:20193) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqZno-0003m1-1E for 70065@debbugs.gnu.org; Sat, 30 Mar 2024 10:35:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1711809315; x=1712068515; bh=BK2Za5M6ZvJEuefJ6B6MKwe9dy62mWZOT+z2kFg/3aw=; h=Date:To:From:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=Z299oMl4+sMq7awBuA9kERH5hM589XMzS4bQ5rnFVt76f+IDRQQp8o9v47wVUOtI0 rauI22vjXIy1G6c0shC+fs1M57kbRP8eCmyzxajcV5guJQs/wuEZmC5ceK86hGWrG3 VL6eilLtJForQt3WewvPwiNz0QrB7KjZr5Q3pDxwLHd+cixydmuQSZqwca/Iy57gCN 9aUhlaWpbBWdmMo5TT9Fqn1XMXO7nauF3BXcZu+cdWd1/ag0CLA4ChlqclxUAC+cWX vHFWRV6sVgsNDsfxh1XWXY590NnsRycX6FsJY14jrqWdZ26lRbqktrtsxXbB2CC68k OjdGKAzQ48WTQ== Date: Sat, 30 Mar 2024 14:35:06 +0000 To: Philip McGrath , 70065@debbugs.gnu.org From: Skyler Ferris Subject: Re: [bug#70065] [PATCH 2/6] gnu: racket: Update to 8.12. Message-ID: <1b795f9e-bcef-4b14-8ae3-0b69c79d51f9@protonmail.com> In-Reply-To: <6b2db55dfe43979e28bd85d2999919419d56dd84.1711688274.git.philip@philipmcgrath.com> References: <6b2db55dfe43979e28bd85d2999919419d56dd84.1711688274.git.philip@philipmcgrath.com> Feedback-ID: 40635331:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 70065 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 3/28/24 22:18, Philip McGrath wrote: > +(define chez-configure > + ;; The custom Chez 'configure' script doesn't allow unrecognized flags= , such > + ;; as those automatically added by `gnu-build-system`. This replacemen= t > + ;; phase uses only the explicitly provided `#:configure-flags`. > + #~(lambda* (#:key inputs (configure-flags '()) out-of-source? > + #:allow-other-keys) > + (let* ((abs-srcdir (getcwd)) > + (srcdir (if out-of-source? > + (string-append "../" (basename abs-srcdir)) > + "."))) > + (format #t "source directory: ~s (relative from build: ~s)~%" > + abs-srcdir srcdir) > + (when out-of-source? > + (begin > + (mkdir "../build") > + (chdir "../build"))) > + (format #t "build directory: ~s~%" (getcwd)) > + (format #t "configure flags: ~s~%" configure-flags) > + (apply invoke > + (string-append srcdir "/configure") > + configure-flags)))) > + Are the format statements supposed to be here or are they left over from=20 debugging? > + ;; Building the documentation requires stex and a running sche= me. > + ;; TODO: improve cross support upstream. I believe this comment should be associated with the build-docs phase,=20 not the install-docs phase, correct? Additionally, I am not too familiar with autotools, so while I did look=20 over it and the changes seem reasonable my perspective on that aspect of=20 this patch should be taken with a grain of salt. From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 30 10:35:51 2024 Received: (at 70065) by debbugs.gnu.org; 30 Mar 2024 14:35:51 +0000 Received: from localhost ([127.0.0.1]:45975 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqZoF-0003nW-1s for submit@debbugs.gnu.org; Sat, 30 Mar 2024 10:35:51 -0400 Received: from mail-40131.protonmail.ch ([185.70.40.131]:36087) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqZoD-0003nI-Qg for 70065@debbugs.gnu.org; Sat, 30 Mar 2024 10:35:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1711809342; x=1712068542; bh=CicnMKHwX7lZGrDFLsU3licstS67i6cFBuPKEBsxPLc=; h=Date:To:From:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=iO76PDUnl3YHcyoJCQjkK1V5wUYc5MCyfA8DKADCody58iy1NbicSLAn93rfVr3Nb J5ctbLjJprtOW/h+uCXHz6fQFC0w0TZzJt6ptVi0eVsEfJWjsBmzdTRfsRzqLU6jSX hkqXAUkQswltLMbLs6iC32zjn5EhJkmTyIoYhd7N7z5jx6JEbEH7YUFNEykGzCnz+z LubbLD8xrIiN3jPGlduxxjFAyNcUYG3eQVkwsTZ1HH2oQGRIfJCiG9P3Omo2Uqoc48 a1ednSKZt4YhAjI485Uwnqq8lerh6E3EFKTgBhNeiHjW183HMLwvrZS1oiVGLANOmT gW8ST5/SVDr1Q== Date: Sat, 30 Mar 2024 14:35:37 +0000 To: Philip McGrath , 70065@debbugs.gnu.org From: Skyler Ferris Subject: Re: [bug#70065] [PATCH 3/6] gnu: chez-scheme: Reorganize package definitions. Message-ID: In-Reply-To: <5c84a4bda522531288944d78c505c4328735ac5d.1711688274.git.philip@philipmcgrath.com> References: <5c84a4bda522531288944d78c505c4328735ac5d.1711688274.git.philip@philipmcgrath.com> Feedback-ID: 40635331:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 70065 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) No comments on this patch, other than appreciation for making diffs=20 readable. =3D) From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 30 10:40:09 2024 Received: (at 70065) by debbugs.gnu.org; 30 Mar 2024 14:40:09 +0000 Received: from localhost ([127.0.0.1]:45981 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqZsN-0003yT-R6 for submit@debbugs.gnu.org; Sat, 30 Mar 2024 10:40:09 -0400 Received: from mail-40133.protonmail.ch ([185.70.40.133]:41627) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqZsL-0003xj-UA for 70065@debbugs.gnu.org; Sat, 30 Mar 2024 10:40:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1711809597; x=1712068797; bh=ZspifcD7N/Lr+ZLBf3rLIUDdrrfEfCzLs+P4G6Q1BrA=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=MxWN2ZMK50REiptAA1nAaQ31mmcRlF+5/pW51dStnjt4SCV/STR7DCs5KtbHcr2sG vd/bAXwU4BQLejK4asO9a9ukRQd46B3Y4tR2He9zZVphuHdzbQ2fxgSCBTGYp2yFcN CPGrAyazlyYwoiWQM7imfWXv40TJVpxNdQ399zuARN2EQlz31hHDiDb0opSTP0VqOP ZSfY+HHRbBg7p0UPgL7WnirlmuudqBx+dnZSgpS7ucXa6tKFeubySMlLSz8TkPxVeZ 9Zs9uWx0Ti3gO3YZl+avixlWlR9LuAM4C91pKP1xrz8/iDWaawus01ilebXr9zQ240 2Mfrjm7h4d7uQ== Date: Sat, 30 Mar 2024 14:39:52 +0000 To: Philip McGrath , 70065@debbugs.gnu.org From: Skyler Ferris Subject: Re: [bug#70065] [PATCH 4/6] gnu: chez-scheme: Update to 10.0.0. Message-ID: <1f2ac17f-8095-41b7-a0c3-db6487d74aea@protonmail.com> In-Reply-To: References: Feedback-ID: 40635331:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 3/28/24 22:18, Philip McGrath wrote: > -(define* (chez-scheme-for-system #:optional > - (system (or (%current-target-system) > - (%current-system)))) > - "Return 'chez-scheme' if it fully supports SYSTEM, including support f= or > -bootstrapping and native threads. Otherwise, return > -'chez-scheme-for-racket'." > - (if (and=3D> (chez-upstream-features-for-system system) > - (lambda (features) > - (every (cut memq <> features) > - '(threads > - ;; We can cross-compile for platforms without > - ;; bootstrap bootfiles, but we can't self-host > - ;; on them short of adding more binary seeds. > - bootstrap-bootfiles)))) > - chez-scheme > - chez-scheme-for-racket)) > +(define-deprecated (chez-scheme-for-system #:optional system) chez-schem= e > + "Returns 'chez-scheme'." > + chez-scheme) As mentioned in the reply to the cover letter, it looks like this broke=20 loko-scheme from gnu/pcakages/loko.scm. In particular, I get a "wrong type to apply" error in its use of=20 "chez-scheme-for-system". I ran into this problem when running the=20 following command: ``` ./pre-inst-env guix refresh --list-depedent zuo -e '(@ (gnu packages=20 racket) racket-vm-cs)' racket chez-scheme chez-scheme-for-racket ``` For this reason, I was also unable to verify that all dependents=20 build... presumably, the CI will run into the same error when this=20 patch's turn comes up. I did check the following packages based on the=20 output of the refresh without this patch applied, and they all build=20 with all patches in this series applied: ``` ./pre-inst-env guix build chez-socket chez-nanopass chez-fmt=20 chez-scmutils chez-irregex emacs-geiser-chez emacs-geiser-racket ``` So I think loko-scheme is the only impacted dependent. Pending=20 cross-builds from the CI. As before, my experience with autotools is limited so my review of the=20 build changes should be taken with a grain of salt. It looks like some=20 of the patched code is fixing bugs rather than adapting for guix so they=20 should be upstreamed, but I assume Philip is already on top of that. From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 30 10:40:59 2024 Received: (at 70065) by debbugs.gnu.org; 30 Mar 2024 14:40:59 +0000 Received: from localhost ([127.0.0.1]:45985 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqZtD-00041P-EP for submit@debbugs.gnu.org; Sat, 30 Mar 2024 10:40:59 -0400 Received: from mail-4322.protonmail.ch ([185.70.43.22]:17445) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqZtA-00040U-RA for 70065@debbugs.gnu.org; Sat, 30 Mar 2024 10:40:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1711809648; x=1712068848; bh=cnym4TncsHmHOXjDJe68pH6nEw8spYeyidX/ZvsO6Io=; h=Date:To:From:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=wgn7HbVq9yeqvVdcDCXiFm861sLWmzftdo4UrCRNhF3rAVrhKbFwA3I+IgPdWfxJ4 kL+LwUr/EL3YiUCuZipZPxzZTAyV3QE517pZfB/g3gXphLypAIwqU5DPP7fdtBjUoK iG4vfltJWp2ooC4c8kMAgcEdxVOHl4A9y9ysAGgU/icWSaX+ivgwSEGIW0VauifEoL +Z3t0zYpFNnNsAuFBewDtknSOxopBXpfqWoivhh5c0wC6w3DxGDahTfDIXpRkGWX9C EhHIz+e1VDkZYkRboYFSzqla6kzUnXRFL7Lub+ppt1GeaO4Me3USa6JGl2bqKeFg5V DmDi8TuStHGTg== Date: Sat, 30 Mar 2024 14:40:43 +0000 To: Philip McGrath , 70065@debbugs.gnu.org From: Skyler Ferris Subject: Re: [bug#70065] [PATCH 5/6] gnu: chez-scheme: Update and simplify machine-type handling. Message-ID: In-Reply-To: <1b01392a622c3ba51360ffccfa1746738fc39837.1711688274.git.philip@philipmcgrath.com> References: <1b01392a622c3ba51360ffccfa1746738fc39837.1711688274.git.philip@philipmcgrath.com> Feedback-ID: 40635331:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 70065 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) No comments on this patch; looks good. From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 30 10:41:25 2024 Received: (at 70065) by debbugs.gnu.org; 30 Mar 2024 14:41:25 +0000 Received: from localhost ([127.0.0.1]:45991 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqZtc-00043I-OW for submit@debbugs.gnu.org; Sat, 30 Mar 2024 10:41:24 -0400 Received: from mail-40133.protonmail.ch ([185.70.40.133]:30559) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqZtb-000435-24 for 70065@debbugs.gnu.org; Sat, 30 Mar 2024 10:41:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1711809675; x=1712068875; bh=cnym4TncsHmHOXjDJe68pH6nEw8spYeyidX/ZvsO6Io=; h=Date:To:From:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=WXSKPQEpaQOLg+SPqQlWUE7A4qimyageo2D7F9DROtyNqSsd7zjtqkP7IgXL0GKMk LAZsRaBE02HhRPr3afFMPdn81DvZDagPGWbF62XGET/0gYeR0oopDOP50Z9jZ300sM DmHSrbu81GVJHgN6JjSGCjNCs0Ej5oruCAJEc7Ca7LoPQUWP0/SuOuiMTwv95ZS9N5 FgFm9imkoDqy0Atwc9aN4npfs5FOTTPYOI2q4VXWxfxVurIJ8SgDYjQiTzPkjYzjRJ htSDTcCCvaSGcbFjkEsUxUlrmR4uc0gSuaHuZnorDa3Y4s/osS6LksbyiNI4by2LLe bd+aFrWOD1Vhg== Date: Sat, 30 Mar 2024 14:41:09 +0000 To: Philip McGrath , 70065@debbugs.gnu.org From: Skyler Ferris Subject: Re: [bug#70065] [PATCH 6/6] gnu: chez-scheme: Bootstrap from source. Message-ID: <21cedad0-6d33-40a0-9b91-4d91408b3187@protonmail.com> In-Reply-To: References: Feedback-ID: 40635331:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 70065 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) No comments on this patch; looks good. From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 30 18:10:40 2024 Received: (at 70065) by debbugs.gnu.org; 30 Mar 2024 22:10:40 +0000 Received: from localhost ([127.0.0.1]:46273 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqguK-0001el-TI for submit@debbugs.gnu.org; Sat, 30 Mar 2024 18:10:40 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:41893) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqguI-0001dy-DU for 70065@debbugs.gnu.org; Sat, 30 Mar 2024 18:10:35 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id C3FDF5C0064; Sat, 30 Mar 2024 18:10:26 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Sat, 30 Mar 2024 18:10:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to; s=fm2; t=1711836626; x=1711923026; bh=rwA/UzSzAYX2ijg9Qmygp O4ZgZN4m2AOx9/BijDpznI=; b=R3nWsHABRm5cZ6dyz7oFuqDNBY6hUUT4zTf/i fNNh/EEtX0J13q+LRIXuGNsfsrPaNQKty/60nT9zr47W8xVESOeDXzRj6pAUqwDS VV9srl585ruV+Yj7gaXHp0IS9HPwTcH0Isc68ib11GAdzutqVguv/mZaisPdG8oD YU1IeCdBsWElY3DLQFC5Vc9VQn5rj+UgO+ta/pN4qPFGLASJFh6ZpeFtQf9Jd/Mi NNnxSoFljl+k6Oz+1SDXlmGxdH5aBKJQzFfGBsfMJ6ugOnM2ze9tIeDDTr2um2an SYHXuWOi0yFLzA9N57r/83tVChLktWexu2p3mkFZDFj42nNVg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711836626; x= 1711923026; bh=rwA/UzSzAYX2ijg9QmygpO4ZgZN4m2AOx9/BijDpznI=; b=J 9ADIElaBAcDCUo2U+U8BC2UALku5R8d6QfOgaC6EcIIpeq9vPQTjRTdk9EzKmMJ+ yyLVYXrLWD16IGZ4EvtJwo6U2QxegZ5PRdy4mBOXrHEi7u4S3fvd+SqugcJHBaie Wx2FcFa1xa4bwxZfbyYBerbpXpZe9p7Oj5fByWvkqRK9IUG7qWRNoQNBwM2+B8hp 2EOYbdl8A5wVDUBlkrMWuweZxrnvppuuTPDHY2eEK8dRwWBI/N4K+4p2aBfc/aMa CjnotvH1KTyriFHipCg/9Pxbrj506WvQP2kKU88xa9o2LE4QYvn7UVcJjZ037DTP 0p0PCBBP014Wm4jna18Ng== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvhedgudefiecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepkfffgggfuffvfhfhjggtgfesth ejredttddvjeenucfhrhhomheprfhhihhlihhpucfotgfirhgrthhhuceophhhihhlihhp sehphhhilhhiphhmtghgrhgrthhhrdgtohhmqeenucggtffrrghtthgvrhhnpeelfeegte fgudetueduudehkeeigffhvdffuddtvdeitdevhefgfeelvdfgkefhkeenucevlhhushht vghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehphhhilhhiphesphhhih hlihhpmhgtghhrrghthhdrtghomh X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 30 Mar 2024 18:10:26 -0400 (EDT) Message-ID: <4dce3077-f540-43f0-902b-b74f77ef9eb8@philipmcgrath.com> Date: Sat, 30 Mar 2024 18:10:24 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [bug#70065] [PATCH 2/6] gnu: racket: Update to 8.12. To: Skyler Ferris , 70065@debbugs.gnu.org References: <6b2db55dfe43979e28bd85d2999919419d56dd84.1711688274.git.philip@philipmcgrath.com> <1b795f9e-bcef-4b14-8ae3-0b69c79d51f9@protonmail.com> Content-Language: en-US From: Philip McGrath In-Reply-To: <1b795f9e-bcef-4b14-8ae3-0b69c79d51f9@protonmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 70065 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Skyler, On 3/30/24 10:35, Skyler Ferris wrote: > On 3/28/24 22:18, Philip McGrath wrote: >> +(define chez-configure >> + ;; The custom Chez 'configure' script doesn't allow unrecognized flags, such >> + ;; as those automatically added by `gnu-build-system`. This replacement >> + ;; phase uses only the explicitly provided `#:configure-flags`. >> + #~(lambda* (#:key inputs (configure-flags '()) out-of-source? >> + #:allow-other-keys) >> + (let* ((abs-srcdir (getcwd)) >> + (srcdir (if out-of-source? >> + (string-append "../" (basename abs-srcdir)) >> + "."))) >> + (format #t "source directory: ~s (relative from build: ~s)~%" >> + abs-srcdir srcdir) >> + (when out-of-source? >> + (begin >> + (mkdir "../build") >> + (chdir "../build"))) >> + (format #t "build directory: ~s~%" (getcwd)) >> + (format #t "configure flags: ~s~%" configure-flags) >> + (apply invoke >> + (string-append srcdir "/configure") >> + configure-flags)))) >> + > Are the format statements supposed to be here or are they left over from > debugging? Yes, the format statements are supposed to be there: (@ (guix build gnu-build-system) configure) prints the same messages. The code is unchanged from the chez-scheme configure phase, just factored out because we will also need it for cross-compiling chez-scheme-for-racket-bootstrap-bootfiles (because there's now a supported way to do that, and the experimental script we'd been using had bit-rotted) and for chez-scheme-bootstrap-bootfiles (native and cross) once we start bootstrapping it. >> + ;; Building the documentation requires stex and a running scheme. >> + ;; TODO: improve cross support upstream. > I believe this comment should be associated with the build-docs phase, > not the install-docs phase, correct? > I had intended to put it here, but your comment prompted me to rethink it. For context, the build-docs phase is new in this commit: previously, I relied on the fact that the install-docs target depends on build-docs. I now think I should move the first line of the comment to build-docs and add a comment to install-docs pointing that out, because its part of the issue with cross-compilation. (Currently, the build scripts try to use the cross-compiled scheme to build the docs, which obviously doesn't work. The Right Thing would be to build the docs using the native scheme while using the sources from the cross-built scheme.) Thanks, Philip From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 30 18:49:24 2024 Received: (at 70065) by debbugs.gnu.org; 30 Mar 2024 22:49:24 +0000 Received: from localhost ([127.0.0.1]:46321 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqhVr-0003kM-JT for submit@debbugs.gnu.org; Sat, 30 Mar 2024 18:49:24 -0400 Received: from fhigh7-smtp.messagingengine.com ([103.168.172.158]:48367) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqhVp-0003jk-3d for 70065@debbugs.gnu.org; Sat, 30 Mar 2024 18:49:22 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 76D2411400BC; Sat, 30 Mar 2024 18:49:13 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Sat, 30 Mar 2024 18:49:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1711838953; x=1711925353; bh=wEzo6/Q98j 39dhIATXY0CYbkSWV/c+/iiL71kedF6K0=; b=GQhKUJvbqxA1GIHX6w3t0319cL mzhO7ougW3Fx3O3vH9QAnn18Uf8BkHcV5GAnxP6hOja9xoxyZcXkA/e19fQK58Dq n9AQf1FWLBrdVE9lo4OQcwNCscQXvWh7VUru1uaBSWIK29n/s+SH9Iekne66hMUi Ke/fcPcIg9oIMcmdBroxkEw+cj1uwDMixaq5zcAM97Z9u0xkaa83Q25VKhRqMQWH BkRVgbrIbYCE35PQrMDVaxXdUiPATOTwfPKI1k4Hp1DpnM44LjNzTvax4hsi8Xj8 CY15wn+CNmh1bTQt9aGOHi8FhJRz7dN3r/CdE4+J7ySZQuL6X4W+yM/shjZw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711838953; x= 1711925353; bh=wEzo6/Q98j39dhIATXY0CYbkSWV/c+/iiL71kedF6K0=; b=V lO9F+xTHMIkemeurXvfV3H5S2ccdNRL61mlikCEKzGulQV6JJ9+9neI7pwlSQ5q7 KkZp9Pp5IhMxoqkoaWfr3FnXfGWEZWgPJoiiWXFWVoByvAmz9OI2mMn791f8rCyS 2cX6RO2vU39OmDJd0lVOOarGP3dwto86O9DQB0leDjJM2uiLATB0lZlO+DbROHZY j/tYB4v+Hkm/iw3Xl4O159tO5GbkSQMvmkR14eBjq7eAGQvY9Rz4TxczU8n8Q5/Q rNcy6IoYeAIZbL1aDei3nWgc4OkAV8ak8kZd5fwu++5Sf7tRaqU8HA1m7wcV9JR8 0un93LOmhrjrg6zyayLlw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddviedgtdegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddtvdejnecuhfhrohhmpefrhhhi lhhiphcuofgtifhrrghthhcuoehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtg homheqnecuggftrfgrthhtvghrnhepkeellefhtdegfeeiiedvveeludetjeekvedutedu jeefleeukeeukeehffeghfeknecuffhomhgrihhnpeguihhstghouhhrshgvrdhgrhhouh hppdhstghmrdhinhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl fhhrohhmpehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomh X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 30 Mar 2024 18:49:12 -0400 (EDT) Message-ID: Date: Sat, 30 Mar 2024 18:49:11 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [bug#70065] [PATCH 4/6] gnu: chez-scheme: Update to 10.0.0. Content-Language: en-US To: Skyler Ferris , 70065@debbugs.gnu.org References: <1f2ac17f-8095-41b7-a0c3-db6487d74aea@protonmail.com> From: Philip McGrath In-Reply-To: <1f2ac17f-8095-41b7-a0c3-db6487d74aea@protonmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Liliana and Skyler, On 3/30/24 10:28, Skyler Ferris wrote: > >> Is there a good reason to do it this way? Or could we build racket >> with regular chez-scheme afterwards? > > I believe this is addressed by this comment from patch 6/6; we can't > rely on chez-scheme being the correct version to use for racket. But > please correct me if I misunderstood Philip! > >> Since the pre-releases for Chez Scheme 10.0.0, all of Racket's changes have >> been merged upstream, and development will be kept in sync going >> forward. However, there is no plan to align the Chez Scheme and Racket >> release cycles. For the near fulture, a given released version of Racket >> will continue to depend on a specific pre-release version of Chez Scheme as >> part of Racket CS's "ABI". See upstream discussion at >> . > That's right. In the linked thread, Matthew Flatt specifically confirmed that we should not try to build Racket with our chez-scheme package. On 3/30/24 10:39, Skyler Ferris wrote: > On 3/28/24 22:18, Philip McGrath wrote: >> -(define* (chez-scheme-for-system #:optional >> - (system (or (%current-target-system) >> - (%current-system)))) >> - "Return 'chez-scheme' if it fully supports SYSTEM, including support for >> -bootstrapping and native threads. Otherwise, return >> -'chez-scheme-for-racket'." >> - (if (and=> (chez-upstream-features-for-system system) >> - (lambda (features) >> - (every (cut memq <> features) >> - '(threads >> - ;; We can cross-compile for platforms without >> - ;; bootstrap bootfiles, but we can't self-host >> - ;; on them short of adding more binary seeds. >> - bootstrap-bootfiles)))) >> - chez-scheme >> - chez-scheme-for-racket)) >> +(define-deprecated (chez-scheme-for-system #:optional system) chez-scheme >> + "Returns 'chez-scheme'." >> + chez-scheme) > As mentioned in the reply to the cover letter, it looks like this broke > loko-scheme from gnu/pcakages/loko.scm. > > In particular, I get a "wrong type to apply" error in its use of > "chez-scheme-for-system". I ran into this problem when running the > following command: > > ``` > ./pre-inst-env guix refresh --list-depedent zuo -e '(@ (gnu packages > racket) racket-vm-cs)' racket chez-scheme chez-scheme-for-racket > ``` > Thanks, I had forgotten about loko-scheme! On 3/30/24 10:28, Skyler Ferris wrote: > (I think the deprecation definition might need an > update, because IIUC the syntax is supposed to be backwards-compatible > until it is removed). > I still don't understand why the deprecation definition isn't working. I expected the expansion at the repl, and (chez-scheme-for-system) expanded to (%chez-scheme-for-system/deprecated), which was defined by the expansion of define-deprecated as: (define %chez-scheme-for-system/deprecated (begin (lambda () chez-scheme) (lambda* (#:optional (system #f)) chez-scheme))) I guess, unless I figure something out or someone has a better suggestion, I could just remove chez-scheme-for-system without deprecation, but that seemed less friendly. > > As before, my experience with autotools is limited so my review of the > build changes should be taken with a grain of salt. It looks like some > of the patched code is fixing bugs rather than adapting for guix so they > should be upstreamed, but I assume Philip is already on top of that. > Chez Scheme actually doesn't use autotools. (Racket does use autoconf, only.) All of the patches for configure have already been accepted upstream: in fact, the second patch in the file is a follow-up from Matthew Flatt, one of the maintainers of Racket and, more recently, Chez Scheme. On 3/30/24 03:56, Liliana Marie Prikler wrote: > As usual for these large rackets (pun intended), I do wonder whether > it'd be possible to split the commits into more reviewable hunks. For > instance, I don't think chez-scheme-for-system would need to be > adjusted yet – it could simply return chez-scheme and then in the next > commit be deprecated or dropped. Since there's a problem with the deprecation anyway, I will split this out. Overall, dividing up this series as much as I did has been especially arduous. If you noticed that the authored dates on the patches are a month ago, that's mostly the time it took me to reorganize these commits. Thanks, Philip From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 31 10:35:45 2024 Received: (at 70065) by debbugs.gnu.org; 31 Mar 2024 14:35:45 +0000 Received: from localhost ([127.0.0.1]:48212 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqwHg-0005Mt-TD for submit@debbugs.gnu.org; Sun, 31 Mar 2024 10:35:45 -0400 Received: from mail-40134.protonmail.ch ([185.70.40.134]:43005) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqwHe-0005M6-58 for 70065@debbugs.gnu.org; Sun, 31 Mar 2024 10:35:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1711895732; x=1712154932; bh=pa4H8+QzEMCb4e7PpOuP6K1+w01gSl28h1Z5COmfpFs=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=hQ61E40FZVt7LjWTaLRrOKnpnQYOjkplTequ/4968Xp0E22E/3av+5X0jtPPkLXl+ HP5Fcxo+jdQeO3rtWafbPP93SE7b6CNPvwFxWPGAm2d2aJLxwOIActn1RDJQdXQC4e 93CZn5lqBA2VulzFKK06bWKhpu0DFqpgqD9YwYhDFf9GSCDn6HQwlLexBD9KATT62m UXb6Uu1eXFHJLs4hvMsMDFkXW4oA/tXRTEWiX8Od03Gi7efIvRaQG24+YyTy58VObs J9cmhMM2uCyZjnZWwo7UuGElffx2E8tezwsuZ77FeormZeJD92HXLpr/savEqIyaIF ooWLwFt21U+qQ== Date: Sun, 31 Mar 2024 14:35:28 +0000 To: Philip McGrath , 70065@debbugs.gnu.org From: Skyler Ferris Subject: Re: [bug#70065] [PATCH 4/6] gnu: chez-scheme: Update to 10.0.0. Message-ID: In-Reply-To: References: <1f2ac17f-8095-41b7-a0c3-db6487d74aea@protonmail.com> Feedback-ID: 40635331:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 3/30/24 15:49, Philip McGrath wrote: > I still don't understand why the deprecation definition isn't working. I > expected the expansion at the repl, and (chez-scheme-for-system) > expanded to (%chez-scheme-for-system/deprecated), which was defined by > the expansion of define-deprecated as: > > (define %chez-scheme-for-system/deprecated > (begin > (lambda () chez-scheme) > (lambda* (#:optional (system #f)) chez-scheme))) > > I guess, unless I figure something out or someone has a better > suggestion, I could just remove chez-scheme-for-system without > deprecation, but that seemed less friendly. So, I started poking at this and ran into something strange. I removed=20 the surrounding parentheses from chez-scheme-for-system in loko.scm, and=20 it gave me the expected error about an invalid package, where the value=20 was a procedure rather than a package. Which sounds like what I would=20 expect if it was working, except that it didn't work with the=20 parentheses. Then, after adding the parentheses back it stopped giving=20 me the error, even after running make again. I haven't worked with define-deprecated before. It's a macro, and I know=20 that the guile compiler misses recompiling macro dependencies sometimes,=20 so maybe it was a problem on my end with having mismatching build=20 artifacts. I'll try a clean build with these patches and a simulated=20 guix pull within the next couple of days (hopefully today), and if those=20 both work then the definition is probably correct.... but I'd be more=20 comfortable if we could explain exactly why that error occurred. I'll=20 also look more at the definitions, but I think it will be a little=20 difficult to be confident in any explanation if I can't reproduce the=20 error. Here's the full error output, in case it's helpful to anyone: Backtrace: In ice-9/boot-9.scm: =C2=A0 1752:10 19 (with-exception-handler _ _ #:unwind? _ # _) In guix/ui.scm: =C2=A0=C2=A0=C2=A0 485:6 18 (_) In guix/scripts/build.scm: =C2=A0=C2=A0=C2=A0 711:5 17 (_) In srfi/srfi-1.scm: =C2=A0=C2=A0 673:15 16 (append-map # =E2=80=A6) =C2=A0=C2=A0 586:17 15 (map1 ("x86_64-linux")) In guix/scripts/build.scm: =C2=A0=C2=A0 713:21 14 (_ _) In guix/store.scm: =C2=A0 1382:11 13 (map/accumulate-builds # =E2=80=A6) =C2=A0=C2=A0 1300:8 12 (call-with-build-handler # =E2=80=A6) In guix/scripts/build.scm: =C2=A0=C2=A0 667:16 11 (_ #) =C2=A0=C2=A0 656:24 10 (_ # =E2=80=A6) In guix/packages.scm: =C2=A0 1378:17=C2=A0 9 (supported-package? # =E2=80=A6) In guix/memoization.scm: =C2=A0=C2=A0=C2=A0 101:0=C2=A0 8 (_ # # =E2=80=A6) In guix/packages.scm: =C2=A0 1356:39=C2=A0 7 (_) =C2=A0 1618:16=C2=A0 6 (package->bag _ _ _ #:graft? _) =C2=A0 1722:47=C2=A0 5 (thunk) In gnu/packages/loko.scm: =C2=A0=C2=A0=C2=A0 77:11=C2=A0 4 (native-inputs #) =C2=A0=C2=A0=C2=A0 77:11=C2=A0 3 (native-inputs _) In ice-9/boot-9.scm: =C2=A0 1685:16=C2=A0 2 (raise-exception _ #:continuable? _) =C2=A0 1685:16=C2=A0 1 (raise-exception _ #:continuable? _) =C2=A0 1685:16=C2=A0 0 (raise-exception _ #:continuable? _) ice-9/boot-9.scm:1685:16: In procedure raise-exception: Wrong type to apply: # From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 31 11:28:51 2024 Received: (at 70065) by debbugs.gnu.org; 31 Mar 2024 15:28:51 +0000 Received: from localhost ([127.0.0.1]:48266 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqx73-0008W9-FO for submit@debbugs.gnu.org; Sun, 31 Mar 2024 11:28:51 -0400 Received: from mail-4316.protonmail.ch ([185.70.43.16]:17939) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqx70-0008VR-Hk for 70065@debbugs.gnu.org; Sun, 31 Mar 2024 11:28:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1711898916; x=1712158116; bh=44T9o/1s8zNfvcewmoqaxyeMyPvB25d3J1iCe8EA3DU=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=u1kUpIM2l9X1cUGsD91kj0YJhcZOJvHvsUjQ7YR5BvpzsMpP4ZkwEx3IIexcKq+Bs KwQQr6L+lidFZ+QR180ihPsAHgyf8NvLh5m8On3QtZm1u+DcxvUbNg5noZmOw0N4Ft dTndQCfKeYxaVTmsbGJcJO0typrxM9vSo15mz1JIB6nkMmmp/r+3EsSfPKPkbkKQuv tqUa7qnjzB7qfMg9NyQDbt4PEYUB3feWWZ/9DcKR07cMMJrVcfXYyLDhef83BMGJUW pCMdN9OiMGDhmz/YttfJv7goCo5Ap++BYAj5O674IpQGh8f1qToUYyi3WSnTW2tP5o 5iIlbLbi/PPrQ== Date: Sun, 31 Mar 2024 15:28:29 +0000 To: Philip McGrath , 70065@debbugs.gnu.org From: Skyler Ferris Subject: Re: [bug#70065] [PATCH 4/6] gnu: chez-scheme: Update to 10.0.0. Message-ID: In-Reply-To: References: <1f2ac17f-8095-41b7-a0c3-db6487d74aea@protonmail.com> Feedback-ID: 40635331:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi again! I stepped away from my desk to do something else and as often=20 happens the answer came to me. I'll include full steps to reproduce the=20 issue below, in order to build confidence in my explanation, but the=20 TLDR is that your definition is correct and it was a problem on my end.=20 Additionally, I confirmed that loko-scheme still builds and runs. I'll=20 keep this situation in mind for future reviews. Thank you for all your=20 hard work! Explanation: The loko.scm file was not recompiled so it searched chez.scm for a=20 variable named chez-scheme-for-system, which is now a syntax=20 transformer. But compiled files have already completed the expansion=20 phase, so this means that a syntax transformer is invalid. This will not=20 cause a problem for `guix pull` because guix rebuilds itself from=20 scratch when it gets updated. Reproduction: 1. Build the tree without patch 4/6 applied =C2=A0=C2=A0 `guix shell -D guix -CPW -- make` 2. Apply the patch =C2=A0=C2=A0 `git apply /path/to/patch` 3. Build the tree again =C2=A0=C2=A0 `guix shell -D guix -CPW -- make` 4. Try to build loko-scheme =C2=A0=C2=A0 `./pre-inst-env guix build loko-scheme` 5. Delete the compiled loko file =C2=A0=C2=A0 `rm gnu/packages/loko.go` 6. Build the tree again =C2=A0=C2=A0 `guix shell -D guix -CPW -- make` 7. Build loko-scheme =C2=A0=C2=A0 `./pre-inst-env guix build loko-scheme` On 3/31/24 07:35, Skyler Ferris wrote: > On 3/30/24 15:49, Philip McGrath wrote: >> I still don't understand why the deprecation definition isn't working. I >> expected the expansion at the repl, and (chez-scheme-for-system) >> expanded to (%chez-scheme-for-system/deprecated), which was defined by >> the expansion of define-deprecated as: >> >> =C2=A0=C2=A0=C2=A0 (define %chez-scheme-for-system/deprecated >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (begin >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (lambda () chez-scheme) >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (lambda* (#:optional (system = #f)) chez-scheme))) >> >> I guess, unless I figure something out or someone has a better >> suggestion, I could just remove chez-scheme-for-system without >> deprecation, but that seemed less friendly. > > So, I started poking at this and ran into something strange. I removed=20 > the surrounding parentheses from chez-scheme-for-system in loko.scm,=20 > and it gave me the expected error about an invalid package, where the=20 > value was a procedure rather than a package. Which sounds like what I=20 > would expect if it was working, except that it didn't work with the=20 > parentheses. Then, after adding the parentheses back it stopped giving=20 > me the error, even after running make again. > > I haven't worked with define-deprecated before. It's a macro, and I=20 > know that the guile compiler misses recompiling macro dependencies=20 > sometimes, so maybe it was a problem on my end with having mismatching=20 > build artifacts. I'll try a clean build with these patches and a=20 > simulated guix pull within the next couple of days (hopefully today),=20 > and if those both work then the definition is probably correct.... but=20 > I'd be more comfortable if we could explain exactly why that error=20 > occurred. I'll also look more at the definitions, but I think it will=20 > be a little difficult to be confident in any explanation if I can't=20 > reproduce the error. Here's the full error output, in case it's=20 > helpful to anyone: > > Backtrace: > In ice-9/boot-9.scm: > =C2=A0 1752:10 19 (with-exception-handler _ _ #:unwind? _ # _) > In guix/ui.scm: > =C2=A0=C2=A0=C2=A0 485:6 18 (_) > In guix/scripts/build.scm: > =C2=A0=C2=A0=C2=A0 711:5 17 (_) > In srfi/srfi-1.scm: > =C2=A0=C2=A0 673:15 16 (append-map # =E2=80=A6) > =C2=A0=C2=A0 586:17 15 (map1 ("x86_64-linux")) > In guix/scripts/build.scm: > =C2=A0=C2=A0 713:21 14 (_ _) > In guix/store.scm: > =C2=A0 1382:11 13 (map/accumulate-builds # =E2=80=A6) > =C2=A0=C2=A0 1300:8 12 (call-with-build-handler # =E2=80=A6) > In guix/scripts/build.scm: > =C2=A0=C2=A0 667:16 11 (_ #) > =C2=A0=C2=A0 656:24 10 (_ # =E2=80=A6) > In guix/packages.scm: > =C2=A0 1378:17=C2=A0 9 (supported-package? # =E2=80=A6) > In guix/memoization.scm: > =C2=A0=C2=A0=C2=A0 101:0=C2=A0 8 (_ # # =E2=80=A6) > In guix/packages.scm: > =C2=A0 1356:39=C2=A0 7 (_) > =C2=A0 1618:16=C2=A0 6 (package->bag _ _ _ #:graft? _) > =C2=A0 1722:47=C2=A0 5 (thunk) > In gnu/packages/loko.scm: > =C2=A0=C2=A0=C2=A0 77:11=C2=A0 4 (native-inputs #) > =C2=A0=C2=A0=C2=A0 77:11=C2=A0 3 (native-inputs _) > In ice-9/boot-9.scm: > =C2=A0 1685:16=C2=A0 2 (raise-exception _ #:continuable? _) > =C2=A0 1685:16=C2=A0 1 (raise-exception _ #:continuable? _) > =C2=A0 1685:16=C2=A0 0 (raise-exception _ #:continuable? _) > > ice-9/boot-9.scm:1685:16: In procedure raise-exception: > Wrong type to apply: # > From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 31 16:17:22 2024 Received: (at 70065) by debbugs.gnu.org; 31 Mar 2024 20:17:22 +0000 Received: from localhost ([127.0.0.1]:48522 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rr1cH-0007UB-Tq for submit@debbugs.gnu.org; Sun, 31 Mar 2024 16:17:22 -0400 Received: from fout1-smtp.messagingengine.com ([103.168.172.144]:54079) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rr1cF-0007Ty-UY for 70065@debbugs.gnu.org; Sun, 31 Mar 2024 16:17:21 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailfout.nyi.internal (Postfix) with ESMTP id B4EFE13800BC; Sun, 31 Mar 2024 16:17:11 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Sun, 31 Mar 2024 16:17:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1711916231; x=1712002631; bh=Bt9NuS888t 2qh+djX6nbBDxzHejU7pNXHY8DNYBbj/c=; b=YnXq3qTiQfKGjKZPyC6pROYIcx 9tDj9flVtLf4lZJnZ7OaEl+IlUU8oMrfu+l96UmZppUIQubA3AMMkNUZ1izV8TdQ rK+Q7Y2H5RkayHndpUI+fIxL5V7aIEygGSbH1Q6AWd300SaVuJOr58x0jT1gP0k9 K16n+j6LDW2AlGE1DgeUvVfoqOu9yvWfOIwH0A+Cbmr4jl6Hs8bUzo0aB6hiz2mo QYTd8Jm3t+rBCFAn8IKOsXUPx8VxgIMLELh7CuQrF9/4XsT8o3FTNEkHAkhqL2me wIatwp0kEg69cB88aw7jjUGYxVBydSEMSvnKx0MrA04q7DoFVCtN5a8Wl5lw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711916231; x= 1712002631; bh=Bt9NuS888t2qh+djX6nbBDxzHejU7pNXHY8DNYBbj/c=; b=x VmB59ySG5nb/y1US8awvY1YL9G/Ei+Dl01CrHZDEHwZ9fbLkU579oTaFWx+S+evo nG8GkHQuM/LjCeF4tRQhAu/4WtFeqay5Kew05VXyeDwp2bMQ020lrA8wP9hY1zcX q2FD3kGQX4ZFgmO5QyiNkUCDXhuv66HZxZSPbmWEn4pEtxdT9fl+oIsNjI+D9I5e WPoNo8qktiLp2/qk2ZhDuI2xtLEKZ07KKz5HJgCyjqv3+k8AQOlpDpsafSCH25zl eqEOD5ijM1ZjvbXO1qo9ZKXMdcbDPNM9OCqIpUDs6xne9lRQpvjKQP5wPGUjpohn lXV6FTEg/dMHP+i8Ir/8w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvkedguddviecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefkffggfgfuvfevfhfhjggtgfesthejredttddvjeenucfhrhhomheprfhh ihhlihhpucfotgfirhgrthhhuceophhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrd gtohhmqeenucggtffrrghtthgvrhhnpeffgeehiedugfehfeefgffhgedvteeiledvvdeg vddujeegtdetgeetgeefvefgvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh epmhgrihhlfhhrohhmpehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomh X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 31 Mar 2024 16:17:10 -0400 (EDT) Message-ID: <4cef86be-421e-4010-939b-5640764fcf3e@philipmcgrath.com> Date: Sun, 31 Mar 2024 16:17:08 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [bug#70065] [PATCH 4/6] gnu: chez-scheme: Update to 10.0.0. To: Skyler Ferris , 70065@debbugs.gnu.org References: <1f2ac17f-8095-41b7-a0c3-db6487d74aea@protonmail.com> Content-Language: en-US From: Philip McGrath In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Skyler, On 3/31/24 11:28, Skyler Ferris wrote: > Hi again! I stepped away from my desk to do something else and as often > happens the answer came to me. Thanks for this analysis! > > The loko.scm file was not recompiled so it searched chez.scm for a > variable named chez-scheme-for-system, which is now a syntax > transformer. But compiled files have already completed the expansion > phase, so this means that a syntax transformer is invalid. This will not > cause a problem for `guix pull` because guix rebuilds itself from > scratch when it gets updated. > On 3/31/24 10:35, Skyler Ferris wrote: > I haven't worked with define-deprecated before. It's a macro, and I know > that the guile compiler misses recompiling macro dependencies sometimes, > so maybe it was a problem on my end with having mismatching build > artifacts. Very interesting! I hadn't realized that problem with dependency tracking existed: it might explain some issues I've struggled to reproduce in the past. It's also given me several surprises about Guile's implementation of phases: for one thing, apparently (define-syntax x 42) expands to (define x (make-syntax-transformer 'x 'macro 42)). I wouldn't have expected a macro to create a value that would exist at runtime. Philip From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 02:52:00 2024 Received: (at 70065) by debbugs.gnu.org; 1 Apr 2024 06:52:00 +0000 Received: from localhost ([127.0.0.1]:49342 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBWS-0003MJ-BC for submit@debbugs.gnu.org; Mon, 01 Apr 2024 02:52:00 -0400 Received: from fhigh3-smtp.messagingengine.com ([103.168.172.154]:38883) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBWQ-0003M5-DQ for 70065@debbugs.gnu.org; Mon, 01 Apr 2024 02:51:59 -0400 Received: from compute7.internal (compute7.nyi.internal [10.202.2.48]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 0D46E11400CA; Mon, 1 Apr 2024 02:51:50 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Mon, 01 Apr 2024 02:51:50 -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:subject:subject:to :to; s=fm2; t=1711954310; x=1712040710; bh=qy1Drg38n8vwpBZJlqMkq FX74GpKyVIwX0Lho+nwbqE=; b=YnmV2p0AiE/IDYaEcprI3Hr2m4DhKQylIUEEz FSSjIIWk/rGRUZrfAv7xLFataDQM3w/71PqSleZbbVs4zfJSxgA+1wTlL9otnNRp 3o51RGpaWEVmcq5OXR3wgllsZZYslYd0o8QVHeNZ0KTpcxEqfOvP1uxjxhf2+YUl UxW7PM+Rw1eQPoXrtY9ZfvP0EkR6TiAHOKDArh+dQ+DF8vUi/F7kxroHZYkbCgTL 8XaNYODxKxmulFhzWT7C8DsO/TSwCyLCI1Vi2plsN2f1NtHPvJtFJyR0ajsjjc+l yoNffzDitWFEhbJVBUNjiY7poGIjPozcHe8kZwgaoTxmj1Iiw== 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:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711954310; x= 1712040710; bh=qy1Drg38n8vwpBZJlqMkqFX74GpKyVIwX0Lho+nwbqE=; b=r 0bbm2WvpFlHCkDc1X4KtFvRemerUeyBmmCclgVeFcmBX/5CTCZlpKDPqfHQk1E7h +dHDPz6yMr2w5R1jNtOOcmpbrs98fl2xS46E8yid3ozth57ISPOIJBk1GWVGCjOL HeL4jyBeMqDAE5VMXXSozU3zcl1MOYBmQLNURMI8aFq9JhcARkAGpH8lecrvX32c L8ZO+IA8lbFDOMrQyuR+0cB1jwRmxPB3o7eGWvE5xkmDw3REvv5b8/RmNZWpJmd1 ncT0Lx6qIsz7JstQKnVnZ0fSg+P7Ld36h3oV/i6efYABiIj7VEaPyQYnrSg7ECkg ziT1X/F4kBuTDtd+aEuvQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvledguddugecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvfevufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefrhhhi lhhiphcuofgtifhrrghthhcuoehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtg homheqnecuggftrfgrthhtvghrnhepgffhgfffjeegudejvddvgedvheefveehvdffuedu udeivdfhgeeileehvdfhfeefnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpe hmrghilhhfrhhomhepphhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtohhm X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 1 Apr 2024 02:51:49 -0400 (EDT) From: Philip McGrath To: 70065@debbugs.gnu.org Subject: [PATCH v2 0/8] Update to Racket 8.12, Chez Scheme 10, and Zuo 1.9. Date: Mon, 1 Apr 2024 02:51:05 -0400 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: <6b2db55dfe43979e28bd85d2999919419d56dd84.1711688274.git.philip@philipmcgrath.com> <1b795f9e-bcef-4b14-8ae3-0b69c79d51f9@protonmail.com> <1f2ac17f-8095-41b7-a0c3-db6487d74aea@protonmail.com> MIME-Version: 1.0 X-Debbugs-Cc: Philip McGrath Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin , Philip McGrath , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Skyler, Liliana, et al., Here is v2! In the second patch, I tweaked the comments based on discussion with Skyler. To be extra careful about the deprecation of chez-scheme-for-system, I split the former [4/6] into: * [v2 4/8], which just changes the return value; * [v2 5/8], which changes to define-deprecated; and * [v2 6/8], which updates the uses. I checked after that all the dependents built and that deprecation warnings were shown after [v2 5/8] (and not anywhere else!). Thanks! Philip Philip McGrath (8): gnu: zuo: Update to 1.9. gnu: racket: Update to 8.12. gnu: chez-scheme: Reorganize package definitions. gnu: chez-scheme: Update to 10.0.0. gnu: Deprecate chez-scheme-for-system.in favor of chez-scheme. gnu: Fix uses of deprecated chez-scheme-for-system. gnu: chez-scheme: Update and simplify machine-type handling. gnu: chez-scheme: Bootstrap from source. gnu/local.mk | 9 +- gnu/packages/chez.scm | 1024 ++++++++--------- gnu/packages/emacs-xyz.scm | 2 +- gnu/packages/loko.scm | 2 +- .../chez-scheme-backport-configure.patch | 463 ++++++++ gnu/packages/patches/chez-scheme-bin-sh.patch | 37 +- .../racket-backport-8.11-layered-docs.patch | 36 - .../racket-backport-8.12-chez-configure.patch | 423 +++++++ .../patches/racket-chez-scheme-bin-sh.patch | 21 +- .../patches/racket-rktio-bin-sh.patch | 17 +- ...cket-zuo-bin-sh.patch => zuo-bin-sh.patch} | 33 +- gnu/packages/racket.scm | 143 +-- 12 files changed, 1527 insertions(+), 683 deletions(-) create mode 100644 gnu/packages/patches/chez-scheme-backport-configure.patch delete mode 100644 gnu/packages/patches/racket-backport-8.11-layered-docs.patch create mode 100644 gnu/packages/patches/racket-backport-8.12-chez-configure.patch rename gnu/packages/patches/{racket-zuo-bin-sh.patch => zuo-bin-sh.patch} (72%) base-commit: 0e8f7ee3a95011dd9ebdc99e0f3b754160524b5d -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 02:52:07 2024 Received: (at 70065) by debbugs.gnu.org; 1 Apr 2024 06:52:07 +0000 Received: from localhost ([127.0.0.1]:49349 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBWY-0003N1-PS for submit@debbugs.gnu.org; Mon, 01 Apr 2024 02:52:07 -0400 Received: from fout8-smtp.messagingengine.com ([103.168.172.151]:37529) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBWW-0003MC-Ac for 70065@debbugs.gnu.org; Mon, 01 Apr 2024 02:52:05 -0400 Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailfout.nyi.internal (Postfix) with ESMTP id 1538D13800BC; Mon, 1 Apr 2024 02:51:56 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Mon, 01 Apr 2024 02:51:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1711954316; x=1712040716; bh=mr+5j6eHQo U8P/DNDo4dg2o9zytkAnUvN1VhQ9t7qu8=; b=WBJRHmpJXn0tLBfS0TdNgqZa0C Jwjwd4QGLwjm4kfXNfYzEw3N8dn3kZpzXaqgGoVDLZnpHST1mou3BTVWjs86AnZ4 UiLvzO77iP7jn3Dn9FnKlN3N9cwov0AN31v6uP2EiyadjcVgHghqU7xav3DxZySo 38zzlq2yVVjAhRmOM9/TaQSyvsf3ARel65scOBB+Z8n4HzYKXcas3INRhK8e6byl U9N0BKaVe4DEqwVJyBnfm7jtFyjaOUGePKMvdblUozyOU70FJ5EehMU7gXy8zRRc Jw6orYHLaIsJrC9jSPZG77JFY2skINkM8Cf7xjK0caScHRsjQgDgLUvcxxnQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711954316; x= 1712040716; bh=mr+5j6eHQoU8P/DNDo4dg2o9zytkAnUvN1VhQ9t7qu8=; b=Y 1AdYkiozY8t5sT0ojZW1G2zHOHMShmz/aksi+V7hnb16VIFSMYg7XwRDJTZXxXhI K2N8GNN5KzlGNL872FkR+Rg4j5IDNMgOSIyEwaybO+Ycv+NHwBHb/T6QEEUf1PlN +Inpo9yj4kb+KCy5D6Z/AGsPbd5vq0vM0PZQ32uoDTuhD5dulNyDnZBelIP79m1H RJJ/MnJnm39u2alhdOm3T5nxjlkECcwy/Je1jPADaYEqwUM3u/2r2HZIGavsYOV7 mvkcMF5tn6vpMXD+UGkI7p8AuRUFVyaXD3iaojlXTeMwRRmEudGSDbSGECGbGQz7 d0UhDcSTZmcVB6hPxP2/A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvledguddugecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enfghrlhcuvffnffculddugedmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeer tdertdejnecuhfhrohhmpefrhhhilhhiphcuofgtifhrrghthhcuoehphhhilhhiphesph hhihhlihhpmhgtghhrrghthhdrtghomheqnecuggftrfgrthhtvghrnhepgefguefgfedt vdejhfettdeuvdduheehgeevvdekgfelvefffedthffhkeetgeffnecuffhomhgrihhnpe hgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr ihhlfhhrohhmpehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomh X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 1 Apr 2024 02:51:55 -0400 (EDT) From: Philip McGrath To: 70065@debbugs.gnu.org Subject: [PATCH v2 1/8] gnu: zuo: Update to 1.9. Date: Mon, 1 Apr 2024 02:51:06 -0400 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Debbugs-Cc: Philip McGrath Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin , Philip McGrath , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Zuo now has tagged releases independent of the Racket release cycle. * gnu/packages/patches/racket-zuo-bin-sh.patch: Move to ... * gnu/packages/patches/zuo-bin-sh.patch: ... this file, and refresh it. * gnu/local.mk (dist_patch_DATA): Update accordingly. * gnu/packages/racket/scm (%racket-origin)[patches]: Likewise. * gnu/packages/patches/racket-chez-scheme-bin-sh.patch: Refresh patch. * gnu/packages/patches/racket-rktio-bin-sh.patch: Likewise. * gnu/packages/racket/scm (%zuo-version): Move to ... (zuo)[version]: ... this field, and update to 1.9. [source]: Change to the repository where Zuo releases are tagged. [arguments]: Stop supplying '#:phases'. Change-Id: Ia82c0f7a8e4696ae08e30965e3f4ec85673b86e5 --- gnu/local.mk | 4 +- .../patches/racket-chez-scheme-bin-sh.patch | 21 +++++--- .../patches/racket-rktio-bin-sh.patch | 17 +++--- ...cket-zuo-bin-sh.patch => zuo-bin-sh.patch} | 33 +++++++----- gnu/packages/racket.scm | 54 +++++++++---------- 5 files changed, 70 insertions(+), 59 deletions(-) rename gnu/packages/patches/{racket-zuo-bin-sh.patch => zuo-bin-sh.patch} (72%) diff --git a/gnu/local.mk b/gnu/local.mk index 5429dc498c..a025276390 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1984,7 +1984,6 @@ dist_patch_DATA = \ %D%/packages/patches/racket-chez-scheme-bin-sh.patch \ %D%/packages/patches/racket-backport-8.11-layered-docs.patch \ %D%/packages/patches/racket-rktio-bin-sh.patch \ - %D%/packages/patches/racket-zuo-bin-sh.patch \ %D%/packages/patches/remake-impure-dirs.patch \ %D%/packages/patches/restartd-update-robust.patch \ %D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \ @@ -2225,7 +2224,8 @@ dist_patch_DATA = \ %D%/packages/patches/zig-do-not-link-against-librt.patch \ %D%/packages/patches/zig-use-baseline-cpu-by-default.patch \ %D%/packages/patches/zig-use-system-paths.patch \ - %D%/packages/patches/zsh-egrep-failing-test.patch + %D%/packages/patches/zsh-egrep-failing-test.patch \ + %D%/packages/patches/zuo-bin-sh.patch MISC_DISTRO_FILES = \ %D%/packages/ld-wrapper.in diff --git a/gnu/packages/patches/racket-chez-scheme-bin-sh.patch b/gnu/packages/patches/racket-chez-scheme-bin-sh.patch index 331b4f244b..e77c26f303 100644 --- a/gnu/packages/patches/racket-chez-scheme-bin-sh.patch +++ b/gnu/packages/patches/racket-chez-scheme-bin-sh.patch @@ -1,4 +1,4 @@ -From f86370295c5bb14d4bb93d0ccfa37a2b79f19f25 Mon Sep 17 00:00:00 2001 +From 5398e6d3305def343a009aba7c5f8915851c4115 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 24 Aug 2022 19:55:14 -0400 Subject: [PATCH] Chez Scheme: patch s_process for "/bin/sh" on Guix @@ -14,17 +14,22 @@ then `s_process` will call `execl` with the file specified by `_PATH_BSHELL` instead of "/bin/sh". Checking that the path specified by `_PATH_BSHELL` exists safeguards -against obscure errors if attempting to use stand-alone executables -built by the patched Racket in non-Guix envoronments. +against obscure errors if attempting to use the patched Chez Scheme +or executables it builds in non-Guix envoronments. This patch does not change the behavior of `s_system`, which relies on `system` from the C library. --- + +Notes: + See also chez-scheme-bin-sh.patch, racket-rktio-bin-sh.patch, + and zuo-bin-sh.patch. + racket/src/ChezScheme/c/prim5.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/racket/src/ChezScheme/c/prim5.c b/racket/src/ChezScheme/c/prim5.c -index 82bbf8d687..be8f603447 100644 +index 90b087f125..284f063f8b 100644 --- a/racket/src/ChezScheme/c/prim5.c +++ b/racket/src/ChezScheme/c/prim5.c @@ -27,6 +27,12 @@ @@ -40,7 +45,7 @@ index 82bbf8d687..be8f603447 100644 /* locally defined functions */ static INT s_errno(void); static IBOOL s_addr_in_heap(uptr x); -@@ -861,6 +867,17 @@ static ptr s_process(char *s, IBOOL stderrp) { +@@ -875,6 +881,17 @@ static ptr s_process(char *s, IBOOL stderrp) { INT tofds[2], fromfds[2], errfds[2]; struct sigaction act, oint_act; @@ -58,7 +63,7 @@ index 82bbf8d687..be8f603447 100644 if (pipe(tofds)) S_error("process","cannot open pipes"); if (pipe(fromfds)) { -@@ -897,7 +914,9 @@ static ptr s_process(char *s, IBOOL stderrp) { +@@ -911,7 +928,9 @@ static ptr s_process(char *s, IBOOL stderrp) { } } #endif /* __GNU__ Hurd */ @@ -70,7 +75,7 @@ index 82bbf8d687..be8f603447 100644 /*NOTREACHED*/ } else { -base-commit: 87eee6e2adb8c6bc11e60619c706fa6295096085 +base-commit: 78fef00d4d16a79fdf6ab31924b3a80cadf4b368 -- -2.32.0 +2.41.0 diff --git a/gnu/packages/patches/racket-rktio-bin-sh.patch b/gnu/packages/patches/racket-rktio-bin-sh.patch index ec6f0d9c56..d777c0979a 100644 --- a/gnu/packages/patches/racket-rktio-bin-sh.patch +++ b/gnu/packages/patches/racket-rktio-bin-sh.patch @@ -1,4 +1,4 @@ -From 6a553f24439fe64fd3a2f0b5902f00590ca4241f Mon Sep 17 00:00:00 2001 +From 5e546a30789e5c9b3c94674b94cb63e16ee2e951 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Thu, 4 Mar 2021 04:11:50 -0500 Subject: [PATCH] rktio: patch rktio_process for "/bin/sh" on Guix @@ -28,11 +28,16 @@ Checking that the path specified by `_PATH_BSHELL` exists safeguards against obscure errors if attempting to use stand-alone executables built by the patched Racket in non-Guix envoronments. --- + +Notes: + See also chez-scheme-bin-sh.patch, racket-chez-scheme-bin-sh.patch, + and zuo-bin-sh.patch. + racket/src/rktio/rktio_process.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/racket/src/rktio/rktio_process.c b/racket/src/rktio/rktio_process.c -index fafaf728c1..796ebc59ce 100644 +index 862850d93a..87daafef76 100644 --- a/racket/src/rktio/rktio_process.c +++ b/racket/src/rktio/rktio_process.c @@ -9,6 +9,7 @@ @@ -43,7 +48,7 @@ index fafaf728c1..796ebc59ce 100644 # ifdef USE_ULIMIT # include # endif -@@ -1301,12 +1302,14 @@ int rktio_process_allowed_flags(rktio_t *rktio) +@@ -1358,12 +1359,14 @@ int rktio_process_allowed_flags(rktio_t *rktio) /*========================================================================*/ rktio_process_result_t *rktio_process(rktio_t *rktio, @@ -59,7 +64,7 @@ index fafaf728c1..796ebc59ce 100644 rktio_process_result_t *result; intptr_t to_subprocess[2], from_subprocess[2], err_subprocess[2]; int pid; -@@ -1333,6 +1336,18 @@ rktio_process_result_t *rktio_process(rktio_t *rktio, +@@ -1390,6 +1393,18 @@ rktio_process_result_t *rktio_process(rktio_t *rktio, int i; #endif @@ -79,7 +84,7 @@ index fafaf728c1..796ebc59ce 100644 to_subprocess[0] = -1; to_subprocess[1] = -1; -base-commit: 9d228d16fb99c274c964e5bef93e97333888769f +base-commit: 78fef00d4d16a79fdf6ab31924b3a80cadf4b368 -- -2.32.0 +2.41.0 diff --git a/gnu/packages/patches/racket-zuo-bin-sh.patch b/gnu/packages/patches/zuo-bin-sh.patch similarity index 72% rename from gnu/packages/patches/racket-zuo-bin-sh.patch rename to gnu/packages/patches/zuo-bin-sh.patch index bcdcb8e963..92e3774424 100644 --- a/gnu/packages/patches/racket-zuo-bin-sh.patch +++ b/gnu/packages/patches/zuo-bin-sh.patch @@ -1,7 +1,7 @@ -From 73d9b77a11b4516905caf579abb559736f715ea6 Mon Sep 17 00:00:00 2001 +From cd6bed5d22ea9cb7bae2be134d5d04433fc8e313 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Mon, 11 Apr 2022 20:43:18 -0400 -Subject: [PATCH] Zuo: patch zuo_process for "/bin/sh" on Guix +Subject: [PATCH] patch zuo_process for "/bin/sh" on Guix If: @@ -16,17 +16,22 @@ then `zuo_process` will execute the file specified by `_PATH_BSHELL` instead of "/bin/sh". Checking that the path specified by `_PATH_BSHELL` exists safeguards -against obscure errors if attempting to use stand-alone executables -built by the patched Racket in non-Guix envoronments. +against obscure errors if attempting to use the patched Zuo +or derived executables in non-Guix envoronments. --- - racket/src/zuo/zuo.c | 20 ++++++++++++++++++-- + +Notes: + See also chez-scheme-bin-sh.patch, racket-chez-scheme-bin-sh.patch, + racket-rktio-bin-sh.patch. + + zuo.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) -diff --git a/racket/src/zuo/zuo.c b/racket/src/zuo/zuo.c -index 17f161826d..c4fb3929bb 100644 ---- a/racket/src/zuo/zuo.c -+++ b/racket/src/zuo/zuo.c -@@ -15,6 +15,7 @@ +diff --git a/zuo.c b/zuo.c +index d4163eb..bfc5484 100644 +--- a/zuo.c ++++ b/zuo.c +@@ -16,6 +16,7 @@ #include #include #ifdef ZUO_UNIX @@ -34,7 +39,7 @@ index 17f161826d..c4fb3929bb 100644 # include # include # include -@@ -5730,7 +5731,10 @@ static void zuo_pipe(zuo_raw_handle_t *_r, zuo_raw_handle_t *_w) +@@ -5949,7 +5950,10 @@ static void zuo_pipe(zuo_raw_handle_t *_r, zuo_raw_handle_t *_w) zuo_t *zuo_process(zuo_t *command_and_args) { const char *who = "process"; @@ -46,7 +51,7 @@ index 17f161826d..c4fb3929bb 100644 zuo_t *args = _zuo_cdr(command_and_args), *rev_args = z.o_null; zuo_t *options = z.o_empty_hash, *opt; zuo_t *dir, *l, *p_handle, *result; -@@ -5741,7 +5745,19 @@ zuo_t *zuo_process(zuo_t *command_and_args) +@@ -5960,7 +5964,19 @@ zuo_t *zuo_process(zuo_t *command_and_args) void *env; int as_child, exact_cmdline; @@ -68,7 +73,7 @@ index 17f161826d..c4fb3929bb 100644 zuo_t *a = _zuo_car(l); if (a == z.o_null) { -base-commit: 87eee6e2adb8c6bc11e60619c706fa6295096085 +base-commit: a0faa82c8383d206aa38d21462ca4ae699851a0b -- -2.32.0 +2.41.0 diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 5c863f1afd..6e19be1da3 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013-2016, 2018, 2020-2022 Ludovic Courtès ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Pierre Neidhardt -;;; Copyright © 2021, 2022, 2023 Philip McGrath +;;; Copyright © 2021-2024 Philip McGrath ;;; Copyright © 2021 jgart ;;; ;;; This file is part of GNU Guix. @@ -192,7 +192,6 @@ (define-module (gnu packages racket) ;; CODE: (define %racket-version "8.11.1") ; Remember to update chez-scheme-for-racket! -(define %zuo-version "1.7") ; defined in racket/src/zuo/zuo.c (define %racket-commit (string-append "v" %racket-version)) (define %racket-origin @@ -206,8 +205,7 @@ (define %racket-origin (file-name (git-file-name "racket" %racket-version)) (patches (search-patches "racket-chez-scheme-bin-sh.patch" "racket-backport-8.11-layered-docs.patch" - "racket-rktio-bin-sh.patch" - "racket-zuo-bin-sh.patch")) + "racket-rktio-bin-sh.patch")) (modules '((guix build utils))) (snippet #~(begin @@ -229,30 +227,28 @@ (define %racket-origin (define-public zuo - (let ((revision #f)) - (package - (name "zuo") - (version (string-append %zuo-version - "-racket" - %racket-version - (if revision "-guix" "") - (or revision ""))) - (source %racket-origin) - (outputs '("out" "debug")) - (build-system gnu-build-system) - (arguments - (list - #:out-of-source? #t - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'chdir - (lambda args - (chdir "racket/src/zuo")))))) - (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 "Zuo is a tiny Racket with primitives for dealing + (package + (name "zuo") + (version "1.9") ; defined in racket/src/zuo/zuo.c or the following + #;(displayln (~a (hash-ref (runtime-env) 'version) "." + (hash-ref (runtime-env) 'minor-version))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/racket/zuo") + (commit (string-append "v" version)))) + (sha256 + (base32 "0zasir33nx1qi1ciz9dn6h8k39i443lr6apw5d1i6mjmhpzxmdhp")) + (file-name (git-file-name name version)) + (patches (search-patches "zuo-bin-sh.patch")))) + (outputs '("out" "debug")) + (build-system gnu-build-system) + (arguments + (list + #:out-of-source? #t)) + (home-page "https://github.com/racket/zuo") + (synopsis "Tiny Racket for build scripts") + (description "Zuo is a tiny Racket with primitives for dealing with files and running processes. It comes with a @command{make}-like embedded DSL, which is used to build Racket itself. @@ -261,7 +257,7 @@ (define-public zuo 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))))) + (license (list license:asl2.0 license:expat)))) (define racket-vm-common-configure-flags -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 02:52:28 2024 Received: (at 70065) by debbugs.gnu.org; 1 Apr 2024 06:52:28 +0000 Received: from localhost ([127.0.0.1]:49354 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBWq-0003Nd-VY for submit@debbugs.gnu.org; Mon, 01 Apr 2024 02:52:28 -0400 Received: from fhigh3-smtp.messagingengine.com ([103.168.172.154]:43383) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBWl-0003NL-MS for 70065@debbugs.gnu.org; Mon, 01 Apr 2024 02:52:23 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 8AA9611400CA; Mon, 1 Apr 2024 02:52:11 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Mon, 01 Apr 2024 02:52:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1711954331; x=1712040731; bh=Jz8juGhGqD 57CHmrJ3MSzTnI8nbyxNHimJ9rgcIFm3I=; b=eQTGUdhOVJSpqdi8fDFhZ/cMKU fZ2fr87hX/dbegOyPLcVHf/M9vaJYloIMYJcDI9fcV7zpONAKqoP1sNg1iCJxdm8 hUmI6oLhqySvzP8MEBZHU7ZV1pkW6QrSnGj1C1gApqAhJnFG0LzFyTrCybVMcpCl 9dP/uFq4/4AO7wnCCoE9BPs/2kjbk6vLgGdV126yqwKn7d2yDPLh3UylGEikdvh1 vhLmkI5a39Qb2ugbPMpvAnQddigz3MftDnsgm2S0jQ853wu9xUi/sRDFIm9vM+X0 gKJA7PDKbxk4jLMsEHLeNsBbFwDwsgPWEdi9r1+rZp0f5KbBpDAXqTS5Pa0A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711954331; x= 1712040731; bh=Jz8juGhGqD57CHmrJ3MSzTnI8nbyxNHimJ9rgcIFm3I=; b=M I6b1U85jgrMPXCXisU/7hyKrsDRIBWUmyebCcbzUuFsDx16ADZab833Ttu6ze8CB jSwM7lvjbyva5XIeRGEyiTi3k5qyamkaFlsUCCLMYM4cSqEP/nd+xQpuFtVxPtrQ rOHzbcA0PT0qxGOKbo7NzKFwjbSG6GNDy9ggrDpnJATlbj23IJt4BOJvTKx8+6sI /JKGQietvVnNPGQxV88gmcfnzVzgjcAqh1OkQ9MA9dVmgBu9PV21bz9WSN8Bu2so 8R54ETpYTL7nhec1gQgqSt/6dwodRZRrygGYv5CMG3f2vjJiPqSj0kt+cHH98wkV mVhDE1CvzoTnVbxrIqM4Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvledguddugecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enogfuuhhsphgvtghtffhomhgrihhnucdlgeelmdenfghrlhcuvffnffculdejmdenucfj ughrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomheprfhhihhlih hpucfotgfirhgrthhhuceophhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtohhm qeenucggtffrrghtthgvrhhnpeetfedukeekjeelveehjeejvdetheejtddutdfgieeive efkeekkefgueelffeuvdenucffohhmrghinhepughishgtohhurhhsvgdrghhrohhuphdp ghhithhhuhgsrdgtohhmpdhgihhthhhusgdrihhopdhrrggtkhgvthdqlhgrnhhgrdhorh hgpdhgnhhurdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghi lhhfrhhomhepphhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtohhm X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 1 Apr 2024 02:52:10 -0400 (EDT) From: Philip McGrath To: 70065@debbugs.gnu.org Subject: [PATCH v2 2/8] gnu: racket: Update to 8.12. Date: Mon, 1 Apr 2024 02:51:07 -0400 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Debbugs-Cc: Philip McGrath Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin , Philip McGrath , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) All of Racket's changes to Chez Scheme have been merged upstream. They are the basis for the Chez Scheme 10.0.0 release. For the forseeable future, Racket will continue to depend on a specific pre-release version of Chez Scheme as part of Racket's "ABI": see upstream discussion at . * gnu/packages/chez.scm (chez-configure): Change to define a phase to run the Chez Scheme configure script, renaming the old definition to ... (configure-chezschemelibdirs): ... this new variable. (chez-srfi, chez-matchable, chez-irregex, chez-fmt, chez-mit) (chez-scmutils)[arguments]<#:phases>: Update accordingly. (unpack-nanopass+stex): Replace with ... (unpack-nanopass): ... this new variable. (chez-scheme)[arguments]<#:phases>: Inline old definition of 'unpack-nanopass+stex' to facilitate transition. (chez-scheme-for-racket): Stop inheriting from 'chez-scheme'. [version]: Update to 9.9.9-pre-release.23. [outputs]: Add "debug" output. [native-inputs]: Add 'texlive-enumitem' for native builds. For cross builds, omit TeX-related inputs and add this-package:doc. [inputs, native-search-paths, home-page]: Rewrite without inheritance. [arguments]: Likewise, and adjust for upstream changes. [synopsis, description]: Rewrite to reflect upstreaming of Racket's changes to Chez Scheme. (chez-scheme-for-racket-bootstrap-bootfiles): Stop inheriting from 'chez-scheme-bootstrap-bootfiles'. [arguments]: Rewrite without inheritance. Use `make cross.boot` instead of broken experimental script for cross builds. [home-page]: Use bootstrapping Racket package instead of archived Git repository. [description]: Rewrite to reflect upstreaming of Racket's changes to Chez Scheme. * gnu/packages/patches/racket-backport-8.11-layered-docs.patch: Delete file. * gnu/packages/patches/racket-backport-8.12-chez-configure.patch: New file. * gnu/local.mk (dist_patch_DATA): Update accordingly. * gnu/packages/racket.scm (%racket-origin)[patches]: Likewise. [snippet]: Also unbundle Zuo and potential pre-built boot files. (%racket-version): Update to 8.12. (racket-vm-cs)[arguments]<#:phases>: Use 'unpack-nanopass' instead of 'unpack-nanopass+stex'. (racket)[inputs] : Update hashes. : Likewise, and remove obsolete snippet. Change-Id: I11e7f44be37c60c91b03d246a50e75e418bd0672 --- gnu/local.mk | 4 +- gnu/packages/chez.scm | 522 ++++++++++-------- .../racket-backport-8.11-layered-docs.patch | 36 -- .../racket-backport-8.12-chez-configure.patch | 423 ++++++++++++++ gnu/packages/racket.scm | 61 +- 5 files changed, 761 insertions(+), 285 deletions(-) delete mode 100644 gnu/packages/patches/racket-backport-8.11-layered-docs.patch create mode 100644 gnu/packages/patches/racket-backport-8.12-chez-configure.patch diff --git a/gnu/local.mk b/gnu/local.mk index a025276390..a10aa2cefd 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -41,7 +41,7 @@ # Copyright © 2020, 2023 Vinicius Monego # Copyright © 2021 Björn Höfling # Copyright © 2021 Greg Hogan -# Copyright © 2021, 2022, 2023 Philip McGrath +# Copyright © 2021-2024 Philip McGrath # Copyright © 2021 Arun Isaac # Copyright © 2021 Sharlatan Hellseher # Copyright © 2021 Dmitry Polyakov @@ -1982,7 +1982,7 @@ dist_patch_DATA = \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ %D%/packages/patches/rtags-separate-rct.patch \ %D%/packages/patches/racket-chez-scheme-bin-sh.patch \ - %D%/packages/patches/racket-backport-8.11-layered-docs.patch \ + %D%/packages/patches/racket-backport-8.12-chez-configure.patch \ %D%/packages/patches/racket-rktio-bin-sh.patch \ %D%/packages/patches/remake-impure-dirs.patch \ %D%/packages/patches/restartd-update-robust.patch \ diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 2811cf3e01..f651cdce0c 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2019 Brett Gilio ;;; Copyright © 2020 Brendan Tildesley -;;; Copyright © 2021, 2022, 2023 Philip McGrath +;;; Copyright © 2021-2024 Philip McGrath ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,7 +51,7 @@ (define-module (gnu packages chez) #:export (chez-scheme-for-system racket-cs-native-supported-system? nix-system->pbarch-machine-type - unpack-nanopass+stex)) + unpack-nanopass)) ;; Commentary: ;; @@ -273,19 +273,14 @@ (define* (racket-cs-native-supported-system? #:optional ;; Chez Scheme: ;; - -(define unpack-nanopass+stex - #~(begin - (copy-recursively - (dirname (search-input-file %build-inputs - "lib/chez-scheme/nanopass.ss")) - "nanopass" - #:keep-mtime? #t) - (mkdir-p "stex") - (with-output-to-file "stex/Mf-stex" - (lambda () - ;; otherwise, it will try to download submodules - (display "# to placate ../configure"))))) +(define unpack-nanopass + #~(lambda* (#:key inputs native-inputs #:allow-other-keys) + (with-directory-excursion (if (directory-exists? "racket/src/ChezScheme") + "racket/src/ChezScheme" + ".") + (symlink (dirname (search-input-file (or native-inputs inputs) + "lib/chez-scheme/nanopass.ss")) + "nanopass")))) (define-public chez-scheme (package @@ -357,7 +352,17 @@ (define-public chez-scheme #~(modify-phases %standard-phases (add-after 'unpack 'unpack-nanopass+stex (lambda args - #$unpack-nanopass+stex)) + (begin + (copy-recursively + (dirname (search-input-file %build-inputs + "lib/chez-scheme/nanopass.ss")) + "nanopass" + #:keep-mtime? #t) + (mkdir-p "stex") + (with-output-to-file "stex/Mf-stex" + (lambda () + ;; otherwise, it will try to download submodules + (display "# to placate ../configure")))))) (add-after 'unpack-nanopass+stex 'unpack-bootfiles (lambda* (#:key native-inputs inputs #:allow-other-keys) (when (directory-exists? "boot") @@ -462,152 +467,226 @@ (define-public chez-scheme and 32-bit PowerPC architectures.") (license asl2.0))) +(define chez-configure + ;; The custom Chez 'configure' script doesn't allow unrecognized flags, such + ;; as those automatically added by `gnu-build-system`. This replacement + ;; phase uses only the explicitly provided `#:configure-flags`. + #~(lambda* (#:key inputs (configure-flags '()) out-of-source? + #:allow-other-keys) + (let* ((abs-srcdir (getcwd)) + (srcdir (if out-of-source? + (string-append "../" (basename abs-srcdir)) + "."))) + (format #t "source directory: ~s (relative from build: ~s)~%" + abs-srcdir srcdir) + (when out-of-source? + (begin + (mkdir "../build") + (chdir "../build"))) + (format #t "build directory: ~s~%" (getcwd)) + (format #t "configure flags: ~s~%" configure-flags) + (apply invoke + (string-append srcdir "/configure") + configure-flags)))) + (define-public chez-scheme-for-racket (package - (inherit chez-scheme) (name "chez-scheme-for-racket") - (version "9.9.9-pre-release.18") - ;; The version should match `scheme-version`. - ;; See racket/src/ChezScheme/s/cmacros.ss c. line 360. - ;; It will always be different than the upstream version! - ;; When updating, remember to also update %racket-version in racket.scm. - (source #f) ; avoid problematic cycle with racket.scm - (inputs - (let ((inputs (modify-inputs (package-inputs chez-scheme) - (replace "chez-scheme-bootstrap-bootfiles" - chez-scheme-for-racket-bootstrap-bootfiles) - (delete "libx11" "util-linux:lib")))) - (if (racket-cs-native-supported-system?) - inputs - (modify-inputs inputs - (prepend libffi))))) - (native-inputs - (let ((native-inputs (modify-inputs (package-native-inputs chez-scheme) - (prepend zuo)))) - (if (%current-target-system) - (modify-inputs native-inputs - (prepend this-package)) - native-inputs))) + ;; The version should match `(scheme-version-number #t)`. + ;; See s/cmacros.ss c. line 360. + (version "9.9.9-pre-release.23") + (source #f) + (build-system gnu-build-system) + (inputs `(,@(if (racket-cs-native-supported-system?) + '() + (list libffi)) + ,chez-scheme-for-racket-bootstrap-bootfiles + ,lz4 + ,ncurses ;<-- for expeditor + ,zlib)) + (native-inputs `(,@(if (%current-target-system) + (list this-package + `(,this-package "doc")) + (list stex-bootstrap + (texlive-updmap.cfg + (list texlive-enumitem)))) + ,chez-nanopass-bootstrap + ,zuo)) + (native-search-paths + (list (search-path-specification + (variable "CHEZSCHEMELIBDIRS") + (files '("lib/chez-scheme"))))) + (outputs '("out" "debug" "doc")) (arguments - (substitute-keyword-arguments (package-arguments chez-scheme) - ((#:out-of-source? _ #f) - #t) - ((#:configure-flags cfg-flags #~'()) - #~`("--disable-x11" - "--threads" ;; ok to potentially duplicate - #$(string-append "-m=" (or (racket-cs-native-supported-system?) - (nix-system->pbarch-machine-type))) - ;; ^ could skip -m= for non-cross non-pbarch builds - #$@(if (racket-cs-native-supported-system?) - #~() - ;; not inferred on non-native platforms: see - ;; https://racket.discourse.group/t/950/9 - #~("--enable-libffi" - "CFLAGS=-g -O2 -D_REENTRANT -pthread" - "LIBS=-lm -ldl -lrt -lffi -lncurses")) - #$@(if (%current-target-system) - (list (string-append "--toolprefix=" - (%current-target-system) - "-")) - '()) - ,@(let* ((chez+version (strip-store-file-name #$output)) - (doc-prefix (assoc-ref %outputs "doc")) - (doc-dir (string-append doc-prefix - "/share/doc/" - chez+version))) - (list (string-append "--installcsug=" - doc-dir - "/csug") - (string-append "--installreleasenotes=" - doc-dir - "/release_notes"))) - ,@#$cfg-flags)) - ((#:make-flags mk-flags #~'()) - #~(cons* (string-append "ZUO=" - #+(this-package-native-input "zuo") - "/bin/zuo") - (string-append "STEXLIB=" - #+(this-package-native-input "stex") - "/lib/stex") - #$mk-flags)) - ((#:phases those-phases #~%standard-phases) - #~(let* ((those-phases #$those-phases) - (gnu:unpack (assoc-ref those-phases 'unpack)) - (gnu:build (assoc-ref those-phases 'build))) - (modify-phases those-phases - (replace 'build - ;; need to override target for cross-compilation - ;; https://racket.discourse.group/t/950/19 - (lambda* (#:key target (make-flags '()) (parallel-build? #t) - #:allow-other-keys) - (gnu:build #:make-flags (if target - (cons "kernel" make-flags) - make-flags) - #:parallel-build? parallel-build?))) - (replace 'install-docs - (lambda* (#:key native-inputs (make-flags '()) - #:allow-other-keys) - ;; The tests for 'native-inputs' are cross-compilation - ;; workarounds that would be better to address upstream: - ;; see . - (when native-inputs - (substitute* "Makefile" - (("install-docs: build \\$[(]ZUO[)]") - "install-docs: $(ZUO)"))) - (apply invoke - "make" - "install-docs" - (if native-inputs - (cons (string-append - "Scheme=" - (search-input-file native-inputs - "/bin/scheme")) - make-flags) - make-flags)))) - (replace 'unpack - (lambda args - (gnu:unpack #:source #$(or (package-source this-package) - (package-source racket-vm-bc))))) - (add-after 'unpack 'chdir - (lambda args - (chdir "racket/src/ChezScheme")))))))) - (supported-systems %supported-systems) - (home-page "https://github.com/racket/ChezScheme") - ;; ^ This is downstream of https://github.com/racket/racket, - ;; but it's designed to be a friendly landing place for people - ;; who want a ChezScheme-shaped repositroy. - (synopsis "Variant of Chez Scheme extended for Racket") - (description "This variant of Chez Scheme is extended to support the -implementation of Racket. It may be useful on platforms that are not yet -supported by upstream Chez Scheme. - -Main additions to Chez Scheme in the Racket variant: -@itemize @bullet -@item -AArch64 and RV64G (RISC-V) code generation -@item -Portable bytecode (@code{pb}) mode, which is mainly useful for bootstrapping a -build on any platform, but can also be used on platforms without native-code -generation, compiled via Emscripten, linked with @code{libffi}, or used with -bytecode partially compiled to C -@item -Unboxed floating-point arithmetic and flvectors -@item -Faster multiplication and division for large exact numbers -@item -Type reconstruction during optimization (especially for safe code) -@item -Continuation marks -@item -Parallel garbage collection, in-place garbage collection for old-generation -objects (instead of always copying), and reachability-based memory -accounting -@item -Ordered finalization, immobile (but collectable) objects, weak/ephemeron -generic hash tables, and reference bytevectors -@item -Easier bootstrapping via old versions of Chez Scheme -@end itemize") + (list + #:modules + '((guix build gnu-build-system) + (guix build utils) + (ice-9 ftw) + (ice-9 match) + (srfi srfi-34)) + #:out-of-source? #t + ;; Intermittent failures: https://github.com/cisco/ChezScheme/issues/809 + #:tests? #f + #:test-target "test" ; test-one test-some-fast test-some test test-more + #:configure-flags + #~`(,@(let* ((chez+version (strip-store-file-name #$output)) + (doc-dir (string-append #$output:doc + "/share/doc/" + chez+version))) + (list (string-append "--installcsug=" + doc-dir + "/csug") + (string-append "--installreleasenotes=" + doc-dir + "/release_notes"))) + ,(string-append "--installprefix=" #$output) + #$@(if (%current-target-system) + (list (string-append "--toolprefix=" + (%current-target-system) + "-")) + '()) + ,@(if (false-if-exception + (search-input-directory %build-inputs "/include/X11")) + '() + '("--disable-x11")) + #$(string-append "-m=" (or (racket-cs-native-supported-system?) + (nix-system->pbarch-machine-type))) + ;; ^ could skip -m= for non-cross non-pbarch builds + #$@(if (racket-cs-native-supported-system?) + #~() + ;; not inferred on non-native platforms: see + ;; https://racket.discourse.group/t/950/9 + #~("--enable-libffi" + "CFLAGS+=-g -D_REENTRANT -pthread" + "LIBS+=-lm -ldl -lrt -lncurses")) + ,(string-append "STEXLIB=" + (or (false-if-exception + (search-input-directory %build-inputs + "/lib/stex")) + "/GuixNotUsingStex")) + "ZUO=zuo" + "ZLIB=-lz" + "LZ4=-llz4" + ;; Guix will do 'compress-man-pages', + ;; and letting Chez try caused an error (at one point) + "--nogzip-man-pages") + #:phases + #~(modify-phases %standard-phases + (replace 'unpack + (let ((unpack (assoc-ref %standard-phases 'unpack))) + (lambda args + (unpack #:source #$(or (package-source this-package) + (package-source racket-vm-bc)))))) + (add-after 'unpack 'unpack-nanopass + #$unpack-nanopass) + (add-after 'unpack-nanopass 'maybe-chdir + (lambda args + (when (directory-exists? "racket/src/ChezScheme") + (chdir "racket/src/ChezScheme")))) + (add-after 'maybe-chdir 'unpack-bootfiles + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (when (directory-exists? "boot") + (delete-file-recursively "boot")) + (copy-recursively + (search-input-directory inputs "lib/chez-scheme-bootfiles") + "boot"))) + (replace 'configure + #$chez-configure) + (add-after 'configure 'configure-environment-variables + (lambda args + ;; mats/6.ms needs HOME to be set: + (setenv "HOME" "/tmp"))) + (replace 'build + ;; need to override target for cross-compilation + ;; https://racket.discourse.group/t/950/19 + (let ((gnu:build (assoc-ref %standard-phases 'build))) + (lambda* (#:key target (make-flags '()) (parallel-build? #t) + #:allow-other-keys) + (gnu:build #:make-flags (if target + (cons "kernel" make-flags) + make-flags) + #:parallel-build? parallel-build?)))) + (add-before 'check 'build-docs + ;; Building the documentation requires stex and a running scheme. + ;; This comes BEFORE 'check because the test suite may take on the + ;; order of an hour (without parallelism), so we want to get any + ;; other errors first. + ;; TODO: Improve cross support upstream: currently, it tries to + ;; run the cross-compiled scheme. + (lambda* (#:key native-inputs (make-flags '()) #:allow-other-keys) + #$(if (%current-target-system) + #~(format #t "not building docs for cross~%") + #~(apply invoke "make" "docs" make-flags)))) + ;; The binary file name is called "scheme" as is the one from + ;; MIT/GNU Scheme. We add a symlink to use in case both are + ;; installed. + (add-after 'install 'install-symlink + (lambda* (#:key outputs #:allow-other-keys) + (let* ((bin-dir + (dirname (search-input-file outputs "/bin/scheme"))) + (boot-dir + (match (find-files (string-append bin-dir "/../lib") + "scheme.boot") + ((scheme.boot) + (dirname scheme.boot))))) + (for-each (lambda (dir) + (with-directory-excursion dir + (symlink "./scheme" "chez-scheme") + (when (file-exists? "scheme.boot") + (symlink "./scheme.boot" "chez-scheme.boot")))) + (list bin-dir boot-dir))))) + (add-after 'install-symlink 'install-docs + ;; TODO: Improve cross support upstream. + ;; The `install-docs` target has a Zuo dependency on the `docs` + ;; target, so we have the same problem as the build-docs phase. + (lambda* (#:key native-inputs (make-flags '()) #:allow-other-keys) + #$(if (%current-target-system) + #~(let* ((rel + (string-append "share/doc/" + (strip-store-file-name #$output))) + (found/csug + (search-input-directory + native-inputs (string-append rel "/csug"))) + (found (substring found/csug + 0 + (- (string-length found/csug) + (string-length "/csug")))) + (dest (string-append #$output:doc "/" rel))) + (mkdir-p dest) + (with-directory-excursion dest + (for-each (lambda (f) + (symlink (string-append found "/" f) + f)) + '("csug" "csug.pdf" + "release_notes" "release_notes.pdf")))) + #~(apply invoke "make" "install-docs" make-flags)))) + (add-after 'install-docs 'link-doc-pdfs + ;; otherwise, it's hard to notice them in a forest of HTML files + ;; TODO: improve cross support upstream. + (lambda* (#:key outputs #:allow-other-keys) + #$(if (%current-target-system) + #~(format #t "nothing to be done for cross~%") + #~(with-directory-excursion + (string-append (or (assoc-ref outputs "doc") + (assoc-ref outputs "out")) + "/share/doc/" + (strip-store-file-name #$output)) + (symlink "release_notes/release_notes.pdf" + "release_notes.pdf") + (match (find-files + "csug" + "csug.*\\.pdf$" ;; embeded version number + #:fail-on-error? #t) + ((pth) + (symlink pth + "csug.pdf")))))))))) + (home-page "https://cisco.github.io/ChezScheme/") + (synopsis "Bootstrapping version of Chez Scheme") + (description + "This is the precise pre-release version of Chez Scheme from a specific +Racket release. It is used to build Racket and to bootstrap the released +version of Chez Scheme.") (license asl2.0))) ;; @@ -646,58 +725,70 @@ (define-public chez-scheme-bootstrap-bootfiles (define-public chez-scheme-for-racket-bootstrap-bootfiles (package - (inherit chez-scheme-bootstrap-bootfiles) (name "chez-scheme-for-racket-bootstrap-bootfiles") (version (package-version chez-scheme-for-racket)) (source #f) ; avoid problematic cycle with racket.scm (native-inputs - (cons* chez-nanopass-bootstrap - (if (%current-target-system) - (list zuo - chez-scheme-for-racket) - (list racket-vm-bc)))) + (cons chez-nanopass-bootstrap + (if (%current-target-system) + (list zuo + chez-scheme-for-racket) + (list racket-vm-bc)))) + (build-system copy-build-system) (arguments - (substitute-keyword-arguments - (package-arguments chez-scheme-bootstrap-bootfiles) - ((#:phases those-phases #~%standard-phases) - #~(let* ((those-phases #$those-phases) - (unpack (assoc-ref those-phases 'unpack))) - (modify-phases those-phases - (replace 'unpack - (lambda args - (unpack #:source #$(or (package-source this-package) - (package-source racket-vm-bc))))) - (add-after 'unpack 'chdir - (lambda args - (chdir "racket/src/ChezScheme"))) - (add-after 'chdir 'unpack-nanopass+stex - (lambda args - #$unpack-nanopass+stex)) - (add-before 'install 'build - (lambda* (#:key native-inputs inputs #:allow-other-keys) - #$(cond - ((%current-target-system) - ;; cross-compiling - #~(invoke - (search-input-file (or native-inputs inputs) - "/bin/zuo") - "makefiles/boot.zuo" - (search-input-file (or native-inputs inputs) - "/bin/scheme") - #$(or (racket-cs-native-supported-system?) - (nix-system->pbarch-machine-type)))) - (else - ;; bootstrapping - #~(invoke - (search-input-file (or native-inputs inputs) - "/opt/racket-vm/bin/racket") - "../rktboot/main.rkt")))))))))) - (supported-systems - (package-supported-systems chez-scheme-for-racket)) - (home-page "https://github.com/racket/ChezScheme") - ;; ^ This is downstream of https://github.com/racket/racket, - ;; but it's designed to be a friendly landing place for people - ;; who want a ChezScheme-shaped repositroy. + (list + #:install-plan + #~`(("boot/" "lib/chez-scheme-bootfiles")) + #:phases + #~(modify-phases %standard-phases + (replace 'unpack + (let ((unpack (assoc-ref %standard-phases 'unpack))) + (lambda args + (unpack #:source #$(or (package-source this-package) + (package-source racket-vm-bc)))))) + (add-after 'unpack 'unpack-nanopass + #$unpack-nanopass) + (add-after 'unpack-nanopass 'chdir + (lambda args + (chdir "racket/src/ChezScheme"))) + (add-before 'install 'build + #$(cond + ((%current-target-system) + ;; cross-compiling + ;; TODO: share more of this with upstream, once we figure out + ;; how best to manage running Chez as a cross-compiler and the + ;; unfortate cycle with %racket-origin. + #~(lambda* (#:key native-inputs inputs (parallel-build? #t) + #:allow-other-keys) + (invoke "./configure" + "--force" ; don't complain about missing bootfiles + #$(string-append + "-m=" (or (racket-cs-native-supported-system?) + (nix-system->pbarch-machine-type))) + "ZUO=zuo" + ;; ignore submodules: + "ZLIB=-lz" + "LZ4=-llz4" + "STEXLIB=/GuixNotUsingStex") + (apply invoke + "make" + `(,@(if parallel-build? + `("-j" ,(number->string + (parallel-job-count))) + '()) + ,(string-append "SCHEME=" + (search-input-file + (or native-inputs inputs) + "/bin/scheme")) + "cross.boot")))) + (else + ;; bootstrapping + #~(lambda* (#:key native-inputs inputs #:allow-other-keys) + (invoke + (search-input-file (or native-inputs inputs) + "/opt/racket-vm/bin/racket") + "../rktboot/main.rkt")))))))) + (home-page "https://pkgs.racket-lang.org/package/cs-bootstrap") (synopsis "Chez Scheme bootfiles bootstrapped by Racket") (description "Chez Scheme is a self-hosting compiler: building it requires ``bootfiles'' containing the Scheme-implemented portions compiled for @@ -709,11 +800,8 @@ (define-public chez-scheme-for-racket-bootstrap-bootfiles Scheme compiler purely from source into Racket and apply the compiler to itself, thus bootstrapping Chez Scheme. Bootstrapping takes about 10 times as long as using an existing Chez Scheme, but @code{cs-bootstrap} supports Racket -7.1 and later, including the Racket BC variant. - -Note that the generated bootfiles are specific to Racket's fork of Chez -Scheme, and @code{cs-bootstrap} does not currently support building upstream -Chez Scheme."))) +7.1 and later, including the Racket BC variant.") + (license asl2.0))) ;; ;; Chez's bootstrap dependencies: @@ -935,7 +1023,7 @@ (define-public chez-nanopass ;; Help function for Chez Scheme to add the current path to ;; CHEZSCHEMELIBDIRS. -(define chez-configure +(define configure-chezschemelibdirs #~(lambda _ (let ((chez-env (getenv "CHEZSCHEMELIBDIRS"))) (setenv "CHEZSCHEMELIBDIRS" @@ -975,7 +1063,7 @@ (define-public chez-srfi #:test-target "test" #:phases #~(modify-phases %standard-phases (replace 'configure - #$chez-configure)))) + #$configure-chezschemelibdirs)))) (home-page "https://github.com/fedeinthemix/chez-srfi") (synopsis "SRFI libraries for Chez Scheme") (description @@ -1159,7 +1247,7 @@ (define-public chez-matchable #:test-target "test" #:phases #~(modify-phases %standard-phases (replace 'configure - #$chez-configure)))) + #$configure-chezschemelibdirs)))) (synopsis "Portable hygienic pattern matcher for Scheme") (description "This package provides a superset of the popular Scheme @code{match} package by Andrew Wright, written in fully portable @@ -1191,7 +1279,7 @@ (define-public chez-irregex #:test-target "test" #:phases #~(modify-phases %standard-phases (replace 'configure - #$chez-configure)))) + #$configure-chezschemelibdirs)))) (home-page "https://github.com/fedeinthemix/chez-irregex") (synopsis "Portable regular expression library for Scheme") (description "This package provides a portable and efficient @@ -1223,7 +1311,7 @@ (define-public chez-fmt #:phases #~(modify-phases %standard-phases (replace 'configure - #$chez-configure) + #$configure-chezschemelibdirs) (replace 'build (lambda* (#:key (make-flags '()) #:allow-other-keys) (apply invoke "make" "chez-build" make-flags))) @@ -1285,7 +1373,7 @@ (define-public chez-mit #:test-target "test" #:phases #~(modify-phases %standard-phases (replace 'configure - #$chez-configure)))) + #$configure-chezschemelibdirs)))) (synopsis "MIT/GNU Scheme compatibility library for Chez Scheme") (description "This package provides a set of MIT/GNU Scheme compatibility libraries for Chez Scheme. The main goal was to provide the functionality @@ -1320,7 +1408,7 @@ (define-public chez-scmutils #:phases #~(modify-phases %standard-phases (replace 'configure - #$chez-configure) + #$configure-chezschemelibdirs) ;; Since the documentation is lacking, we install the source ;; code. For things to work correctly we have to replace ;; relative paths by absolute ones in 'include' forms. This diff --git a/gnu/packages/patches/racket-backport-8.11-layered-docs.patch b/gnu/packages/patches/racket-backport-8.11-layered-docs.patch deleted file mode 100644 index 07f105bb24..0000000000 --- a/gnu/packages/patches/racket-backport-8.11-layered-docs.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 1d8dbdf408db9e99f1382323477561d5148cd451 Mon Sep 17 00:00:00 2001 -From: Philip McGrath -Date: Fri, 20 Oct 2023 17:19:50 -0400 -Subject: [PATCH] racket-index: fix release.scrbl for layered installations -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Configure the release notes page to be rendered separately at every -installation layer. Otherwise, rendering documentation for packages -installed in a new layer might try to write to `release/in.sxref` -in the parent layer’s docs directory. - -Related to https://github.com/videolang/video/issues/67 -Related to https://issues.guix.gnu.org/56534 - -(cherry picked from commit 85f21854c0a41564b755fbe180fe6b85de6c4730) ---- - pkgs/racket-index/scribblings/main/info.rkt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pkgs/racket-index/scribblings/main/info.rkt b/pkgs/racket-index/scribblings/main/info.rkt -index 75c507848a..a6a3798f7c 100644 ---- a/pkgs/racket-index/scribblings/main/info.rkt -+++ b/pkgs/racket-index/scribblings/main/info.rkt -@@ -6,4 +6,4 @@ - ("local-redirect.scrbl" (depends-all-main no-depend-on every-main-layer) (omit) "local-redirect" 1 10) - ("license.scrbl" () (omit)) - ("acks.scrbl" () (omit)) -- ("release.scrbl" (depends-all-main no-depend-on) (omit)))) -+ ("release.scrbl" (depends-all-main no-depend-on every-main-layer) (omit)))) - -base-commit: c3a502c0ae9f4d615bfd85fc7d88b781826bbb09 --- -2.41.0 - diff --git a/gnu/packages/patches/racket-backport-8.12-chez-configure.patch b/gnu/packages/patches/racket-backport-8.12-chez-configure.patch new file mode 100644 index 0000000000..483948fec9 --- /dev/null +++ b/gnu/packages/patches/racket-backport-8.12-chez-configure.patch @@ -0,0 +1,423 @@ +From 82157f5b3fb9f71ad7fc978c428d423d06a4a0df Mon Sep 17 00:00:00 2001 +From: Philip McGrath +Date: Wed, 28 Feb 2024 19:41:22 -0500 +Subject: [PATCH 1/2] Chez Scheme: Repairs and improvements for building with + external dependencies + +* configure: support `ZUO=` + +Supplying `ZUO=` skips the submodule check in `configure` +and configures the generated makefile not to build or remove Zuo. + +* configure: support `STEXLIB=` + +For compatibility with older scripts, when not explicitly configured, +continue to honor the `STEXLIB` environment variable at build time. + +(cherry picked from commit 694fbd47a125c7fde10a328c6fda199dac19f802) +--- + racket/src/ChezScheme/BUILDING | 5 ++-- + racket/src/ChezScheme/build.zuo | 13 +++++++--- + racket/src/ChezScheme/configure | 27 ++++++++++++++++++++- + racket/src/ChezScheme/makefiles/Makefile.in | 6 ++--- + 4 files changed, 40 insertions(+), 11 deletions(-) + +diff --git a/racket/src/ChezScheme/BUILDING b/racket/src/ChezScheme/BUILDING +index 50fde27771..2df29b5bd8 100644 +--- a/racket/src/ChezScheme/BUILDING ++++ b/racket/src/ChezScheme/BUILDING +@@ -155,7 +155,8 @@ information on the supported options. + The generated makefile mostly just ensures that a `zuo` executable is + built in a `bin` directory, and then it defers the actual build work + to `zuo`, which uses the "main.zuo" file. If you have `zuo` installed, +-you can use `zuo` directly instead of `make`. In general, instead of ++you can use `zuo` directly instead of `make`: in that case, you may ++wish to use `./configure ZUO=`. In general, instead of + the command `make X` to build target `X` as described below, you can + use `zuo . X` (or `bin/zuo . X` after `bin/zuo` is built). + +@@ -339,7 +340,7 @@ The makefile supports several targets: + * `make clean` + + Removes all built elements from the workarea, and then removes +- `bin/zuo`. ++ `bin/zuo` (unless configured with `ZUO=`). + + + WINDOWS VIA COMMAND PROMPT +diff --git a/racket/src/ChezScheme/build.zuo b/racket/src/ChezScheme/build.zuo +index a211632a89..432cc6e5a1 100644 +--- a/racket/src/ChezScheme/build.zuo ++++ b/racket/src/ChezScheme/build.zuo +@@ -218,10 +218,15 @@ + token)) + + (define stexlib +- (let ((found (assoc "STEXLIB" (hash-ref (runtime-env) 'env)))) +- (if found +- (cdr found) +- (at-source "stex")))) ++ (let ([configured (hash-ref config 'STEXLIB "")] ++ [env (assoc "STEXLIB" (hash-ref (runtime-env) 'env))]) ++ (cond ++ [(not (equal? "" configured)) ++ configured] ++ [env ++ (cdr env)] ++ [else ++ (at-source "stex")]))) + (define stex-sources + (source-tree stexlib)) + +diff --git a/racket/src/ChezScheme/configure b/racket/src/ChezScheme/configure +index 721d1d1335..f88c6f7625 100755 +--- a/racket/src/ChezScheme/configure ++++ b/racket/src/ChezScheme/configure +@@ -93,6 +93,7 @@ default_warning_flags="-Wpointer-arith -Wall -Wextra -Wno-implicit-fallthrough" + CFLAGS_ADD= + zlibLib= + LZ4Lib= ++STEXLIB= + Kernel=KernelLib + buildKernelOnly=no + enableFrompb=yes +@@ -102,6 +103,7 @@ empetite=no + moreBootFiles= + preloadBootFiles= + alwaysUseBootFile= ++zuoExternal= + + CONFIG_UNAME=`uname` + +@@ -442,6 +444,12 @@ while [ $# != 0 ] ; do + LZ4=*) + LZ4Lib=`echo $1 | sed -e 's/^LZ4=//'` + ;; ++ STEXLIB=*) ++ STEXLIB=`echo $1 | sed -e 's/^STEXLIB=//'` ++ ;; ++ ZUO=*) ++ zuoExternal=`echo $1 | sed -e 's/^ZUO=//'` ++ ;; + *) + echo "option '$1' unrecognized or missing an argument; try $0 --help" + exit 1 +@@ -667,6 +675,8 @@ if [ "$help" = "yes" ]; then + echo " STRIP= executable stripper" + echo " ZLIB= link to instead of own zlib" + echo " LZ4= link to instead of own LZ4" ++ echo " STEXLIB= build docs with instead of own stex" ++ echo " ZUO= build with instead of own Zuo" + echo "" + echo "Available machine types: $machs" + echo "" +@@ -869,6 +879,16 @@ if [ "$addflags" = "yes" ] ; then + fi + fi + ++if [ "${zuoExternal}" = "" ] ; then ++ ZUO="bin/zuo" ++ RM_ZUO="rm -f bin/zuo" ++ ZUO_TARGET="bin/zuo" ++else ++ ZUO="${zuoExternal}" ++ RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'" ++ ZUO_TARGET="DoNotBuildZuo" ++fi ++ + # more compile and link flags for c/Mf-unix and mats/Mf-unix + mdinclude= + mdcppflags= +@@ -1039,7 +1059,7 @@ cp "$srcdir"/makefiles/buildmain.zuo main.zuo + # Some idea, but in the workarea, so it refers to "workarea.zuo" here: + cp "$srcdir"/makefiles/workmain.zuo $w/main.zuo + +-# The content of "$w/Makefile" records configuration decisions, ++# The content of "$w/Mf-config" records configuration decisions, + # and the Zuo build script takes it from there + cat > $w/Mf-config << END + srcdir=$srcdir +@@ -1075,6 +1095,7 @@ cursesLib=$cursesLib + ncursesLib=$ncursesLib + zlibLib=$zlibLib + LZ4Lib=$LZ4Lib ++STEXLIB=$STEXLIB + warningFlags=$warningFlags + Kernel=$Kernel + installscriptname=$installscriptname +@@ -1086,6 +1107,10 @@ preloadBootFiles=$preloadBootFiles + alwaysUseBootFile=$alwaysUseBootFile + relativeBootFiles=$relativeBootFiles + ++ZUO=$ZUO ++RM_ZUO=$RM_ZUO ++ZUO_TARGET=$ZUO_TARGET ++ + InstallBin=$installbin + InstallLib=$installlib + InstallMan=$installman/man1 +diff --git a/racket/src/ChezScheme/makefiles/Makefile.in b/racket/src/ChezScheme/makefiles/Makefile.in +index cfdd0230a3..4865bf2e2f 100644 +--- a/racket/src/ChezScheme/makefiles/Makefile.in ++++ b/racket/src/ChezScheme/makefiles/Makefile.in +@@ -3,8 +3,6 @@ workarea=$(w) + + include $(workarea)/Mf-config + +-ZUO=bin/zuo +- + .PHONY: build + build: $(ZUO) + + $(ZUO) $(workarea) MAKE="$(MAKE)" +@@ -140,9 +138,9 @@ pkg: $(ZUO) + .PHONY: clean + clean: $(ZUO) + + $(ZUO) $(workarea) clean MAKE="$(MAKE)" +- rm -f bin/zuo ++ $(RM_ZUO) + + # Using `+` here means that $(ZUO) gets built even if `-n`/`--dry-run` is provided to `make` +-$(ZUO): $(srcdir)/../zuo/zuo.c ++$(ZUO_TARGET): $(srcdir)/../zuo/zuo.c + + mkdir -p bin + + $(CC_FOR_BUILD) -DZUO_LIB_PATH='"'"$(upsrcdir)/../zuo/lib"'"' -o $(ZUO) $(srcdir)/../zuo/zuo.c + +base-commit: 78fef00d4d16a79fdf6ab31924b3a80cadf4b368 +-- +2.41.0 + + +From e2bc69c5ce7437dd9a1b30ac1b12b3a56872c491 Mon Sep 17 00:00:00 2001 +From: Matthew Flatt +Date: Sun, 10 Mar 2024 09:13:40 -0600 +Subject: [PATCH 2/2] Chez Scheme: adjust `configure ZUO=` support + +Continuing from 694fbd47a1, adjust the generated makefile so the +supplied `` is not a makefile dependency. That way, `ZUO=zuo` +works if `zuo` is installed and the current build directory is not the +source directory. (The `zuo` executable is a dependency in a real and +relevant sense, but not in the sense of dependencies that we normally +track in makefiles.) + +Also adapt the makefile for the case that `ZUO=...` is not supplied +and the build directory is not the source directory, in which case +`ZUO_LIB_PATH` needs to be relative to the source directory. + +Using `make ZUO=zuo` can also work, but in that case, `bin/zuo` is +still built as a dependency. It's possible that some portable makefile +magic could overcome that limitation, but it doesn't seem important. + +(cherry picked from commit 28157ba88d48fe645563f46f6c00d6626b3428fa) +--- + racket/src/ChezScheme/configure | 3 + + racket/src/ChezScheme/makefiles/Makefile.in | 70 +++++++++++---------- + 2 files changed, 40 insertions(+), 33 deletions(-) + +diff --git a/racket/src/ChezScheme/configure b/racket/src/ChezScheme/configure +index f88c6f7625..201dbe580f 100755 +--- a/racket/src/ChezScheme/configure ++++ b/racket/src/ChezScheme/configure +@@ -881,10 +881,12 @@ fi + + if [ "${zuoExternal}" = "" ] ; then + ZUO="bin/zuo" ++ ZUO_DEP="${ZUO}" + RM_ZUO="rm -f bin/zuo" + ZUO_TARGET="bin/zuo" + else + ZUO="${zuoExternal}" ++ ZUO_DEP="" + RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'" + ZUO_TARGET="DoNotBuildZuo" + fi +@@ -1108,6 +1110,7 @@ alwaysUseBootFile=$alwaysUseBootFile + relativeBootFiles=$relativeBootFiles + + ZUO=$ZUO ++ZUO_DEP=$ZUO_DEP + RM_ZUO=$RM_ZUO + ZUO_TARGET=$ZUO_TARGET + +diff --git a/racket/src/ChezScheme/makefiles/Makefile.in b/racket/src/ChezScheme/makefiles/Makefile.in +index 4865bf2e2f..5ce237178e 100644 +--- a/racket/src/ChezScheme/makefiles/Makefile.in ++++ b/racket/src/ChezScheme/makefiles/Makefile.in +@@ -4,51 +4,55 @@ workarea=$(w) + include $(workarea)/Mf-config + + .PHONY: build +-build: $(ZUO) ++build: $(ZUO_DEP) + + $(ZUO) $(workarea) MAKE="$(MAKE)" + + .PHONY: run +-run: $(ZUO) ++run: $(ZUO_DEP) + + $(ZUO) $(workarea) run + + .PHONY: kernel +-kernel: $(ZUO) ++kernel: $(ZUO_DEP) + + $(ZUO) $(workarea) kernel MAKE="$(MAKE)" + + .PHONY: install +-install: $(ZUO) ++install: $(ZUO_DEP) + $(ZUO) $(workarea) install MAKE="$(MAKE)" + + .PHONY: uninstall +-uninstall: $(ZUO) ++uninstall: $(ZUO_DEP) + + $(ZUO) $(workarea) uninstall MAKE="$(MAKE)" + +-.PHONY: test +-test: $(ZUO) +- + $(ZUO) $(workarea) test MAKE="$(MAKE)" ++.PHONY: test-one ++test-one: $(ZUO_DEP) ++ + $(ZUO) $(workarea) test-one MAKE="$(MAKE)" + + .PHONY: test-some-fast +-test-some-fast: $(ZUO) ++test-some-fast: $(ZUO_DEP) + + $(ZUO) $(workarea) test-some-fast MAKE="$(MAKE)" + + .PHONY: test-some +-test-some: $(ZUO) ++test-some: $(ZUO_DEP) + + $(ZUO) $(workarea) test-some MAKE="$(MAKE)" + ++.PHONY: test ++test: $(ZUO_DEP) ++ + $(ZUO) $(workarea) test MAKE="$(MAKE)" ++ + .PHONY: test-more +-test-more: $(ZUO) ++test-more: $(ZUO_DEP) + + $(ZUO) $(workarea) test-more MAKE="$(MAKE)" + + .PHONY: coverage +-coverage: $(ZUO) ++coverage: $(ZUO_DEP) + + $(ZUO) $(workarea) coverage MAKE="$(MAKE)" + + .PHONY: bootfiles +-bootfiles: $(ZUO) ++bootfiles: $(ZUO_DEP) + + $(ZUO) $(workarea) bootfiles MAKE="$(MAKE)" + + .PHONY: reset +-reset: $(ZUO) ++reset: $(ZUO_DEP) + + $(ZUO) $(workarea) reset MAKE="$(MAKE)" + + # Supply XM= to build boot files for +@@ -57,86 +61,86 @@ boot: + + $(ZUO) $(workarea) boot "$(XM)" MAKE="$(MAKE)" + + # `.boot` as alias for `boot XM=` +-%.boot: $(ZUO) ++%.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) boot $* MAKE="$(MAKE)" + + .PHONY: auto.boot +-auto.boot: $(ZUO) ++auto.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) boot MAKE="$(MAKE)" + + SCHEME=scheme + + .PHONY: cross.boot +-cross.boot: $(ZUO) ++cross.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) boot SCHEME="$(SCHEME)" MAKE="$(MAKE)" + + .PHONY: re.boot +-re.boot: $(ZUO) ++re.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) reboot SCHEME="$(SCHEME)" + + # Supply XM= to build boot files for + # with o=3 d=0 for the cross compiler, and only after + # building the kernel for the configured machine + .PHONY: bootquick +-bootquick: $(ZUO) ++bootquick: $(ZUO_DEP) + + $(ZUO) $(workarea) bootquick "$(XM)" MAKE="$(MAKE)" + + # `.bootquick` as alias for `boot XM=` +-%.bootquick: $(ZUO) ++%.bootquick: $(ZUO_DEP) + + $(ZUO) $(workarea) bootquick $* MAKE="$(MAKE)" + +-auto.bootquick: $(ZUO) ++auto.bootquick: $(ZUO_DEP) + + $(ZUO) $(workarea) bootquick MAKE="$(MAKE)" + + # Supply XM=-.bootpbchunk to repackage boot files for + # with pbchunk sources, including additional + # boot files + .PHONY: bootpbchunk +-bootpbchunk: $(ZUO) ++bootpbchunk: $(ZUO_DEP) + + $(ZUO) $(workarea) bootpbchunk "$(XM)" $(ARGS) MAKE="$(MAKE)" + + # `.bootpbchunk` as alias for `pbchunk XM=` +-%.bootpbchunk: $(ZUO) ++%.bootpbchunk: $(ZUO_DEP) + + $(ZUO) $(workarea) bootpbchunk $* $(ARGS) MAKE="$(MAKE)" + + .PHONY: docs +-docs: build $(ZUO) ++docs: build $(ZUO_DEP) + + $(ZUO) $(workarea) docs MAKE="$(MAKE)" + + .PHONY: csug +-csug: build $(ZUO) ++csug: build $(ZUO_DEP) + + $(ZUO) $(workarea) csug MAKE="$(MAKE)" + + .PHONY: release_notes +-release_notes: build $(ZUO) ++release_notes: build $(ZUO_DEP) + + $(ZUO) $(workarea) release_notes MAKE="$(MAKE)" + + .PHONY: install-docs +-install-docs: build $(ZUO) ++install-docs: build $(ZUO_DEP) + + $(ZUO) $(workarea) install-docs MAKE="$(MAKE)" + + .PHONY: install-csug +-install-csug: build $(ZUO) ++install-csug: build $(ZUO_DEP) + + $(ZUO) $(workarea) install-csug MAKE="$(MAKE)" + + .PHONY: install-release_notes +-install-release_notes: build $(ZUO) ++install-release_notes: build $(ZUO_DEP) + + $(ZUO) $(workarea) install-release_notes MAKE="$(MAKE)" + + .PHONY: bintar +-bintar: $(ZUO) ++bintar: $(ZUO_DEP) + + $(ZUO) $(workarea) bintar MAKE="$(MAKE)" + + .PHONY: rpm +-rpm: $(ZUO) ++rpm: $(ZUO_DEP) + + $(ZUO) $(workarea) rpm MAKE="$(MAKE)" + + .PHONY: pkg +-pkg: $(ZUO) ++pkg: $(ZUO_DEP) + + $(ZUO) $(workarea) pkg MAKE="$(MAKE)" + + .PHONY: clean +-clean: $(ZUO) ++clean: $(ZUO_DEP) + + $(ZUO) $(workarea) clean MAKE="$(MAKE)" + $(RM_ZUO) + +-- +2.41.0 + diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 6e19be1da3..d366f89845 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -105,7 +105,9 @@ (define-module (gnu packages racket) ;; 'distro-build' package to assemble custom Racket distributions. (Again, ;; the makefile just delegates to Zuo.) It is not part of Racket source ;; distributions: the root of a source distribution is basically 'racket/src' -;; with some extra package sources and configuration added. +;; with some extra package sources and configuration added. In fact, the +;; top-level 'Makefile' and the 'distro-build' package are what create Racket +;; source distributions. ;; ;; A ''minimal Racket'' installation includes two packages: 'base', which is a ;; sort of bridge between the current ``built-in'' collections and the package @@ -191,7 +193,7 @@ (define-module (gnu packages racket) ;; ;; CODE: -(define %racket-version "8.11.1") ; Remember to update chez-scheme-for-racket! +(define %racket-version "8.12") ; Remember to update chez-scheme-for-racket! (define %racket-commit (string-append "v" %racket-version)) (define %racket-origin @@ -201,16 +203,16 @@ (define %racket-origin (url "https://github.com/racket/racket") (commit %racket-commit))) (sha256 - (base32 "1iny1mn1lw07lj6h704ch5g2q1nsf0h88dgwqrlxhf8pwj4i76gl")) + (base32 "1f52yadmrsd2ddry47s68kxig185a58n19j23458wkck19nawjz5")) (file-name (git-file-name "racket" %racket-version)) (patches (search-patches "racket-chez-scheme-bin-sh.patch" - "racket-backport-8.11-layered-docs.patch" + "racket-backport-8.12-chez-configure.patch" "racket-rktio-bin-sh.patch")) (modules '((guix build utils))) (snippet #~(begin (use-modules (guix build utils)) - ;; Unbundle Chez submodules. + ;; Unbundle Chez submodules and boot files. (with-directory-excursion "racket/src/ChezScheme" ;; TODO: consider putting this in a (guix ...) or (guix build ...) ;; module so it can be shared with the upstream Chez Scheme origin @@ -218,10 +220,14 @@ (define %racket-origin (for-each (lambda (dir) (when (directory-exists? dir) (delete-file-recursively dir))) - '("stex" - "nanopass" + '("boot" "lz4" - "zlib"))) + "nanopass" + "stex" + "zlib" + "zuo"))) + ;; Unbundle Zuo. + (delete-file-recursively "racket/src/zuo") ;; Unbundle libffi. (delete-file-recursively "racket/src/bc/foreign/libffi"))))) @@ -445,10 +451,8 @@ (define-public racket-vm-cs (substitute-keyword-arguments (package-arguments racket-vm-cgc) ((#:phases those-phases #~%standard-phases) #~(modify-phases #$those-phases - (add-after 'unpack 'unpack-nanopass+stex - (lambda args - (with-directory-excursion "racket/src/ChezScheme" - #$unpack-nanopass+stex))))) + (add-after 'unpack 'unpack-nanopass + #$unpack-nanopass))) ((#:configure-flags _ '()) #~(cons* "--enable-csonly" "--enable-libz" @@ -697,7 +701,7 @@ (define-public racket "contract-profile" (base32 "1xm2z8g0dpv5d9h2sg680vx1a8ix9gbsdpxxb8qv1w7akp73paj3") '(("contract-profile" "."))) (simple-racket-origin - "data" (base32 "1pml8g3zgvnaiqb659psh99m70v96m6nh9zash2vfgir46j4rjnh") + "data" (base32 "01sinnsnjiazvkj83k84izdnp38pd2aglbrs14mrdkwajgmpampk") '("data" "data-doc" "data-enumerate-lib" "data-lib")) (simple-racket-origin "datalog" (base32 "0nf6cy4djpyhfvgpa6yn72apbz9s83gp0qg95pzjd0az4v6qwq1s") @@ -706,7 +710,7 @@ (define-public racket "db" (base32 "0xx0k8yw2vb9b4vk2dwjfbpixnmriqsv7kpv3fvfxbwyg42y0db5") '("db" "db-doc" "db-lib")) (simple-racket-origin - "deinprogramm" (base32 "0ijngjyg2i528a4xv20db4adirvx5rj4m86fd70l33lgwv53w3s0") + "deinprogramm" (base32 "0f41sh90i4mml95x2gcmfvl2rc7m77vjbagmgjx270ng7xvz16lj") '("deinprogramm" "deinprogramm-signature")) (simple-racket-origin "distributed-places" (base32 "1dajpkj9balqcpv6cdk9hwjz592h1vq8rrx5vncariiac4vbdpa0") @@ -715,7 +719,7 @@ (define-public racket "draw" (base32 "1h7mckay8yjcgmj3r0jkf1csn430gn43n8jl1l956q9gcprlmncl") '("draw" "draw-doc" "draw-lib")) (simple-racket-origin - "drracket" (base32 "00ay3pwl648wq8nnaap665c38clr39k0g1wslh2wclar32wjpgdc") + "drracket" (base32 "17bdbvsf5l8z96bwzg1q75gg70c6svbhw0g1k239fsjd3mivmki4") '("drracket" "drracket-plugin-lib" "drracket-tool" @@ -749,13 +753,13 @@ (define-public racket "games" (base32 "13z7fnbr48s98lmfxc0nbfhbqkd4hphymy2r63hqm783xzn6ylzi") '(("games" "."))) (simple-racket-origin - "gui" (base32 "10mlajn5xqgdwi7gf9lgszfv609pjp8m24lm97b8xh6fmjlkqi4b") + "gui" (base32 "08kzyscqc8hgc1f8q0bhibl44fkq8iiyz12f8bqdhqkcz8nx44sw") '("gui" "gui-doc" "gui-lib" "tex-table")) (simple-racket-origin "gui-pkg-manager" (base32 "1ji9448d723nklqvycwdswj0ni28sabrncag14f9mx47did5myb5") '("gui-pkg-manager-lib")) (simple-racket-origin - "htdp" (base32 "04p2xp4hnnsnmrmvw05fg4fv18k3g2rz5gmgs89sc6g8y886m6zz") + "htdp" (base32 "13d8xsvs60d7797w93g14dbdm98bixgy65akayij256pyiwnqwdc") '("htdp" "htdp-doc" "htdp-lib")) (simple-racket-origin "html" (base32 "18n1jnjgzfknc8nv8dppi85nb8q08gqdwkg6hfjk08x0p00anx2x") @@ -797,7 +801,7 @@ (define-public racket (url "https://github.com/RenaissanceBug/racket-cookies") (commit %racket-commit))) (sha256 (base32 - "05lnml9nszcq72k8bi4iwdyplp2iv23ywb2gmrs2hr8837fqi65y")) + "1zr31y1gqa3kkrwlf9bnw08nzij00x1l70qhfbpz0239bksn4mmb")) (file-name (git-file-name "RenaissanceBug-racket-cookies" %racket-version))) '("net-cookies" "net-cookies-doc" "net-cookies-lib")) @@ -823,7 +827,7 @@ (define-public racket "pconvert" (base32 "00czi0p399mmyrvxyrs5kniizpkqfxyz2ncxqi2jy79a7wk79pb1") '("pconvert-lib")) (simple-racket-origin - "pict" (base32 "1vsn91r167wssaflzz080nsrcf0jfhl2a48zcj9hvdb77arbj8kc") + "pict" (base32 "1ghds5by8i0k2djbig82xqp2ssy3nvdwm45l8ibsr99y0ay6z7gv") '("pict" "pict-doc" "pict-lib")) (simple-racket-origin "pict-snip" (base32 "081nwiy4a0n4f7xws16hqbhf0j3kz5alizndi3nnyr3chm4kng6x") @@ -838,7 +842,7 @@ (define-public racket "planet" (base32 "0r2yqrzrmdjjyr14k6hhlzc5kzrcx3583m1s02mhrcmpfw0s85w9") '("planet" "planet-doc" "planet-lib")) (simple-racket-origin - "plot" (base32 "17fhsymy884xr4jqk585rm5kwdgkgz0635916gh5y0fsnp5pir70") + "plot" (base32 "0jq9a366g7b2c9vp6yvpqikvklgyd6p4xj6v224g99yj8cgip40b") '("plot" "plot-compat" "plot-doc" "plot-gui-lib" "plot-lib")) (simple-racket-origin "preprocessor" (base32 "1p5aid58ifnjy4xl0ysh85cq39k25661v975jrpk182z3k5621mg") @@ -852,11 +856,8 @@ (define-public racket (uri (git-reference (url "https://github.com/Metaxal/quickscript") (commit %racket-commit))) - (snippet - ;; See https://github.com/Metaxal/quickscript/issues/73 - #~(delete-file "register.rkt")) (sha256 (base32 - "0v27qknghfi0058vk8xwwlwqgqwdsxxmprrmag64cyygdz95sxym")) + "1ahznb9rhgaixd3fqn0pxighw4zbflwqc84r2yvn5nsfbp0mrq9b")) (file-name (git-file-name "Metaxal-quickscript" %racket-version))) '(("quickscript" "."))) (simple-racket-origin @@ -880,7 +881,7 @@ (define-public racket "racklog" (base32 "0fr8xij0sssfnmwn6dfdi4jj3l62f2yj3jrjljv13kaycrfls032") '(("racklog" "."))) (simple-racket-origin - "rackunit" (base32 "0axcy8283qqmcrhwwn0q0sfjznc8gkwbx06j41anayi5v9xp4698") + "rackunit" (base32 "06kpl51alm7akgmmh110ya28zgmx3as0szykfv2gwqmf7xcms1b7") '("rackunit" "rackunit-doc" "rackunit-gui" @@ -896,7 +897,7 @@ (define-public racket "realm" (base32 "0rlvwyd6rpyl0zda4a5p8dp346fvqzc8555dgfnrhliymkxb6x4g") '(("realm" "."))) (simple-racket-origin - "redex" (base32 "016m2fvfxjnx7l0ai6jlcmz4s8xipbq9k58fq7109akj9mvczgp9") + "redex" (base32 "1mwnxbfk2vbalndlq0996rzdi3a2z48m5xnb1ywzlsvnydrnkrk2") '("redex" "redex-benchmark" "redex-doc" @@ -911,7 +912,7 @@ (define-public racket "scheme-lib" (base32 "0pcf0y8rp4qyjhaz5ww5sr5diq0wpcdfrrnask7zapyklzx1jx8x") '(("scheme-lib" "."))) (simple-racket-origin - "scribble" (base32 "0igcjgmpzbzzn1jfpa4jq18lqyhr6dsdwnbv6zv87x8cib9rwqrh") + "scribble" (base32 "0rk5q9r9fw826ag0npk5cwkzkapj2p243wwm9gn2l7j7cr6z1rvb") '("scribble" "scribble-doc" "scribble-html-lib" @@ -943,7 +944,7 @@ (define-public racket "snip" (base32 "1b90ccqilnyszbphms3svm3c7dbk7870ifybjjipss5srb32mj2d") '("snip" "snip-lib")) (simple-racket-origin - "typed-racket" (base32 "17mz7zqrialxfzkynj7h3kfhawdd6cgs24ns437gz087g2pmwi1x") + "typed-racket" (base32 "0vdsyr0qhpvac6h8mfdy6vqrsqsfa7kpg39n3h637hccxyfxv63f") '("source-syntax" "typed-racket" "typed-racket-compatibility" @@ -954,7 +955,7 @@ (define-public racket "srfi" (base32 "1l3nr3a8mlp505aaxlyp4i8jfijmpyl9h1wwv8hzm4kzzjv4sl8p") '("srfi" "srfi-doc" "srfi-lib" "srfi-lite-lib")) (simple-racket-origin - "string-constants" (base32 "1djbjhsimikk18dkrajrlgjhlqfyvna4nz64ha4wjcaj5cfgcvdx") + "string-constants" (base32 "0225f1wmq1n9f2x1pg50fssdnd4bpc11q1jgsykwf4ik4fnaa520") '("string-constants" "string-constants-doc" "string-constants-lib")) (simple-racket-origin "swindle" (base32 "1q8vdxpzczzwdw2mys2caab45yvadmqkixsr29k8pl03n8dsg8j9") @@ -969,7 +970,7 @@ (define-public racket "unix-socket" (base32 "02dfwas5ynbpyz74w9kwb4wgb37y5wys7svrlmir8k0n9ph9vq0y") '("unix-socket" "unix-socket-doc" "unix-socket-lib")) (simple-racket-origin - "web-server" (base32 "0vhw1hwdcv1ham086dy0nkl4r0a5qvsimw8048zjakvax7q4shsg") + "web-server" (base32 "1i4sxmcgj00ml7czsbyx1433hgf091n1p54xyal2f1fsskx5fg0y") '("web-server" "web-server-doc" "web-server-lib")) (simple-racket-origin "wxme" (base32 "1qp5gr9gqsakiq3alw6m4yyv5vw4i3hp4y4nhq8vl2nkjmirvn0b") -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 02:52:29 2024 Received: (at 70065) by debbugs.gnu.org; 1 Apr 2024 06:52:29 +0000 Received: from localhost ([127.0.0.1]:49360 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBWu-0003Np-Bt for submit@debbugs.gnu.org; Mon, 01 Apr 2024 02:52:29 -0400 Received: from fhigh3-smtp.messagingengine.com ([103.168.172.154]:59847) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBWr-0003NS-43 for 70065@debbugs.gnu.org; Mon, 01 Apr 2024 02:52:26 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 023AA1140125; Mon, 1 Apr 2024 02:52:17 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Mon, 01 Apr 2024 02:52:17 -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:subject:subject:to :to; s=fm2; t=1711954336; x=1712040736; bh=x4hBBMGyE+8aZYCzBasod uM9roNhogIlgm9wdggAfZs=; b=J2X6Fro+HJ6vStulffisfgPc3MEtpjRsQkX2j xz5UPSQLvm+egI1mrZxtSxI6lUP33LQOMrggszbpXNOR1UPrvb+igQGDVd+B9THf wfu1IpjUBZnW0DYdegwHA96I+Sz9q0y/HRVCaoEGFdnCJCWYTdexIMTOY0ntAcn+ MKuMmOKziPO34eQbmblQsqypxh59l87MxrWA3DwIBhupJ2f3fM34kWtpjq3uLLnP hKFLEF0z8e5WtylrY6XLBGybbvGR9iGJ4TjpSV6vA9K+hAKc6GuqAd3snYk5Klud gFvjVttn+YPqllSZo8VPjoMAYKMR4tIjlW2yno0no9Th9LXpw== 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:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711954336; x= 1712040736; bh=x4hBBMGyE+8aZYCzBasoduM9roNhogIlgm9wdggAfZs=; b=C OmhmJWk1ceUFocEIeMHxpQ3uj1uuUMS86WgHljJZLg2UAXJzK6Ahd2inlzhk9wF3 375NCiWW6HU1YPlBldCUg7se1054pqdaEZ1ggRWrO8X3phViBW1NBa87agxvHMZP GfCZMuMrdkVelgykV1uqRNwprN+UkveySeLKKX1ZO+PdM7SKpUYjfmyvG3QWA/MM asNbFT1YkrFCDKBNlfjcqySQX6r6SoXCKqb7TrhXPSM1L3fvN5FohTaFVyLjrfBo OkliaqO/66xI3bAq7BTWa/XVY8ykh/6ljQA0k7YLM7s8riP+oZc6lTsSN+uK/ErJ 3hHlkqpJRKVddo4itokeA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvledguddugecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enogfuuhhsphgvtghtffhomhgrihhnucdlgeelmdenucfjughrpefhvfevufffkffojghf ggfgsedtkeertdertddtnecuhfhrohhmpefrhhhilhhiphcuofgtifhrrghthhcuoehphh hilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomheqnecuggftrfgrthhtvghrnhep ueevheefteejieeuveeuhfdugfevteefheegveejkeeufefggffhteegteefgfdunecuff homhgrihhnpehgihhthhhusgdrtghomhdpghhithhhuhgsrdhiohenucevlhhushhtvghr ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehphhhilhhiphesphhhihhlih hpmhgtghhrrghthhdrtghomh X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 1 Apr 2024 02:52:16 -0400 (EDT) From: Philip McGrath To: 70065@debbugs.gnu.org Subject: [PATCH v2 3/8] gnu: chez-scheme: Reorganize package definitions. Date: Mon, 1 Apr 2024 02:51:08 -0400 Message-ID: <92971b8c18a5d69577472b97c8b91b5319527049.1711953507.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Debbugs-Cc: Philip McGrath Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin , Philip McGrath , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) A future commit will change 'chez-scheme' to inherit from 'chez-scheme-for-racket', so 'chez-scheme-for-racket' will need to be defined before 'chez-scheme'. In an attempt to produce better diffs, this commit re-orders the definitions while keeping their contents exactly the same. * gnu/packages/chez.scm (chez-scheme): Move below 'chez-scheme-for-racket'. (chez-scheme-bootstrap-bootfiles): Move below 'chez-scheme-for-racket-bootstrap-bootfiles'. Change-Id: Ie088abea2b44329f9d8399fbfb95c51d8912b05e --- gnu/packages/chez.scm | 426 +++++++++++++++++++++--------------------- 1 file changed, 213 insertions(+), 213 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index f651cdce0c..19520cdf4a 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -282,191 +282,6 @@ (define unpack-nanopass "lib/chez-scheme/nanopass.ss")) "nanopass")))) -(define-public chez-scheme - (package - (name "chez-scheme") - ;; The version should match `(scheme-version-number)`. - ;; See s/cmacros.ss c. line 360. - (version "9.5.8") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/cisco/ChezScheme") - (commit (string-append "v" version)))) - (sha256 - (base32 - "0xchqq8cm0ka5wgpn18sjs0hh15rc3nb7xrjqbbc9al3asq0d7gc")) - (file-name (git-file-name name version)) - (patches (search-patches "chez-scheme-bin-sh.patch")) - (snippet #~(begin - (use-modules (guix build utils)) - ;; TODO: consider putting this in a (guix ...) or - ;; (guix build ...) module so it can be shared - ;; with the Racket origin without cyclic issues. - (for-each (lambda (dir) - (when (directory-exists? dir) - (delete-file-recursively dir))) - '("stex" - "nanopass" - "lz4" - "zlib")))))) - (build-system gnu-build-system) - (inputs - (list - chez-scheme-bootstrap-bootfiles - `(,util-linux "lib") ;<-- libuuid - zlib - lz4 - ncurses ;<-- for expeditor - ;; for X11 clipboard support in expeditor: - ;; https://github.com/cisco/ChezScheme/issues/9#issuecomment-222057232 - libx11)) - (native-inputs (list chez-nanopass-bootstrap - stex-bootstrap)) - (native-search-paths - (list (search-path-specification - (variable "CHEZSCHEMELIBDIRS") - (files '("lib/chez-scheme"))))) - (outputs '("out" "doc")) - (arguments - (list - #:modules - '((guix build gnu-build-system) - (guix build utils) - (ice-9 ftw) - (ice-9 match)) - #:test-target "test" - #:configure-flags - #~`(,(string-append "--installprefix=" #$output) - #$@(if (and=> (chez-upstream-features-for-system) - (cut memq 'threads <>)) - #~("--threads") - #~()) - "ZLIB=-lz" - "LZ4=-llz4" - "--libkernel" - ;; Guix will do 'compress-man-pages', - ;; and letting Chez try causes an error - "--nogzip-man-pages") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'unpack-nanopass+stex - (lambda args - (begin - (copy-recursively - (dirname (search-input-file %build-inputs - "lib/chez-scheme/nanopass.ss")) - "nanopass" - #:keep-mtime? #t) - (mkdir-p "stex") - (with-output-to-file "stex/Mf-stex" - (lambda () - ;; otherwise, it will try to download submodules - (display "# to placate ../configure")))))) - (add-after 'unpack-nanopass+stex 'unpack-bootfiles - (lambda* (#:key native-inputs inputs #:allow-other-keys) - (when (directory-exists? "boot") - (delete-file-recursively "boot")) - (copy-recursively - (search-input-directory inputs - "lib/chez-scheme-bootfiles") - "boot"))) - ;; NOTE: The custom Chez 'configure' script doesn't allow - ;; unrecognized flags, such as those automatically added - ;; by `gnu-build-system`. This replacement phase uses only - ;; the explicitly provided `#:configure-flags`. - (replace 'configure - (lambda* (#:key inputs (configure-flags '()) out-of-source? - #:allow-other-keys) - (let* ((abs-srcdir (getcwd)) - (srcdir (if out-of-source? - (string-append "../" (basename abs-srcdir)) - "."))) - (format #t "source directory: ~s (relative from build: ~s)~%" - abs-srcdir srcdir) - (if out-of-source? - (begin - (mkdir "../build") - (chdir "../build"))) - (format #t "build directory: ~s~%" (getcwd)) - (format #t "configure flags: ~s~%" configure-flags) - (apply invoke - (string-append srcdir "/configure") - configure-flags)))) - (add-after 'configure 'configure-environment-variables - (lambda args - ;; Some makefiles (for tests) don't seem to propagate CC - ;; properly, so we take it out of their hands: - (setenv "CC" #$(cc-for-target)) - ;; Likewise, some tests have needed HOME to be set: - (setenv "HOME" "/tmp"))) - ;; The binary file name is called "scheme" as is the one from - ;; MIT/GNU Scheme. We add a symlink to use in case both are - ;; installed. - (add-after 'install 'install-symlink - (lambda* (#:key outputs #:allow-other-keys) - (let* ((scheme (search-input-file outputs "/bin/scheme")) - (bin-dir (dirname scheme))) - (symlink scheme - (string-append bin-dir "/chez-scheme")) - (match (find-files (string-append bin-dir "/../lib") - "scheme.boot") - ((scheme.boot) - (symlink scheme.boot - (string-append (dirname scheme.boot) - "/chez-scheme.boot"))))))) - ;; Building the documentation requires stex and a running scheme. - (add-after 'install-symlink 'install-docs - (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) - (let* ((doc-prefix (or (assoc-ref outputs "doc") - (assoc-ref outputs "out"))) - (chez+version (strip-store-file-name #$output)) - (scheme (search-input-file outputs "/bin/scheme")) - (stexlib (search-input-directory (or native-inputs - inputs) - "/lib/stex")) - (doc-dir (string-append doc-prefix - "/share/doc/" - chez+version))) - (define* (stex-make #:optional (suffix "")) - (invoke "make" "install" - (string-append "Scheme=" scheme) - (string-append "STEXLIB=" stexlib) - (string-append "installdir=" doc-dir suffix))) - (with-directory-excursion "csug" - (stex-make "/csug")) - (with-directory-excursion "release_notes" - (stex-make "/release_notes"))))) - (add-after 'install-docs 'link-doc-pdfs - ;; otherwise, it's hard to notice them in a forest of HTML files - (lambda* (#:key outputs #:allow-other-keys) - (with-directory-excursion - (string-append (or (assoc-ref outputs "doc") - (assoc-ref outputs "out")) - "/share/doc/" - (strip-store-file-name #$output)) - (symlink "release_notes/release_notes.pdf" - "release_notes.pdf") - (match (find-files "csug" - "csug.*\\.pdf$" ;; embeded version number - #:fail-on-error? #t) - ((pth) - (symlink pth - "csug.pdf"))))))))) - (supported-systems - (delete - "armhf-linux" ;; XXX reportedly broken, needs checking - (filter chez-upstream-features-for-system - %supported-systems))) - (home-page "https://cisco.github.io/ChezScheme/") - (synopsis "R6RS Scheme compiler and run-time") - (description - "Chez Scheme is a compiler and run-time system for the language of the -Revised^6 Report on Scheme (R6RS), with numerous extensions. The compiler -generates native code for each target processor, with support for x86, x86_64, -and 32-bit PowerPC architectures.") - (license asl2.0))) - (define chez-configure ;; The custom Chez 'configure' script doesn't allow unrecognized flags, such ;; as those automatically added by `gnu-build-system`. This replacement @@ -689,39 +504,194 @@ (define-public chez-scheme-for-racket version of Chez Scheme.") (license asl2.0))) -;; -;; Bootfiles: -;; - -(define-public chez-scheme-bootstrap-bootfiles +(define-public chez-scheme (package - (inherit chez-scheme) - (name "chez-scheme-bootstrap-bootfiles") - (inputs '()) - (native-inputs '()) - (outputs '("out")) - (build-system copy-build-system) - ;; TODO: cross compilation + (name "chez-scheme") + ;; The version should match `(scheme-version-number)`. + ;; See s/cmacros.ss c. line 360. + (version "9.5.8") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cisco/ChezScheme") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0xchqq8cm0ka5wgpn18sjs0hh15rc3nb7xrjqbbc9al3asq0d7gc")) + (file-name (git-file-name name version)) + (patches (search-patches "chez-scheme-bin-sh.patch")) + (snippet #~(begin + (use-modules (guix build utils)) + ;; TODO: consider putting this in a (guix ...) or + ;; (guix build ...) module so it can be shared + ;; with the Racket origin without cyclic issues. + (for-each (lambda (dir) + (when (directory-exists? dir) + (delete-file-recursively dir))) + '("stex" + "nanopass" + "lz4" + "zlib")))))) + (build-system gnu-build-system) + (inputs + (list + chez-scheme-bootstrap-bootfiles + `(,util-linux "lib") ;<-- libuuid + zlib + lz4 + ncurses ;<-- for expeditor + ;; for X11 clipboard support in expeditor: + ;; https://github.com/cisco/ChezScheme/issues/9#issuecomment-222057232 + libx11)) + (native-inputs (list chez-nanopass-bootstrap + stex-bootstrap)) + (native-search-paths + (list (search-path-specification + (variable "CHEZSCHEMELIBDIRS") + (files '("lib/chez-scheme"))))) + (outputs '("out" "doc")) (arguments - (list #:install-plan - #~`(("boot/" "lib/chez-scheme-bootfiles")))) + (list + #:modules + '((guix build gnu-build-system) + (guix build utils) + (ice-9 ftw) + (ice-9 match)) + #:test-target "test" + #:configure-flags + #~`(,(string-append "--installprefix=" #$output) + #$@(if (and=> (chez-upstream-features-for-system) + (cut memq 'threads <>)) + #~("--threads") + #~()) + "ZLIB=-lz" + "LZ4=-llz4" + "--libkernel" + ;; Guix will do 'compress-man-pages', + ;; and letting Chez try causes an error + "--nogzip-man-pages") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'unpack-nanopass+stex + (lambda args + (begin + (copy-recursively + (dirname (search-input-file %build-inputs + "lib/chez-scheme/nanopass.ss")) + "nanopass" + #:keep-mtime? #t) + (mkdir-p "stex") + (with-output-to-file "stex/Mf-stex" + (lambda () + ;; otherwise, it will try to download submodules + (display "# to placate ../configure")))))) + (add-after 'unpack-nanopass+stex 'unpack-bootfiles + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (when (directory-exists? "boot") + (delete-file-recursively "boot")) + (copy-recursively + (search-input-directory inputs + "lib/chez-scheme-bootfiles") + "boot"))) + ;; NOTE: The custom Chez 'configure' script doesn't allow + ;; unrecognized flags, such as those automatically added + ;; by `gnu-build-system`. This replacement phase uses only + ;; the explicitly provided `#:configure-flags`. + (replace 'configure + (lambda* (#:key inputs (configure-flags '()) out-of-source? + #:allow-other-keys) + (let* ((abs-srcdir (getcwd)) + (srcdir (if out-of-source? + (string-append "../" (basename abs-srcdir)) + "."))) + (format #t "source directory: ~s (relative from build: ~s)~%" + abs-srcdir srcdir) + (if out-of-source? + (begin + (mkdir "../build") + (chdir "../build"))) + (format #t "build directory: ~s~%" (getcwd)) + (format #t "configure flags: ~s~%" configure-flags) + (apply invoke + (string-append srcdir "/configure") + configure-flags)))) + (add-after 'configure 'configure-environment-variables + (lambda args + ;; Some makefiles (for tests) don't seem to propagate CC + ;; properly, so we take it out of their hands: + (setenv "CC" #$(cc-for-target)) + ;; Likewise, some tests have needed HOME to be set: + (setenv "HOME" "/tmp"))) + ;; The binary file name is called "scheme" as is the one from + ;; MIT/GNU Scheme. We add a symlink to use in case both are + ;; installed. + (add-after 'install 'install-symlink + (lambda* (#:key outputs #:allow-other-keys) + (let* ((scheme (search-input-file outputs "/bin/scheme")) + (bin-dir (dirname scheme))) + (symlink scheme + (string-append bin-dir "/chez-scheme")) + (match (find-files (string-append bin-dir "/../lib") + "scheme.boot") + ((scheme.boot) + (symlink scheme.boot + (string-append (dirname scheme.boot) + "/chez-scheme.boot"))))))) + ;; Building the documentation requires stex and a running scheme. + (add-after 'install-symlink 'install-docs + (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) + (let* ((doc-prefix (or (assoc-ref outputs "doc") + (assoc-ref outputs "out"))) + (chez+version (strip-store-file-name #$output)) + (scheme (search-input-file outputs "/bin/scheme")) + (stexlib (search-input-directory (or native-inputs + inputs) + "/lib/stex")) + (doc-dir (string-append doc-prefix + "/share/doc/" + chez+version))) + (define* (stex-make #:optional (suffix "")) + (invoke "make" "install" + (string-append "Scheme=" scheme) + (string-append "STEXLIB=" stexlib) + (string-append "installdir=" doc-dir suffix))) + (with-directory-excursion "csug" + (stex-make "/csug")) + (with-directory-excursion "release_notes" + (stex-make "/release_notes"))))) + (add-after 'install-docs 'link-doc-pdfs + ;; otherwise, it's hard to notice them in a forest of HTML files + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion + (string-append (or (assoc-ref outputs "doc") + (assoc-ref outputs "out")) + "/share/doc/" + (strip-store-file-name #$output)) + (symlink "release_notes/release_notes.pdf" + "release_notes.pdf") + (match (find-files "csug" + "csug.*\\.pdf$" ;; embeded version number + #:fail-on-error? #t) + ((pth) + (symlink pth + "csug.pdf"))))))))) (supported-systems - (filter (lambda (system) - (and=> (chez-upstream-features-for-system system) - (cut memq 'bootstrap-bootfiles <>))) - %supported-systems)) - (synopsis "Chez Scheme bootfiles (binary seed)") + (delete + "armhf-linux" ;; XXX reportedly broken, needs checking + (filter chez-upstream-features-for-system + %supported-systems))) + (home-page "https://cisco.github.io/ChezScheme/") + (synopsis "R6RS Scheme compiler and run-time") (description - "Chez Scheme is a self-hosting compiler: building it requires -``bootfiles'' containing the Scheme-implemented portions compiled for the -current platform. (Chez can then cross-compile bootfiles for all other -supported platforms.) + "Chez Scheme is a compiler and run-time system for the language of the +Revised^6 Report on Scheme (R6RS), with numerous extensions. The compiler +generates native code for each target processor, with support for x86, x86_64, +and 32-bit PowerPC architectures.") + (license asl2.0))) -This package provides bootstrap bootfiles for upstream Chez Scheme. -Currently, it simply packages the binaries checked in to the upstream -repository. Hopefully we can eventually adapt Racket's @code{cs-bootstrap} to -work with upstream Chez Scheme so that we can bootstrap these files from -source."))) +;; +;; Bootfiles: +;; (define-public chez-scheme-for-racket-bootstrap-bootfiles (package @@ -803,6 +773,36 @@ (define-public chez-scheme-for-racket-bootstrap-bootfiles 7.1 and later, including the Racket BC variant.") (license asl2.0))) +(define-public chez-scheme-bootstrap-bootfiles + (package + (inherit chez-scheme) + (name "chez-scheme-bootstrap-bootfiles") + (inputs '()) + (native-inputs '()) + (outputs '("out")) + (build-system copy-build-system) + ;; TODO: cross compilation + (arguments + (list #:install-plan + #~`(("boot/" "lib/chez-scheme-bootfiles")))) + (supported-systems + (filter (lambda (system) + (and=> (chez-upstream-features-for-system system) + (cut memq 'bootstrap-bootfiles <>))) + %supported-systems)) + (synopsis "Chez Scheme bootfiles (binary seed)") + (description + "Chez Scheme is a self-hosting compiler: building it requires +``bootfiles'' containing the Scheme-implemented portions compiled for the +current platform. (Chez can then cross-compile bootfiles for all other +supported platforms.) + +This package provides bootstrap bootfiles for upstream Chez Scheme. +Currently, it simply packages the binaries checked in to the upstream +repository. Hopefully we can eventually adapt Racket's @code{cs-bootstrap} to +work with upstream Chez Scheme so that we can bootstrap these files from +source."))) + ;; ;; Chez's bootstrap dependencies: ;; -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 02:52:42 2024 Received: (at 70065) by debbugs.gnu.org; 1 Apr 2024 06:52:42 +0000 Received: from localhost ([127.0.0.1]:49366 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBX6-0003OK-Kh for submit@debbugs.gnu.org; Mon, 01 Apr 2024 02:52:42 -0400 Received: from fhigh3-smtp.messagingengine.com ([103.168.172.154]:58653) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBX3-0003O5-2C for 70065@debbugs.gnu.org; Mon, 01 Apr 2024 02:52:38 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailfhigh.nyi.internal (Postfix) with ESMTP id E7355114011F; Mon, 1 Apr 2024 02:52:28 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Mon, 01 Apr 2024 02:52:28 -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:subject:subject:to :to; s=fm2; t=1711954348; x=1712040748; bh=jCedVK4H3AmULQUADQ8s9 u20H28YAmGVlm67moemFnU=; b=l/ppmcTgWwG8cWYLq6JeelWM6a8QrR2QDv88a SBWbEfFlzjjWAFoE3PTLNLAdKO1rBaFUubo37CujkFL6Xx1eqxizTrDZswQiWCXW yIjb0DomnA7C0e643+H6K40wmkfxRJTpnNn+ErXrtrrYYAG43py5TAM7TwgGs3tB x/ZDc4aLFyk8O4ABQ+aofpou3cjcf6S4M6rRCZ5j8KvU8l/HJiAHvBaDk8kl7ORT Rq/lCcfaX+Z6FJKmFY6xF+fHAQ1jNMtjbqd364Lr1Fe1+xzqOFKLLwrUnY0Scz9r OKq1/OhSrMaqUb8VLJwM6zizVqODFL4dC0aS4Ko5hFJEEJkMg== 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:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711954348; x= 1712040748; bh=jCedVK4H3AmULQUADQ8s9u20H28YAmGVlm67moemFnU=; b=b +OxF+MpEFseZMDyTaWtZpbaa8bFjk7Vo6FHB93B3ZG5hEez0LVBNYeQ+PdobDHz0 MjQPx6fxFDrY9+Uf3Cgfz3+T+vYCvnLek/7uEQkWrHMa7+oyB0D/phowN50uky4y qMwPOjLz7Dit96LrApXRA89rLfceevM6zA06k6Fx8JAsqD8R7QNCDd1uI1aS4Qjt +iAqkWXqTTGar9OBvg1fuYLcvGTsenJbwJ/k05Z9q6ebrymuE6NtHxtcMDTy6k2h Q+ZOJECRlDiZFMZ2PqfpVPyJlTwjpAwyki9TykvE8dUJ6SV5BN/GATmEGd+rVFAE HmXTp2t3TLFSbl1kVznvg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvledgudduhecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enogfuuhhsphgvtghtffhomhgrihhnucdlgeelmdenucfjughrpefhvfevufffkffojghf ggfgsedtkeertdertddtnecuhfhrohhmpefrhhhilhhiphcuofgtifhrrghthhcuoehphh hilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomheqnecuggftrfgrthhtvghrnhep ueevheefteejieeuveeuhfdugfevteefheegveejkeeufefggffhteegteefgfdunecuff homhgrihhnpehgihhthhhusgdrtghomhdpghhithhhuhgsrdhiohenucevlhhushhtvghr ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehphhhilhhiphesphhhihhlih hpmhgtghhrrghthhdrtghomh X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 1 Apr 2024 02:52:28 -0400 (EDT) From: Philip McGrath To: 70065@debbugs.gnu.org Subject: [PATCH v2 4/8] gnu: chez-scheme: Update to 10.0.0. Date: Mon, 1 Apr 2024 02:51:09 -0400 Message-ID: <71cc7e1a0040f51c7cc324b463c3647f59007b3f.1711953507.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Debbugs-Cc: Philip McGrath Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin , Philip McGrath , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/patches/chez-scheme-bin-sh.patch: Refresh patch. * gnu/packages/patches/chez-scheme-backport-configure.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/chez.scm (chez-scheme): Update to 10.0.0. Inherit from 'chez-scheme-for-racket'. [source]: Use "chez-scheme-backport-configure.patch". : Also unbundle Zuo. [native-inputs, native-search-paths, outputs, arguments] [supported-systems]: Inherit from 'chez-scheme-for-racket'. [inputs]: Likewise, replacing the bootfile package and adding libx11. [description]: Update based on the User's Guide, release notes, man page, and README file. (chez-scheme-bootstrap-bootfiles)[supported-systems]: All systems are now supported. (chez-scheme-for-system): Return 'chez-scheme', since it now supports all systems. Change-Id: I287ff66f385f20e69c1411abcc94f19dd45870c5 --- gnu/local.mk | 1 + gnu/packages/chez.scm | 204 +------- .../chez-scheme-backport-configure.patch | 463 ++++++++++++++++++ gnu/packages/patches/chez-scheme-bin-sh.patch | 37 +- 4 files changed, 512 insertions(+), 193 deletions(-) create mode 100644 gnu/packages/patches/chez-scheme-backport-configure.patch diff --git a/gnu/local.mk b/gnu/local.mk index a10aa2cefd..b5f922b538 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1017,6 +1017,7 @@ dist_patch_DATA = \ %D%/packages/patches/ccextractor-add-missing-header.patch \ %D%/packages/patches/ccextractor-autoconf-tesseract.patch \ %D%/packages/patches/ccextractor-fix-ocr.patch \ + %D%/packages/patches/chez-scheme-backport-configure.patch \ %D%/packages/patches/chez-scheme-bin-sh.patch \ %D%/packages/patches/circos-remove-findbin.patch \ %D%/packages/patches/cdparanoia-fpic.patch \ diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 19520cdf4a..5b98b3ce1f 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -69,21 +69,9 @@ (define-module (gnu packages chez) ;; Code: (define* (chez-scheme-for-system #:optional - (system (or (%current-target-system) - (%current-system)))) - "Return 'chez-scheme' if it fully supports SYSTEM, including support for -bootstrapping and native threads. Otherwise, return -'chez-scheme-for-racket'." - (if (and=> (chez-upstream-features-for-system system) - (lambda (features) - (every (cut memq <> features) - '(threads - ;; We can cross-compile for platforms without - ;; bootstrap bootfiles, but we can't self-host - ;; on them short of adding more binary seeds. - bootstrap-bootfiles)))) - chez-scheme - chez-scheme-for-racket)) + system) + "Returns 'chez-scheme'." + chez-scheme) (define* (target-chez-arch #:optional (system (or (%current-target-system) @@ -506,10 +494,11 @@ (define-public chez-scheme-for-racket (define-public chez-scheme (package + (inherit chez-scheme-for-racket) (name "chez-scheme") - ;; The version should match `(scheme-version-number)`. + ;; The version should match `(scheme-version-number #t)`. ;; See s/cmacros.ss c. line 360. - (version "9.5.8") + (version "10.0.0") (source (origin (method git-fetch) (uri (git-reference @@ -517,9 +506,10 @@ (define-public chez-scheme (commit (string-append "v" version)))) (sha256 (base32 - "0xchqq8cm0ka5wgpn18sjs0hh15rc3nb7xrjqbbc9al3asq0d7gc")) + "1q66vafhiwk617z51qkm1v64r3bxqhhf5lzrmsa4l9d5yhvlyk09")) (file-name (git-file-name name version)) - (patches (search-patches "chez-scheme-bin-sh.patch")) + (patches (search-patches "chez-scheme-backport-configure.patch" + "chez-scheme-bin-sh.patch")) (snippet #~(begin (use-modules (guix build utils)) ;; TODO: consider putting this in a (guix ...) or @@ -528,165 +518,30 @@ (define-public chez-scheme (for-each (lambda (dir) (when (directory-exists? dir) (delete-file-recursively dir))) - '("stex" + '("lz4" "nanopass" - "lz4" - "zlib")))))) + "stex" + "zlib" + "zuo")))))) (build-system gnu-build-system) (inputs - (list - chez-scheme-bootstrap-bootfiles - `(,util-linux "lib") ;<-- libuuid - zlib - lz4 - ncurses ;<-- for expeditor - ;; for X11 clipboard support in expeditor: - ;; https://github.com/cisco/ChezScheme/issues/9#issuecomment-222057232 - libx11)) - (native-inputs (list chez-nanopass-bootstrap - stex-bootstrap)) - (native-search-paths - (list (search-path-specification - (variable "CHEZSCHEMELIBDIRS") - (files '("lib/chez-scheme"))))) - (outputs '("out" "doc")) - (arguments - (list - #:modules - '((guix build gnu-build-system) - (guix build utils) - (ice-9 ftw) - (ice-9 match)) - #:test-target "test" - #:configure-flags - #~`(,(string-append "--installprefix=" #$output) - #$@(if (and=> (chez-upstream-features-for-system) - (cut memq 'threads <>)) - #~("--threads") - #~()) - "ZLIB=-lz" - "LZ4=-llz4" - "--libkernel" - ;; Guix will do 'compress-man-pages', - ;; and letting Chez try causes an error - "--nogzip-man-pages") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'unpack-nanopass+stex - (lambda args - (begin - (copy-recursively - (dirname (search-input-file %build-inputs - "lib/chez-scheme/nanopass.ss")) - "nanopass" - #:keep-mtime? #t) - (mkdir-p "stex") - (with-output-to-file "stex/Mf-stex" - (lambda () - ;; otherwise, it will try to download submodules - (display "# to placate ../configure")))))) - (add-after 'unpack-nanopass+stex 'unpack-bootfiles - (lambda* (#:key native-inputs inputs #:allow-other-keys) - (when (directory-exists? "boot") - (delete-file-recursively "boot")) - (copy-recursively - (search-input-directory inputs - "lib/chez-scheme-bootfiles") - "boot"))) - ;; NOTE: The custom Chez 'configure' script doesn't allow - ;; unrecognized flags, such as those automatically added - ;; by `gnu-build-system`. This replacement phase uses only - ;; the explicitly provided `#:configure-flags`. - (replace 'configure - (lambda* (#:key inputs (configure-flags '()) out-of-source? - #:allow-other-keys) - (let* ((abs-srcdir (getcwd)) - (srcdir (if out-of-source? - (string-append "../" (basename abs-srcdir)) - "."))) - (format #t "source directory: ~s (relative from build: ~s)~%" - abs-srcdir srcdir) - (if out-of-source? - (begin - (mkdir "../build") - (chdir "../build"))) - (format #t "build directory: ~s~%" (getcwd)) - (format #t "configure flags: ~s~%" configure-flags) - (apply invoke - (string-append srcdir "/configure") - configure-flags)))) - (add-after 'configure 'configure-environment-variables - (lambda args - ;; Some makefiles (for tests) don't seem to propagate CC - ;; properly, so we take it out of their hands: - (setenv "CC" #$(cc-for-target)) - ;; Likewise, some tests have needed HOME to be set: - (setenv "HOME" "/tmp"))) - ;; The binary file name is called "scheme" as is the one from - ;; MIT/GNU Scheme. We add a symlink to use in case both are - ;; installed. - (add-after 'install 'install-symlink - (lambda* (#:key outputs #:allow-other-keys) - (let* ((scheme (search-input-file outputs "/bin/scheme")) - (bin-dir (dirname scheme))) - (symlink scheme - (string-append bin-dir "/chez-scheme")) - (match (find-files (string-append bin-dir "/../lib") - "scheme.boot") - ((scheme.boot) - (symlink scheme.boot - (string-append (dirname scheme.boot) - "/chez-scheme.boot"))))))) - ;; Building the documentation requires stex and a running scheme. - (add-after 'install-symlink 'install-docs - (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) - (let* ((doc-prefix (or (assoc-ref outputs "doc") - (assoc-ref outputs "out"))) - (chez+version (strip-store-file-name #$output)) - (scheme (search-input-file outputs "/bin/scheme")) - (stexlib (search-input-directory (or native-inputs - inputs) - "/lib/stex")) - (doc-dir (string-append doc-prefix - "/share/doc/" - chez+version))) - (define* (stex-make #:optional (suffix "")) - (invoke "make" "install" - (string-append "Scheme=" scheme) - (string-append "STEXLIB=" stexlib) - (string-append "installdir=" doc-dir suffix))) - (with-directory-excursion "csug" - (stex-make "/csug")) - (with-directory-excursion "release_notes" - (stex-make "/release_notes"))))) - (add-after 'install-docs 'link-doc-pdfs - ;; otherwise, it's hard to notice them in a forest of HTML files - (lambda* (#:key outputs #:allow-other-keys) - (with-directory-excursion - (string-append (or (assoc-ref outputs "doc") - (assoc-ref outputs "out")) - "/share/doc/" - (strip-store-file-name #$output)) - (symlink "release_notes/release_notes.pdf" - "release_notes.pdf") - (match (find-files "csug" - "csug.*\\.pdf$" ;; embeded version number - #:fail-on-error? #t) - ((pth) - (symlink pth - "csug.pdf"))))))))) - (supported-systems - (delete - "armhf-linux" ;; XXX reportedly broken, needs checking - (filter chez-upstream-features-for-system - %supported-systems))) + (modify-inputs (package-inputs chez-scheme-for-racket) + (replace "chez-scheme-for-racket-bootstrap-bootfiles" + chez-scheme-bootstrap-bootfiles) + ;; for X11 clipboard support in expeditor: + ;; https://github.com/cisco/ChezScheme/issues/9#issuecomment-222057232 + (prepend libx11))) + ;; replace unpack phase? (home-page "https://cisco.github.io/ChezScheme/") (synopsis "R6RS Scheme compiler and run-time") (description - "Chez Scheme is a compiler and run-time system for the language of the -Revised^6 Report on Scheme (R6RS), with numerous extensions. The compiler -generates native code for each target processor, with support for x86, x86_64, -and 32-bit PowerPC architectures.") + "Chez Scheme is both a programming language and a high-performance +implementation of that language. The language is a superset of R6RS Scheme +with numerous extensions, including native threads, non-blocking I/O, local +modules, and much more. Chez Scheme compiles source expressions incrementally +to machine code, providing the speed of compiled code in an interactive +system. The system is intended to be as reliable and efficient as possible, +with reliability taking precedence over efficiency if necessary.") (license asl2.0))) ;; @@ -785,11 +640,6 @@ (define-public chez-scheme-bootstrap-bootfiles (arguments (list #:install-plan #~`(("boot/" "lib/chez-scheme-bootfiles")))) - (supported-systems - (filter (lambda (system) - (and=> (chez-upstream-features-for-system system) - (cut memq 'bootstrap-bootfiles <>))) - %supported-systems)) (synopsis "Chez Scheme bootfiles (binary seed)") (description "Chez Scheme is a self-hosting compiler: building it requires diff --git a/gnu/packages/patches/chez-scheme-backport-configure.patch b/gnu/packages/patches/chez-scheme-backport-configure.patch new file mode 100644 index 0000000000..584dcb3f0b --- /dev/null +++ b/gnu/packages/patches/chez-scheme-backport-configure.patch @@ -0,0 +1,463 @@ +From 24ab36374f2e366b6c939fffe8c129c8b0ae3b9c Mon Sep 17 00:00:00 2001 +From: Philip McGrath +Date: Wed, 28 Feb 2024 19:41:22 -0500 +Subject: [PATCH 1/2] Repairs and improvements for building with external + dependencies (#807) + +* configure: fix zlib and lz4 submodule checks + +Conditionals to skip the submodule checks were using the wrong +variable names, so the checks were always skipped. The correct +behavior is to perform the check unless given `ZLIB=` or +`LZ4=`, as applicable. + +* configure: support `ZUO=` + +Supplying `ZUO=` skips the submodule check in `configure` +and configures the generated makefile not to build or remove Zuo. + +* configure: support `STEXLIB=` + +For compatibility with older scripts, when not explicitly configured, +continue to honor the `STEXLIB` environment variable at build time. + +(cherry picked from commit b8838c3280ef10e115236d2f7ac9ae857f83e268) +--- + BUILDING | 5 +++-- + build.zuo | 13 +++++++++---- + configure | 40 +++++++++++++++++++++++++++++++++------- + makefiles/Makefile.in | 6 ++---- + 4 files changed, 47 insertions(+), 17 deletions(-) + +diff --git a/BUILDING b/BUILDING +index 7b3dc9c8..9e9a268b 100644 +--- a/BUILDING ++++ b/BUILDING +@@ -149,7 +149,8 @@ information on the supported options. + The generated makefile mostly just ensures that a `zuo` executable is + built in a `bin` directory, and then it defers the actual build work + to `zuo`, which uses the "main.zuo" file. If you have `zuo` installed, +-you can use `zuo` directly instead of `make`. In general, instead of ++you can use `zuo` directly instead of `make`: in that case, you may ++wish to use `./configure ZUO=`. In general, instead of + the command `make X` to build target `X` as described below, you can + use `zuo . X` (or `bin/zuo . X` after `bin/zuo` is built). + +@@ -333,7 +334,7 @@ The makefile supports several targets: + * `make clean` + + Removes all built elements from the workarea, and then removes +- `bin/zuo`. ++ `bin/zuo` (unless configured with `ZUO=`). + + + WINDOWS VIA COMMAND PROMPT +diff --git a/build.zuo b/build.zuo +index c21d2caa..c5896396 100644 +--- a/build.zuo ++++ b/build.zuo +@@ -224,10 +224,15 @@ + token)) + + (define stexlib +- (let ((found (assoc "STEXLIB" (hash-ref (runtime-env) 'env)))) +- (if found +- (cdr found) +- (at-source "stex")))) ++ (let ([configured (hash-ref config 'STEXLIB "")] ++ [env (assoc "STEXLIB" (hash-ref (runtime-env) 'env))]) ++ (cond ++ [(not (equal? "" configured)) ++ configured] ++ [env ++ (cdr env)] ++ [else ++ (at-source "stex")]))) + (define stex-sources + (source-tree stexlib)) + +diff --git a/configure b/configure +index 2b4b594e..782dd09b 100755 +--- a/configure ++++ b/configure +@@ -93,6 +93,7 @@ default_warning_flags="-Wpointer-arith -Wall -Wextra -Wno-implicit-fallthrough" + CFLAGS_ADD= + zlibLib= + LZ4Lib= ++STEXLIB= + Kernel=KernelLib + buildKernelOnly=no + enableFrompb=yes +@@ -103,6 +104,7 @@ moreBootFiles= + preloadBootFiles= + alwaysUseBootFile= + skipSubmoduleUpdate= ++zuoExternal= + + CONFIG_UNAME=`uname` + +@@ -446,6 +448,12 @@ while [ $# != 0 ] ; do + LZ4=*) + LZ4Lib=`echo $1 | sed -e 's/^LZ4=//'` + ;; ++ STEXLIB=*) ++ STEXLIB=`echo $1 | sed -e 's/^STEXLIB=//'` ++ ;; ++ ZUO=*) ++ zuoExternal=`echo $1 | sed -e 's/^ZUO=//'` ++ ;; + *) + echo "option '$1' unrecognized or missing an argument; try $0 --help" + exit 1 +@@ -672,6 +680,8 @@ if [ "$help" = "yes" ]; then + echo " STRIP= executable stripper" + echo " ZLIB= link to instead of own zlib" + echo " LZ4= link to instead of own LZ4" ++ echo " STEXLIB= build docs with instead of own stex" ++ echo " ZUO= build with instead of own Zuo" + echo "" + echo "Available machine types: $machs" + echo "" +@@ -889,28 +899,39 @@ submod_instructions () { + exit 1 + } + +-if [ ! -f "$srcdir"/zuo/configure ] ; then +- submod_instructions 'Source in "zuo" is missing' ++if [ "${zuoExternal}" = "" ] ; then ++ if [ ! -f "$srcdir"/zuo/configure ] ; then ++ submod_instructions 'Source in "zuo" is missing' ++ fi ++ ZUO="bin/zuo" ++ RM_ZUO="rm -f bin/zuo" ++ ZUO_TARGET="bin/zuo" ++else ++ ZUO="${zuoExternal}" ++ RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'" ++ ZUO_TARGET="DoNotBuildZuo" + fi + + if [ ! -f "$srcdir"/nanopass/nanopass.ss ] ; then + submod_instructions 'Source in "nanopass" is missing' + fi + +-if [ "${zlibDep}" != "" ] ; then ++if [ "${zlibLib}" = "" ] ; then + if [ ! -f "$srcdir"/zlib/configure ] ; then + submod_instructions 'Source in "zlib" is missing' + fi + fi + +-if [ "${LZ4Dep}" != "" ] ; then ++if [ "${LZ4Lib}" = "" ] ; then + if [ ! -f "$srcdir"/lz4/lib/Makefile ] ; then + submod_instructions 'Source in "lz4" is missing' + fi + fi + +-if [ ! -f "$srcdir"/stex/Mf-stex ] ; then +- submod_instructions 'Source in "stex" is missing' ++if [ "${STEXLIB}" = "" ] ; then ++ if [ ! -f "$srcdir"/stex/Mf-stex ] ; then ++ submod_instructions 'Source in "stex" is missing' ++ fi + fi + + # more compile and link flags for c/Mf-unix and mats/Mf-unix +@@ -1083,7 +1104,7 @@ cp "$srcdir"/makefiles/buildmain.zuo main.zuo + # Some idea, but in the workarea, so it refers to "workarea.zuo" here: + cp "$srcdir"/makefiles/workmain.zuo $w/main.zuo + +-# The content of "$w/Makefile" records configuration decisions, ++# The content of "$w/Mf-config" records configuration decisions, + # and the Zuo build script takes it from there + cat > $w/Mf-config << END + srcdir=$srcdir +@@ -1119,6 +1140,7 @@ cursesLib=$cursesLib + ncursesLib=$ncursesLib + zlibLib=$zlibLib + LZ4Lib=$LZ4Lib ++STEXLIB=$STEXLIB + warningFlags=$warningFlags + Kernel=$Kernel + installscriptname=$installscriptname +@@ -1130,6 +1152,10 @@ preloadBootFiles=$preloadBootFiles + alwaysUseBootFile=$alwaysUseBootFile + relativeBootFiles=$relativeBootFiles + ++ZUO=$ZUO ++RM_ZUO=$RM_ZUO ++ZUO_TARGET=$ZUO_TARGET ++ + InstallBin=$installbin + InstallLib=$installlib + InstallMan=$installman/man1 +diff --git a/makefiles/Makefile.in b/makefiles/Makefile.in +index 3b95f065..0e3d307d 100644 +--- a/makefiles/Makefile.in ++++ b/makefiles/Makefile.in +@@ -3,8 +3,6 @@ workarea=$(w) + + include $(workarea)/Mf-config + +-ZUO=bin/zuo +- + .PHONY: build + build: $(ZUO) + + $(ZUO) $(workarea) MAKE="$(MAKE)" +@@ -144,9 +142,9 @@ pkg: $(ZUO) + .PHONY: clean + clean: $(ZUO) + + $(ZUO) $(workarea) clean MAKE="$(MAKE)" +- rm -f bin/zuo ++ $(RM_ZUO) + + # Using `+` here means that $(ZUO) gets built even if `-n`/`--dry-run` is provided to `make` +-$(ZUO): $(srcdir)/zuo/zuo.c ++$(ZUO_TARGET): $(srcdir)/zuo/zuo.c + + mkdir -p bin + + $(CC_FOR_BUILD) -DZUO_LIB_PATH='"'"../zuo/lib"'"' -o $(ZUO) $(srcdir)/zuo/zuo.c + +base-commit: 253230f7dfbb4fe777277d6bbf93f39f9567f086 +-- +2.41.0 + + +From 665bccc1c074131e790879adc1436f8059801171 Mon Sep 17 00:00:00 2001 +From: Matthew Flatt +Date: Sun, 17 Mar 2024 09:06:30 -0600 +Subject: [PATCH 2/2] adjust `configure ZUO=` support (#816) + +Continuing from b8838c3280, adjust the generated makefile so the +supplied `` is not a makefile dependency. That way, `ZUO=zuo` +works if `zuo` is installed and the current build directory is not the +source directory. (The `zuo` executable is a dependency in a real and +relevant sense, but not in the sense of dependencies that we normally +track in makefiles.) + +Also adapt the makefile for the case that `ZUO=...` is not supplied +and the build directory is not the source directory, in which case +`ZUO_LIB_PATH` needs to be relative to the source directory. + +Using `make ZUO=zuo` can also work, but in that case, `bin/zuo` is +still built as a dependency. It's possible that some portable makefile +magic could overcome that limitation, but it doesn't seem important. + +(cherry picked from commit d327968f37cdf669d15a9ad6d356bbf92c502bb9) +--- + configure | 3 ++ + makefiles/Makefile.in | 66 +++++++++++++++++++++---------------------- + 2 files changed, 36 insertions(+), 33 deletions(-) + +diff --git a/configure b/configure +index 782dd09b..9adae37a 100755 +--- a/configure ++++ b/configure +@@ -904,10 +904,12 @@ if [ "${zuoExternal}" = "" ] ; then + submod_instructions 'Source in "zuo" is missing' + fi + ZUO="bin/zuo" ++ ZUO_DEP="${ZUO}" + RM_ZUO="rm -f bin/zuo" + ZUO_TARGET="bin/zuo" + else + ZUO="${zuoExternal}" ++ ZUO_DEP="" + RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'" + ZUO_TARGET="DoNotBuildZuo" + fi +@@ -1153,6 +1155,7 @@ alwaysUseBootFile=$alwaysUseBootFile + relativeBootFiles=$relativeBootFiles + + ZUO=$ZUO ++ZUO_DEP=$ZUO_DEP + RM_ZUO=$RM_ZUO + ZUO_TARGET=$ZUO_TARGET + +diff --git a/makefiles/Makefile.in b/makefiles/Makefile.in +index 0e3d307d..fc8605a0 100644 +--- a/makefiles/Makefile.in ++++ b/makefiles/Makefile.in +@@ -4,55 +4,55 @@ workarea=$(w) + include $(workarea)/Mf-config + + .PHONY: build +-build: $(ZUO) ++build: $(ZUO_DEP) + + $(ZUO) $(workarea) MAKE="$(MAKE)" + + .PHONY: run +-run: $(ZUO) ++run: $(ZUO_DEP) + + $(ZUO) $(workarea) run + + .PHONY: kernel +-kernel: $(ZUO) ++kernel: $(ZUO_DEP) + + $(ZUO) $(workarea) kernel MAKE="$(MAKE)" + + .PHONY: install +-install: $(ZUO) ++install: $(ZUO_DEP) + $(ZUO) $(workarea) install MAKE="$(MAKE)" + + .PHONY: uninstall +-uninstall: $(ZUO) ++uninstall: $(ZUO_DEP) + + $(ZUO) $(workarea) uninstall MAKE="$(MAKE)" + + .PHONY: test-one +-test-one: $(ZUO) ++test-one: $(ZUO_DEP) + + $(ZUO) $(workarea) test-one MAKE="$(MAKE)" + + .PHONY: test-some-fast +-test-some-fast: $(ZUO) ++test-some-fast: $(ZUO_DEP) + + $(ZUO) $(workarea) test-some-fast MAKE="$(MAKE)" + + .PHONY: test-some +-test-some: $(ZUO) ++test-some: $(ZUO_DEP) + + $(ZUO) $(workarea) test-some MAKE="$(MAKE)" + + .PHONY: test +-test: $(ZUO) ++test: $(ZUO_DEP) + + $(ZUO) $(workarea) test MAKE="$(MAKE)" + + .PHONY: test-more +-test-more: $(ZUO) ++test-more: $(ZUO_DEP) + + $(ZUO) $(workarea) test-more MAKE="$(MAKE)" + + .PHONY: coverage +-coverage: $(ZUO) ++coverage: $(ZUO_DEP) + + $(ZUO) $(workarea) coverage MAKE="$(MAKE)" + + .PHONY: bootfiles +-bootfiles: $(ZUO) ++bootfiles: $(ZUO_DEP) + + $(ZUO) $(workarea) bootfiles MAKE="$(MAKE)" + + .PHONY: reset +-reset: $(ZUO) ++reset: $(ZUO_DEP) + + $(ZUO) $(workarea) reset MAKE="$(MAKE)" + + # Supply XM= to build boot files for +@@ -61,90 +61,90 @@ boot: + + $(ZUO) $(workarea) boot "$(XM)" MAKE="$(MAKE)" + + # `.boot` as alias for `boot XM=` +-%.boot: $(ZUO) ++%.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) boot $* MAKE="$(MAKE)" + + .PHONY: auto.boot +-auto.boot: $(ZUO) ++auto.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) boot MAKE="$(MAKE)" + + SCHEME=scheme + + .PHONY: cross.boot +-cross.boot: $(ZUO) ++cross.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) boot SCHEME="$(SCHEME)" MAKE="$(MAKE)" + + .PHONY: re.boot +-re.boot: $(ZUO) ++re.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) reboot SCHEME="$(SCHEME)" + + # Supply XM= to build boot files for + # with o=3 d=0 for the cross compiler, and only after + # building the kernel for the configured machine + .PHONY: bootquick +-bootquick: $(ZUO) ++bootquick: $(ZUO_DEP) + + $(ZUO) $(workarea) bootquick "$(XM)" MAKE="$(MAKE)" + + # `.bootquick` as alias for `boot XM=` +-%.bootquick: $(ZUO) ++%.bootquick: $(ZUO_DEP) + + $(ZUO) $(workarea) bootquick $* MAKE="$(MAKE)" + +-auto.bootquick: $(ZUO) ++auto.bootquick: $(ZUO_DEP) + + $(ZUO) $(workarea) bootquick MAKE="$(MAKE)" + + # Supply XM=-.bootpbchunk to repackage boot files for + # with pbchunk sources, including additional + # boot files + .PHONY: bootpbchunk +-bootpbchunk: $(ZUO) ++bootpbchunk: $(ZUO_DEP) + + $(ZUO) $(workarea) bootpbchunk "$(XM)" $(ARGS) MAKE="$(MAKE)" + + # `.bootpbchunk` as alias for `pbchunk XM=` +-%.bootpbchunk: $(ZUO) ++%.bootpbchunk: $(ZUO_DEP) + + $(ZUO) $(workarea) bootpbchunk $* $(ARGS) MAKE="$(MAKE)" + + .PHONY: docs +-docs: build $(ZUO) ++docs: build $(ZUO_DEP) + + $(ZUO) $(workarea) docs MAKE="$(MAKE)" + + .PHONY: csug +-csug: build $(ZUO) ++csug: build $(ZUO_DEP) + + $(ZUO) $(workarea) csug MAKE="$(MAKE)" + + .PHONY: release_notes +-release_notes: build $(ZUO) ++release_notes: build $(ZUO_DEP) + + $(ZUO) $(workarea) release_notes MAKE="$(MAKE)" + + .PHONY: install-docs +-install-docs: build $(ZUO) ++install-docs: build $(ZUO_DEP) + + $(ZUO) $(workarea) install-docs MAKE="$(MAKE)" + + .PHONY: install-csug +-install-csug: build $(ZUO) ++install-csug: build $(ZUO_DEP) + + $(ZUO) $(workarea) install-csug MAKE="$(MAKE)" + + .PHONY: install-release_notes +-install-release_notes: build $(ZUO) ++install-release_notes: build $(ZUO_DEP) + + $(ZUO) $(workarea) install-release_notes MAKE="$(MAKE)" + + .PHONY: bintar +-bintar: $(ZUO) ++bintar: $(ZUO_DEP) + + $(ZUO) $(workarea) bintar MAKE="$(MAKE)" + + .PHONY: rpm +-rpm: $(ZUO) ++rpm: $(ZUO_DEP) + + $(ZUO) $(workarea) rpm MAKE="$(MAKE)" + + .PHONY: pkg +-pkg: $(ZUO) ++pkg: $(ZUO_DEP) + + $(ZUO) $(workarea) pkg MAKE="$(MAKE)" + + .PHONY: clean +-clean: $(ZUO) ++clean: $(ZUO_DEP) + + $(ZUO) $(workarea) clean MAKE="$(MAKE)" + $(RM_ZUO) + + # Using `+` here means that $(ZUO) gets built even if `-n`/`--dry-run` is provided to `make` + $(ZUO_TARGET): $(srcdir)/zuo/zuo.c + + mkdir -p bin +- + $(CC_FOR_BUILD) -DZUO_LIB_PATH='"'"../zuo/lib"'"' -o $(ZUO) $(srcdir)/zuo/zuo.c ++ + $(CC_FOR_BUILD) -DZUO_LIB_PATH='"'"$(upsrcdir)/zuo/lib"'"' -o $(ZUO) $(srcdir)/zuo/zuo.c +-- +2.41.0 + diff --git a/gnu/packages/patches/chez-scheme-bin-sh.patch b/gnu/packages/patches/chez-scheme-bin-sh.patch index 7650914f01..c2a4b292f7 100644 --- a/gnu/packages/patches/chez-scheme-bin-sh.patch +++ b/gnu/packages/patches/chez-scheme-bin-sh.patch @@ -1,6 +1,6 @@ -From 3c838e6a0c3214d95bf02048cddccfd1b69a679f Mon Sep 17 00:00:00 2001 +From b8428ad25b437acf4bd8210b14db207b71fe44c3 Mon Sep 17 00:00:00 2001 From: Philip McGrath -Date: Thu, 19 May 2022 13:41:56 -0400 +Date: Wed, 24 Aug 2022 19:55:14 -0400 Subject: [PATCH] patch s_process for "/bin/sh" on Guix If: @@ -14,22 +14,27 @@ then `s_process` will call `execl` with the file specified by `_PATH_BSHELL` instead of "/bin/sh". Checking that the path specified by `_PATH_BSHELL` exists safeguards -against obscure errors if attempting to use stand-alone executables -built by the patched Racket in non-Guix envoronments. +against obscure errors if attempting to use the patched Chez Scheme +or executables it builds in non-Guix envoronments. This patch does not change the behavior of `s_system`, which relies on `system` from the C library. --- + +Notes: + See also racket-chez-scheme-bin-sh.patch, racket-rktio-bin-sh.patch, + and zuo-bin-sh.patch. + c/prim5.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/c/prim5.c b/c/prim5.c -index 5a07893..bc2736c 100644 +index 90b087f1..284f063f 100644 --- a/c/prim5.c +++ b/c/prim5.c -@@ -23,6 +23,12 @@ - #include - #include +@@ -27,6 +27,12 @@ + #include + #endif +/* BEGIN PATCH for Guix */ +#ifndef WIN32 @@ -39,8 +44,8 @@ index 5a07893..bc2736c 100644 + /* locally defined functions */ static INT s_errno(void); - static iptr s_addr_in_heap(uptr x); -@@ -746,6 +752,17 @@ static ptr s_process(char *s, IBOOL stderrp) { + static IBOOL s_addr_in_heap(uptr x); +@@ -875,6 +881,17 @@ static ptr s_process(char *s, IBOOL stderrp) { INT tofds[2], fromfds[2], errfds[2]; struct sigaction act, oint_act; @@ -58,10 +63,10 @@ index 5a07893..bc2736c 100644 if (pipe(tofds)) S_error("process","cannot open pipes"); if (pipe(fromfds)) { -@@ -771,7 +788,9 @@ static ptr s_process(char *s, IBOOL stderrp) { - CLOSE(1); if (dup(fromfds[1]) != 1) _exit(1); - CLOSE(2); if (dup(stderrp ? errfds[1] : 1) != 2) _exit(1); - {INT i; for (i = 3; i < NOFILE; i++) (void)CLOSE(i);} +@@ -911,7 +928,9 @@ static ptr s_process(char *s, IBOOL stderrp) { + } + } + #endif /* __GNU__ Hurd */ - execl("/bin/sh", "/bin/sh", "-c", s, NULL); + /* BEGIN PATCH for Guix */ + execl(guix_sh, guix_sh, "-c", s, NULL); @@ -70,7 +75,7 @@ index 5a07893..bc2736c 100644 /*NOTREACHED*/ } else { -base-commit: 9df56e7b25bc523663eac3da24be33afc5f76c84 +base-commit: 253230f7dfbb4fe777277d6bbf93f39f9567f086 -- -2.32.0 +2.41.0 -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 02:52:46 2024 Received: (at 70065) by debbugs.gnu.org; 1 Apr 2024 06:52:46 +0000 Received: from localhost ([127.0.0.1]:49371 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBXC-0003Oc-BJ for submit@debbugs.gnu.org; Mon, 01 Apr 2024 02:52:46 -0400 Received: from fhigh3-smtp.messagingengine.com ([103.168.172.154]:39611) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBXA-0003OI-IP for 70065@debbugs.gnu.org; Mon, 01 Apr 2024 02:52:44 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 6D4061140126; Mon, 1 Apr 2024 02:52:36 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Mon, 01 Apr 2024 02:52:36 -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:subject:subject:to :to; s=fm2; t=1711954356; x=1712040756; bh=4Y1qTOFLZmvkQkepQEwTH XDho0KayvpjrSxVEnrAyRQ=; b=Ri/G4aRMV7P3JnrnrVAgQerfMLsMg8CUEQUse XW6YG6hTiLBXYaPPL0yiioGYtY7Iqm2CF/tHjzexyewn6S4/fzGhohUPmCWeeKCi Xc/vUdCWUPA+78wxCxcUSsFW6mg9AN0LzqoG/OQrI73e44tphhnqFL1656jHkJag U94w2j60/H6iCA4dmuVM2iNiNQoJag5oM27wYCebR9LOm/d/ZlEDC9xFac2GaOUg hCM+Bx+3pjjp9jmYJEvfJ0X17VTr6mAFu0AFqnNDUWuuFOvSkdD4I/JwRgELASJP tFZdwv9lu4JyMf33mToGAlnbpdCgE4Y7h+btQVs/hWdyImJJQ== 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:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711954356; x= 1712040756; bh=4Y1qTOFLZmvkQkepQEwTHXDho0KayvpjrSxVEnrAyRQ=; b=j ZMc9BIIYeh7xpCNPi5P2y4xSLG/l5NNo9O9b1nuukhRp0GyhRG6EMzSi5vYIBq0t Dwu1EQ2wGkaSqUq0fpLNrsCmt/Fk9g2FLCQdLInhU1BFSIBVb/17pQUafeGaR9X1 wkSVNoPANMAVLT0gkov4cHp7WMjcQxYbBRuOthSSYk1ECTHivAXUpsx5V3F2pvzm 5Gf3ozDu2WTiqbXLAOxY5hV7+KcdFHYSBRkwtwPo7VuldtBlje5Kg8zmtpEjCRG/ +Nze++MHlQyBOaFW5bF0WHohXK0mccJ3QPralxD8NJGkJq37b0x7S941qd6uV9oc zMWA7nGRlHbhMMqyAW9YQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvledguddugecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvfevufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefrhhhi lhhiphcuofgtifhrrghthhcuoehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtg homheqnecuggftrfgrthhtvghrnhepgffhgfffjeegudejvddvgedvheefveehvdffuedu udeivdfhgeeileehvdfhfeefnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpe hmrghilhhfrhhomhepphhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtohhm X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 1 Apr 2024 02:52:35 -0400 (EDT) From: Philip McGrath To: 70065@debbugs.gnu.org Subject: [PATCH v2 5/8] gnu: Deprecate chez-scheme-for-system.in favor of chez-scheme. Date: Mon, 1 Apr 2024 02:51:10 -0400 Message-ID: <7e316efea684137afd211b2e882e1aef86067c06.1711953507.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Debbugs-Cc: Philip McGrath Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin , Philip McGrath , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Chez Scheme 10.0.0 includes all of the additional platform support developed on the Racket branch. * gnu/packages/chez.scm (chez-scheme-for-system): Deprecate it. Change-Id: I7e11c8c4d95f41ff63e5c52be664a537556393c1 --- gnu/packages/chez.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 5b98b3ce1f..5a9a761282 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -27,6 +27,7 @@ (define-module (gnu packages chez) #:select (gpl2+ gpl3+ lgpl2.0+ lgpl2.1+ asl2.0 bsd-3 expat public-domain)) #:use-module (guix packages) + #:use-module (guix deprecation) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) @@ -68,8 +69,7 @@ (define-module (gnu packages chez) ;; ;; Code: -(define* (chez-scheme-for-system #:optional - system) +(define-deprecated (chez-scheme-for-system #:optional system) chez-scheme "Returns 'chez-scheme'." chez-scheme) -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 02:52:59 2024 Received: (at 70065) by debbugs.gnu.org; 1 Apr 2024 06:52:59 +0000 Received: from localhost ([127.0.0.1]:49376 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBXO-0003P8-NJ for submit@debbugs.gnu.org; Mon, 01 Apr 2024 02:52:59 -0400 Received: from fhigh3-smtp.messagingengine.com ([103.168.172.154]:51449) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBXM-0003Oo-C4 for 70065@debbugs.gnu.org; Mon, 01 Apr 2024 02:52:57 -0400 Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 3D42B1140125; Mon, 1 Apr 2024 02:52:48 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Mon, 01 Apr 2024 02:52:48 -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:subject:subject:to :to; s=fm2; t=1711954368; x=1712040768; bh=E9BOr/kEpCG3iW4iKF2Wx XwVZaDN/FvJewF2d+/XVS4=; b=nRReZraScDqnZ8wQa6gxhWNBIzDEgipDefYcz Nsey6xuHztgR7J50xz7ZgG5pb1C1UUAR0psJXw9+btS3sZJYdJrVbLaIRaoKzt+d XMJWVAxWZGsY+cGrDD+fHBH+EsnaB5aktn01Fobe1uG3wsCGls0jgeTjkfn3Ubl2 pgIIXjTTdTumgIig9MyT2g2JUUMhprKsKIG9M4FcZbgn8I8fFA4xJw7dzyavQVjK 8698zkmMM+tamrcpT+K4GoLI7Hp9VXedhqTSRWbthNwNzEaI9PvuHxJ2PUfLICWh ZzsjrRdLYFRPAr0aJfkXLoL8r6rh6evcf/LWWtgFAliugHOug== 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:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711954368; x= 1712040768; bh=E9BOr/kEpCG3iW4iKF2WxXwVZaDN/FvJewF2d+/XVS4=; b=A K9mZsVQpdfHrC5C9p38dwqzkkkJb/J28s+vUUbtU8+Rkg6UEmNkCh6+15TAo3aur +RlZqulSDuL/fvumRo4F2WBa1Mh0BFwNK2653FlfR6edHqM1NUuIJFYS8aQCYJBD xryiKDtaYz4Ae+Ga17dlY1Xa3kmhfIi5AQM5DQEA7M3sxDlP1fR0x+QpPXDG+2tn Xu0GKaA7r9eRIGBFUcwZit9o7c7/3harVrpQVA86pC8c++lJFX2a6TfY1hhJkAI+ jZcQ6NyARkLEtHW+ubkWIOAuFJZ59QDIA8Yhfd6Y0NeGV7PshR37V1LoZdivjpNW O52vdWbPj/IN/+I+wVdNg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvledguddugecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvfevufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefrhhhi lhhiphcuofgtifhrrghthhcuoehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtg homheqnecuggftrfgrthhtvghrnhepkedukedtiedvudekffefjeettdejvedtkeevteeg tdetgfeigfdugeejgeffhedtnecuffhomhgrihhnpehnohhnghhnuhdrohhrghenucevlh hushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehphhhilhhiphes phhhihhlihhpmhgtghhrrghthhdrtghomh X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 1 Apr 2024 02:52:47 -0400 (EDT) From: Philip McGrath To: 70065@debbugs.gnu.org Subject: [PATCH v2 6/8] gnu: Fix uses of deprecated chez-scheme-for-system. Date: Mon, 1 Apr 2024 02:51:11 -0400 Message-ID: <5dc380b0e8ec34c2682ef5e84d9fd4286037950a.1711953507.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Debbugs-Cc: Andrew Tropin , Katherine Cox-Buday , Liliana Marie Prikler , Philip McGrath Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin , Philip McGrath , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) (chez-srfi, chez-web, chez-sockets, chez-matchable, chez-irregex) (chez-fmt, chez-mit, chez-scmutils)[native-inputs]: Use 'chez-scheme' instead of 'chez-scheme-for-system'. * gnu/packages/emacs-xyz.scm (emacs-geiser-chez)[inputs]: Likewise. * gnu/packages/loko.scm (loko-scheme)[native-inputs]: Likewise. Change-Id: Ib4d713fecbb41cbbe75f67980b9e22cc9bd673dd --- gnu/packages/chez.scm | 16 ++++++++-------- gnu/packages/emacs-xyz.scm | 2 +- gnu/packages/loko.scm | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 5a9a761282..807a143f61 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -907,7 +907,7 @@ (define-public chez-srfi (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs - (list (chez-scheme-for-system))) + (list chez-scheme)) (arguments (list #:make-flags (chez-make-flags name version) #:test-target "test" @@ -938,7 +938,7 @@ (define-public chez-web (base32 "1dq25qygyncbfq4kwwqqgyyakfqjwhp5q23vrf3bff1p66nyfl3b")))) (build-system gnu-build-system) (native-inputs - (list (chez-scheme-for-system) + (list chez-scheme ghostscript (texlive-updmap.cfg (list texlive-charter @@ -1005,7 +1005,7 @@ (define-public chez-sockets (base32 "1n5fbwwz51fdzvjackgmnsgh363g9inyxv7kmzi0469cwavwcx5m")))) (build-system gnu-build-system) (native-inputs - (list (chez-scheme-for-system) + (list chez-scheme chez-web (texlive-updmap.cfg))) (arguments @@ -1091,7 +1091,7 @@ (define-public chez-matchable (inputs (list chez-srfi)) ; for tests (native-inputs - (list (chez-scheme-for-system))) + (list chez-scheme)) (arguments (list #:make-flags (chez-make-flags name version) #:test-target "test" @@ -1123,7 +1123,7 @@ (define-public chez-irregex (propagated-inputs (list chez-srfi)) ; for irregex-utils (native-inputs - (list (chez-scheme-for-system))) + (list chez-scheme)) (arguments (list #:make-flags (chez-make-flags name version) #:test-target "test" @@ -1154,7 +1154,7 @@ (define-public chez-fmt (propagated-inputs (list chez-srfi)) ; for irregex-utils (native-inputs - (list (chez-scheme-for-system))) + (list chez-scheme)) (arguments (list #:make-flags (chez-make-flags name version) #:test-target "chez-check" @@ -1217,7 +1217,7 @@ (define-public chez-mit (inputs (list chez-srfi)) ; for tests (native-inputs - (list (chez-scheme-for-system))) + (list chez-scheme)) (arguments (list #:make-flags (chez-make-flags name version) #:test-target "test" @@ -1248,7 +1248,7 @@ (define-public chez-scmutils (inputs (list chez-srfi)) ; for tests (native-inputs - (list (chez-scheme-for-system))) + (list chez-scheme)) (propagated-inputs (list chez-mit chez-srfi)) (arguments diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index d4819c62ce..731f479560 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -767,7 +767,7 @@ (define-public emacs-geiser-chez (string-append "(eval-after-load 'geiser-impl '" all ")")))))))) (inputs - (list (chez-scheme-for-system))) + (list chez-scheme)) (propagated-inputs (list emacs-geiser)) (home-page "https://nongnu.org/geiser/") diff --git a/gnu/packages/loko.scm b/gnu/packages/loko.scm index 49dcc92d1e..003fbe416a 100644 --- a/gnu/packages/loko.scm +++ b/gnu/packages/loko.scm @@ -74,7 +74,7 @@ (define-public loko-scheme #t))))) (native-inputs (list akku - (chez-scheme-for-system) + chez-scheme guile-struct-pack guile-laesare guile-pfds -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 02:53:03 2024 Received: (at 70065) by debbugs.gnu.org; 1 Apr 2024 06:53:03 +0000 Received: from localhost ([127.0.0.1]:49381 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBXS-0003PZ-6u for submit@debbugs.gnu.org; Mon, 01 Apr 2024 02:53:03 -0400 Received: from fout8-smtp.messagingengine.com ([103.168.172.151]:38757) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBXQ-0003Ox-9O for 70065@debbugs.gnu.org; Mon, 01 Apr 2024 02:53:01 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailfout.nyi.internal (Postfix) with ESMTP id 296AD13800D9; Mon, 1 Apr 2024 02:52:52 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Mon, 01 Apr 2024 02:52:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1711954372; x=1712040772; bh=WcpquvfO1z LYn5qc67smrGS011/1AwdabIvzco9+Xjg=; b=VFNruFHYc5r7WaySeAnltx7GBf gr693Dbst/gswAUs0sLhc3EDT3HwOPMBjZWJtm2SKLs0nriEGsgg0FN6GnhyH3LH 1bRITB4dv6peEyInTK7gDXcvA/9jb63Hop+aMBqPWifuCMGavAh7pBS/vpfQj7IS rj+3TrzSO/IGjQXPEdPK3n+RvyAfMaJEE+YuUexeYuffslBBsL0+kqa6o8oedATb Km+QJVIbiUTmrD8MyC4iryIW4wEe3WuBhZWsaNsHgdUUDo0IGR0qf2X16403wrcq 0+dVWhlJpeOlU1PkHtmQeLuK3ev6ZFYOMwr+ltAWfrTV+zLrWlMQJUX3C4AA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711954372; x= 1712040772; bh=WcpquvfO1zLYn5qc67smrGS011/1AwdabIvzco9+Xjg=; b=t ovLZ5PZlZqNWEb95NsIBchTBFuUbgsgrWG1V7lk18e+jfHtH1JqIBMOkf7IhAZUa 6aJUm1dkcDMpv6uxiRxU8ydF0H+QsuFqRiemcA4txPzRuHmnm94VhdZlyn35Vm6b 9z6EnJKFwt4lEf5u2F8xy06N+T4p8Z51IGn2UMFe6pWUvDS1cIM1ATtRIDKVwTk3 NwN6vL3IlOHv9FxfWPK0lEBdwMuLssdHi0LA/AuoWzL/Mbut1/CDo3tcIBQnU4XF A7ngvyMNkxlYqXGgIwa+dzsi0hAMW+5AOtJY42L10yMitaa6Obq/AoHXzOMfNhsh CRDeHezd29dmLOb9Gb20Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvledgudduhecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomheprfhh ihhlihhpucfotgfirhgrthhhuceophhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrd gtohhmqeenucggtffrrghtthgvrhhnpeetjefgvdfhvddtkedvhffffedtgfehuefffffg keetheffheduvdeifefhgefgvdenucffohhmrghinhepughishgtohhurhhsvgdrghhroh huphenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehp hhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomh X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 1 Apr 2024 02:52:51 -0400 (EDT) From: Philip McGrath To: 70065@debbugs.gnu.org Subject: [PATCH v2 7/8] gnu: chez-scheme: Update and simplify machine-type handling. Date: Mon, 1 Apr 2024 02:51:12 -0400 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Debbugs-Cc: Philip McGrath Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin , Philip McGrath , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Since Chez Scheme 10.0.0 supports all of the backends added in Racket's branch, the complexity of '%chez-features-table' is no longer needed. Ideally, even more of this logic could be maintained upstream, but this change will simplify maintenance in the mean time. * gnu/packages/chez.scm (target-chez-arch): Recognize loongarch64. (chez-upsteam-features-for-system): Remove function. (%chez-features-table): Replace with ... (define-machine-types, %machine-types): ... this new macro and variable, using the list copied directly from the Chez Scheme source code. (nix-system->pbarch-machine-type): Update docstring, since pbarch machine types are supported upstream as of Chez Scheme 10.0.0. (racket-cs-native-supported-system?): Replace with ... (nix-system->native-chez-machine-type): ... this new function, implemented using '%machine-types'. (chez-scheme-for-racket): Update accordingly. (chez-scheme-for-racket-bootstrap-bootfiles): Likewise. * gnu/packages/racket.scm (racket-vm-cs): Likewise. Change-Id: I46efebaf48cce388075ab4873c16a6f5f9692bb7 --- gnu/packages/chez.scm | 197 ++++++++++++++++------------------------ gnu/packages/racket.scm | 4 +- 2 files changed, 81 insertions(+), 120 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 807a143f61..4d3f79d9a7 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -50,7 +50,7 @@ (define-module (gnu packages chez) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:export (chez-scheme-for-system - racket-cs-native-supported-system? + nix-system->native-chez-machine-type nix-system->pbarch-machine-type unpack-nanopass)) @@ -93,6 +93,8 @@ (define* (target-chez-arch #:optional (system "ppc32") ((target-riscv64? system) "rv64") + ((string-prefix? "loongarch64-" system) + "la64") (else #f))) @@ -127,111 +129,67 @@ (define* (target-chez-os #:optional (system (or (%current-target-system) (else #f))) -(define %chez-features-table - ;; An alist of alists mapping: - ;; os -> arch -> (or/c #f (listof symbol?)) - ;; where: - ;; - `os` is a string for the OS part of a Chez Scheme machine type; and - ;; - `arch` is a string for the architecture part of a Chez machine type. - ;; - ;; The absence of an entry for a given arch--os pair means that neither - ;; upstream Chez Scheme nor the Racket variant can generate native code for - ;; that system. (The Racket variant can still provide support via its - ;; ``portable bytecode'' backends and optional compilation to C.) A value - ;; of `#f` means that upstream Chez Scheme does not support the arch--os - ;; pair at all, but the Racket variant does. A list has the same meaning as - ;; a result from `chez-upstream-features-for-system`. - ;; - ;; The arch--os pairs marked "commented out" have been commented out in the - ;; STeX source for the upstream release notes since the initial release as - ;; free software, but they are reported to work and/or have been described - ;; as supported by upstream maintainers. - ;; - ;; For this overall approach to make sense, we assume that Racket's variant - ;; of Chez Scheme can generate native code for a superset of the platforms - ;; supported upstream, supports threads on all platforms it supports at all - ;; (because they are needed for Racket), and doesn't need bootstrap - ;; bootfiles. Those assumptions have held for several years. - '(;; Linux - ("le" - ("i3" threads bootstrap-bootfiles) - ("a6" threads bootstrap-bootfiles) - ("arm32" bootstrap-bootfiles) - ("arm64" . #f) - ("rv64" . #f) - ("ppc32" threads)) - ;; Hurd - ("gnu" - ("i3" . #f)) - ;; FreeBSD - ("fb" - ("i3" threads) ;; commented out - ("a6" threads) ;; commented out - ("arm32" . #f) - ("arm64" . #f) - ("ppc32" . #f)) - ;; OpenBSD - ("ob" - ("i3" threads) ;; commented out - ("a6" threads) ;; commented out - ("arm32" . #f) - ("arm64" . #f) - ("ppc32" . #f)) - ;; NetBSD - ("nb" - ("i3" threads) ;; commented out - ("a6" threads) ;; commented out - ("arm32" . #f) - ("arm64" . #f) - ("ppc32" . #f)) - ;; OpenSolaris / OpenIndiana / Illumos - ("s2" - ("i3" threads) ;; commented out - ("a6" threads)) ;; commented out - ;; QNX - ("qnx" - ("i3" . #f)) - ;; Windows - ("nt" - ("i3" threads bootstrap-bootfiles) - ("a6" threads bootstrap-bootfiles) - ;; ^ threads "experiemental", but reportedly fine - ("arm64" . #f)) - ;; Darwin - ("osx" - ("i3" threads bootstrap-bootfiles) - ("a6" threads bootstrap-bootfiles) - ("arm64" . #f) - ("ppc32" . #f)))) - -(define* (chez-upstream-features-for-system #:optional - (system - (or (%current-target-system) - (%current-system)))) - "Return a list of symbols naming features supported by upstream Chez Scheme -for the Nix system identifier SYSTEM, or @code{#f} if upstream Chez Scheme -does not support SYSTEM at all. - -If native threads are supported, the returned list will include -@code{'threads}. If bootstrap bootfiles for SYSTEM are distributed in the -upstream Chez Scheme repository, the returned list will include -@code{'bootstrap-bootfiles}. Other feature symbols may be added in the -future." - (let ((chez-arch (target-chez-arch system)) - (chez-os (target-chez-os system))) - (and=> (assoc-ref %chez-features-table chez-os) - (cut assoc-ref <> chez-arch)))) +(define-syntax define-machine-types + (lambda (stx) + (syntax-case stx (any) + ((_ any id0 id ...) + #`(define #,(datum->syntax #'id0 '%machine-types) + '(id0 id ...)))))) +;; The following is copied from s/cmacros.ss, line 36, in the Chez source +(define-machine-types + any + pb tpb + pb32l tpb32l + pb32b tpb32b + pb64l tpb64l + pb64b tpb64b + i3nt ti3nt + i3osx ti3osx + i3le ti3le + i3fb ti3fb + i3ob ti3ob + i3nb ti3nb + i3s2 ti3s2 + i3qnx ti3qnx + i3gnu ti3gnu + a6nt ta6nt + a6osx ta6osx + a6le ta6le + a6fb ta6fb + a6ob ta6ob + a6nb ta6nb + a6s2 ta6s2 + ppc32osx tppc32osx + ppc32le tppc32le + ppc32fb tppc32fb + ppc32ob tppc32ob + ppc32nb tppc32nb + arm32le tarm32le + arm32fb tarm32fb + arm32ob tarm32ob + arm32nb tarm32nb + arm64nt tarm64nt + arm64osx tarm64osx + arm64le tarm64le + arm64fb tarm64fb + arm64ob tarm64ob + arm64nb tarm64nb + rv64le trv64le + rv64fb trv64fb + rv64ob trv64ob + rv64nb trv64nb + la64le tla64le +) (define* (nix-system->pbarch-machine-type #:optional (system (or (%current-target-system) (%current-system))) #:key (threads? #t)) - "Return a string naming the pseudo–machine type used by Racket's variant of -Chez Scheme to represent the appropriate ``pbarch'' backend for SYSTEM: that -is, the ``portable bytecode'' backend specialized for SYSTEM's word size and -endianness. The result will name the threaded machine type unless THREADS? is -provided and is #f." + "Return a string naming the Chez Scheme machine type of the appropriate +``pbarch'' backend for SYSTEM: that is, the ``portable bytecode'' backend +specialized for SYSTEM's word size and endianness. The result will name the +threaded machine type unless THREADS? is provided as #f." (string-append (if threads? "t" "") @@ -243,20 +201,23 @@ (define* (nix-system->pbarch-machine-type #:optional "l" "b"))) -(define* (racket-cs-native-supported-system? #:optional - (system - (or (%current-target-system) - (%current-system)))) - "Can Racket's variant of Chez Scheme generate native code for SYSTEM? If -so, return the applicable machine type as a string. Otherwise, when SYSTEM -can use only the ``portable bytecode'' backends, return #f." - (let ((chez-arch (target-chez-arch system)) - (chez-os (target-chez-os system))) - (and (and=> (assoc-ref %chez-features-table chez-os) - ;; NOT assoc-ref: supported even if cdr is #f - (cut assoc chez-arch <>)) - (string-append "t" chez-arch chez-os)))) - +(define* (nix-system->native-chez-machine-type #:optional + (system + (or (%current-target-system) + (%current-system))) + #:key (threads? #t)) + "Return a string naming the Chez Scheme machine type of the native-code +backend for SYSTEM, if such a native-code backend exists. Otherwise, when +SYSTEM can use only the ``portable bytecode'' backends, return #f. The result +will name the threaded machine type unless THREADS? is provided as #f." + (let* ((chez-arch (target-chez-arch system)) + (chez-os (target-chez-os system)) + (machine + (and chez-arch chez-os + (string-append (if threads? "t" "") chez-arch chez-os)))) + (and machine + (memq (string->symbol machine) %machine-types) + machine))) ;; ;; Chez Scheme: ;; @@ -300,7 +261,7 @@ (define-public chez-scheme-for-racket (version "9.9.9-pre-release.23") (source #f) (build-system gnu-build-system) - (inputs `(,@(if (racket-cs-native-supported-system?) + (inputs `(,@(if (nix-system->native-chez-machine-type) '() (list libffi)) ,chez-scheme-for-racket-bootstrap-bootfiles @@ -353,10 +314,10 @@ (define-public chez-scheme-for-racket (search-input-directory %build-inputs "/include/X11")) '() '("--disable-x11")) - #$(string-append "-m=" (or (racket-cs-native-supported-system?) + #$(string-append "-m=" (or (nix-system->native-chez-machine-type) (nix-system->pbarch-machine-type))) ;; ^ could skip -m= for non-cross non-pbarch builds - #$@(if (racket-cs-native-supported-system?) + #$@(if (nix-system->native-chez-machine-type) #~() ;; not inferred on non-native platforms: see ;; https://racket.discourse.group/t/950/9 @@ -588,7 +549,7 @@ (define-public chez-scheme-for-racket-bootstrap-bootfiles (invoke "./configure" "--force" ; don't complain about missing bootfiles #$(string-append - "-m=" (or (racket-cs-native-supported-system?) + "-m=" (or (nix-system->native-chez-machine-type) (nix-system->pbarch-machine-type))) "ZUO=zuo" ;; ignore submodules: diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index d366f89845..f50f6f3eab 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -433,7 +433,7 @@ (define-public racket-vm-cs (inputs (let ((inputs (modify-inputs (package-inputs racket-vm-cgc) (prepend zlib lz4)))) - (if (racket-cs-native-supported-system?) + (if (nix-system->native-chez-machine-type) (modify-inputs inputs (delete "libffi")) inputs))) @@ -461,7 +461,7 @@ (define-public racket-vm-cs #+(this-package-native-input "chez-scheme-for-racket") "/bin/scheme") - #$@(if (racket-cs-native-supported-system?) + #$@(if (nix-system->native-chez-machine-type) #~() #~(#$(string-append "--enable-mach=" (nix-system->pbarch-machine-type)) -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 02:53:11 2024 Received: (at 70065) by debbugs.gnu.org; 1 Apr 2024 06:53:11 +0000 Received: from localhost ([127.0.0.1]:49404 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBXa-0003Qy-77 for submit@debbugs.gnu.org; Mon, 01 Apr 2024 02:53:11 -0400 Received: from fhigh3-smtp.messagingengine.com ([103.168.172.154]:53913) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrBXY-0003Po-1j for 70065@debbugs.gnu.org; Mon, 01 Apr 2024 02:53:08 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailfhigh.nyi.internal (Postfix) with ESMTP id E35F91140128; Mon, 1 Apr 2024 02:52:59 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Mon, 01 Apr 2024 02:52:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1711954379; x=1712040779; bh=lOkWb2f2yU R/ntzXVHHd/jU0QFI6mOAOFhreib1oE1E=; b=nzbvqnCHIGZUaRTOJvvutxEGR+ rsm4svciv3tS6b2XJdcAWNqdBQKQxlwmLCLfG1+0FMOijJTwEi2Wv2FlP621ns5j f4dUagFp/jrFoHDlxKI0i84S/lq3F4WCTIJp3fiR/Q2a+I2utCsqKiCcnoAw/xLg dsXhUGbI6dzYfjv49P9maVMqqDD1INhLZoPjXO/SD9SzOsc/TZSInDxDlrBUUfhm EuakAwQ/FAiDCVwJUMnGmNDwSWtZHuQ7NqqBDfx4OWgPtOlS0Y5iMjHXdVT/MxoW HkBJV3/xQ/eblgK7a7fhCRnCxIlacvV3ypmRrjxgLNYlWm0lFNUISOB/xNAw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711954379; x= 1712040779; bh=lOkWb2f2yUR/ntzXVHHd/jU0QFI6mOAOFhreib1oE1E=; b=R XO9jKMYmie895DIHdPVD5bz6gvHg+xHZ76aYHHtfnpqfskTGFeWR/ZX9P/sVX/ld DJ2bMT2FFlVUJKxFWEZWcub8T5xH2emf84Eiwi8kMUc5B7l7AROuhqRNUtN4RlAg RBJgmXZ4OYurxy3n775lU6eBsh161mTY6SyJi9dgCeIFqZyFaScJYb+EsUlXZPAy rtIIOFHtC3yXzVScTywcpms96eiHYucxrFyIFvoze4A8Cf2oUe9belL4HtLVJpwv bx9NV8xoGz8yplKMtNXrmmehUW/MroaUMhF+BwzA8iZ83mTl4Qh0TZbT4u3Zd9AO cDItvK+1+pl4PjRb74AUQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddvledguddugecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enogfuuhhsphgvtghtffhomhgrihhnucdlgeelmdenucfjughrpefhvfevufffkffojghf gggtgfesthekredtredtjeenucfhrhhomheprfhhihhlihhpucfotgfirhgrthhhuceoph hhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtohhmqeenucggtffrrghtthgvrhhn peefjefhtdelffevteelgfeljeeuieduuddvvdduhfeukeetjefhjeeileeuheejvdenuc ffohhmrghinheprhgrtghkvghtqdhlrghnghdrohhrghdpghhithhhuhgsrdhiohdpughi shgtohhurhhsvgdrghhrohhuphenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh epmhgrihhlfhhrohhmpehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomh X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 1 Apr 2024 02:52:59 -0400 (EDT) From: Philip McGrath To: 70065@debbugs.gnu.org Subject: [PATCH v2 8/8] gnu: chez-scheme: Bootstrap from source. Date: Mon, 1 Apr 2024 02:51:13 -0400 Message-ID: <577e7e3c1b367fc752c399d2a7ff140e8c258b71.1711953507.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Debbugs-Cc: Philip McGrath Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin , Philip McGrath , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/chez.scm (chez-scheme)[source]: Also unbundle pre-built boot files. (chez-scheme-bootstrap-bootfiles): Stop inheriting from 'chez-scheme'. [native-inputs]: Add 'zuo', 'chez-nanopass-bootstrap', and either 'chez-scheme-for-racket' or, for cross builds, 'chez-scheme'. [build-system]: Change to gnu-build-system. [arguments]: Change to run 'configure' and then bootstrap via `make re.boot` or, for cross builds, `make cross.boot` [synopsis, description]: Update accordingly. (chez-scheme-for-racket-bootstrap-bootfiles)[synopsis]: Write "boot files" as two words in prose. [description]: Likewise. * gnu/packages/racket.scm: Update comments. Change-Id: I55d9b57090ecaca0aa2ab19c2c3ebae2243a9173 --- gnu/packages/chez.scm | 123 +++++++++++++++++++++++++++++++--------- gnu/packages/racket.scm | 24 +++++--- 2 files changed, 112 insertions(+), 35 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 4d3f79d9a7..db582fa821 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -57,15 +57,54 @@ (define-module (gnu packages chez) ;; Commentary: ;; ;; The bootstrapping paths for Chez Scheme and Racket are closely -;; entwined. Racket CS (the default Racket implementation) is based on (a fork -;; of) Chez Scheme. Racket's variant of Chez Scheme shares sources for -;; nanopass and stex with upstream Chez Scheme. +;; entwined. See "Bootstrapping Racket" in the commentary on "racket.scm" for +;; details on the Racket portion of Chez Scheme's bootstrapping path. ;; -;; Racket's variant of Chez Scheme can be bootstrapped by an older Racket -;; implementation, Racket BC, which can be bootstrapped from C. Porting that -;; code to work with upstream Chez Scheme (or finding an old version that -;; does) is our best hope for some day bootstrapping upstream Chez Scheme from -;; source. +;; Chez Scheme is a self-hosting compiler. A small kernel implemented in C +;; loads "boot files" (in a custom object file format) compiled from the parts +;; of the system implemented in Chez Scheme. (While Chez Scheme generates +;; native machine code, it implements its own linker and loader.) +;; +;; As of Chez Scheme 10.0.0 (and the pre-release versions that preceded it on +;; the Racket branch), there are several ways to obtain boot files: +;; +;; 1. The Racket package "cs-bootstrap" (in the "racket/src/rktboot/" +;; directory of the main Racket Git repository) simulates enough of Chez +;; Scheme to load the Chez Scheme compiler purely from source into Racket +;; and apply the compiler to itself, producing the needed boot files +;; (albeit very slowly). +;; Any variant of Racket since version 7.1 can run the simulation. Using +;; the older Racket BC implementation, which does not depend on Chez +;; Scheme, breaks the dependency cycle. +;; However, the simulation relies on implementation details of Chez +;; Scheme, so a given version of Chez Scheme can only be bootstrapped by +;; the corresponding version of the "cs-bootstrap" package. +;; +;; 2. The Chez Scheme makefile provides a "re.boot" target for bootstrapping +;; via a different version of Chez Scheme (9.5.4 or later). +;; This path manages potential differences in implementation details +;; across Chez Scheme versions using a strategy similar to "cs-bootstrap", +;; but the compatibility shim is maintained with the Chez Scheme source +;; code (in "s/reboot.ss"). Also, it's faster, since less indirection is +;; needed. +;; +;; 3. For cross-compilation, or with an extremely similar Chez Scheme, the +;; makefile provides "cross.boot" and related targets. +;; +;; 4. The Chez Scheme Git repository includes pre-built "pb" (portable +;; bytecode) boot files, which can be used for bootstrapping on any +;; platform, but these binary files are removed from the source Guix uses. +;; +;; Concretely, we use racket-vm-bc to bootstrap chez-scheme-for-racket, which +;; we then use to bootstrap both chez-scheme and racket-vm-cs. +;; +;; In principle, it would be possible instead to use chez-scheme to bootstrap +;; chez-scheme-for-racket. However, since Racket is ultimately used for +;; bootstrapping, chez-scheme would still need to be rebuilt when Racket +;; changes, whereas treating chez-scheme as a leaf avoids having to rebuild +;; Racket when upstream Chez Scheme changes. Furthermore, since "cs-bootstrap" +;; is developed in the Racket source repository, we don't have to look for the +;; version of "cs-bootstrap" compatible with the upstream Chez Scheme release. ;; ;; Code: @@ -479,7 +518,8 @@ (define-public chez-scheme (for-each (lambda (dir) (when (directory-exists? dir) (delete-file-recursively dir))) - '("lz4" + '("boot" + "lz4" "nanopass" "stex" "zlib" @@ -575,10 +615,10 @@ (define-public chez-scheme-for-racket-bootstrap-bootfiles "/opt/racket-vm/bin/racket") "../rktboot/main.rkt")))))))) (home-page "https://pkgs.racket-lang.org/package/cs-bootstrap") - (synopsis "Chez Scheme bootfiles bootstrapped by Racket") - (description "Chez Scheme is a self-hosting compiler: building it -requires ``bootfiles'' containing the Scheme-implemented portions compiled for -the current platform. (Chez can then cross-compile bootfiles for all other + (synopsis "Chez Scheme boot files bootstrapped by Racket") + (description "Chez Scheme is a self-hosting compiler: building it requires +``boot files'' containing the Scheme-implemented portions compiled for the +current platform. (Chez can then cross-compile boot files for all other supported platforms.) The Racket package @code{cs-bootstrap} (part of the main Racket Git @@ -591,28 +631,57 @@ (define-public chez-scheme-for-racket-bootstrap-bootfiles (define-public chez-scheme-bootstrap-bootfiles (package - (inherit chez-scheme) (name "chez-scheme-bootstrap-bootfiles") - (inputs '()) - (native-inputs '()) + (version (package-version chez-scheme)) + (source (package-source chez-scheme)) + (native-inputs (list chez-nanopass-bootstrap + (if (%current-target-system) + chez-scheme + chez-scheme-for-racket) + zuo)) (outputs '("out")) - (build-system copy-build-system) - ;; TODO: cross compilation + (build-system gnu-build-system) (arguments - (list #:install-plan - #~`(("boot/" "lib/chez-scheme-bootfiles")))) - (synopsis "Chez Scheme bootfiles (binary seed)") + (list + #:configure-flags + #~`("--force" ; don't complain about missing bootfiles + "ZLIB=-lz" "LZ4=-llz4" "STEXLIB=/GuixNotUsingStex" ; ignore submods + "ZUO=zuo" + ;; could skip -m= for non-cross non-pbarch builds + #$(string-append "-m=" (or (nix-system->native-chez-machine-type) + (nix-system->pbarch-machine-type)))) + #:make-flags + #~(list (string-append "SCHEME=" + (search-input-file %build-inputs "/bin/scheme")) + #$(if (%current-target-system) + "cross.boot" + "re.boot")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'unpack-nanopass + #$unpack-nanopass) + (replace 'configure + #$chez-configure) + (delete 'check) + (replace 'install + (lambda args + (mkdir-p (string-append #$output "/lib")) + (copy-recursively + "boot" + (string-append #$output "/lib/chez-scheme-bootfiles"))))))) + (home-page "https://cisco.github.io/ChezScheme/") + (synopsis "Bootstrapped Chez Scheme boot files") (description "Chez Scheme is a self-hosting compiler: building it requires -``bootfiles'' containing the Scheme-implemented portions compiled for the +``boot files'' containing the Scheme-implemented portions compiled for the current platform. (Chez can then cross-compile bootfiles for all other supported platforms.) -This package provides bootstrap bootfiles for upstream Chez Scheme. -Currently, it simply packages the binaries checked in to the upstream -repository. Hopefully we can eventually adapt Racket's @code{cs-bootstrap} to -work with upstream Chez Scheme so that we can bootstrap these files from -source."))) +This package provides boot files for the released version of Chez Scheme +bootstrapped by @code{chez-scheme-for-racket}. Chez Scheme 9.5.4 or any later +version can be used for bootstrapping. Guix ultimately uses the Racket package +@code{cs-bootstrap} to bootstrap its initial version of Chez Scheme.") + (license asl2.0))) ;; ;; Chez's bootstrap dependencies: diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index f50f6f3eab..2b20353159 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -72,6 +72,7 @@ (define-module (gnu packages racket) ;; ├── bc/ ;; ├── cs/ ;; ├── ChezScheme/ +;; ├── rktboot/ ;; ├── zuo/ ;; └── ... ;; @@ -149,14 +150,12 @@ (define-module (gnu packages racket) ;; - Racket BC [3M] needs an existing Racket to run "xform", ;; which transforms its own C source code to add additional annotations ;; for the precise garbage collector. -;; - Racket CS needs (bootfiles for) Racket's fork of Chez Scheme. -;; It also needs an existing Racket to compile Racket-implemented +;; - Racket CS needs (boot files for) the corresponding version of Chez +;; Scheme. It also needs an existing Racket to compile Racket-implemented ;; parts of the runtime system to R6RS libraries. -;; - Chez Scheme also needs bootfiles for itself, but Racket can simulate -;; enough of Chez Scheme to load Racket's fork of the Chez Scheme compiler -;; purely from source into Racket and apply the compiler to itself, -;; producing the needed bootfiles (albeit very slowly). -;; Any variant of Racket since version 7.1 can run the simulation. +;; - Chez Scheme also needs boot files for itself, but Racket BC can +;; bootstrap these using the code in "racket/src/rktboot/". +;; See the commentary in "chez.scm" for further details ;; ;; So, we build CGC to build 3M to build bootfiles and CS. ;; @@ -164,6 +163,14 @@ (define-module (gnu packages racket) ;; often use "BC" to mean "3M", consistent with `(banner)` and the ;; suffixes used on executables when more than one variant co-exists.) ;; +;; Since the pre-releases for Chez Scheme 10.0.0, all of Racket's changes have +;; been merged upstream, and development will be kept in sync going +;; forward. However, there is no plan to align the Chez Scheme and Racket +;; release cycles. For the near fulture, a given released version of Racket +;; will continue to depend on a specific pre-release version of Chez Scheme as +;; part of Racket CS's "ABI". See upstream discussion at +;; . +;; ;; One remaining bootstrapping limitation is that Racket's reader, module ;; system, and macro expander are implemented in Racket. For Racket CS, ;; they are compiled to R6RS libraries as discussed above. This note from the @@ -189,7 +196,8 @@ (define-module (gnu packages racket) ;; Zuo is notably *not* a problem for bootstrapping. The implementation is a ;; single hand-written C file designed to build with just `cc -o zuo zuo.c`, ;; even with very old or limited compilers. (We use the Autoconf support for -;; convienience.) +;; convienience.) As of Zuo 1.8, Zuo has tagged releases in its own repository +;; independent of the Racket release cycle. ;; ;; CODE: -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 11:40:42 2024 Received: (at 70065) by debbugs.gnu.org; 1 Apr 2024 15:40:42 +0000 Received: from localhost ([127.0.0.1]:51418 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrJm5-0004If-Nt for submit@debbugs.gnu.org; Mon, 01 Apr 2024 11:40:42 -0400 Received: from mail-ed1-x542.google.com ([2a00:1450:4864:20::542]:54533) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrJm4-0004IO-4r for 70065@debbugs.gnu.org; Mon, 01 Apr 2024 11:40:40 -0400 Received: by mail-ed1-x542.google.com with SMTP id 4fb4d7f45d1cf-56c0bd07e7bso4196135a12.1 for <70065@debbugs.gnu.org>; Mon, 01 Apr 2024 08:40:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711986030; x=1712590830; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=MnsIXp72y4abHnRrQowoff1BY4d5M7f4gDn4MF2r0gs=; b=jwh0/0oflxN1QJBxs47twjDG39u9TQJtgHdGs6Qryr4W7f04mboef7dQRScSseiIRd kWKvpjsdty/IIm86YCNIfzj8iYyCipGKcsN/NFoIxA+gmCdzstJ+j8e9tVm2haewE3VQ mbwxmcgU/Ntus2r1m7VoXzoqOy+reEKEtHHf9n20TYEfZMrp0QvBdbKop29LOiKiNCYI nC9R8k8OKaHBIlbBiMraOV/cNEqsLBZU6mldur4XIL6DokoAy/xJYvKS1ko74p7g3RvZ 1umQObrNPmpfG8ohgOIsoGs1bufU88DDkslfVL598kzGECB6Cz/wlHeK9WiM6SrfgQno S3Gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711986030; x=1712590830; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=MnsIXp72y4abHnRrQowoff1BY4d5M7f4gDn4MF2r0gs=; b=q7Uxcd6c2XMYx2g0ITadSx3rxFbio7pFmq7Ox3fkt7jJnBdgJSDLyiB5paLuMGFSC+ vGcrct95c4ggeq6JeuI2ExxrhqTRlPagnY/aEQtx5UAy2tTMXSCk2GX1Xdv0U6uD+/dI 7ai9T1286FtgoKHS/C+RuiZFT9t/kesTFbP5kP+Yx3wivlkELF54ZU2yx9raFnPbH+qp IYkIvcUsLFI8BI9VELkRc/Uf+j0lBEG3OMtewbLhQFMRoqJ6yQ4z6J9idtuifQ1X57E0 Xjtgqz4KJB0Kr1xRjKWTnEE11gl2pCh03b7FlZqI5gbTi9Lw9pOvRsoTGs/+hW9M/Fer vNPg== X-Forwarded-Encrypted: i=1; AJvYcCURxZ2I4yKuipl+6LYnuBTw8IoYexWsz9mM20UeLe1wgXZetmFECAmL90pDVtkMw+rc3udp2UxSegHJ0GT4y/BjjrTTlgI= X-Gm-Message-State: AOJu0YwYX/zaMjMadolLZh9ZUr6KAXIfuUByHjBhl6k/uXJOQOfowB7Q tT3tmNqOSeFDecgNxshR1SCmy1E1QBRw7mTPoZ7dbEzLa+D4ZTno X-Google-Smtp-Source: AGHT+IHUO/weDdOjeMRdHanDg3DIAkShxaC8yz7yDccVqst+mdKIBfoovPcmEkdgQK2tYhyiMsXFAw== X-Received: by 2002:a05:6402:270c:b0:568:32cc:f808 with SMTP id y12-20020a056402270c00b0056832ccf808mr6218046edd.15.1711986030386; Mon, 01 Apr 2024 08:40:30 -0700 (PDT) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id ef15-20020a05640228cf00b0056c1380a972sm5534580edb.74.2024.04.01.08.40.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Apr 2024 08:40:29 -0700 (PDT) Message-ID: Subject: Re: [PATCH v2 3/8] gnu: chez-scheme: Reorganize package definitions. From: Liliana Marie Prikler To: Philip McGrath , 70065@debbugs.gnu.org Date: Mon, 01 Apr 2024 17:40:25 +0200 In-Reply-To: <92971b8c18a5d69577472b97c8b91b5319527049.1711953507.git.philip@philipmcgrath.com> References: <92971b8c18a5d69577472b97c8b91b5319527049.1711953507.git.philip@philipmcgrath.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.48.4 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Andrew Tropin , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Am Montag, dem 01.04.2024 um 02:51 -0400 schrieb Philip McGrath: > A future commit will change 'chez-scheme' to inherit from > 'chez-scheme-for-racket', so 'chez-scheme-for-racket' will need to be > defined before 'chez-scheme'.=C2=A0 In an attempt to produce better diffs= , > this commit re-orders the definitions while keeping their contents > exactly the same. >=20 > * gnu/packages/chez.scm (chez-scheme): Move below > 'chez-scheme-for-racket'. > (chez-scheme-bootstrap-bootfiles): Move below > 'chez-scheme-for-racket-bootstrap-bootfiles'. >=20 > Change-Id: Ie088abea2b44329f9d8399fbfb95c51d8912b05e > --- I don't understand this direction. Why have chez-scheme inherit from chez-scheme-for-racket? Even if Racket itself pins a particular version instead of an upstream release (which, let's face it, would be the wiser option here), or requires a special build (again, why?) I think keeping the inheritance in the other direction makes ontological sense moreso than whatever we're starting here. Cheers From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 11:42:18 2024 Received: (at 70065) by debbugs.gnu.org; 1 Apr 2024 15:42:18 +0000 Received: from localhost ([127.0.0.1]:51426 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrJnd-0004Lo-Fe for submit@debbugs.gnu.org; Mon, 01 Apr 2024 11:42:18 -0400 Received: from mail-ed1-x544.google.com ([2a00:1450:4864:20::544]:47352) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrJnN-0004Ks-6L for 70065@debbugs.gnu.org; Mon, 01 Apr 2024 11:42:16 -0400 Received: by mail-ed1-x544.google.com with SMTP id 4fb4d7f45d1cf-5684db9147dso4527037a12.2 for <70065@debbugs.gnu.org>; Mon, 01 Apr 2024 08:41:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711986112; x=1712590912; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=JSR0QFbsHAiYGN5QTRMiMdiUDS8pNKzkDPLy1LvlLJw=; b=lBkZVA7OTKCC93aSe1XWdgvr25PKpZ8HlakbdkQNhh2tTKnVLqZX5s+ebeVAAo5wTC PCz2JMMYIExq2fDncz2LbaLgIgP7o/tYZmgNG7egV04ss0AClqnTdsXmZ7xb6gkmIK18 xDO/KXAeQZLCdFoMoYMx4AN2+1oH4rRK4kYH21fZu1TtSUt3iuQpxxSkbrmtHuJV7/IR LCifmsZlwDNT1kNiLKVMWsKMZGtQTeyMTWwrmNOdwx1Cl29HAxPHH2was3DWztS/lsne CRCpKYLrcT7pnmIybwdrg7XVQzgovt8f8+8DPv4BdYL0mToBC/GVS1dAOUENfSj9AzmJ 2UWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711986112; x=1712590912; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=JSR0QFbsHAiYGN5QTRMiMdiUDS8pNKzkDPLy1LvlLJw=; b=AVv17cKihDhQizASv6DeSCiAPsermXnaH2j6NnfUp/G1DLdnD7jgIbxJghoefpqUPo hUpN5zpFrKs51wuYXJZya5BZXHFvrH4OxEwYtaCukTZbwHBfFTdwHbTNHCSouG/7s23r DbZTjhz1cOVj8AOOZFQlkR1wb5qRqhnqJ1Cckry/vBdM2Lii4HHI11Y/+4ZU1fqxEuNo QEijB0S55/SfNjRnGImBpWbfPdIw5reE7vvkVK1zJRDeMg/NWToOb1+dEdvrxj6W5dkw csXF3NMoSSeTaBPYq9Jw8aO35sU84ArEyCTblAUJLzELS02hfHx9Czuc9pOdwvtLxPMx 19LA== X-Forwarded-Encrypted: i=1; AJvYcCWIxjXcla8Z9aMZUNi/NFZM2bE5R20+Bjd48yPMFLXVlDrxkU6Z3InN6M6RViiQ/oZfJRsnCASKEwpnuowqeEeSkIIF3Ug= X-Gm-Message-State: AOJu0YyxzGkMF/KvmtlQO3DnYgrrEQUMMBUD0kom84/xFT95GQ9BBlJi E2KqRTa27o+vKCTW7TaKUzbgDbOubHExYjrGkJWeTIJsSnBfhCkF X-Google-Smtp-Source: AGHT+IFNnu3Rv0JqAk89eYV9VB/tDeiR3BvKysMU2B5xBg3eltYwUx2ft4HzU5dUNlTiAYogP4SFZg== X-Received: by 2002:a05:6402:3512:b0:56d:b6dc:c8fe with SMTP id b18-20020a056402351200b0056db6dcc8femr5341558edd.0.1711986111705; Mon, 01 Apr 2024 08:41:51 -0700 (PDT) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id o19-20020aa7c7d3000000b0056dd3626035sm1388146eds.91.2024.04.01.08.41.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Apr 2024 08:41:51 -0700 (PDT) Message-ID: Subject: Re: [PATCH v2 6/8] gnu: Fix uses of deprecated chez-scheme-for-system. From: Liliana Marie Prikler To: Philip McGrath , 70065@debbugs.gnu.org Date: Mon, 01 Apr 2024 17:41:50 +0200 In-Reply-To: <5dc380b0e8ec34c2682ef5e84d9fd4286037950a.1711953507.git.philip@philipmcgrath.com> References: <5dc380b0e8ec34c2682ef5e84d9fd4286037950a.1711953507.git.philip@philipmcgrath.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.48.4 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Andrew Tropin , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Am Montag, dem 01.04.2024 um 02:51 -0400 schrieb Philip McGrath: > (chez-srfi, chez-web, chez-sockets, chez-matchable, chez-irregex) > (chez-fmt, chez-mit, chez-scmutils)[native-inputs]: Use 'chez-scheme' > instead of 'chez-scheme-for-system'. > * gnu/packages/emacs-xyz.scm (emacs-geiser-chez)[inputs]: Likewise. > * gnu/packages/loko.scm (loko-scheme)[native-inputs]: Likewise. >=20 > Change-Id: Ib4d713fecbb41cbbe75f67980b9e22cc9bd673dd > --- LGTM From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 11:45:43 2024 Received: (at 70065) by debbugs.gnu.org; 1 Apr 2024 15:45:43 +0000 Received: from localhost ([127.0.0.1]:51438 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrJqw-0004Ri-Kv for submit@debbugs.gnu.org; Mon, 01 Apr 2024 11:45:43 -0400 Received: from mail-ed1-x541.google.com ([2a00:1450:4864:20::541]:60611) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrJqu-0004RS-FS for 70065@debbugs.gnu.org; Mon, 01 Apr 2024 11:45:41 -0400 Received: by mail-ed1-x541.google.com with SMTP id 4fb4d7f45d1cf-56c5d05128dso2629844a12.0 for <70065@debbugs.gnu.org>; Mon, 01 Apr 2024 08:45:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711986331; x=1712591131; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=0ua8T2L8P2J4v5g0vlfxbKxl4ANe9Fpfn0OWtVKwWRM=; b=gmQq0skO0cVREbgihGG9OIm871t4hd55nTaBFfQ2uH5sd4NLuKKOB77/vyhfbdkPMK MtJVy0iaXPwXu/zHeyjjTLvmQP13VOtzenCRYkz207iqLb1FcMWoKPnvlaLCxZjzyIk+ Pntco8Y7LCqpNY7VROvc+Rmqgoss4g6a+lj8vPU2tkdOq9Mhq2X3uPnLiArqS5V/o6qW HNbXDsXXzTmm7AFTtY0uyI76Hw4vSogTBvtv6Qg9V961sGgud4l0xcwlDh/CT0mH2YEP aIqVQ+x8JFL71Durn0YBhPJWXlLJWpEreLS3gJeL35O+rCSaswHQYbhVwiJMfn1+kYSs w1yQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711986331; x=1712591131; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=0ua8T2L8P2J4v5g0vlfxbKxl4ANe9Fpfn0OWtVKwWRM=; b=QSiaI94W8iKuUPSUnYP6H/U8hwlNppGCWa3l3NjP4GhB/BGDLhSQq/dW/aM1XGDaXz QcVzGnrmXmnrFdBqcBDtGsQ8P+e1ZxHI7iclPDsZHWjenfu2EfMZzF95lt0uHG8P0Vh4 gI+SElX4h7K44pQH0GW7bvWizgl2xNjs7tnlgPfYTERF84vMRiTFjLBKUGaXfbJiHuCA GUK1+kDDrIQN21ZR+Qntngo7SAZcj0LFIxloWP2bd0VQSVzgfHAua7TEBrCnivugclsM u23pY/6TzkN1GtPIzJCPCet6unmnurvon7X3gzZubFGvTFpeTSDF7uPUp8t5D7hgX1fS eVFw== X-Forwarded-Encrypted: i=1; AJvYcCXWGBM5QVxFHc2n9EkM5p+N7Zjx1bHhqn1d2+hMYVv3QQbEYyMTqA2BiRXDWh0zXajzbsy8vAYpFvZhV0TrOODf6H97n4c= X-Gm-Message-State: AOJu0YwRh55zfhzh6RsEF7W3VDtXA5bSqax/n3TNoGhI9EbYry7tW4ao K1JF1aYRcZckDShYS/CgWHBcJVt+sj1QqMkoyWqybjeO24dRBAlb X-Google-Smtp-Source: AGHT+IGlYyshxVv3ryu+MUjVxUETBL09653q8WOAo+DXh5bAiVO9P8jmUeHenVczJ04cRSf/Xax4GQ== X-Received: by 2002:a17:906:174c:b0:a45:ad29:725c with SMTP id d12-20020a170906174c00b00a45ad29725cmr6075269eje.62.1711986330867; Mon, 01 Apr 2024 08:45:30 -0700 (PDT) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id l9-20020a1709060cc900b00a4e24d259edsm5082594ejh.167.2024.04.01.08.45.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Apr 2024 08:45:30 -0700 (PDT) Message-ID: Subject: Re: [PATCH v2 7/8] gnu: chez-scheme: Update and simplify machine-type handling. From: Liliana Marie Prikler To: Philip McGrath , 70065@debbugs.gnu.org Date: Mon, 01 Apr 2024 17:45:29 +0200 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.48.4 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Andrew Tropin , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) QW0gTW9udGFnLCBkZW0gMDEuMDQuMjAyNCB1bSAwMjo1MSAtMDQwMCBzY2hyaWViIFBoaWxpcCBN Y0dyYXRoOgo+IFNpbmNlIENoZXogU2NoZW1lIDEwLjAuMCBzdXBwb3J0cyBhbGwgb2YgdGhlIGJh Y2tlbmRzIGFkZGVkIGluCj4gUmFja2V0J3MKPiBicmFuY2gsIHRoZSBjb21wbGV4aXR5IG9mICcl Y2hlei1mZWF0dXJlcy10YWJsZScgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KPiBJZGVhbGx5LCBldmVu IG1vcmUgb2YgdGhpcyBsb2dpYyBjb3VsZCBiZSBtYWludGFpbmVkIHVwc3RyZWFtLCBidXQKPiB0 aGlzCj4gY2hhbmdlIHdpbGwgc2ltcGxpZnkgbWFpbnRlbmFuY2UgaW4gdGhlIG1lYW4gdGltZS4K PiAKPiAqIGdudS9wYWNrYWdlcy9jaGV6LnNjbSAodGFyZ2V0LWNoZXotYXJjaCk6IFJlY29nbml6 ZSBsb29uZ2FyY2g2NC4KPiAoY2hlei11cHN0ZWFtLWZlYXR1cmVzLWZvci1zeXN0ZW0pOiBSZW1v dmUgZnVuY3Rpb24uCj4gKCVjaGV6LWZlYXR1cmVzLXRhYmxlKTogUmVwbGFjZSB3aXRoIC4uLgo+ IChkZWZpbmUtbWFjaGluZS10eXBlcywgJW1hY2hpbmUtdHlwZXMpOiAuLi4gdGhpcyBuZXcgbWFj cm8gYW5kCj4gdmFyaWFibGUsCj4gdXNpbmcgdGhlIGxpc3QgY29waWVkIGRpcmVjdGx5IGZyb20g dGhlIENoZXogU2NoZW1lIHNvdXJjZSBjb2RlLgo+IChuaXgtc3lzdGVtLT5wYmFyY2gtbWFjaGlu ZS10eXBlKTogVXBkYXRlIGRvY3N0cmluZywgc2luY2UgcGJhcmNoCj4gbWFjaGluZSB0eXBlcyBh cmUgc3VwcG9ydGVkIHVwc3RyZWFtIGFzIG9mIENoZXogU2NoZW1lIDEwLjAuMC4KPiAocmFja2V0 LWNzLW5hdGl2ZS1zdXBwb3J0ZWQtc3lzdGVtPyk6IFJlcGxhY2Ugd2l0aCAuLi4KPiAobml4LXN5 c3RlbS0+bmF0aXZlLWNoZXotbWFjaGluZS10eXBlKTogLi4uIHRoaXMgbmV3IGZ1bmN0aW9uLAo+ IGltcGxlbWVudGVkIHVzaW5nICclbWFjaGluZS10eXBlcycuCj4gKGNoZXotc2NoZW1lLWZvci1y YWNrZXQpOiBVcGRhdGUgYWNjb3JkaW5nbHkuCj4gKGNoZXotc2NoZW1lLWZvci1yYWNrZXQtYm9v dHN0cmFwLWJvb3RmaWxlcyk6IExpa2V3aXNlLgo+ICogZ251L3BhY2thZ2VzL3JhY2tldC5zY20g KHJhY2tldC12bS1jcyk6IExpa2V3aXNlLgo+IAo+IENoYW5nZS1JZDogSTQ2ZWZlYmFmNDhjY2Uz ODgwNzVhYjQ4NzNjMTZhNmY1Zjk2OTJiYjcKPiAtLS0KPiDCoGdudS9wYWNrYWdlcy9jaGV6LnNj bcKgwqAgfCAxOTcgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLQo+ IMKgZ251L3BhY2thZ2VzL3JhY2tldC5zY20gfMKgwqAgNCArLQo+IMKgMiBmaWxlcyBjaGFuZ2Vk LCA4MSBpbnNlcnRpb25zKCspLCAxMjAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2du dS9wYWNrYWdlcy9jaGV6LnNjbSBiL2dudS9wYWNrYWdlcy9jaGV6LnNjbQo+IGluZGV4IDgwN2Ex NDNmNjEuLjRkM2Y3OWQ5YTcgMTAwNjQ0Cj4gLS0tIGEvZ251L3BhY2thZ2VzL2NoZXouc2NtCj4g KysrIGIvZ251L3BhY2thZ2VzL2NoZXouc2NtCj4gQEAgLTUwLDcgKzUwLDcgQEAgKGRlZmluZS1t b2R1bGUgKGdudSBwYWNrYWdlcyBjaGV6KQo+IMKgwqAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmkt MSkKPiDCoMKgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTI2KQo+IMKgwqAgIzpleHBvcnQgKGNo ZXotc2NoZW1lLWZvci1zeXN0ZW0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByYWNrZXQtY3Mt bmF0aXZlLXN1cHBvcnRlZC1zeXN0ZW0/Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbml4LXN5 c3RlbS0+bmF0aXZlLWNoZXotbWFjaGluZS10eXBlCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IG5peC1zeXN0ZW0tPnBiYXJjaC1tYWNoaW5lLXR5cGUKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgdW5wYWNrLW5hbm9wYXNzKSkKPiDCoAo+IEBAIC05Myw2ICs5Myw4IEBAIChkZWZpbmUqICh0 YXJnZXQtY2hlei1hcmNoICM6b3B0aW9uYWwgKHN5c3RlbQo+IMKgwqDCoMKgICJwcGMzMiIpCj4g wqDCoMKgICgodGFyZ2V0LXJpc2N2NjQ/IHN5c3RlbSkKPiDCoMKgwqDCoCAicnY2NCIpCj4gK8Kg wqAgKChzdHJpbmctcHJlZml4PyAibG9vbmdhcmNoNjQtIiBzeXN0ZW0pCj4gK8KgwqDCoCAibGE2 NCIpCj4gwqDCoMKgIChlbHNlCj4gwqDCoMKgwqAgI2YpKSkKPiDCoAo+IEBAIC0xMjcsMTExICsx MjksNjcgQEAgKGRlZmluZSogKHRhcmdldC1jaGV6LW9zICM6b3B0aW9uYWwgKHN5c3RlbQo+IChv ciAoJWN1cnJlbnQtdGFyZ2V0LXN5c3RlbSkKPiDCoMKgwqAgKGVsc2UKPiDCoMKgwqDCoCAjZikp KQo+IMKgCj4gLShkZWZpbmUgJWNoZXotZmVhdHVyZXMtdGFibGUKPiAtwqAgOzsgQW4gYWxpc3Qg b2YgYWxpc3RzIG1hcHBpbmc6Cj4gLcKgIDs7wqDCoCBvcyAtPiBhcmNoIC0+IChvci9jICNmIChs aXN0b2Ygc3ltYm9sPykpCj4gLcKgIDs7IHdoZXJlOgo+IC3CoCA7O8KgIC0gYG9zYCBpcyBhIHN0 cmluZyBmb3IgdGhlIE9TIHBhcnQgb2YgYSBDaGV6IFNjaGVtZSBtYWNoaW5lCj4gdHlwZTsgYW5k Cj4gLcKgIDs7wqAgLSBgYXJjaGAgaXMgYSBzdHJpbmcgZm9yIHRoZSBhcmNoaXRlY3R1cmUgcGFy dCBvZiBhIENoZXoKPiBtYWNoaW5lIHR5cGUuCj4gLcKgIDs7Cj4gLcKgIDs7IFRoZSBhYnNlbmNl IG9mIGFuIGVudHJ5IGZvciBhIGdpdmVuIGFyY2gtLW9zIHBhaXIgbWVhbnMgdGhhdAo+IG5laXRo ZXIKPiAtwqAgOzsgdXBzdHJlYW0gQ2hleiBTY2hlbWUgbm9yIHRoZSBSYWNrZXQgdmFyaWFudCBj YW4gZ2VuZXJhdGUgbmF0aXZlCj4gY29kZSBmb3IKPiAtwqAgOzsgdGhhdCBzeXN0ZW0uwqAgKFRo ZSBSYWNrZXQgdmFyaWFudCBjYW4gc3RpbGwgcHJvdmlkZSBzdXBwb3J0IHZpYQo+IGl0cwo+IC3C oCA7OyBgYHBvcnRhYmxlIGJ5dGVjb2RlJycgYmFja2VuZHMgYW5kIG9wdGlvbmFsIGNvbXBpbGF0 aW9uIHRvIEMuKcKgCj4gQSB2YWx1ZQo+IC3CoCA7OyBvZiBgI2ZgIG1lYW5zIHRoYXQgdXBzdHJl YW0gQ2hleiBTY2hlbWUgZG9lcyBub3Qgc3VwcG9ydCB0aGUKPiBhcmNoLS1vcwo+IC3CoCA7OyBw YWlyIGF0IGFsbCwgYnV0IHRoZSBSYWNrZXQgdmFyaWFudCBkb2VzLsKgIEEgbGlzdCBoYXMgdGhl IHNhbWUKPiBtZWFuaW5nIGFzCj4gLcKgIDs7IGEgcmVzdWx0IGZyb20gYGNoZXotdXBzdHJlYW0t ZmVhdHVyZXMtZm9yLXN5c3RlbWAuCj4gLcKgIDs7Cj4gLcKgIDs7IFRoZSBhcmNoLS1vcyBwYWly cyBtYXJrZWQgImNvbW1lbnRlZCBvdXQiIGhhdmUgYmVlbiBjb21tZW50ZWQKPiBvdXQgaW4gdGhl Cj4gLcKgIDs7IFNUZVggc291cmNlIGZvciB0aGUgdXBzdHJlYW0gcmVsZWFzZSBub3RlcyBzaW5j ZSB0aGUgaW5pdGlhbAo+IHJlbGVhc2UgYXMKPiAtwqAgOzsgZnJlZSBzb2Z0d2FyZSwgYnV0IHRo ZXkgYXJlIHJlcG9ydGVkIHRvIHdvcmsgYW5kL29yIGhhdmUgYmVlbgo+IGRlc2NyaWJlZAo+IC3C oCA7OyBhcyBzdXBwb3J0ZWQgYnkgdXBzdHJlYW0gbWFpbnRhaW5lcnMuCj4gLcKgIDs7Cj4gLcKg IDs7IEZvciB0aGlzIG92ZXJhbGwgYXBwcm9hY2ggdG8gbWFrZSBzZW5zZSwgd2UgYXNzdW1lIHRo YXQKPiBSYWNrZXQncyB2YXJpYW50Cj4gLcKgIDs7IG9mIENoZXogU2NoZW1lIGNhbiBnZW5lcmF0 ZSBuYXRpdmUgY29kZSBmb3IgYSBzdXBlcnNldCBvZiB0aGUKPiBwbGF0Zm9ybXMKPiAtwqAgOzsg c3VwcG9ydGVkIHVwc3RyZWFtLCBzdXBwb3J0cyB0aHJlYWRzIG9uIGFsbCBwbGF0Zm9ybXMgaXQK PiBzdXBwb3J0cyBhdCBhbGwKPiAtwqAgOzsgKGJlY2F1c2UgdGhleSBhcmUgbmVlZGVkIGZvciBS YWNrZXQpLCBhbmQgZG9lc24ndCBuZWVkCj4gYm9vdHN0cmFwCj4gLcKgIDs7IGJvb3RmaWxlcy7C oCBUaG9zZSBhc3N1bXB0aW9ucyBoYXZlIGhlbGQgZm9yIHNldmVyYWwgeWVhcnMuCj4gLcKgICco OzsgTGludXgKPiAtwqDCoMKgICgibGUiCj4gLcKgwqDCoMKgICgiaTMiIHRocmVhZHMgYm9vdHN0 cmFwLWJvb3RmaWxlcykKPiAtwqDCoMKgwqAgKCJhNiIgdGhyZWFkcyBib290c3RyYXAtYm9vdGZp bGVzKQo+IC3CoMKgwqDCoCAoImFybTMyIiBib290c3RyYXAtYm9vdGZpbGVzKQo+IC3CoMKgwqDC oCAoImFybTY0IiAuICNmKQo+IC3CoMKgwqDCoCAoInJ2NjQiIC4gI2YpCj4gLcKgwqDCoMKgICgi cHBjMzIiIHRocmVhZHMpKQo+IC3CoMKgwqAgOzsgSHVyZAo+IC3CoMKgwqAgKCJnbnUiCj4gLcKg wqDCoMKgICgiaTMiIC4gI2YpKQo+IC3CoMKgwqAgOzsgRnJlZUJTRAo+IC3CoMKgwqAgKCJmYiIK PiAtwqDCoMKgwqAgKCJpMyIgdGhyZWFkcykgOzsgY29tbWVudGVkIG91dAo+IC3CoMKgwqDCoCAo ImE2IiB0aHJlYWRzKSA7OyBjb21tZW50ZWQgb3V0Cj4gLcKgwqDCoMKgICgiYXJtMzIiIC4gI2Yp Cj4gLcKgwqDCoMKgICgiYXJtNjQiIC4gI2YpCj4gLcKgwqDCoMKgICgicHBjMzIiIC4gI2YpKQo+ IC3CoMKgwqAgOzsgT3BlbkJTRAo+IC3CoMKgwqAgKCJvYiIKPiAtwqDCoMKgwqAgKCJpMyIgdGhy ZWFkcykgOzsgY29tbWVudGVkIG91dAo+IC3CoMKgwqDCoCAoImE2IiB0aHJlYWRzKSA7OyBjb21t ZW50ZWQgb3V0Cj4gLcKgwqDCoMKgICgiYXJtMzIiIC4gI2YpCj4gLcKgwqDCoMKgICgiYXJtNjQi IC4gI2YpCj4gLcKgwqDCoMKgICgicHBjMzIiIC4gI2YpKQo+IC3CoMKgwqAgOzsgTmV0QlNECj4g LcKgwqDCoCAoIm5iIgo+IC3CoMKgwqDCoCAoImkzIiB0aHJlYWRzKSA7OyBjb21tZW50ZWQgb3V0 Cj4gLcKgwqDCoMKgICgiYTYiIHRocmVhZHMpIDs7IGNvbW1lbnRlZCBvdXQKPiAtwqDCoMKgwqAg KCJhcm0zMiIgLiAjZikKPiAtwqDCoMKgwqAgKCJhcm02NCIgLiAjZikKPiAtwqDCoMKgwqAgKCJw cGMzMiIgLiAjZikpCj4gLcKgwqDCoCA7OyBPcGVuU29sYXJpcyAvIE9wZW5JbmRpYW5hIC8gSWxs dW1vcwo+IC3CoMKgwqAgKCJzMiIKPiAtwqDCoMKgwqAgKCJpMyIgdGhyZWFkcykgOzsgY29tbWVu dGVkIG91dAo+IC3CoMKgwqDCoCAoImE2IiB0aHJlYWRzKSkgOzsgY29tbWVudGVkIG91dAo+IC3C oMKgwqAgOzsgUU5YCj4gLcKgwqDCoCAoInFueCIKPiAtwqDCoMKgwqAgKCJpMyIgLiAjZikpCj4g LcKgwqDCoCA7OyBXaW5kb3dzCj4gLcKgwqDCoCAoIm50Igo+IC3CoMKgwqDCoCAoImkzIiB0aHJl YWRzIGJvb3RzdHJhcC1ib290ZmlsZXMpCj4gLcKgwqDCoMKgICgiYTYiIHRocmVhZHMgYm9vdHN0 cmFwLWJvb3RmaWxlcykKPiAtwqDCoMKgwqAgOzsgXiB0aHJlYWRzICJleHBlcmllbWVudGFsIiwg YnV0IHJlcG9ydGVkbHkgZmluZQo+IC3CoMKgwqDCoCAoImFybTY0IiAuICNmKSkKPiAtwqDCoMKg IDs7IERhcndpbgo+IC3CoMKgwqAgKCJvc3giCj4gLcKgwqDCoMKgICgiaTMiIHRocmVhZHMgYm9v dHN0cmFwLWJvb3RmaWxlcykKPiAtwqDCoMKgwqAgKCJhNiIgdGhyZWFkcyBib290c3RyYXAtYm9v dGZpbGVzKQo+IC3CoMKgwqDCoCAoImFybTY0IiAuICNmKQo+IC3CoMKgwqDCoCAoInBwYzMyIiAu ICNmKSkpKQo+IC0KPiAtKGRlZmluZSogKGNoZXotdXBzdHJlYW0tZmVhdHVyZXMtZm9yLXN5c3Rl bSAjOm9wdGlvbmFsCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChzeXN0ZW0KPiAt wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAob3IgKCVjdXJyZW50LXRhcmdldC0KPiBz eXN0ZW0pCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoJWN1cnJl bnQtCj4gc3lzdGVtKSkpKQo+IC3CoCAiUmV0dXJuIGEgbGlzdCBvZiBzeW1ib2xzIG5hbWluZyBm ZWF0dXJlcyBzdXBwb3J0ZWQgYnkgdXBzdHJlYW0KPiBDaGV6IFNjaGVtZQo+IC1mb3IgdGhlIE5p eCBzeXN0ZW0gaWRlbnRpZmllciBTWVNURU0sIG9yIEBjb2RleyNmfSBpZiB1cHN0cmVhbSBDaGV6 Cj4gU2NoZW1lCj4gLWRvZXMgbm90IHN1cHBvcnQgU1lTVEVNIGF0IGFsbC4KPiAtCj4gLUlmIG5h dGl2ZSB0aHJlYWRzIGFyZSBzdXBwb3J0ZWQsIHRoZSByZXR1cm5lZCBsaXN0IHdpbGwgaW5jbHVk ZQo+IC1AY29kZXsndGhyZWFkc30uwqAgSWYgYm9vdHN0cmFwIGJvb3RmaWxlcyBmb3IgU1lTVEVN IGFyZSBkaXN0cmlidXRlZAo+IGluIHRoZQo+IC11cHN0cmVhbSBDaGV6IFNjaGVtZSByZXBvc2l0 b3J5LCB0aGUgcmV0dXJuZWQgbGlzdCB3aWxsIGluY2x1ZGUKPiAtQGNvZGV7J2Jvb3RzdHJhcC1i b290ZmlsZXN9LsKgIE90aGVyIGZlYXR1cmUgc3ltYm9scyBtYXkgYmUgYWRkZWQgaW4KPiB0aGUK PiAtZnV0dXJlLiIKPiAtwqAgKGxldCAoKGNoZXotYXJjaCAodGFyZ2V0LWNoZXotYXJjaCBzeXN0 ZW0pKQo+IC3CoMKgwqDCoMKgwqDCoCAoY2hlei1vcyAodGFyZ2V0LWNoZXotb3Mgc3lzdGVtKSkp Cj4gLcKgwqDCoCAoYW5kPT4gKGFzc29jLXJlZiAlY2hlei1mZWF0dXJlcy10YWJsZSBjaGV6LW9z KQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoCAoY3V0IGFzc29jLXJlZiA8PiBjaGV6LWFyY2gpKSkp Cj4gKyhkZWZpbmUtc3ludGF4IGRlZmluZS1tYWNoaW5lLXR5cGVzCj4gK8KgIChsYW1iZGEgKHN0 eCkKPiArwqDCoMKgIChzeW50YXgtY2FzZSBzdHggKGFueSkKPiArwqDCoMKgwqDCoCAoKF8gYW55 IGlkMCBpZCAuLi4pCj4gK8KgwqDCoMKgwqDCoCAjYChkZWZpbmUgIywoZGF0dW0tPnN5bnRheCAj J2lkMCAnJW1hY2hpbmUtdHlwZXMpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgICcoaWQwIGlkIC4u LikpKSkpKQpUaGUgZGF0dW0tPnN5bnRheCBjYWxsIGhlcmUgbG9va3Mgd2VpcmQuCj4gKzs7IFRo ZSBmb2xsb3dpbmcgaXMgY29waWVkIGZyb20gcy9jbWFjcm9zLnNzLCBsaW5lIDM2LCBpbiB0aGUg Q2hlego+IHNvdXJjZQo+ICsoZGVmaW5lLW1hY2hpbmUtdHlwZXMKPiArwqAgYW55Cj4gK8KgIHBi wqDCoMKgwqDCoMKgwqAgdHBiCllvdSBzaG91bGQgbWF5YmUgY29tbWVudCA7OyB1bnRocmVhZGVk ICAgIHRocmVhZGVkCj4gK8KgIHBiMzJswqDCoMKgwqAgdHBiMzJsCj4gK8KgIHBiMzJiwqDCoMKg wqAgdHBiMzJiCj4gK8KgIHBiNjRswqDCoMKgwqAgdHBiNjRsCj4gK8KgIHBiNjRiwqDCoMKgwqAg dHBiNjRiCj4gK8KgIGkzbnTCoMKgwqDCoMKgIHRpM250Cj4gK8KgIGkzb3N4wqDCoMKgwqAgdGkz b3N4Cj4gK8KgIGkzbGXCoMKgwqDCoMKgIHRpM2xlCj4gK8KgIGkzZmLCoMKgwqDCoMKgIHRpM2Zi Cj4gK8KgIGkzb2LCoMKgwqDCoMKgIHRpM29iCj4gK8KgIGkzbmLCoMKgwqDCoMKgIHRpM25iCj4g K8KgIGkzczLCoMKgwqDCoMKgIHRpM3MyCj4gK8KgIGkzcW54wqDCoMKgwqAgdGkzcW54Cj4gK8Kg IGkzZ251wqDCoMKgwqAgdGkzZ251Cj4gK8KgIGE2bnTCoMKgwqDCoMKgIHRhNm50Cj4gK8KgIGE2 b3N4wqDCoMKgwqAgdGE2b3N4Cj4gK8KgIGE2bGXCoMKgwqDCoMKgIHRhNmxlCj4gK8KgIGE2ZmLC oMKgwqDCoMKgIHRhNmZiCj4gK8KgIGE2b2LCoMKgwqDCoMKgIHRhNm9iCj4gK8KgIGE2bmLCoMKg wqDCoMKgIHRhNm5iCj4gK8KgIGE2czLCoMKgwqDCoMKgIHRhNnMyCj4gK8KgIHBwYzMyb3N4wqAg dHBwYzMyb3N4Cj4gK8KgIHBwYzMybGXCoMKgIHRwcGMzMmxlCj4gK8KgIHBwYzMyZmLCoMKgIHRw cGMzMmZiCj4gK8KgIHBwYzMyb2LCoMKgIHRwcGMzMm9iCj4gK8KgIHBwYzMybmLCoMKgIHRwcGMz Mm5iCj4gK8KgIGFybTMybGXCoMKgIHRhcm0zMmxlCj4gK8KgIGFybTMyZmLCoMKgIHRhcm0zMmZi Cj4gK8KgIGFybTMyb2LCoMKgIHRhcm0zMm9iCj4gK8KgIGFybTMybmLCoMKgIHRhcm0zMm5iCj4g K8KgIGFybTY0bnTCoMKgIHRhcm02NG50Cj4gK8KgIGFybTY0b3N4wqAgdGFybTY0b3N4Cj4gK8Kg IGFybTY0bGXCoMKgIHRhcm02NGxlCj4gK8KgIGFybTY0ZmLCoMKgIHRhcm02NGZiCj4gK8KgIGFy bTY0b2LCoMKgIHRhcm02NG9iCj4gK8KgIGFybTY0bmLCoMKgIHRhcm02NG5iCj4gK8KgIHJ2NjRs ZcKgwqDCoCB0cnY2NGxlCj4gK8KgIHJ2NjRmYsKgwqDCoCB0cnY2NGZiCj4gK8KgIHJ2NjRvYsKg wqDCoCB0cnY2NG9iCj4gK8KgIHJ2NjRuYsKgwqDCoCB0cnY2NG5iCj4gK8KgIGxhNjRsZcKgwqDC oCB0bGE2NGxlCj4gKykKPiDCoAo+IMKgKGRlZmluZSogKG5peC1zeXN0ZW0tPnBiYXJjaC1tYWNo aW5lLXR5cGUgIzpvcHRpb25hbAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3lzdGVt Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG9yICglY3VycmVudC10YXJnZXQtCj4g c3lzdGVtKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKCVjdXJyZW50 LXN5c3RlbSkpKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmtleSAodGhyZWFkcz8g I3QpKQo+IC3CoCAiUmV0dXJuIGEgc3RyaW5nIG5hbWluZyB0aGUgcHNldWRv4oCTbWFjaGluZSB0 eXBlIHVzZWQgYnkgUmFja2V0J3MKPiB2YXJpYW50IG9mCj4gLUNoZXogU2NoZW1lIHRvIHJlcHJl c2VudCB0aGUgYXBwcm9wcmlhdGUgYGBwYmFyY2gnJyBiYWNrZW5kIGZvcgo+IFNZU1RFTTogdGhh dAo+IC1pcywgdGhlIGBgcG9ydGFibGUgYnl0ZWNvZGUnJyBiYWNrZW5kIHNwZWNpYWxpemVkIGZv ciBTWVNURU0ncyB3b3JkCj4gc2l6ZSBhbmQKPiAtZW5kaWFubmVzcy7CoCBUaGUgcmVzdWx0IHdp bGwgbmFtZSB0aGUgdGhyZWFkZWQgbWFjaGluZSB0eXBlIHVubGVzcwo+IFRIUkVBRFM/IGlzCj4g LXByb3ZpZGVkIGFuZCBpcyAjZi4iCj4gK8KgICJSZXR1cm4gYSBzdHJpbmcgbmFtaW5nIHRoZSBD aGV6IFNjaGVtZSBtYWNoaW5lIHR5cGUgb2YgdGhlCj4gYXBwcm9wcmlhdGUKPiArYGBwYmFyY2gn JyBiYWNrZW5kIGZvciBTWVNURU06IHRoYXQgaXMsIHRoZSBgYHBvcnRhYmxlIGJ5dGVjb2RlJycK PiBiYWNrZW5kCj4gK3NwZWNpYWxpemVkIGZvciBTWVNURU0ncyB3b3JkIHNpemUgYW5kIGVuZGlh bm5lc3MuwqAgVGhlIHJlc3VsdCB3aWxsCj4gbmFtZSB0aGUKPiArdGhyZWFkZWQgbWFjaGluZSB0 eXBlIHVubGVzcyBUSFJFQURTPyBpcyBwcm92aWRlZCBhcyAjZi4iCj4gwqDCoCAoc3RyaW5nLWFw cGVuZCAoaWYgdGhyZWFkcz8KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgInQiCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICIi KQo+IEBAIC0yNDMsMjAgKzIwMSwyMyBAQCAoZGVmaW5lKiAobml4LXN5c3RlbS0+cGJhcmNoLW1h Y2hpbmUtdHlwZQo+ICM6b3B0aW9uYWwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgImwiCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICJiIikpKQo+IMKgCj4gLShkZWZpbmUqIChyYWNrZXQtY3MtbmF0aXZlLXN1cHBvcnRlZC1z eXN0ZW0/ICM6b3B0aW9uYWwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3lz dGVtCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAob3IgKCVjdXJyZW50LXRh cmdldC0KPiBzeXN0ZW0pCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICglY3VycmVudC0KPiBzeXN0ZW0pKSkpCj4gLcKgICJDYW4gUmFja2V0J3MgdmFyaWFudCBv ZiBDaGV6IFNjaGVtZSBnZW5lcmF0ZSBuYXRpdmUgY29kZSBmb3IKPiBTWVNURU0/wqAgSWYKPiAt c28sIHJldHVybiB0aGUgYXBwbGljYWJsZSBtYWNoaW5lIHR5cGUgYXMgYSBzdHJpbmcuwqAgT3Ro ZXJ3aXNlLCB3aGVuCj4gU1lTVEVNCj4gLWNhbiB1c2Ugb25seSB0aGUgYGBwb3J0YWJsZSBieXRl Y29kZScnIGJhY2tlbmRzLCByZXR1cm4gI2YuIgo+IC3CoCAobGV0ICgoY2hlei1hcmNoICh0YXJn ZXQtY2hlei1hcmNoIHN5c3RlbSkpCj4gLcKgwqDCoMKgwqDCoMKgIChjaGV6LW9zICh0YXJnZXQt Y2hlei1vcyBzeXN0ZW0pKSkKPiAtwqDCoMKgIChhbmQgKGFuZD0+IChhc3NvYy1yZWYgJWNoZXot ZmVhdHVyZXMtdGFibGUgY2hlei1vcykKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IDs7IE5PVCBhc3NvYy1yZWY6IHN1cHBvcnRlZCBldmVuIGlmIGNkciBpcyAjZgo+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGN1dCBhc3NvYyBjaGV6LWFyY2ggPD4pKQo+IC3CoMKg wqDCoMKgwqDCoMKgIChzdHJpbmctYXBwZW5kICJ0IiBjaGV6LWFyY2ggY2hlei1vcykpKSkKPiAt Cj4gKyhkZWZpbmUqIChuaXgtc3lzdGVtLT5uYXRpdmUtY2hlei1tYWNoaW5lLXR5cGUgIzpvcHRp b25hbAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3lzdGVtCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG9yICglY3VycmVudC0KPiB0YXJn ZXQtc3lzdGVtKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKCVjdXJyZW50LQo+IHN5c3RlbSkpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAjOmtleSAodGhyZWFkcz8gI3QpKQo+ICvCoCAiUmV0dXJuIGEgc3RyaW5nIG5hbWlu ZyB0aGUgQ2hleiBTY2hlbWUgbWFjaGluZSB0eXBlIG9mIHRoZQo+IG5hdGl2ZS1jb2RlCj4gK2Jh Y2tlbmQgZm9yIFNZU1RFTSwgaWYgc3VjaCBhIG5hdGl2ZS1jb2RlIGJhY2tlbmQgZXhpc3RzLsKg Cj4gT3RoZXJ3aXNlLCB3aGVuCj4gK1NZU1RFTSBjYW4gdXNlIG9ubHkgdGhlIGBgcG9ydGFibGUg Ynl0ZWNvZGUnJyBiYWNrZW5kcywgcmV0dXJuICNmLsKgCj4gVGhlIHJlc3VsdAo+ICt3aWxsIG5h bWUgdGhlIHRocmVhZGVkIG1hY2hpbmUgdHlwZSB1bmxlc3MgVEhSRUFEUz8gaXMgcHJvdmlkZWQg YXMKPiAjZi4iCj4gK8KgIChsZXQqICgoY2hlei1hcmNoICh0YXJnZXQtY2hlei1hcmNoIHN5c3Rl bSkpCj4gK8KgwqDCoMKgwqDCoMKgwqAgKGNoZXotb3MgKHRhcmdldC1jaGV6LW9zIHN5c3RlbSkp Cj4gK8KgwqDCoMKgwqDCoMKgwqAgKG1hY2hpbmUKPiArwqDCoMKgwqDCoMKgwqDCoMKgIChhbmQg Y2hlei1hcmNoIGNoZXotb3MKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3RyaW5n LWFwcGVuZCAoaWYgdGhyZWFkcz8gInQiICIiKSBjaGV6LWFyY2ggY2hlei0KPiBvcykpKSkKPiAr wqDCoMKgIChhbmQgbWFjaGluZQo+ICvCoMKgwqDCoMKgwqDCoMKgIChtZW1xIChzdHJpbmctPnN5 bWJvbCBtYWNoaW5lKSAlbWFjaGluZS10eXBlcykKPiArwqDCoMKgwqDCoMKgwqDCoCBtYWNoaW5l KSkpCj4gwqA7Owo+IMKgOzsgQ2hleiBTY2hlbWU6Cj4gwqA7Owo+IEBAIC0zMDAsNyArMjYxLDcg QEAgKGRlZmluZS1wdWJsaWMgY2hlei1zY2hlbWUtZm9yLXJhY2tldAo+IMKgwqDCoMKgICh2ZXJz aW9uICI5LjkuOS1wcmUtcmVsZWFzZS4yMyIpCj4gwqDCoMKgwqAgKHNvdXJjZSAjZikKPiDCoMKg wqDCoCAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0pCj4gLcKgwqDCoCAoaW5wdXRzIGAo LEAoaWYgKHJhY2tldC1jcy1uYXRpdmUtc3VwcG9ydGVkLXN5c3RlbT8pCj4gK8KgwqDCoCAoaW5w dXRzIGAoLEAoaWYgKG5peC1zeXN0ZW0tPm5hdGl2ZS1jaGV6LW1hY2hpbmUtdHlwZSkKPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICcoKQo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGxpc3QgbGliZmZpKSkKPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICxjaGV6LXNjaGVtZS1mb3ItcmFja2V0LWJvb3RzdHJhcC1ib290Zmls ZXMKPiBAQCAtMzUzLDEwICszMTQsMTAgQEAgKGRlZmluZS1wdWJsaWMgY2hlei1zY2hlbWUtZm9y LXJhY2tldAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHNlYXJjaC1pbnB1 dC1kaXJlY3RvcnkgJWJ1aWxkLWlucHV0cwo+ICIvaW5jbHVkZS9YMTEiKSkKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAnKCkKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAnKCItLWRpc2FibGUteDExIikpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoCAjJChzdHJpbmct YXBwZW5kICItbT0iIChvciAocmFja2V0LWNzLW5hdGl2ZS1zdXBwb3J0ZWQtCj4gc3lzdGVtPykK PiArwqDCoMKgwqDCoMKgwqDCoMKgICMkKHN0cmluZy1hcHBlbmQgIi1tPSIgKG9yIChuaXgtc3lz dGVtLT5uYXRpdmUtY2hlei0KPiBtYWNoaW5lLXR5cGUpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG5p eC1zeXN0ZW0tPnBiYXJjaC1tYWNoaW5lLQo+IHR5cGUpKSkKPiDCoMKgwqDCoMKgwqDCoMKgwqDC oCA7OyBeIGNvdWxkIHNraXAgLW09IGZvciBub24tY3Jvc3Mgbm9uLXBiYXJjaCBidWlsZHMKPiAt wqDCoMKgwqDCoMKgwqDCoMKgICMkQChpZiAocmFja2V0LWNzLW5hdGl2ZS1zdXBwb3J0ZWQtc3lz dGVtPykKPiArwqDCoMKgwqDCoMKgwqDCoMKgICMkQChpZiAobml4LXN5c3RlbS0+bmF0aXZlLWNo ZXotbWFjaGluZS10eXBlKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgI34o KQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOzsgbm90IGluZmVycmVkIG9u IG5vbi1uYXRpdmUgcGxhdGZvcm1zOiBzZWUKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIDs7IGh0dHBzOi8vcmFja2V0LmRpc2NvdXJzZS5ncm91cC90Lzk1MC85Cj4gQEAgLTU4 OCw3ICs1NDksNyBAQCAoZGVmaW5lLXB1YmxpYyBjaGV6LXNjaGVtZS1mb3ItcmFja2V0LWJvb3Rz dHJhcC0KPiBib290ZmlsZXMKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIChpbnZva2UgIi4vY29uZmlndXJlIgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICItLWZvcmNlIiA7IGRvbid0IGNvbXBsYWluIGFi b3V0IG1pc3NpbmcKPiBib290ZmlsZXMKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjJChzdHJpbmctYXBwZW5kCj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiLW09IiAo b3IgKHJhY2tldC1jcy1uYXRpdmUtCj4gc3VwcG9ydGVkLXN5c3RlbT8pCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiLW09IiAo b3IgKG5peC1zeXN0ZW0tPm5hdGl2ZS1jaGV6LQo+IG1hY2hpbmUtdHlwZSkKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChuaXgtc3lzdGVtLT5wYmFyY2gtCj4gbWFjaGluZS10eXBlKSkpCj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg IlpVTz16dW8iCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgOzsgaWdub3JlIHN1Ym1vZHVsZXM6Cj4gZGlmZiAtLWdpdCBhL2dudS9wYWNr YWdlcy9yYWNrZXQuc2NtIGIvZ251L3BhY2thZ2VzL3JhY2tldC5zY20KPiBpbmRleCBkMzY2Zjg5 ODQ1Li5mNTBmNmYzZWFiIDEwMDY0NAo+IC0tLSBhL2dudS9wYWNrYWdlcy9yYWNrZXQuc2NtCj4g KysrIGIvZ251L3BhY2thZ2VzL3JhY2tldC5zY20KPiBAQCAtNDMzLDcgKzQzMyw3IEBAIChkZWZp bmUtcHVibGljIHJhY2tldC12bS1jcwo+IMKgwqDCoMKgIChpbnB1dHMKPiDCoMKgwqDCoMKgIChs ZXQgKChpbnB1dHMgKG1vZGlmeS1pbnB1dHMgKHBhY2thZ2UtaW5wdXRzIHJhY2tldC12bS1jZ2Mp Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChwcmVwZW5kIHps aWIgbHo0KSkpKQo+IC3CoMKgwqDCoMKgwqAgKGlmIChyYWNrZXQtY3MtbmF0aXZlLXN1cHBvcnRl ZC1zeXN0ZW0/KQo+ICvCoMKgwqDCoMKgwqAgKGlmIChuaXgtc3lzdGVtLT5uYXRpdmUtY2hlei1t YWNoaW5lLXR5cGUpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobW9kaWZ5LWlucHV0cyBpbnB1 dHMKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZGVsZXRlICJsaWJmZmkiKSkKPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGlucHV0cykpKQo+IEBAIC00NjEsNyArNDYxLDcgQEAgKGRlZmlu ZS1wdWJsaWMgcmFja2V0LXZtLWNzCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjKyh0aGlzLXBhY2thZ2UtbmF0aXZlLWlu cHV0Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAiY2hlei1zY2hlbWUtZm9yLXJhY2tldCIpCj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAi L2Jpbi9zY2hlbWUiKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjJEAoaWYg KHJhY2tldC1jcy1uYXRpdmUtc3VwcG9ydGVkLXN5c3RlbT8pCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICMkQChpZiAobml4LXN5c3RlbS0+bmF0aXZlLWNoZXotbWFjaGluZS10 eXBlKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAj figpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICN+ KCMkKHN0cmluZy1hcHBlbmQgIi0tZW5hYmxlLW1hY2g9Igo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgKG5peC1zeXN0ZW0tPnBiYXJjaC0KPiBtYWNoaW5lLXR5cGUpKQpDaGVlcnMK From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 23:59:23 2024 Received: (at 70065) by debbugs.gnu.org; 2 Apr 2024 03:59:23 +0000 Received: from localhost ([127.0.0.1]:52019 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrVIw-0004Xx-Us for submit@debbugs.gnu.org; Mon, 01 Apr 2024 23:59:23 -0400 Received: from wout2-smtp.messagingengine.com ([64.147.123.25]:33829) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrVIs-0004Xd-BS for 70065@debbugs.gnu.org; Mon, 01 Apr 2024 23:59:21 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 9E8883200312; Mon, 1 Apr 2024 23:59:06 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Mon, 01 Apr 2024 23:59:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1712030346; x=1712116746; bh=DBAcfoNPC9 AmqNTW8SpM4lhfXoCJCgJmSeqkhxMM/tI=; b=cZ1ny0cn0XpbDB8vqHfJAoX3Rn bEORtSTuZ6H5Kue8scNEVGJu7SQnqMvnZQ/fjEPK25KJq+EyvhrftHtBmt8qwnp0 hQYoLhqJOEXD8xDjTchN/NUH3m4PIpmF6pnbx4pCcxn7ssAWpBY2VAp9ASsaeMqx 4K68jcZ24Wb4UZsbmACJOr15vtoansfQ3QatIXWAaY6omGJ+oi6jE5iv8ayBLJjC bYF2W0f/WYwwuvFV/ukAILgac37rpcdblg8vOXzSdyXNyUnEH5G8vVR6zwbsB/EL H2AwIZwUg2F56e6xoLskjHUJ5P3AalAQaYExp6/5kss6xP/RTGkLOQDztw8w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1712030346; x= 1712116746; bh=DBAcfoNPC9AmqNTW8SpM4lhfXoCJCgJmSeqkhxMM/tI=; b=x Qi23BIZQK197g3cKY0mh4HakvTvo3LMc6D3Jct+Qkgyvw9jylE7GM6B6glE7nC1u myfbCubd9hKhN4iReCdyaSjLrqC8/64nwblTiC1YgpEokFUQQ3Dq12pm4OhZXpxA QIc6XiuUI7sWaSBJC/iuS9SeqAepZ6IcITsvFU08217R82nJDy2iE5ltZmMf+nab qldl+a1l0nyVCOdIywLZv85RC++LgenDo/s8Sw5d4AdoEg179XcUOxoKYhFgTQEj oCHvU9SXCjF9/OUA0je4PQ9WooW6eNOOMhVzpFk2jGgPRT4hDtA55pQvSwubRI2j h0hOCqtm6QvwbjrNa8Svw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrudefuddgjeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddtvdejnecuhfhrohhmpefrhhhi lhhiphcuofgtifhrrghthhcuoehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtg homheqnecuggftrfgrthhtvghrnhepgfdtteekkeekieekffetfeeltdektddufeegieeu keekgfetffeuudelleeiveegnecuffhomhgrihhnpeguihhstghouhhrshgvrdhgrhhouh hpnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphhh ihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtohhm X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 1 Apr 2024 23:59:05 -0400 (EDT) Message-ID: Date: Mon, 1 Apr 2024 23:59:04 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 3/8] gnu: chez-scheme: Reorganize package definitions. Content-Language: en-US To: Liliana Marie Prikler , 70065@debbugs.gnu.org References: <92971b8c18a5d69577472b97c8b91b5319527049.1711953507.git.philip@philipmcgrath.com> From: Philip McGrath In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Andrew Tropin , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Liliana, On 4/1/24 11:40, Liliana Marie Prikler wrote: > Am Montag, dem 01.04.2024 um 02:51 -0400 schrieb Philip McGrath: >> A future commit will change 'chez-scheme' to inherit from >> 'chez-scheme-for-racket', so 'chez-scheme-for-racket' will need to be >> defined before 'chez-scheme'.  In an attempt to produce better diffs, >> this commit re-orders the definitions while keeping their contents >> exactly the same. >> >> * gnu/packages/chez.scm (chez-scheme): Move below >> 'chez-scheme-for-racket'. >> (chez-scheme-bootstrap-bootfiles): Move below >> 'chez-scheme-for-racket-bootstrap-bootfiles'. >> >> Change-Id: Ie088abea2b44329f9d8399fbfb95c51d8912b05e >> --- > I don't understand this direction. Why have chez-scheme inherit from > chez-scheme-for-racket? Even if Racket itself pins a particular > version instead of an upstream release (which, let's face it, would be > the wiser option here), or requires a special build (again, why?) I > think keeping the inheritance in the other direction makes ontological > sense moreso than whatever we're starting here. > > Cheers We will be using chez-scheme-for-racket to bootstrap chez-scheme. (For more rationale, see the comments added to chez.scm in [v2 8/8].) While it is possible to have package inheritance go in the opposite direction as bootstrapping, my experience before daa91a49b2914343afdfcdbea9a22c9d062ba185 was that it was very confusing and often triggered unnecessary rebuilds. In this case, it avoids potentially rebuilding the entire Racket world when there's a Chez Scheme release. (Bootstrapping chez-scheme really does depend on at least racket-vm-bc, so we can't avoid rebuilding the Chez Scheme world when there's a Racket release.) Matthew Flatt wrote in : > I imagine that Racket's copy of Chez Scheme will be more > conventionally vendored and aligned with Chez Scheme releases one day, > but I don't think we're ready to move to that mode in the near future. I wasn't involved in his efforts together with the other Chez Scheme maintainers to merge Racket's changes and to keep development in sync going forward, but offhand I can think of both social and technical reasons that the approach they've chosen for now makes sense to me. Thanks, Philip From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 23:59:26 2024 Received: (at 70065) by debbugs.gnu.org; 2 Apr 2024 03:59:27 +0000 Received: from localhost ([127.0.0.1]:52025 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrVJ0-0004YG-DG for submit@debbugs.gnu.org; Mon, 01 Apr 2024 23:59:26 -0400 Received: from wfhigh4-smtp.messagingengine.com ([64.147.123.155]:41491) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrVIy-0004Xn-7m for 70065@debbugs.gnu.org; Mon, 01 Apr 2024 23:59:25 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailfhigh.west.internal (Postfix) with ESMTP id A924C18000A9; Mon, 1 Apr 2024 23:59:14 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Mon, 01 Apr 2024 23:59:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1712030354; x=1712116754; bh=DvnjVv9yp1 /PUwbeJRECgEr/oVNr0ebCKtGBEGXtJi4=; b=muAPehFVc+XV060buFdAbrmi/z /wzvWzMmyqoBYrGNkPoc+5xl/OYtogR2mGb2YkKNXmBfB5oas80fDblU3g3TDtUk Z1L6sMk486/Nr1JcahBmG7TssvADVQVg9lAuEypq5PSNX/M61fZbj0uSjN27ki/N GLi5VjUwP2x/9VXvDKup96JR+4Ge0UpHJc3corXTGNghd/yDebWaqySxNFaDYXJw XYHflf9xhWPoDMJaPkHjO/3RwWXgugGuloMa7RUU0sJh9eEoTXUyWuQSDtRc06qB qtrHbYxcRGRb+zgwpVazcNWG285S5rdjaRqAx+37aM6g6mHGWMsiyhSfkKyA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1712030354; x= 1712116754; bh=DvnjVv9yp1/PUwbeJRECgEr/oVNr0ebCKtGBEGXtJi4=; b=b K24yK20MxFaUw00qsMwErbr3iMh6uM5uZZitD7jvLSsXXby3+7p672I+RDbCYrPR j+tecAJ+bkiJa9cX6hsNemfzRjgIyOPSwOpANxHo4yKRWf6ndxdFddq7xeYV2DNe eBGJwPpi5XEDdi7t2yfkY4ZwGQQT6477lEOLbKf0sFbXiIU7TD5K96kclKZ4NHOO 0PYQC4+lFqFMFUt8B8NstJStr9RXeDNTGJznStaAVTbULVz1zL26inZCylM3rYqa hF8U7MD7C2vl2i65RqFVD9KLqNDvkbJI9XZNy3SOH0OWClgQhWVbzXUQS2r1v3yQ 2ws6T+RdtYp0jK9/5uhow== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrudefuddgjeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddtvdejnecuhfhrohhmpefrhhhi lhhiphcuofgtifhrrghthhcuoehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtg homheqnecuggftrfgrthhtvghrnhepieehgeehgfdvfeegvdejtddtkedvkefhheejieet iefffeehhfevtdeiveevteegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpe hmrghilhhfrhhomhepphhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtohhm X-ME-Proxy: Feedback-ID: i2b1146f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 1 Apr 2024 23:59:13 -0400 (EDT) Message-ID: <4efc12ac-8772-4173-8076-49aaddc84aac@philipmcgrath.com> Date: Mon, 1 Apr 2024 23:59:13 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 7/8] gnu: chez-scheme: Update and simplify machine-type handling. Content-Language: en-US To: Liliana Marie Prikler , 70065@debbugs.gnu.org References: From: Philip McGrath In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Andrew Tropin , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Liliana, On 4/1/24 11:45, Liliana Marie Prikler wrote: > Am Montag, dem 01.04.2024 um 02:51 -0400 schrieb Philip McGrath: >> Since Chez Scheme 10.0.0 supports all of the backends added in >> Racket's >> branch, the complexity of '%chez-features-table' is no longer needed. >> Ideally, even more of this logic could be maintained upstream, but >> this >> change will simplify maintenance in the mean time. >> >> [...] >> >> +(define-syntax define-machine-types >> +  (lambda (stx) >> +    (syntax-case stx (any) >> +      ((_ any id0 id ...) >> +       #`(define #,(datum->syntax #'id0 '%machine-types) >> +           '(id0 id ...)))))) > The datum->syntax call here looks weird. It is a little unusual. The goal is to be able to copy the *use* of define-machine-types directly from the Chez Scheme source code, making it easier to update in the future. The datum->syntax call is needed to synthesize an identifier that will bind in the surrounding context. >> +;; The following is copied from s/cmacros.ss, line 36, in the Chez >> source >> +(define-machine-types >> +  any >> +  pb        tpb > You should maybe comment ;; unthreaded threaded I wouldn't mind that if you think it would be useful, though I'd rather not do a v3 just for this. If someone does want to add it, I'd strongly prefer for the comment to outside of the define-machine-types S-expression so the use stays exactly as in the Chez source. >> +  pb32l     tpb32l >> +  pb32b     tpb32b >> +  pb64l     tpb64l >> +  pb64b     tpb64b >> +  i3nt      ti3nt >> +  i3osx     ti3osx >> +  i3le      ti3le >> +  i3fb      ti3fb >> +  i3ob      ti3ob >> +  i3nb      ti3nb >> +  i3s2      ti3s2 >> +  i3qnx     ti3qnx >> +  i3gnu     ti3gnu >> +  a6nt      ta6nt >> +  a6osx     ta6osx >> +  a6le      ta6le >> +  a6fb      ta6fb >> +  a6ob      ta6ob >> +  a6nb      ta6nb >> +  a6s2      ta6s2 >> +  ppc32osx  tppc32osx >> +  ppc32le   tppc32le >> +  ppc32fb   tppc32fb >> +  ppc32ob   tppc32ob >> +  ppc32nb   tppc32nb >> +  arm32le   tarm32le >> +  arm32fb   tarm32fb >> +  arm32ob   tarm32ob >> +  arm32nb   tarm32nb >> +  arm64nt   tarm64nt >> +  arm64osx  tarm64osx >> +  arm64le   tarm64le >> +  arm64fb   tarm64fb >> +  arm64ob   tarm64ob >> +  arm64nb   tarm64nb >> +  rv64le    trv64le >> +  rv64fb    trv64fb >> +  rv64ob    trv64ob >> +  rv64nb    trv64nb >> +  la64le    tla64le >> +) >> Thanks, Philip From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 02 10:55:25 2024 Received: (at 70065) by debbugs.gnu.org; 2 Apr 2024 14:55:25 +0000 Received: from localhost ([127.0.0.1]:54940 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrfXo-0002pW-LA for submit@debbugs.gnu.org; Tue, 02 Apr 2024 10:55:25 -0400 Received: from mail-40134.protonmail.ch ([185.70.40.134]:39619) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrfXl-0002oc-4s for 70065@debbugs.gnu.org; Tue, 02 Apr 2024 10:55:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1712069710; x=1712328910; bh=6HONjSmMWk3bUqWjxqhZwagOQSZNaH3StLpEHNHdIGA=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=zGgNNX/j/FReTlVXGgVeVWa15dAVoN5OomvCe1ayAiOv5Trl4aW7LRurukkzwT4sO MtW/sMJINmd3qInBhAk1Wpe/RikcZcSjZPve2/iFN1EB0JpVbOI/GXoxHxTbOWN/YC 4D14nlwKH4d7rxQSZ1H7un2JxZvpxx6FUIvFCBSJqgy8SPwzpNWGFrh6Ox0ASdSBOE +F75fkvPmYQSud0roy2f+8Pn71T9tR9D/vnjsgTXHIXPNVBc68a2CAmw3fj5UKzOpC X9beVmLYSQpuZ0t1xMx3CWq0r63aFfvAorrPzYoGjkzy97r+s13qql5qNNoAG2bohh YuT0XEkW3QUKQ== Date: Tue, 02 Apr 2024 14:55:04 +0000 To: Philip McGrath , 70065@debbugs.gnu.org From: Skyler Ferris Subject: Re: [bug#70065] [PATCH 4/6] gnu: chez-scheme: Update to 10.0.0. Message-ID: <9c25eacc-4c7b-4b8d-99cf-4435301ae9f4@protonmail.com> In-Reply-To: <4cef86be-421e-4010-939b-5640764fcf3e@philipmcgrath.com> References: <1f2ac17f-8095-41b7-a0c3-db6487d74aea@protonmail.com> <4cef86be-421e-4010-939b-5640764fcf3e@philipmcgrath.com> Feedback-ID: 40635331:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 3/31/24 13:17, Philip McGrath wrote: >> The loko.scm file was not recompiled so it searched chez.scm for a >> variable named chez-scheme-for-system, which is now a syntax >> transformer. But compiled files have already completed the expansion >> phase, so this means that a syntax transformer is invalid. This will not >> cause a problem for `guix pull` because guix rebuilds itself from >> scratch when it gets updated. >> > > On 3/31/24 10:35, Skyler Ferris wrote: > > I haven't worked with define-deprecated before. It's a macro, and I k= now > > that the guile compiler misses recompiling macro dependencies sometim= es, > > so maybe it was a problem on my end with having mismatching build > > artifacts. > > Very interesting! I hadn't realized that problem with dependency > tracking existed: it might explain some issues I've struggled to > reproduce in the past. It's also given me several surprises about > Guile's implementation of phases: for one thing, apparently > (define-syntax x 42) expands to (define x (make-syntax-transformer 'x > 'macro 42)). I wouldn't have expected a macro to create a value that > would exist at runtime. Exists yes, but it (should not be) used/referenced at runtime. I'm going=20 to type some more details in case you are interested, but an important=20 disclaimer is that my understanding comes from reading documentation on=20 an as-needed basis and doing some work writing macros, but not a lot. I=20 haven't worked with the code that actually implements these things. I'm not sure how other schemes implement this, but Guile has a clearly=20 defined separation between "compile time" and "load time". Compilation=20 is when syntax transformers are used to modify source expressions into=20 the expanded form (in addition to other things, like lowering to=20 intermediate representations). This is discussed in the documentation=20 for eval-when (1). If I define that macro and then use it within the=20 same file, the place where it is used will not contain a reference to=20 the syntax transformer: it will already be expanded. If I write a new=20 file tomorrow which wants to use that macro, Guile will reference the=20 compiled version of the module. If the syntax transformer was not=20 present in the compiled module then the new file would break. Instead,=20 the syntax transformer still exists in the compiled version of the file=20 so that the new module can load it at expansion time. But again, once=20 the new file is compiled the reference to the macro will disappear. So=20 it exists at runtime, but it is only used when compiling code. For=20 compiled files, it is not used at runtime. The exception is that when=20 code is evaluated at the REPL, or if auto-compilation is disabled, there=20 is no practical difference between compile time and load time. I'm not entirely sure why the compiler doesn't see the dependency here.=20 The section on compilation (2) says "Guile does not yet do proper=20 dependency tracking" so I assume that it just hasn't been high priority=20 enough for anyone to fix it. There would be trade-offs in some cases. In=20 this case it is pretty easy to see that the file needs to be recompiled=20 because loko.go (the compiled version of the file) contains an explicit=20 reference to the macro, because it used to be a procedure. But if it was=20 a macro both before and after the change the reference would not be=20 there. We could add the list of macros used during compilation as=20 metadata to the file but I don't know how much bloat that would cause.=20 We could also reference the use-module forms in the original source, but=20 I'm not sure if those are typically available in the go files or if that=20 would also need to be tracked as additional metadata. (1) https://www.gnu.org/software/guile/manual/html_node/Eval-When.html (2) https://www.gnu.org/software/guile/manual/html_node/Compilation.html From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 09 04:47:22 2024 Received: (at 70065) by debbugs.gnu.org; 9 Apr 2024 08:47:23 +0000 Received: from localhost ([127.0.0.1]:48245 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ru78T-0000Pq-B2 for submit@debbugs.gnu.org; Tue, 09 Apr 2024 04:47:22 -0400 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]:46258) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ru78Q-0000Ov-VQ for 70065@debbugs.gnu.org; Tue, 09 Apr 2024 04:47:20 -0400 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-416632343d0so14894395e9.0 for <70065@debbugs.gnu.org>; Tue, 09 Apr 2024 01:47:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712652425; x=1713257225; darn=debbugs.gnu.org; h=in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date:sender:from:to :cc:subject:date:message-id:reply-to; bh=+OjD5YuzlM4WRxy4UvKznJv7eHuhNks+CB9MV+Qj9AI=; b=ZKpNyu/lrS0QUAyWh/uLPcXRvpAp2FBVFDotZQapZ+FTfslhR8c1lCbd6U+ho0Eslr nb1S0s0lky30L9FvA8i5KAILQrTL9AabxEOP8rVikavzEPVVRBN1g2rhEaBusvPxTUNS TGamjJEuMQP7hAJ5Z2a2b9/gEyO5huYhMVuVodYKjte+q3JORVBqAIMWXtIs3sWTRbbO sGV1dXPEsb2Wpt1uAg9BwZt3fZ6hN1r3H+MuE1TYvBuHsK47myMCTSh/n2cWqtbpge75 H4QBLv6vemnFHzFpAht5y2hKW881hosfXO4wvF92CwTQZ7TL1lHBfWL48dSKJVgjrRSz O3PQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712652425; x=1713257225; h=in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date:sender :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=+OjD5YuzlM4WRxy4UvKznJv7eHuhNks+CB9MV+Qj9AI=; b=eBeEySZvWdVBI4yUdoaWruchoaj4DApPBRe19VnD1Te8B+ZYHy4s9hnNpz6e1xtFrI xzS9ZzNVZxa4tL5YDPQVoN36OYM4DtuiGXyQYEGnBGz81k223/z0Q3y3esucvg+2r0dd iC/ndbvorrzC+HvSf6UJNTB3j3lD7OjbAT7HRrKNoes3CcNcp38/TLxF0IurINISZ0Lb pOsePWTypG7LhKy5rzMbOuOmK+Al03hMRSyd7S3YgrcpQBFE1bG+GS2/MZCs9vx8ChI5 OzTfev8wUli0R2W2MIL8MZiTfm8HSmhfVl0Q+1FASj1N8M0YpLtSd8iBX0QAwc1FIugv MPXw== X-Gm-Message-State: AOJu0YwCp1Ppq34RsRgn/Ksks+HFiv1w9VCAdwR+NoA4qpAxADK+shcc 498g2xmvGvznv2bbyYHkFVXr82R5s5tJ7bfBc1uzDSom8ec6/ioV X-Google-Smtp-Source: AGHT+IGn6xGYXhUUyr5UKUPagAIVF+uAAOEEZoDGNfRzIpNkp3YBINVIgNsOueJ8Ect+m5iUeR9eqg== X-Received: by 2002:a05:600c:3c92:b0:415:4599:ca70 with SMTP id bg18-20020a05600c3c9200b004154599ca70mr7185307wmb.5.1712652424490; Tue, 09 Apr 2024 01:47:04 -0700 (PDT) Received: from localhost ([141.226.11.200]) by smtp.gmail.com with ESMTPSA id t12-20020a05600c450c00b004161bffa48csm16440874wmo.40.2024.04.09.01.46.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Apr 2024 01:46:43 -0700 (PDT) Date: Tue, 9 Apr 2024 11:46:42 +0300 From: Efraim Flashner To: Philip McGrath Subject: Re: [bug#70065] [PATCH v2 2/8] gnu: racket: Update to 8.12. Message-ID: Mail-Followup-To: Efraim Flashner , Philip McGrath , 70065@debbugs.gnu.org, Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin , Skyler Ferris References: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="SCyM/CDMvE9kNOik" Content-Disposition: inline In-Reply-To: X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 70065 Cc: Katherine Cox-Buday , 70065@debbugs.gnu.org, Liliana Marie Prikler , Skyler Ferris , Andrew Tropin X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --SCyM/CDMvE9kNOik Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Apr 01, 2024 at 02:51:07AM -0400, Philip McGrath wrote: > All of Racket's changes to Chez Scheme have been merged upstream. They > are the basis for the Chez Scheme 10.0.0 release. For the forseeable > future, Racket will continue to depend on a specific pre-release > version of Chez Scheme as part of Racket's "ABI": see upstream > discussion at . =2E.. > (chez-scheme-for-racket-bootstrap-bootfiles): Stop inheriting from > 'chez-scheme-bootstrap-bootfiles'. > [arguments]: Rewrite without inheritance. Use `make cross.boot` instead > of broken experimental script for cross builds. > [home-page]: Use bootstrapping Racket package instead of archived Git > repository. > [description]: Rewrite to reflect upstreaming of Racket's changes to > Chez Scheme. > @@ -646,58 +725,70 @@ (define-public chez-scheme-bootstrap-bootfiles =2E.. > =20 > (define-public chez-scheme-for-racket-bootstrap-bootfiles > (package > - (inherit chez-scheme-bootstrap-bootfiles) > (name "chez-scheme-for-racket-bootstrap-bootfiles") > (version (package-version chez-scheme-for-racket)) > (source #f) ; avoid problematic cycle with racket.scm > (native-inputs > - (cons* chez-nanopass-bootstrap > - (if (%current-target-system) > - (list zuo > - chez-scheme-for-racket) > - (list racket-vm-bc)))) > + (cons chez-nanopass-bootstrap > + (if (%current-target-system) > + (list zuo > + chez-scheme-for-racket) > + (list racket-vm-bc)))) > + (build-system copy-build-system) > (arguments > - (substitute-keyword-arguments > - (package-arguments chez-scheme-bootstrap-bootfiles) > - ((#:phases those-phases #~%standard-phases) > - #~(let* ((those-phases #$those-phases) > - (unpack (assoc-ref those-phases 'unpack))) > - (modify-phases those-phases > - (replace 'unpack > - (lambda args > - (unpack #:source #$(or (package-source this-package) > - (package-source racket-vm-bc)))= )) > - (add-after 'unpack 'chdir > - (lambda args > - (chdir "racket/src/ChezScheme"))) > - (add-after 'chdir 'unpack-nanopass+stex > - (lambda args > - #$unpack-nanopass+stex)) > - (add-before 'install 'build > - (lambda* (#:key native-inputs inputs #:allow-other-keys) > - #$(cond > - ((%current-target-system) > - ;; cross-compiling > - #~(invoke > - (search-input-file (or native-inputs inputs) > - "/bin/zuo") > - "makefiles/boot.zuo" > - (search-input-file (or native-inputs inputs) > - "/bin/scheme") > - #$(or (racket-cs-native-supported-system?) > - (nix-system->pbarch-machine-type)))) > - (else > - ;; bootstrapping > - #~(invoke > - (search-input-file (or native-inputs inputs) > - "/opt/racket-vm/bin/racket") > - "../rktboot/main.rkt")))))))))) > - (supported-systems > - (package-supported-systems chez-scheme-for-racket)) > - (home-page "https://github.com/racket/ChezScheme") > - ;; ^ This is downstream of https://github.com/racket/racket, > - ;; but it's designed to be a friendly landing place for people > - ;; who want a ChezScheme-shaped repositroy. > + (list > + #:install-plan > + #~`(("boot/" "lib/chez-scheme-bootfiles")) > + #:phases > + #~(modify-phases %standard-phases > + (replace 'unpack > + (let ((unpack (assoc-ref %standard-phases 'unpack))) > + (lambda args > + (unpack #:source #$(or (package-source this-package) > + (package-source racket-vm-bc)))))) > + (add-after 'unpack 'unpack-nanopass > + #$unpack-nanopass) > + (add-after 'unpack-nanopass 'chdir > + (lambda args > + (chdir "racket/src/ChezScheme"))) > + (add-before 'install 'build > + #$(cond > + ((%current-target-system) > + ;; cross-compiling > + ;; TODO: share more of this with upstream, once we figur= e out > + ;; how best to manage running Chez as a cross-compiler a= nd the > + ;; unfortate cycle with %racket-origin. > + #~(lambda* (#:key native-inputs inputs (parallel-build? = #t) > + #:allow-other-keys) > + (invoke "./configure" > + "--force" ; don't complain about missing boo= tfiles > + #$(string-append > + "-m=3D" (or (racket-cs-native-supported-s= ystem?) > + (nix-system->pbarch-machine-typ= e))) > + "ZUO=3Dzuo" > + ;; ignore submodules: > + "ZLIB=3D-lz" > + "LZ4=3D-llz4" > + "STEXLIB=3D/GuixNotUsingStex") > + (apply invoke > + "make" > + `(,@(if parallel-build? > + `("-j" ,(number->string > + (parallel-job-count))) > + '()) > + ,(string-append "SCHEME=3D" > + (search-input-file > + (or native-inputs inputs) > + "/bin/scheme")) > + "cross.boot")))) > + (else > + ;; bootstrapping > + #~(lambda* (#:key native-inputs inputs #:allow-other-key= s) > + (invoke > + (search-input-file (or native-inputs inputs) > + "/opt/racket-vm/bin/racket") > + "../rktboot/main.rkt")))))))) > + (home-page "https://pkgs.racket-lang.org/package/cs-bootstrap") > (synopsis "Chez Scheme bootfiles bootstrapped by Racket") > (description "Chez Scheme is a self-hosting compiler: building it > requires ``bootfiles'' containing the Scheme-implemented portions compil= ed for chez-scheme-for-racket-bootstrap timed out due to 3600 seconds of silence on riscv64-linux. I'm building it again with allowing for a longer silent period. chez-scheme-for-racket-bootstrap fails in the 'build phase on powerpc-linux. This is the same way that it fails on master, so there is no regression here. starting phase `build' error: in phase 'build': uncaught exception: %exception #<&invoke-error program: "/gnu/store/1q72i8fv2fnf5q2rscahdy90jii= gym42-racket-vm-bc-8.12/opt/racket-vm/bin/racket" arguments: ("../rktboot/m= ain.rkt") exit-status: #f term-signal: 6 stop-signal: #f> phase `build' failed after 0.4 seconds command "/gnu/store/1q72i8fv2fnf5q2rscahdy90jiigym42-racket-vm-bc-8.12/opt/= racket-vm/bin/racket" "../rktboot/main.rkt" failed with signal 6 builder for `/gnu/store/hcccfsv6n1llkqgv98y8sk1wywflnk59-chez-scheme-for-ra= cket-bootstrap-bootfiles-9.9.9-pre-release.23.drv' failed with exit code 1 --=20 Efraim Flashner =D7=A8=D7=A0=D7=A9=D7=9C=D7=A4 = =D7=9D=D7=99=D7=A8=D7=A4=D7=90 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --SCyM/CDMvE9kNOik Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmYVAG8ACgkQQarn3Mo9 g1E0+Q//ZxrPkPH1mPP8QaxFXWnKvc/R7dQs7jwvdXPI/uHGaxQTiVUrqdEVaF7o yVT9Z5EHvzgP/W3reey+U60kDrRx+bxuiZH2qdLmwMi+9HrM0zWNenQEIpCRwoh7 fNGj1cYSfKg3s24YR8lwXZmFO1Ab8uAY++yOL1ILbNislyw4bJGSntGfwR6D0We2 Cb8bhEvh8GiY2gVC7tGO1I3nbjvBg6SUWM4W5zEKrxpvRuiQ+zguS65bDs5Ir2LU 4EhuLCCqiEQ87i50LWpjx7JoqqIL5iG1NYwjXXWis13GYpbcwsOJTKuK3slmKrrP otmgsH6HhkQATDGQYlShOUIvN8cYiNPaFEM1Jo2jcKqDSkZ8Yh5BLsBSN7ewKgaj +BjV3QG4yeVMsCjvXXowKQ9ToLn+KomXciQ4IN75Y3a4X/itCJhn/m9mizzbO8tK ucF07MJB98UffXT9bUlkiNh0sqsywtNVFREGdfqpVCOdy77nX7bwaTuo4+XprgKQ RkSkPAq/L9rv2f0KHCkhbU/LiCQofcds5jCmceJV1mFyTm7Se7NWXFkmwrr9mQtg 16TDU/iTdz5u/MSQP84pWfGrKiYwpbkWM2nSS7eBf4vjK4MXBIuLYasrP5EDmsUJ eIYcHNuN8zxilPrl6fkv0PQ72F14Bca/zvHqRaPt/btfO4ACFt4= =7LgQ -----END PGP SIGNATURE----- --SCyM/CDMvE9kNOik-- From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 11 06:45:21 2024 Received: (at 70065) by debbugs.gnu.org; 11 Apr 2024 10:45:21 +0000 Received: from localhost ([127.0.0.1]:55027 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rurvg-0003Tw-4U for submit@debbugs.gnu.org; Thu, 11 Apr 2024 06:45:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42422) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rurvS-0003Pu-F5 for 70065@debbugs.gnu.org; Thu, 11 Apr 2024 06:45:13 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rurvC-0004X4-0E; Thu, 11 Apr 2024 06:44:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=e2XkWq9min65kLSyxuWYr5dU6isD4HXuFQklvEMGQp4=; b=ZDuHqf1Tc3fPgF2L4y9n vwx6EDtv8dCkAYtlBoSTQPo+cilJuUH7RxV6U6IYNfFJaxOcqSmWGCERROIg6/nUO+RIOxbzCD2UI I2jzF9hQ1ZdeT/ceQzCI8jzfdhsSUB8dLuG8FJhzZKuPfeYnq31ztKxGcLrkXufZv1ekeGLFnBAuw DCc3QjpZ+zApUnpSy1ehAkHOeuPwGjYgkIfmDQJIic5CUKrFz/HoqjbhUoZPZI4xHVewsfhZp4jmC LqgCt3TqvBRcJiMAao8ZYi04UlVdlEXNZlW5nk6fBKlftQyZlAkxs7C6xkx0Vx9ot/xU9MZJjTQDh Y1JI8APOysE6zw==; From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Efraim Flashner Subject: Re: [bug#70065] [PATCH v2 2/8] gnu: racket: Update to 8.12. In-Reply-To: (Efraim Flashner's message of "Tue, 9 Apr 2024 11:46:42 +0300") References: Date: Thu, 11 Apr 2024 12:44:41 +0200 Message-ID: <87frvsgova.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 70065 Cc: 70065@debbugs.gnu.org, Philip McGrath , Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Efraim Flashner skribis: > chez-scheme-for-racket-bootstrap timed out due to 3600 seconds of > silence on riscv64-linux. I'm building it again with allowing for a > longer silent period. Hi Efraim! Did it eventually pass? I=E2=80=99d rather not have it block the patch set since it=E2=80=99s all g= reen elsewhere: https://qa.guix.gnu.org/issue/70065 Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 11 06:56:12 2024 Received: (at 70065-done) by debbugs.gnu.org; 11 Apr 2024 10:56:13 +0000 Received: from localhost ([127.0.0.1]:55043 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rus6F-0005IZ-PB for submit@debbugs.gnu.org; Thu, 11 Apr 2024 06:56:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53896) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rus6C-0005HC-TN for 70065-done@debbugs.gnu.org; Thu, 11 Apr 2024 06:56:10 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rus5x-0006Rq-9i; Thu, 11 Apr 2024 06:55:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=C9auUXyT+BOrb2RLIf2YjpQUkx/kHRn62RnRvCV6Fgg=; b=HiYQGzbgJx9UcRYnM+Bq PTfwoy4yevanuErsf2IsUufri6FNw6uL3nxnp8i65vchebJt25b16/fluQJdBM6tMzox29wK7HMVa 6QwpRnVDYEzZ8GjfF66kS/etj18lwmQjkIuEAzBhF0cJDbHthZ1Hx6UznIle+Fq8zbTirUG7IGS3F UMjI2hIU7VhRhrXJ7E7ymwEjmxa1SeCKRCrhhCIMX59VqHNXo5Zu8CbaN8r4jK76bpIX7y5uP2iGz 4lJLZoB1rli4baEJaIoNknsnBElhnNZLcn9GliLjxODa0pLkg9w03N2pb3ciXjSWPF9x6lLtRnqzK Lzt9pIEyN4//iw==; From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Philip McGrath Subject: Re: [bug#70065] [PATCH v2 0/8] Update to Racket 8.12, Chez Scheme 10, and Zuo 1.9. In-Reply-To: (Philip McGrath's message of "Mon, 1 Apr 2024 02:51:05 -0400") References: <6b2db55dfe43979e28bd85d2999919419d56dd84.1711688274.git.philip@philipmcgrath.com> <1b795f9e-bcef-4b14-8ae3-0b69c79d51f9@protonmail.com> <1f2ac17f-8095-41b7-a0c3-db6487d74aea@protonmail.com> Date: Thu, 11 Apr 2024 12:55:50 +0200 Message-ID: <87bk6ggocp.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 70065-done Cc: Andrew Tropin , Katherine Cox-Buday , 70065-done@debbugs.gnu.org, Skyler Ferris , Liliana Marie Prikler X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hello, Philip McGrath skribis: > Here is v2! > > In the second patch, I tweaked the comments based on discussion with Skyl= er. > > To be extra careful about the deprecation of chez-scheme-for-system, I sp= lit > the former [4/6] into: > > * [v2 4/8], which just changes the return value; > * [v2 5/8], which changes to define-deprecated; and > * [v2 6/8], which updates the uses. > > I checked after that all the dependents built and that deprecation warnin= gs > were shown after [v2 5/8] (and not anywhere else!). I went ahead and applied v2. Thank you and thanks to Liliana and Skyler for reviewing! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 11 08:34:28 2024 Received: (at 70065) by debbugs.gnu.org; 11 Apr 2024 12:34:29 +0000 Received: from localhost ([127.0.0.1]:55173 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rutdL-0003ix-H4 for submit@debbugs.gnu.org; Thu, 11 Apr 2024 08:34:28 -0400 Received: from flashner.co.il ([178.62.234.194]:52268) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rutdJ-0003hm-PQ for 70065@debbugs.gnu.org; Thu, 11 Apr 2024 08:34:26 -0400 Received: from [127.0.0.1] (unknown [85.184.94.138]) by flashner.co.il (Postfix) with ESMTPSA id A5E5140031; Thu, 11 Apr 2024 12:34:10 +0000 (UTC) Date: Thu, 11 Apr 2024 12:34:09 +0000 From: Efraim Flashner To: =?ISO-8859-1?Q?Ludovic_Court=E8s?= Subject: Re: [bug#70065] [PATCH v2 2/8] gnu: racket: Update to 8.12. User-Agent: K-9 Mail for Android In-Reply-To: <87frvsgova.fsf@gnu.org> References: <87frvsgova.fsf@gnu.org> Message-ID: <0A4A6FE6-7197-420E-97A0-904A3DCA0A5A@flashner.co.il> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 70065 Cc: 70065@debbugs.gnu.org, Philip McGrath , Katherine Cox-Buday , Liliana Marie Prikler , Andrew Tropin , Skyler Ferris X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Yes, it built successfully in the end=2E I didn't check how long the time w= as but doubling it to two hours should be plenty=2E=20 On April 11, 2024 10:44:41 AM UTC, "Ludovic Court=C3=A8s" = wrote: >Efraim Flashner skribis: > >> chez-scheme-for-racket-bootstrap timed out due to 3600 seconds of >> silence on riscv64-linux=2E I'm building it again with allowing for a >> longer silent period=2E > >Hi Efraim! Did it eventually pass? > >I=E2=80=99d rather not have it block the patch set since it=E2=80=99s all= green >elsewhere: > > https://qa=2Eguix=2Egnu=2Eorg/issue/70065 > >Ludo=E2=80=99=2E --=20 Sent from my Android device with K-9 Mail=2E Please excuse my brevity=2E From unknown Fri Jun 20 07:21:13 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 10 May 2024 11:24:08 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator