From debbugs-submit-bounces@debbugs.gnu.org Tue May 03 14:32:00 2022 Received: (at submit) by debbugs.gnu.org; 3 May 2022 18:32:00 +0000 Received: from localhost ([127.0.0.1]:41030 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxJS-0002gH-Ln for submit@debbugs.gnu.org; Tue, 03 May 2022 14:32:00 -0400 Received: from lists.gnu.org ([209.51.188.17]:43532) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxJO-0002g7-FD for submit@debbugs.gnu.org; Tue, 03 May 2022 14:31:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48014) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nlxJO-0006K7-5d for guix-patches@gnu.org; Tue, 03 May 2022 14:31:50 -0400 Received: from mail-vs1-xe33.google.com ([2607:f8b0:4864:20::e33]:44922) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nlxJM-0005bb-1G for guix-patches@gnu.org; Tue, 03 May 2022 14:31:49 -0400 Received: by mail-vs1-xe33.google.com with SMTP id x8so9112813vsg.11 for ; Tue, 03 May 2022 11:31:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=USewlkNcsGyybu3aGQJk4+Tj+guU9FJSkTtKFcpC+jI=; b=hZxkNvZsJefOiIGW0AgzjAhU2lLS1C4+kDhd+kYfKgTmm6zNfDLTjZ1JAXFJ+Hm6NR JFOJca8DRL/MO6iKj0d+z8u4PKUd1Wt9saxSVDi9UtZ6jxWGlDxs1wFdGJbJc9mYlkgL 2we2c80NO4nqEl4gEQCr2B/7THkSLEykEAiL+eadi6Bo4SSCMOThNYiZAao/WR8cld29 k1ZHcqqDggtEgQLYtUnKPlzuYa9z4Sxos/mYIEq+h4p30Xx01IR1lLx1q0vnThS8520A jd0MHZ4DNgsth0peLGuYAlAsDtAaVzbT9jDrhuSSgE/2Im4FlKvjjcBGI+ZJQXwPAYGl ELhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=USewlkNcsGyybu3aGQJk4+Tj+guU9FJSkTtKFcpC+jI=; b=6sVlvIDyeKPCBOUFln0ATvj5brUkrkCPrHyotORErOELuIDITfSId684BpV9mm9lN8 0kpbQMvNnuLYmfMnJ60E2fu/2yJBsDuz8BeMekDkUhzvL+VKS/sX1xziGHHMxG0YH34k SCJpgch0FDtASA1zpsTyYm+txgyNoH+YrPBtmAUrdVPHl6ghMRfnk5ktSxyUDPId09GX 7ZJv6iI9iwy71vNqt+VXbjCiRi2EnNWVedcWtECV0YLlk7E97yI+Q28PQudUrlRpmi99 qdk+VWHUtWP7oh9rH+erqFW8SNrQxKJ/XrTIAZK3RK1sv2VUHcqDwuhfdl2VJof6NFF1 itKQ== X-Gm-Message-State: AOAM530xJM6jx9JYq2DuW37oJihmVwXcw51mNPEFfHfj5RJoB70fY+YO 1YRrKCLHFHcW1ytpn0YAoCBYEQwVElcEvqBj X-Google-Smtp-Source: ABdhPJz8tMxgEnTkQwyi2dFkhE4IZSia4b9bft4WsCIMERIM5I+iYTuiWAkCeI9rLiSoC8+w92RsBQ== X-Received: by 2002:a67:2ec9:0:b0:32c:de55:9ea6 with SMTP id u192-20020a672ec9000000b0032cde559ea6mr5489605vsu.62.1651602705228; Tue, 03 May 2022 11:31:45 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id n11-20020ab01e4b000000b003626f894df3sm2898716uak.33.2022.05.03.11.31.44 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 03 May 2022 11:31:44 -0700 (PDT) From: Philip McGrath To: guix-patches@gnu.org Subject: [PATCH 0/7] gnu: Update Racket to 8.5 and Chez Scheme to 9.5.8. Date: Tue, 3 May 2022 14:31:43 -0400 Message-Id: X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 X-Debbugs-CC: Philip McGrath Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Received-SPF: permerror client-ip=2607:f8b0:4864:20::e33; envelope-from=philip@philipmcgrath.com; helo=mail-vs1-xe33.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_PERMERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: submit 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: -2.7 (--) Hi, This patch series contains Racket 8.5 and upstream Chez Scheme 9.5.8: both were re released since last week. For upstream Chez Scheme, armhf-linux has been deleted from `supported-systems` with a comment saying it's broken since before I started contributing to Guix. I haven't changed that, since I don't have access to an ARM system at the moment, and it doesn't have thread support upstream anyway, but I think it should be fixed by this point, if it hadn't been already. Could someone check? Two recent developments in the Racket world are notable from a packaging perspective: 1. After branching for this release, on HEAD Racket has adopted Zuo[1], a tiny Raket-like language for build scripting. The Zuo interpreter is a single C file that can be compiled as simply as `cc zuo.c`, and libraries written in Zuo implement a DSL like `make` or (more so) Shake[2] for build steps and tracking dependencies. Autoconf is still there, and `make` can still be used in all of the ways it could before (modulo bugs), but the makefiles actually just delegate to Zuo.[3] In theory, this shouldn't require any changes, but Guix is enough of a stress test that it's exposed some rough edges: many have already been fixed upstream, but a few will require changes to the Guix packaging---but I think all the changes make things nicer, anyway. I have a branch up at [4] based on Racket HEAD if anyone's interested: the only remaining Zuo-related issue is with the Chez Scheme test suite. Overall, I for one already find the Zuo build scripts much more comprehensible and hackable than the old makefiles. To pick just one example of the former complexity, there was a build script implementing a makefile-to-makefile compiler to support variable propagation for non-GNU `make`s. Zuo (and Racket's use of it) is also much more robust in dependency tracking. Formerly, you were often better off throwing away your build directory and starting again. I think this is an exciting step for anyone who builds Racket from source regularly, and Zuo might be interesting for other projects, too. 2. Racket's version of Chez Scheme has long had a “portable bytecode” backend as an alternative to native-code compilation. Up to this point it has primarily been a bootstrapping shortcut that didn't require distributing binaries for every platform. With this release, though, the implementation has improved: it now works even on platforms for which there isn't a native-code backend available --- for Guix, that includes powerpc64le-linux, riscv64-linux, mips64el-linux, and i586-gnu --- and it performs well enough on those platforms to make Racket CS viable instead of Racket BC (which didn't have JIT support for those platforms, anyway). For Guix, this also means that `(chez-scheme-for-system)` should be able to return a working Chez Scheme package for every system. Unfortunately, there are some issues with (at least) the `configure` scripts in the release such that building Racket for those systems doesn't quite work yet: see discussion at [5]. I'll be following up on that, and I might backport the fixes if they end up being small enough, but certainly it should work by Racket 8.6, scheduled for July. In the mean time, just knowing that this functionality is on its way helped with figuring out how much could be thrown out to simplify the follow-up to at the end of this patch series. -Philip [1]: https://docs.racket-lang.org/zuo/index.html [2]: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/03/hadrian.pdf [3]: https://docs.racket-lang.org/racket-build-guide/zuo.html [4]: https://gitlab.com/philip1/guix-patches/-/tree/zuo [5]: https://racket.discourse.group/t/chez-for-architectures-without-native-backends/950 Philip McGrath (7): gnu: racket: Update to 8.5. gnu: racket: Fix out-of-source build. gnu: chez-scheme: Update to 9.5.8. gnu: chez-scheme: Refactor documentation phases. gnu: chez-scheme: Refactor configure phase and fix '--threads'. gnu: stex: Get machine type dynamically. gnu: chez-scheme-for-system: Adjust support logic. gnu/local.mk | 2 - gnu/packages/chez.scm | 416 +++++++++------- .../racket-enable-scheme-backport.patch | 465 ------------------ ...acket-gui-tethered-launcher-backport.patch | 26 - gnu/packages/racket.scm | 106 ++-- 5 files changed, 292 insertions(+), 723 deletions(-) delete mode 100644 gnu/packages/patches/racket-enable-scheme-backport.patch delete mode 100644 gnu/packages/patches/racket-gui-tethered-launcher-backport.patch base-commit: 654f878f0b9d2136affa3e3d32da1639e6942a54 -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue May 03 14:34:41 2022 Received: (at 55248) by debbugs.gnu.org; 3 May 2022 18:34:41 +0000 Received: from localhost ([127.0.0.1]:41038 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxLz-0002kx-Ci for submit@debbugs.gnu.org; Tue, 03 May 2022 14:34:41 -0400 Received: from mail-vs1-f51.google.com ([209.85.217.51]:38873) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxLw-0002kg-7R for 55248@debbugs.gnu.org; Tue, 03 May 2022 14:34:29 -0400 Received: by mail-vs1-f51.google.com with SMTP id q2so17318389vsr.5 for <55248@debbugs.gnu.org>; Tue, 03 May 2022 11:34:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=sB02TZLhUp5L9jDUffXNfq/gNwp39HMeANGT4qsVJdE=; b=hnU94qu+EoJwMkvDYjxjJuRuKxqV6eIfYyRTXHNCwjqxevOESibNLJ5zeFAFDuYxkx 2wpv//0h/zBuwM50FmrhtoOtod0DxN4m0D8qFgSGLzV3ZRwdl6w7pcutRolXxGu1boOT oiGafEclqvBWPT2zDVX3pzt/CMUmrM9WJZGbBx6Uhx+L19rK04ZAC8OuWpnW7rc65xZ8 00sg2YgwmwL/Pk8407g4e1djh6gh99yzTVYJ51yTdWRvz5zXsYTCCTL9jNj7HYI+Y2PI CPjOx4J1//LcAA/m8D2Emcsd5k07ioCHzJjpsqpEIdCP6gxtp1goqyClgFwy12fhCNKa zU5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=sB02TZLhUp5L9jDUffXNfq/gNwp39HMeANGT4qsVJdE=; b=ZgipEZzYbq+FytWzYBxY/sjZ1mGOhLeY0iuWPx+xFL4sWVymITrx9O7Z3yurPgUs3G 8W2y77gRjyyjVGHbCgzPqfbsiygec1PcFvaLQEl4yiK4NEyxGhPeuJJd5FUTqC8Sgc/l 5fEuybsL1GgwpYRYHuOppnrFubvBe8I22dWjgmBvZReukVp7c0k5N0HXqSF0EwvMvvX9 2CoQq16zMYlgCMb+EPMUpCVq2rYZ+36SdUlZb4A6+aUr24d0prsOVUtLQDzji/p0JUq7 owcmLCF2eVvA2Qg+0PixX9XQwbXwWMUNSeELMrPWJJnXFnIMnMXi4Tkyig76A0/BFP3B 5eiw== X-Gm-Message-State: AOAM533vsuqeVX7F8QHETOOaz8Wj5Bp3H0KXbKF4GY/mwv21cdeytaFk m2xM5fPfKXe1FNE6kRk5ewPlEfyjym89m71b X-Google-Smtp-Source: ABdhPJyzb4flRZcTYR3cBA8xzk9+PwljV2rsJgkHI5FkIzrKfPU7+wWMBxxKhDdb2d2OZ39xeRAF4Q== X-Received: by 2002:a67:eb88:0:b0:32c:d3ee:ca35 with SMTP id e8-20020a67eb88000000b0032cd3eeca35mr5322786vso.15.1651602861628; Tue, 03 May 2022 11:34:21 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id t21-20020a9f2e15000000b003626f894df8sm3056774uaj.38.2022.05.03.11.34.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 03 May 2022 11:34:21 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH 1/7] gnu: racket: Update to 8.5. Date: Tue, 3 May 2022 14:33:40 -0400 Message-Id: <2290ebb81a8acaa959eff9f60694330e495e3a19.1651594312.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 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 (-) * gnu/packages/patches/racket-gui-tethered-launcher-backport.patch, gnu/packages/patches/racket-enable-scheme-backport.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. * gnu/packages/chez.scm (chez-scheme-for-racket): Update to 9.5.7.6. * gnu/packages/racket.scm (%racket-version): Update to 8.4.900. (%racket-origin)[sha256]: Update accordingly. [patches]: Remove obsolete patches. (racket-vm-common-configure-flags): Remove incorrect comment. (simple-racket-origin): Accept optional #:commit argument. (racket)[inputs]<2d, datalog, deinprogramm, draw, drracket, expeditor, htdp, pict, plot, quickscript, racklog, rackunit, redex, scribble, typed-racket, string-constants, syntax-color, web-server, xrepl>: Update checksums. : Likewise, and remove obsolete backports. --- gnu/local.mk | 2 - gnu/packages/chez.scm | 4 +- .../racket-enable-scheme-backport.patch | 465 ------------------ ...acket-gui-tethered-launcher-backport.patch | 26 - gnu/packages/racket.scm | 85 ++-- 5 files changed, 32 insertions(+), 550 deletions(-) delete mode 100644 gnu/packages/patches/racket-enable-scheme-backport.patch delete mode 100644 gnu/packages/patches/racket-gui-tethered-launcher-backport.patch diff --git a/gnu/local.mk b/gnu/local.mk index ad7b0a1480..c812881809 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1757,8 +1757,6 @@ dist_patch_DATA = \ %D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ %D%/packages/patches/rtags-separate-rct.patch \ - %D%/packages/patches/racket-enable-scheme-backport.patch \ - %D%/packages/patches/racket-gui-tethered-launcher-backport.patch \ %D%/packages/patches/racket-minimal-sh-via-rktio.patch \ %D%/packages/patches/remake-impure-dirs.patch \ %D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \ diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index d47225dbe5..a7f75a731a 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 Philip McGrath +;;; Copyright © 2021, 2022 Philip McGrath ;;; ;;; This file is part of GNU Guix. ;;; @@ -361,7 +361,7 @@ (define-public chez-scheme-for-racket (package (inherit chez-scheme) (name "chez-scheme-for-racket") - (version "9.5.7.3") + (version "9.5.7.6") ;; The version should match `(scheme-fork-version-number)`. ;; See racket/src/ChezScheme/s/cmacros.ss c. line 360. ;; It will always be different than the upstream version! diff --git a/gnu/packages/patches/racket-enable-scheme-backport.patch b/gnu/packages/patches/racket-enable-scheme-backport.patch deleted file mode 100644 index 3a5a4a3d82..0000000000 --- a/gnu/packages/patches/racket-enable-scheme-backport.patch +++ /dev/null @@ -1,465 +0,0 @@ -From 8d7687842f099e3e7e60d3a83fed58b2c6a92863 Mon Sep 17 00:00:00 2001 -From: Matthew Flatt -Date: Sun, 6 Feb 2022 10:36:09 -0700 -Subject: [PATCH 1/2] Chez Scheme: adapt bootfile build for supplied `Scheme=` - -(cherry picked from commit fca1e02349664060e10278ca2ce6577a949bebf5) - -(Fixed conflicts by dropping pbchunks and pbarch changes.) ---- - racket/src/ChezScheme/configure | 15 ++++++++++++++- - racket/src/ChezScheme/s/Mf-base | 4 ++-- - racket/src/ChezScheme/s/Mf-cross | 4 +++- - 3 files changed, 19 insertions(+), 4 deletions(-) - -diff --git a/racket/src/ChezScheme/configure b/racket/src/ChezScheme/configure -index 4515ffc105..0098829091 100755 ---- a/racket/src/ChezScheme/configure -+++ b/racket/src/ChezScheme/configure -@@ -45,6 +45,7 @@ threads=yes - nothreads=no - temproot="" - help=no -+forceworkarea=no - gzipmanpages=yes - installowner="" - installgroup="" -@@ -205,6 +206,9 @@ while [ $# != 0 ] ; do - --pb) - pb=yes - ;; -+ --force) -+ forceworkarea=yes -+ ;; - --installprefix=*) - installprefix=`echo $1 | sed -e 's/^--installprefix=//'` - ;; -@@ -439,6 +443,7 @@ if [ "$help" = "yes" ]; then - echo " --toolprefix= prefix tool (compiler, linker, ...) names" - echo " --[no]gzip-man-pages compress manual pages ($gzipmanpages)" - echo " --workarea= build directory ($w)" -+ echo " --force configure even without boot files" - echo " CC= C compiler" - echo " CPPFLAGS= C preprocessor flags" - echo " CFLAGS= C compiler flags" -@@ -721,8 +726,16 @@ case "${flagsmuni}" in - ;; - esac - -+if [ "$w" = "$m" ] ; then -+ configuringin="" -+else -+ configuringin=" in $w" -+fi -+ - if [ -f boot/$m/scheme.boot -o -f "$srcdir"/boot/$m/scheme.boot ] ; then -- echo "Configuring for $m" -+ echo "Configuring for $m$configuringin" -+elif [ "$forceworkarea" = yes ] ; then -+ echo "Configuring for $m$configuringin despite missing boot files" - else - if [ "$m" = "" ] ; then - maybem="" -diff --git a/racket/src/ChezScheme/s/Mf-base b/racket/src/ChezScheme/s/Mf-base -index cc6178c973..1f4a967998 100644 ---- a/racket/src/ChezScheme/s/Mf-base -+++ b/racket/src/ChezScheme/s/Mf-base -@@ -94,7 +94,7 @@ endif - # that Scheme and SCHEMEHEAPDIRS are set by Mf-cross to point to the host Scheme - # implementation - Scheme = ../bin/$m/scheme${ExeSuffix} --export SCHEMEHEAPDIRS=../boot/%m -+export SCHEMEHEAPDIRS=../boot/$m - export CHEZSCHEMELIBDIRS=. - - # Define the libdirs separator character -@@ -691,4 +691,4 @@ reset-one: - - .PHONY: run - run: -- env SCHEMEHEAPDIRS=../boot/$m/ ../bin/$m/scheme $(ARGS) -+ env SCHEMEHEAPDIRS=${SCHEMEHEAPDIRS} ${Scheme} $(ARGS) -diff --git a/racket/src/ChezScheme/s/Mf-cross b/racket/src/ChezScheme/s/Mf-cross -index d796cbb459..397af59a28 100644 ---- a/racket/src/ChezScheme/s/Mf-cross -+++ b/racket/src/ChezScheme/s/Mf-cross -@@ -43,5 +43,7 @@ x$(xm).$(m): - $(MAKE) -f Mf-cross m=$(m) xm=$(xm) i=f o=3 d=0 xpatch - mv xpatch x$(xm).$(m) - -+ifneq ($(SCHEMEHEAPDIRS),:) - # Ensure that cross-compiling "nanopass.so" is rebuilt if the host compiler changed --nanopass.so: ${SCHEME} ${SCHEMEHEAPDIRS}/petite.boot ${SCHEMEHEAPDIRS}/scheme.boot -+nanopass.so: ${Scheme} ${SCHEMEHEAPDIRS}/petite.boot ${SCHEMEHEAPDIRS}/scheme.boot -+endif --- -2.32.0 - - -From 26c8e2c1d9b02ad85acef8bda40d92154cf0b699 Mon Sep 17 00:00:00 2001 -From: Matthew Flatt -Date: Sun, 6 Feb 2022 11:03:30 -0700 -Subject: [PATCH 2/2] configure: make `--enable-scheme` work with an executable - -When the same Chez Scheme version as used by Racket is already -available, then `--enable-scheme=...` can supply an executable. For -cross builds, `--enable-scheme=...` can still supply a build -directory, instead, as before. - -(cherry picked from commit 4f0e76855ce7e86107de495292a553469daf0b3f) ---- - racket/src/ChezScheme/makefiles/Makefile.in | 3 ++ - racket/src/README.txt | 30 +++++++++++--- - racket/src/configure | 8 +++- - racket/src/cs/README.txt | 6 ++- - racket/src/cs/c/Makefile.in | 44 ++++++++++++++++----- - racket/src/cs/c/configure | 24 +++++++++-- - racket/src/cs/c/configure.ac | 21 ++++++++-- - 7 files changed, 112 insertions(+), 24 deletions(-) - -diff --git a/racket/src/ChezScheme/makefiles/Makefile.in b/racket/src/ChezScheme/makefiles/Makefile.in -index c396efc851..3998ef9ccd 100644 ---- a/racket/src/ChezScheme/makefiles/Makefile.in -+++ b/racket/src/ChezScheme/makefiles/Makefile.in -@@ -59,6 +59,9 @@ reset: - %.boot: - (cd $(workarea) && $(MAKE) $*.boot) - -+auto.boot: -+ (cd $(workarea) && $(MAKE) $(defaultm).boot) -+ - # .bootquick to build boot files for - # with o=3 d=0 for the cross compiler, and only after - # building the kernel for the configured machine -diff --git a/racket/src/README.txt b/racket/src/README.txt -index 98647aebce..d77310b4a4 100644 ---- a/racket/src/README.txt -+++ b/racket/src/README.txt -@@ -354,6 +354,10 @@ variant of MinGW without "libdelayimp.a", get the implementation of - ======================================================================== - - Cross-compilation requires at least two flags to `configure`: -+`--host=OS` and either `--enable-racket=RACKET` or (for Racket CS) -+`--enable-scheme-SCHEME`. -+ -+More information: - - * `--host=OS`, where OS is something like `i386-gnu-linux` to - indicate the target platform. -@@ -374,11 +378,27 @@ Cross-compilation requires at least two flags to `configure`: - run `configure` again (with no arguments) in a "local" subdirectory - to create a build for the current platform. - --An additional flag is needed for building Racket CS, unless the flag --`--enable-racket=auto` is used: -- -- * `--enable-scheme=DIR`, where DIR is a path that has a "ChezScheme" -- directory where Chez Scheme is built for the host system. -+ * `--enable-scheme=SCHEME`, where SCHEME is a Chez Scheme executable -+ executable that runs on the build platform; the executable must be -+ the same version as used in Racket built for the target platform. -+ -+ Supplying `--enable-scheme=DIR` is also supported in cross-build -+ mode, where DIR is a path that has a "ChezScheme" directory where -+ Chez Scheme is built for the host system. -+ -+The `--enable-racket=RACKET` and `--enable-scheme=SCHEME` flags are -+allowed for non-cross builds, too: -+ -+ * For Racket CS, supplying either selects a Racket or Chez Scheme -+ implementation used to create boot files to the build platform. -+ Suppling Chez Scheme is a much more direct path, but when Racket is -+ supplied, its version does not have to match the version being -+ built. -+ -+ * For Racket BC, `--enable-racket=RACKET` selects a Racket for -+ prepare C sources to cooperate with garbage collection. Its version -+ needs to be close to the one being built, and potentially exactly -+ the same version. - - Some less commonly needed `configure` flags are for Racket BC: - -diff --git a/racket/src/configure b/racket/src/configure -index c9f3ba4419..1b53ec7ce2 100755 ---- a/racket/src/configure -+++ b/racket/src/configure -@@ -9,6 +9,7 @@ pb_dir="$dir/ChezScheme/boot/pb" - use_cs=maybe - use_bc=maybe - supplied_racket=no -+supplied_scheme=no - enable_boothelp= - - # We don't have to detect conflicts like `--enable-csdefault --enable-bcdefault`, -@@ -34,6 +35,9 @@ for arg in $*; do - --enable-racket=*) - supplied_racket=yes - ;; -+ --enable-scheme=*) -+ supplied_scheme=yes -+ ;; - --help | -h) - echo $0: - echo see --help-bc or --help-cs, since the Racket CS build and the -@@ -70,8 +74,8 @@ elif test "$use_cs" = "maybe" ; then - fi - - if test "$use_cs" = "yes" ; then -- if test $use_bc = no -a $supplied_racket = no -a ! -d "$pb_dir" ; then -- echo $0: must have $pb_dir or --enable-racket=... for --enable-csonly -+ if test $use_bc = no -a $supplied_racket = no -a $supplied_scheme = no -a ! -d "$pb_dir" ; then -+ echo $0: must have $pb_dir, --enable-racket=... or --enable-scheme=... for --enable-csonly - exit 1 - fi - -diff --git a/racket/src/cs/README.txt b/racket/src/cs/README.txt -index 2ece417b78..8e6fc57b74 100644 ---- a/racket/src/cs/README.txt -+++ b/racket/src/cs/README.txt -@@ -39,6 +39,11 @@ build: - installed in the "../ChezScheme/boot/pb" directory as described by - "../ChezScheme/BUILDING". - -+ Supplying `--enable-scheme=...` is also an option if you alerady -+ have the same version of Chez Scheme built on the current platform. -+ Another build will be created, anyway, but more quickly than -+ without Chez Scheme. -+ - * Racket is needed to generate the files in the "schemified" - directory from the sources in sibling directories like "../io". The - Racket version must be practically the same as the current Racket -@@ -48,7 +53,6 @@ build: - Unlike Chez Scheme boot files, the files generated in "schemified" - are human-readable and -editable Scheme code. That provides a way - out of bootstrapping black holes, even without BC. -- - - - ======================================================================== -diff --git a/racket/src/cs/c/Makefile.in b/racket/src/cs/c/Makefile.in -index 54a644a1d9..d73993f0fc 100644 ---- a/racket/src/cs/c/Makefile.in -+++ b/racket/src/cs/c/Makefile.in -@@ -12,7 +12,9 @@ CS_HOST_WORKAREA_PREFIX = @CS_HOST_WORKAREA_PREFIX@ - SCHEME_HOST_WORKAREA = $(CS_HOST_WORKAREA_PREFIX)$(SCHEME_WORKAREA) - SCHEME_BIN = $(SCHEME_HOST_WORKAREA)/$(MACH)/bin/$(MACH)/scheme - SCHEME_INC = $(SCHEME_HOST_WORKAREA)/$(MACH)/boot/$(MACH) --SCHEME = $(SCHEME_BIN) -B $(SCHEME_INC)/petite.boot -B $(SCHEME_INC)/scheme.boot -+SCHEME_built = $(SCHEME_BIN) -B $(SCHEME_INC)/petite.boot -B $(SCHEME_INC)/scheme.boot -+SCHEME_existing = @MAKE_SCHEME_SCHEME@ -+SCHEME = $(SCHEME@USE_SCHEME_MODE@) - - TARGET_MACH = @TARGET_MACH@ - SCHEME_TARGET_INC = $(SCHEME_WORKAREA)/$(TARGET_MACH)/boot/$(TARGET_MACH) -@@ -88,7 +90,7 @@ mainsrcdir = @srcdir@/../.. - @INCLUDEDEP@ @srcdir@/../../version/version.mak - - cs: -- $(MAKE) scheme@T_CROSS_MODE@ -+ $(MAKE) scheme@MAKE_SCHEME_MODE@ - $(MAKE) racket-so - cd rktio; $(MAKE) - $(MAKE) racketcs -@@ -121,9 +123,13 @@ racket-so: - - RACKET_SO_ENV = @CONFIGURE_RACKET_SO_COMPILE@ - -+TARGET_MACH_built = $(TARGET_MACH) -+TARGET_MACH_existing = xc-$(TARGET_MACH) -+XPATCH_FILE = $(SCHEME_WORKAREA)/$(TARGET_MACH@USE_SCHEME_MODE@)/s/xpatch -+ - CS_PROGS = SCHEME="$(SCHEME)" - CS_OPTS = COMPRESS_COMP=@COMPRESS_COMP@ @ENABLE_OR_DISABLE_WPO@ --CS_OPTScross = $(CS_OPTS) CSO=$(MACH) CROSS_COMP="--xpatch $(SCHEME_WORKAREA)/$(TARGET_MACH)/s/xpatch" -+CS_OPTScross = $(CS_OPTS) CSO=$(MACH) CROSS_COMP="--xpatch $(XPATCH_FILE)" - PASS_COMPILE_DEPS = EXTRA_COMPILE_DEPS="$(SCHEME_INC)/petite.boot $(SCHEME_INC)/scheme.boot" - - build-racket-so: -@@ -163,6 +169,15 @@ pb-bootquick: - cd $(SCHEME_WORKAREA) && $(MAKE) reset - $(SHELL) $(srcdir)/ready_boot.sh $(MACH) $(SCHEME_WORKAREA) - -+scheme-via-scheme: -+ $(MAKE) $(SCHEME_WORKAREA)/boot/$(MACH)/scheme.boot -+ $(MAKE) mach-make -+ -+$(SCHEME_WORKAREA)/boot/$(MACH)/scheme.boot: -+ mkdir -p $(SCHEME_WORKAREA) -+ $(MAKE) config-scheme CONFIG_SCHEME_MODE="$(CONFIG_SCHEME_MODE) --force" -+ cd $(SCHEME_WORKAREA) && $(MAKE) $(MACH).boot Scheme="$(SCHEME)" SCHEMEHEAPDIRS=: o=3 d=0 what=all -+ - mach-make: - $(MAKE) config-scheme - cd $(SCHEME_WORKAREA) && $(MAKE) -@@ -182,24 +197,33 @@ config-scheme: - - scheme-cross: - env MAKE_BOOT_FOR_CROSS=yes SCHEME_SRC="$(SCHEME_DIR)" SCHEME_WORKAREA=$(SCHEME_WORKAREA) MACH="$(TARGET_MACH)" $(BOOTSTRAP_RACKET) "$(SCHEME_DIR)"/rktboot/make-boot.rkt -+ $(MAKE) finish-scheme-cross -+ -+finish-scheme-cross: - $(SHELL) $(srcdir)/reset_boot.sh $(TARGET_MACH) $(SCHEME_WORKAREA) - cd $(SCHEME_WORKAREA) && "$(UP_SCHEME_DIR)"/configure @SCHEME_CROSS_CONFIG_ARGS@ $(SCHEME_CONFIG_VARS) - cd $(SCHEME_WORKAREA)/$(TARGET_MACH)/c && $(CHOST_HACK@T_CROSS_MODE@) $(MAKE) o=o cross=t -- $(MAKE) $(SCHEME_WORKAREA)/$(TARGET_MACH)/s/xpatch -+ $(MAKE) $(XPATCH_FILE) -+ -+scheme-cross-via-scheme: -+ $(MAKE) $(SCHEME_WORKAREA)/boot/$(TARGET_MACH)/scheme.boot MACH=$(TARGET_MACH) -+ $(MAKE) finish-scheme-cross - - # Rebuild patch file and cross "petite.boot" and "scheme.boot" when older --# than the build-host "scheme.boot" or when "make-boot.rkt" touchs dummy boot files --XPATCH_DEPS = $(SCHEME_HOST_WORKAREA)/$(MACH)/boot/$(MACH)/scheme.boot \ -- $(SCHEME_WORKAREA)/boot/$(TARGET_MACH)/scheme.boot -+# than the build- use as Racket for build; or "auto" to create -- --enable-scheme= use as host's build directory for cross -+ --enable-scheme= use as host build for cross - --enable-mach= use Chez Scheme machine type - --enable-target= cross-build for Chez Scheme machine type - --enable-portable prefer portable to host-specific -@@ -2867,7 +2870,7 @@ show_explicitly_enabled "${enable_xonx}" "Unix style" - show_explicitly_enabled "${enable_libzo}" 'Compiled ".zo" files moved to lib' - - show_explicitly_set "${enable_racket}" "Racket" --show_explicitly_set "${enable_scheme}" "Chez Scheme build directory" -+show_explicitly_set "${enable_scheme}" "Chez Scheme for build" - show_explicitly_set "${enable_mach}" "machine type" - show_explicitly_set "${enable_target}" "cross-build machine type" - show_explicitly_enabled "${enable_portable}" "portable" -@@ -4745,9 +4748,21 @@ esac - - SCHEME_DIR=${srcdir}/../../ChezScheme - MAKE_BUILD_SCHEME=checkout -+USE_SCHEME_MODE="_built" -+MAKE_SCHEME_MODE="${T_CROSS_MODE}" - - if test "${enable_scheme}" != "" ; then -- CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ if test -d "${enable_scheme}" ; then -+ # Directory exists, so use it as a build directory -+ echo "Using supplied Scheme path as a build directory" -+ CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ else -+ # Directory does not exist, so assume it's an executable -+ echo "Using supplied Scheme path as an executable" -+ MAKE_SCHEME_MODE="${T_CROSS_MODE}-via-scheme" -+ MAKE_SCHEME_SCHEME="${enable_scheme}" -+ USE_SCHEME_MODE="_existing" -+ fi - fi - - if test "${enable_racket}" != "" ; then -@@ -6012,6 +6027,9 @@ SCHEME_CROSS_CONFIG_ARGS="--machine=${TARGET_MACH} --disable-x11 ${cs_auto_flags - - - -+ -+ -+ - - - -diff --git a/racket/src/cs/c/configure.ac b/racket/src/cs/c/configure.ac -index 464ebe1760..aaee88156d 100644 ---- a/racket/src/cs/c/configure.ac -+++ b/racket/src/cs/c/configure.ac -@@ -23,7 +23,7 @@ AC_ARG_ENABLE(compressmore, [ --enable-compressmore compress compiled code ev - AC_ARG_ENABLE(compressboot, [ --enable-compressboot compress boot files]) - m4_include(../ac/path_arg.m4) - AC_ARG_ENABLE(racket, [ --enable-racket= use as Racket for build; or "auto" to create]) --AC_ARG_ENABLE(scheme, [ --enable-scheme= use as host's build directory for cross]) -+AC_ARG_ENABLE(scheme, [ --enable-scheme= use as host build for cross]) - AC_ARG_ENABLE(mach, [ --enable-mach= use Chez Scheme machine type ]) - AC_ARG_ENABLE(target, [ --enable-target= cross-build for Chez Scheme machine type ]) - m4_include(../ac/portable_arg.m4) -@@ -81,7 +81,7 @@ show_explicitly_disabled "${enable_compressboot}" "Compressed boot files" - show_explicitly_enabled "${enable_xonx}" "Unix style" - m4_include(../ac/path_show.m4) - show_explicitly_set "${enable_racket}" "Racket" --show_explicitly_set "${enable_scheme}" "Chez Scheme build directory" -+show_explicitly_set "${enable_scheme}" "Chez Scheme for build" - show_explicitly_set "${enable_mach}" "machine type" - show_explicitly_set "${enable_target}" "cross-build machine type" - m4_include(../ac/portable_show.m4) -@@ -504,9 +504,21 @@ esac - - SCHEME_DIR=${srcdir}/../../ChezScheme - MAKE_BUILD_SCHEME=checkout -+USE_SCHEME_MODE="_built" -+MAKE_SCHEME_MODE="${T_CROSS_MODE}" - - if test "${enable_scheme}" != "" ; then -- CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ if test -d "${enable_scheme}" ; then -+ # Directory exists, so use it as a build directory -+ echo "Using supplied Scheme path as a build directory" -+ CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ else -+ # Directory does not exist, so assume it's an executable -+ echo "Using supplied Scheme path as an executable" -+ MAKE_SCHEME_MODE="${T_CROSS_MODE}-via-scheme" -+ MAKE_SCHEME_SCHEME="${enable_scheme}" -+ USE_SCHEME_MODE="_existing" -+ fi - fi - - if test "${enable_racket}" != "" ; then -@@ -821,6 +833,9 @@ AC_SUBST(DIFF_MACH) - AC_SUBST(CROSS_MODE) - AC_SUBST(T_CROSS_MODE) - AC_SUBST(TT_CROSS_MODE) -+AC_SUBST(MAKE_SCHEME_MODE) -+AC_SUBST(MAKE_SCHEME_SCHEME) -+AC_SUBST(USE_SCHEME_MODE) - AC_SUBST(SETUP_BOOT_MODE) - AC_SUBST(OSX) - AC_SUBST(NOT_OSX) --- -2.32.0 - diff --git a/gnu/packages/patches/racket-gui-tethered-launcher-backport.patch b/gnu/packages/patches/racket-gui-tethered-launcher-backport.patch deleted file mode 100644 index 1e018eaa79..0000000000 --- a/gnu/packages/patches/racket-gui-tethered-launcher-backport.patch +++ /dev/null @@ -1,26 +0,0 @@ -From aa792e707b1fbc5cc33691bfaee5828dc3fbebaa Mon Sep 17 00:00:00 2001 -From: Matthew Flatt -Date: Mon, 31 Jan 2022 15:31:22 -0700 -Subject: [PATCH] fix creation of tethered launchers - -Related to racket/racket#4133 - -(cherry picked from commit 563c68432f127729592f234ef30c31e92618b517) ---- - gui-lib/mred/installer.rkt | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/gui-lib/mred/installer.rkt b/gui-lib/mred/installer.rkt -index b1691472..9ef06c53 100644 ---- a/gui-lib/mred/installer.rkt -+++ b/gui-lib/mred/installer.rkt -@@ -72,4 +72,5 @@ - (list "-A" (path->string (find-system-path 'addon-dir))))) - - (define (config-flags) -- (list "-G" (path->string (find-config-dir)))) -+ (list "-X" (path->string (find-collects-dir)) -+ "-G" (path->string (find-config-dir)))) --- -2.32.0 - diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 471a11dd48..adf3ccfd74 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -195,7 +195,7 @@ (define* (racket-vm-for-system #:optional racket-vm-cs racket-vm-bc)) -(define %racket-version "8.4") ; Remember to update chez-scheme-for-racket! +(define %racket-version "8.5") ; Remember to update chez-scheme-for-racket! (define %racket-commit (string-append "v" %racket-version)) (define %racket-origin @@ -205,11 +205,9 @@ (define %racket-origin (url "https://github.com/racket/racket") (commit %racket-commit))) (sha256 - (base32 "1vpl66gdgc8rnldmn8rmb7ar9l057jqjvgpfn29k57i3c5skr8s6")) + (base32 "0f9zyhdvbh4xsndrqjzl85j5ziz0rmqi676g9s1lw3h3skq2636h")) (file-name (git-file-name "racket" %racket-version)) - (patches (search-patches "racket-minimal-sh-via-rktio.patch" - ;; Remove by Racket 8.5: - "racket-enable-scheme-backport.patch")) + (patches (search-patches "racket-minimal-sh-via-rktio.patch")) (modules '((guix build utils))) (snippet #~(begin @@ -248,8 +246,6 @@ (define (racket-vm-common-configure-flags) ,(string-append "CPPFLAGS=-DGUIX_RKTIO_PATCH_BIN_SH=" #$(file-append bash-minimal "/bin/sh")) "--disable-strip" - ;; XXX: origtree layout is required by some other packages down the - ;; bootstrap chain. Remove these flags as soon as we can do without them. "--enable-origtree" ,(string-append "--prefix=" #$output "/opt/racket-vm"))) @@ -442,17 +438,18 @@ (define (racket-packages-origin name origin specs) #$name))) specs))))) -(define (simple-racket-origin repo hash specs) +(define* (simple-racket-origin repo hash specs #:key (commit %racket-commit)) "Like 'racket-packages-origin', but specialized for packages hosted at \"https://github.com/racket/REPO\" with sha256 checksum HASH. REPO is also -used to build the name of the resulting store item." +used to build the name of the resulting store item. If COMMIT is given, it is +used instead of %RACKET-COMMIT." (racket-packages-origin repo (origin (method git-fetch) (uri (git-reference (url (format #f "https://github.com/racket/~a" repo)) - (commit %racket-commit))) + (commit commit))) (sha256 hash) (file-name (git-file-name (string-append "racket-" repo) %racket-version))) @@ -589,7 +586,7 @@ (define-public racket racket-minimal ;; <-- TODO non-tethered layer (racket-vm-for-system) (simple-racket-origin - "2d" (base32 "1zzcz5qyjv7syi41vb8jkxjp1rqgj61zbsdrg0nlc4qy9qsafzgr") + "2d" (base32 "0fb5v6058ls08xw3zbmqyr2ym0psm119gl9ffgmhm9w8rs9i4dq7") '("2d" "2d-doc" "2d-lib")) (simple-racket-origin "algol60" (base32 "09kj6asypmc24n29w0izc9p0q8hpga2hpkchsypfwn5c8zpvihlx") @@ -622,22 +619,22 @@ (define-public racket "data" (base32 "10iabgrk9alaggvksnyb0hdq7f1p30pq6pq2bcakvhzpxwiv1f55") '("data" "data-doc" "data-enumerate-lib" "data-lib")) (simple-racket-origin - "datalog" (base32 "0n5j5gnqh7g31mvgx19ggl18hirzbvq2r189lbngmnrmbc7b73fp") + "datalog" (base32 "0nf6cy4djpyhfvgpa6yn72apbz9s83gp0qg95pzjd0az4v6qwq1s") '(("datalog" "."))) (simple-racket-origin "db" (base32 "1n02ja0yj3mjjhmz0yv04yfhyvrsznbljn8bjviyfxnm4xf9rcc5") '("db" "db-doc" "db-lib")) (simple-racket-origin - "deinprogramm" (base32 "1is6fapgv6rxfjz47nh6qf3kh7y7sjdinakaxqffi46gf1al8prd") + "deinprogramm" (base32 "0g8flr1qg3bcyhdinqhs4w7dyisaqyailbxrjgd2a7zlqmdyicfr") '("deinprogramm" "deinprogramm-signature")) (simple-racket-origin "distributed-places" (base32 "1dajpkj9balqcpv6cdk9hwjz592h1vq8rrx5vncariiac4vbdpa0") '("distributed-places" "distributed-places-doc" "distributed-places-lib")) (simple-racket-origin - "draw" (base32 "1xgjfbh70hqw67z88iqqajg98d04qwbzn6im2wj47rs28jxlm9ly") + "draw" (base32 "1fpk85rs2crd63bxnmwj2pysisd62pxcqaip01si67dv1ri8ff92") '("draw" "draw-doc" "draw-lib")) (simple-racket-origin - "drracket" (base32 "0m3l4an3nq2ycd1h287s1az2v2zprjbzd8if2x7d5r71vaj4i00c") + "drracket" (base32 "0dipnz92c63zxys9z1kl5215rm7arc35g9r8bs8ivp96p75mljnz") '("drracket" "drracket-plugin-lib" "drracket-tool" @@ -657,7 +654,7 @@ (define-public racket "errortrace" (base32 "14m7rhaxngj36070iw15am434hm438pfgmwjfsiqhsglz4pcxhip") '("errortrace" "errortrace-doc" "errortrace-lib")) (simple-racket-origin - "expeditor" (base32 "07djzxs6307l51mcsk3yr2g4g47ayxa3878g7sf5xhqdr4hd9vxf") + "expeditor" (base32 "0mjfwb4wzwsg5xj3k6cmik0va432n56rp5h7rxx1c2yy3prh1j7q") '("expeditor" "expeditor-doc" "expeditor-lib")) (simple-racket-origin "frtime" (base32 "0ydz2yn8vvv6z7brwlswcyx0f31a6y6d443i89rysfvd2xkhpfd5") @@ -670,25 +667,14 @@ (define-public racket (simple-racket-origin "games" (base32 "0kpn3izlx1ccd0pj0dnvmnrhny51b85xy418a7psj70lz8j8415d") '(("games" "."))) - (racket-packages-origin - "gui" (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/racket/gui") - (commit %racket-commit))) - (sha256 (base32 - "1x33jgrx3r32k7hgwr591z3xqv1m2r5nc4km2fnxv0ak2xa0j3gj")) - (patches - ;; remove in Racket 8.5 - ;; see https://github.com/racket/racket/issues/4133 - (search-patches "racket-gui-tethered-launcher-backport.patch")) - (file-name (git-file-name "racket-gui" %racket-version))) + (simple-racket-origin + "gui" (base32 "0hqryw3md67j5z4d6bv5qx75w8z1vjxfixabf2xq9bj6k43yzzmi") '("gui" "gui-doc" "gui-lib" "tex-table")) (simple-racket-origin "gui-pkg-manager" (base32 "1ji9448d723nklqvycwdswj0ni28sabrncag14f9mx47did5myb5") '("gui-pkg-manager-lib")) (simple-racket-origin - "htdp" (base32 "0r4ykybcpr10y2db9rlza9pr0xh58nd7ac389mjcxp8g386hgihl") + "htdp" (base32 "199qchdq6db6m2n4j861hiy4nxd6hg1qva16lhhdbfj274qmcplg") '("htdp" "htdp-doc" "htdp-lib")) (simple-racket-origin "html" (base32 "18n1jnjgzfknc8nv8dppi85nb8q08gqdwkg6hfjk08x0p00anx2x") @@ -756,7 +742,7 @@ (define-public racket "pconvert" (base32 "00czi0p399mmyrvxyrs5kniizpkqfxyz2ncxqi2jy79a7wk79pb1") '("pconvert-lib")) (simple-racket-origin - "pict" (base32 "0g1iwdr6qh1xb0crhj96830vjjnbds409xbpqn7j5sh0ksy6vr5x") + "pict" (base32 "0v7a3l77swsbh80mnb9rakdwgw7s66ji0mall7qcqfwyg1b4zmlv") '("pict" "pict-doc" "pict-lib")) (simple-racket-origin "pict-snip" (base32 "081nwiy4a0n4f7xws16hqbhf0j3kz5alizndi3nnyr3chm4kng6x") @@ -771,7 +757,7 @@ (define-public racket "planet" (base32 "0r2yqrzrmdjjyr14k6hhlzc5kzrcx3583m1s02mhrcmpfw0s85w9") '("planet" "planet-doc" "planet-lib")) (simple-racket-origin - "plot" (base32 "07kq32si34ybcwz8idxxcrzssg8diyrp1nfgkcj0mmvr45321zm7") + "plot" (base32 "04871pspbm0q3bz5896sa3jw2rp9i6jf0b5aivrxfp56vxxd2ybb") '("plot" "plot-compat" "plot-doc" "plot-gui-lib" "plot-lib")) (simple-racket-origin "preprocessor" (base32 "1p5aid58ifnjy4xl0ysh85cq39k25661v975jrpk182z3k5621mg") @@ -786,7 +772,7 @@ (define-public racket (url "https://github.com/Metaxal/quickscript") (commit %racket-commit))) (sha256 (base32 - "100g3yqhbjdq06b6l6d72ywsw29awgy8crqg33wj7h12xq07nzcr")) + "00sf5nw09aacd0l4a4cknnffvcs95p596im3blsdvfz5ck6jdwl8")) (file-name (git-file-name "Metaxal-quickscript" %racket-version))) '(("quickscript" "."))) (simple-racket-origin @@ -807,10 +793,10 @@ (define-public racket (git-file-name "jeapostrophe-racket-cheat" %racket-version))) '(("racket-cheat" "."))) (simple-racket-origin - "racklog" (base32 "1rgrvwy3kr9b9w5cghsffiv3ly00yfvvzr5xaaw83g1w7yin0mnb") + "racklog" (base32 "0fbq0fpfb3l6h7h772dvkmlzlk2dnq5f8296xx1qxhhwypibqzr9") '(("racklog" "."))) (simple-racket-origin - "rackunit" (base32 "057z31rja6h3nabh5b2xgwfrzmlm6h1cv1qcgf3xfy4g2q5dqn5p") + "rackunit" (base32 "0vfwcddzrgrdv5awjka7m0jzqhqvfc5wlkih83a670y96496a83n") '("rackunit" "rackunit-doc" "rackunit-gui" @@ -826,7 +812,7 @@ (define-public racket "realm" (base32 "0hxcgla08iack54j8v40fj51811chpy66ym2zq76zb52c7kzn0hi") '(("realm" "."))) (simple-racket-origin - "redex" (base32 "0vlgxbnbgrlihk1hh5zd6hsc4566ldi4q76f87z5vai54dxkwy2f") + "redex" (base32 "0a1fl5s80k3j3xh3lri8886ql443m7pmgv18y7whzlmsd7x8rdpr") '("redex" "redex-benchmark" "redex-doc" @@ -841,7 +827,7 @@ (define-public racket "scheme-lib" (base32 "0pcf0y8rp4qyjhaz5ww5sr5diq0wpcdfrrnask7zapyklzx1jx8x") '(("scheme-lib" "."))) (simple-racket-origin - "scribble" (base32 "0rgvnsykrxkah6s5fw1vyp9lxsb4z9w6hgwk5j6wbwjp2gsfczbm") + "scribble" (base32 "0fbb7xgz95y90247hfc1a19v7ry8m6blvv4y8irdgzhjvik70zb3") '("scribble" "scribble-doc" "scribble-html-lib" @@ -873,35 +859,24 @@ (define-public racket "snip" (base32 "01r9wc5xr3q3n4yyif6j0a37rgdzmpslxn05k13ksik73b3wj6hj") '("snip" "snip-lib")) (simple-racket-origin - "typed-racket" (base32 "1462kj9yswsxbnw71casylzlvhd7cxrml2v9j7rcsnn9hmrqx4vv") + "typed-racket" (base32 "05xlyjrx3m8xrrrw1xmfb1807qa5aqfl0zp9bdxwh2z7cfxaii09") '("source-syntax" "typed-racket" "typed-racket-compatibility" "typed-racket-doc" "typed-racket-lib" "typed-racket-more")) - (racket-packages-origin - "srfi" (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/racket/srfi") - ;; Includes an FSDG fix: return to %racket-commit in 8.5. - ;; See . - (commit "7243029b135741ce08ae30f877e2f49a2a460b22"))) - (sha256 (base32 - "0aqbcdv2dfc2xnk0h6zfi56p7bpwqji8s88qds3d03hhh9k28gvn")) - ;; Use the relevant version for srfi-doc and srfi-lib, - ;; since we're using a newer commit than the v8.4 tag. - (file-name (git-file-name "racket-srfi" "1.1"))) + (simple-racket-origin + "srfi" (base32 "0aqbcdv2dfc2xnk0h6zfi56p7bpwqji8s88qds3d03hhh9k28gvn") '("srfi" "srfi-doc" "srfi-lib" "srfi-lite-lib")) (simple-racket-origin - "string-constants" (base32 "1qizjq4n0hzdgdcjjpr94464gsywpsk2g9mnvwzqr7dcqbrsfvn6") + "string-constants" (base32 "1rjs0gyw9hsiglwxnimz272v9xj1gwjxrnzh4qbsxkvdaphvi38m") '("string-constants" "string-constants-doc" "string-constants-lib")) (simple-racket-origin "swindle" (base32 "164gdsphjzdl2vv7zxz7dfk9jwax8njpmim6sidm8qz8a8589y67") '(("swindle" "."))) (simple-racket-origin - "syntax-color" (base32 "1vf2fc3qvx8a1igi7swsg8gaqhx786sa0vqxd18xhbsidfgb5ywp") + "syntax-color" (base32 "1xf3rl8687c1nar4kkgkvyncwi0gl696rif0iqhffg730fk457gi") '("syntax-color" "syntax-color-doc" "syntax-color-lib")) (simple-racket-origin "trace" (base32 "070ihla5j796hdarn5wxdwn4xj0xnkm50shgh49jy994mribvhia") @@ -910,13 +885,13 @@ (define-public racket "unix-socket" (base32 "02dfwas5ynbpyz74w9kwb4wgb37y5wys7svrlmir8k0n9ph9vq0y") '("unix-socket" "unix-socket-doc" "unix-socket-lib")) (simple-racket-origin - "web-server" (base32 "1zgb6jl7zx6258ljs8f3lvryrq5n5zpd71dqzr698m92kw3x2pkn") + "web-server" (base32 "1g4x79ym3mgxv4f3z3z84j12355pf44pjlzlb7f0h6r0i7p0cbjd") '("web-server" "web-server-doc" "web-server-lib")) (simple-racket-origin "wxme" (base32 "1qp5gr9gqsakiq3alw6m4yyv5vw4i3hp4y4nhq8vl2nkjmirvn0b") '("wxme" "wxme-lib")) (simple-racket-origin - "xrepl" (base32 "12zjgsy5zqm3fck3ihg4a70wj56s2cnnjyb4jlfi5nnsfqyrnxg3") + "xrepl" (base32 "19svg0jfs656bld5ikqipz3a5szk5k02zq5fh43209qw527dnfbk") '("xrepl" "xrepl-doc" "xrepl-lib")))) (build-system gnu-build-system) (arguments -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue May 03 14:34:41 2022 Received: (at 55248) by debbugs.gnu.org; 3 May 2022 18:34:41 +0000 Received: from localhost ([127.0.0.1]:41042 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxM9-0002lQ-5c for submit@debbugs.gnu.org; Tue, 03 May 2022 14:34:41 -0400 Received: from mail-vs1-f42.google.com ([209.85.217.42]:36607) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxM1-0002ko-T9 for 55248@debbugs.gnu.org; Tue, 03 May 2022 14:34:34 -0400 Received: by mail-vs1-f42.google.com with SMTP id a127so17318198vsa.3 for <55248@debbugs.gnu.org>; Tue, 03 May 2022 11:34:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BC5GQY0TXltZBMOkoXODUxQlNsYii5czqkkZnBMyZ8A=; b=So01hS0avRQyq5BR0bZJHikyiz3xrEh5Om5n8810uteBCKnot9WSJhkfZdxB9OcUf4 gNxQ34KwfiYPvufbKeA0jwOKyGBo0qPQq2baymfh3CRB+Cpc+8FPFYka1tLHT9YkQ2L8 CsVl9fwJVohWO//fz5lXU5nPC5es1rVLxf/3JzL+lDVh1+ZOM7HXsyKZl3Zcs6vVXxIL tBIlNYSFcVILgfFuvzqHk404M8m5SXs+O0iDVMwCzXisrxnuXa9CwASP1ZXIYpir475m yJFRey4it5A14i1gI0zdUXM2RcG0EZboJTzSob+6y1YPPj20f0UVlUWvpOmC1aO/98e9 ErgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=BC5GQY0TXltZBMOkoXODUxQlNsYii5czqkkZnBMyZ8A=; b=empu5H/a4LaCQUFaJ2oC0TCVXdZ5Coprd6PPAn6BkjjWse41bBafqUD4Apj2DiJOna XTcWFsBpr0U2YC8vhrw0B/JshgjqPq182YdXt+0B3HA/EI+JIwxhXbjI5axdtRKn77lC 6JsSNcNLp8tJ/zu76J7i1Iu1xX8VhkHqfSgskoJHXCZaELfwDA7t73fB3/3s//IcVRu0 /B48pgsFPNktEUGcKrI6C7/EYPh0NFq/OnNBYjYANxt4vug1xreVhtDwwZEvbT5RyLbn rMayZgW/3OFJ4ZNfhLT6D9vlteSfz6YpVgMUG2uldmEy1lvqB11Z08eQvrZ3fNyJtDcs ZQVA== X-Gm-Message-State: AOAM53038+P2uHcZPnrEj6uDQgbGRBBXl2gc362YVzjTlNtz6+FAOUlF zCl1AIvsGahBpI61/x1inLiH+VhZXqCG7qqv X-Google-Smtp-Source: ABdhPJxI4SER/0TzrJzO6yfod5+AK6RQm16XhiTNOt4h3vjFt+0kuXGeV/0ZvqK3VSIGbNpZtHyNeA== X-Received: by 2002:a67:be0b:0:b0:32c:d82f:6723 with SMTP id x11-20020a67be0b000000b0032cd82f6723mr5825286vsq.67.1651602868262; Tue, 03 May 2022 11:34:28 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id x19-20020ab035d3000000b003626f894df6sm3078916uat.36.2022.05.03.11.34.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 03 May 2022 11:34:28 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH 2/7] gnu: racket: Fix out-of-source build. Date: Tue, 3 May 2022 14:33:41 -0400 Message-Id: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 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: -0.4 (/) * gnu/packages/racket.scm (racket-vm-cgc)[arguments]: Add a 'symlink-src' phase to put license files where 'install-license-files' expects to find them. Supply '#:out-of-source? #t'. --- gnu/packages/racket.scm | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index adf3ccfd74..2f4f7cebd8 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -272,8 +272,8 @@ (define-public racket-vm-cgc ;; main-distribution-test that aren't part of the main ;; distribution. #:tests? #f - ;; Upstream recommends #:out-of-source?, and it does - ;; help with debugging, but it confuses `install-license-files`. + ;; Upstream recommends #:out-of-source?, and helps a lot with debugging + #:out-of-source? #t #:modules '((ice-9 match) (ice-9 regex) (guix build gnu-build-system) @@ -310,7 +310,15 @@ (define-public racket-vm-cgc #f))))))) (add-before 'configure 'chdir (lambda _ - (chdir "racket/src")))))) + (chdir "racket/src"))) + (add-after 'chdir 'symlink-src + ;; workaround for install-license-files + (lambda* (#:key out-of-source? #:allow-other-keys) + (when out-of-source? + (with-directory-excursion ".." + (symlink "src" + (package-name->name+version + (strip-store-file-name #$output)))))))))) (home-page "https://racket-lang.org") (synopsis "Old Racket implementation used for bootstrapping") (description "This variant of the Racket BC (``before Chez'' or -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue May 03 14:34:41 2022 Received: (at 55248) by debbugs.gnu.org; 3 May 2022 18:34:41 +0000 Received: from localhost ([127.0.0.1]:41044 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxM9-0002lY-Fh for submit@debbugs.gnu.org; Tue, 03 May 2022 14:34:41 -0400 Received: from mail-vk1-f172.google.com ([209.85.221.172]:33430) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxM5-0002kz-Mj for 55248@debbugs.gnu.org; Tue, 03 May 2022 14:34:37 -0400 Received: by mail-vk1-f172.google.com with SMTP id d132so8393253vke.0 for <55248@debbugs.gnu.org>; Tue, 03 May 2022 11:34:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SoPwsTzFr3RsITacAPdKN4iMp4D84nS8dHvfGdkjL90=; b=E25NAA1XlxEV/CNOkOqJKY6cN+TbQAEwRHuN9bX8fRalsCWtx6eWbfUVBSslT0DWor EqZkBOPuZL9GwiNQ6A0KtS5pZtusBVJ+zZSuWPU1lD6lgjgIYdPgD/AcQDJBDhEnpw0N KrWxpI/JDxEw5hzU5T3Xt+6ShsPkzIEieyPyhkNuQRybEVV33lbDbFSGdj8SFADrzF1R +Y5hRkbsAd+4ks7b8yeLA8lcPc/frmhF+6aP7lZOD55gATuZfmtzFaXb5WYaHRwJ9gp+ Mn1KNjDSqL2cgV8uUFo32VetbAnIip9cWeRxRQg2+LMiCfkzsQgcxaTM6oC2kNLQiBmF gUng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=SoPwsTzFr3RsITacAPdKN4iMp4D84nS8dHvfGdkjL90=; b=T5qtc43sKXUeAj0isnHGykz4BnnME01pxPavTjtyjAbA1Poeqnct0UEopIfSN+w78t n7H6JrJyu1iYh1OVLYr2hW38/DJLe5MRdvSCOxZhDay7t93IXOXQ769eWuZdBazpcD11 zxBqdNb9d7R9TWFgChJOjzGP0/MQJdqQNn+1HLT3Zl4de4ZTW6o8Snro4pkQxCqjXKJz qcsfLgoOHinC0wavVe0R0uLa8GVGHYgAozjsSlVGssQjh1mnNB8rPa4heW6C9cQAnY3j JNClyF+wLjzGreYp8FqMyl7vTCW0UTEAAY0QTNk3QE6bi0YThVZjr7UHuZNVSTJeozcm 72vQ== X-Gm-Message-State: AOAM533QMpf+4HJp/gtLBOPBYiA7IoR0yodBVFwzWsWHU6xg5ZW3Mywz zsA/7Uc/AfIAgQ6Txkq3K09F54CLB6NG7k8n X-Google-Smtp-Source: ABdhPJwQdeUqGfyNaz/BiXKyZqz7GCdI6YPpevOHnTakSUkQ/pHh/i2RhDsgKPB4zvRdaihFUHDeag== X-Received: by 2002:a1f:ce46:0:b0:34e:b018:c8a4 with SMTP id e67-20020a1fce46000000b0034eb018c8a4mr3560937vkg.26.1651602872096; Tue, 03 May 2022 11:34:32 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id x19-20020ab035d3000000b003626f894df6sm3078939uat.36.2022.05.03.11.34.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 03 May 2022 11:34:31 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH 3/7] gnu: chez-scheme: Update to 9.5.8. Date: Tue, 3 May 2022 14:33:42 -0400 Message-Id: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 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: -0.4 (/) * gnu/packages/chez.scm (chez-scheme): Update to 9.5.8. --- 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 a7f75a731a..34545b1f58 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -210,7 +210,7 @@ (define-public chez-scheme (name "chez-scheme") ;; The version should match `(scheme-version-number)`. ;; See s/cmacros.ss c. line 360. - (version "9.5.6") + (version "9.5.8") (source (origin (method git-fetch) (uri (git-reference @@ -218,7 +218,7 @@ (define-public chez-scheme (commit (string-append "v" version)))) (sha256 (base32 - "07s433hn1z2slfc026sidrpzxv3a8narcd40qqr1xrpb9012xdky")) + "0xchqq8cm0ka5wgpn18sjs0hh15rc3nb7xrjqbbc9al3asq0d7gc")) (file-name (git-file-name name version)) (snippet #~(begin (use-modules (guix build utils)) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue May 03 14:34:44 2022 Received: (at 55248) by debbugs.gnu.org; 3 May 2022 18:34:44 +0000 Received: from localhost ([127.0.0.1]:41047 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxMB-0002lr-Nd for submit@debbugs.gnu.org; Tue, 03 May 2022 14:34:44 -0400 Received: from mail-vk1-f176.google.com ([209.85.221.176]:46062) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxM9-0002lA-I3 for 55248@debbugs.gnu.org; Tue, 03 May 2022 14:34:41 -0400 Received: by mail-vk1-f176.google.com with SMTP id bc42so8356140vkb.12 for <55248@debbugs.gnu.org>; Tue, 03 May 2022 11:34:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=AocubqIwjg+N51Lf+GXtSQCjnp1BqIMKG2MA699sy1g=; b=E8Er5O44vyNg4kdZOTBKoxnWF3CHiuD6OZlarV5GTanDBid7Zu19rUK7eenIKbsSGT /kV44PnPTeaVgdhSzl393Trc20E4+6l/ibP5C8Kiaix5BSxWJc9M+JdshtR4/tXSB5C2 7/pICw75DkyH6TDJY1Wo33dhzgUubdkuxqQFCGlpiP6c9yBbaKIZIHRriQbhSCBXhx7J okY1X93SkbGqSCuqjZLgsf8tM4L7axvy3LvBexc1/q4XI1IoMqr9TY9oJoEqfzGtbwoc IFtACoJMQB9mp0QQg+rKMuzck6QM8jofTt4yOr3q910MyFK2fwpGjlwwE2QHO3nSE1ri 1OcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=AocubqIwjg+N51Lf+GXtSQCjnp1BqIMKG2MA699sy1g=; b=sd/O2PVA5jZeUkNh3FrKAVaAVNpnXa9AtCZ1Z6RStKF7aZer5j/CjXfRgUwdLv533j 407Jx6R4YMkPppghgjS1xMpEY2flDHtjEvgj/6yh8sjXwxwfSX0T7DQqk2uQuSHL69jO xLOVsY5IhCoP77xafH5oEHqzIcvaoibRjBP8HwzJK6q5kEptyfl8p6YJM68cZW2NYEEo YVGdGwEqc06TT1PyclE0i2BjXjVpjp1IMV9cGg+0E3PSCMKeNj7dRDlqnh/AqEtlq3cw 2m2q52wNacWw05FXzH1FE1OrHg5eUEFtv7BYHahhPai5nZGYe5VwTovaYQHr4+/poPpG 8dYA== X-Gm-Message-State: AOAM5338TDwZq8pSbE/mVGUjtwgMsjbJPMam1++wckYVJ7Ee85rW1mzu lSCdOmO3nRVi0782+oT8ONtvEayrdNYtYO1k X-Google-Smtp-Source: ABdhPJz9VEDqyYSeaezcTUWgNYLb6DXCwt5zol9EQX7CrZks+pPN55ypCQ685vwUDZMYY3NaRvp9aw== X-Received: by 2002:a1f:28d8:0:b0:349:6247:e614 with SMTP id o207-20020a1f28d8000000b003496247e614mr5428587vko.38.1651602875928; Tue, 03 May 2022 11:34:35 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id 11-20020a05612202ab00b0034e6f1fd067sm1333750vkq.49.2022.05.03.11.34.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 03 May 2022 11:34:35 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH 4/7] gnu: chez-scheme: Refactor documentation phases. Date: Tue, 3 May 2022 14:33:43 -0400 Message-Id: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 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: -0.4 (/) Patches merged in Racket's variant of Chez Scheme and submitted to the upstream variant will soon let us replace the 'install-docs' phase with just 'make install-docs'. Separating the 'link-doc-pdfs' phase (which won't change) leaves us well-prepared for the transition, regardless of whether Chez Scheme 9.5.10 or Racket 8.6 is released first. * gnu/packages/chez.scm (chez-scheme)[arguments]: Split 'install-doc' phase into 'install-docs' (matching the future 'make' target) and 'link-doc-pdfs'. --- gnu/packages/chez.scm | 64 ++++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 34545b1f58..49051abd17 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -309,35 +309,43 @@ (define-public chez-scheme (string-append (dirname scheme.boot) "/chez-scheme.boot"))))))) ;; Building the documentation requires stex and a running scheme. - ;; FIXME: this is probably wrong for cross-compilation - (add-after 'install-symlink 'install-doc + (add-after 'install-symlink 'install-docs (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) - (match (assoc-ref outputs "doc") - (#f - (format #t "not installing docs~%")) - (doc-prefix - (let* ((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")) - (with-directory-excursion doc-dir - (symlink "release_notes/release_notes.pdf" - "release_notes.pdf") - (symlink "csug/csug9_5.pdf" - "csug.pdf")))))))))) + (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"))))))))) ;; Chez Scheme does not have a MIPS backend. ;; FIXME: Debian backports patches to get armhf working. ;; We should too. It is the Chez machine type arm32le -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue May 03 14:34:47 2022 Received: (at 55248) by debbugs.gnu.org; 3 May 2022 18:34:47 +0000 Received: from localhost ([127.0.0.1]:41050 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxMF-0002m8-2Y for submit@debbugs.gnu.org; Tue, 03 May 2022 14:34:47 -0400 Received: from mail-vk1-f169.google.com ([209.85.221.169]:35804) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxMD-0002lO-Ed for 55248@debbugs.gnu.org; Tue, 03 May 2022 14:34:45 -0400 Received: by mail-vk1-f169.google.com with SMTP id e7so8365940vkh.2 for <55248@debbugs.gnu.org>; Tue, 03 May 2022 11:34:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6MUQea/akqiJw65v5UB+PXZnpK7I+lS4QjauOZJ1fUE=; b=ZUQEq/o+IhLYs03j6ZjJbrIs7ms2A2hhip0CD0cJ/Za0NlQoRar+pr1m4d6UOI0eqG lTSZEcQdROaoRzDMiglkAN8hn0N5tEiz0fwczH/8wQj9R+79MngqTM9eyVXcIPtOlFwY L0nqtAjIh1CWUL5huUgPFdR0j4mDZz8wqRlUnN561uKJKxr9hhnWW+cBN/H2rpdFDIqs B0EwpmCPSUJH5oHFA4bQolpmfPQIGRCfsw4kuylmHjWzyGqDkl4zym6I95foVD6oAoF6 K4Oo/h+uoRFbNkvjWk1dzedkSIh1a5j4HqYVu3tl1M63a8xJ2JH3cOGAY6IDt4YXaD5q IqxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6MUQea/akqiJw65v5UB+PXZnpK7I+lS4QjauOZJ1fUE=; b=FDkIW9Max/6wOC1XIWr2Z0iHaxE6h8f7xMpeLXLgbxbrt1CZG/j/TYGc5V3Wu7+1Nj LDvDkYE4LO9gOsHCxyROvuk51QhU9SU/jtthooYMT4fzDOIOCgl0JPBYho2w9K/cM6Zg scrJxL1OJUuLIIKFpeu/zXpyQipLbtrFDtzBsUpY854uFECpMkCvmkrb3bCz68QRcIP2 ARBeCD7XoRTo7KGLD6OtYhdablDXHIG7+QDfbbQo/uCwAmmHNzjUWAaQtopQ9LqhhLfm f2y4swgU8RrVoZWV/XTssd9613a1yIXH5J8Nq29I7TT5Nu7WjIz+2Dt7lV+Ub6CkmTtg Uqaw== X-Gm-Message-State: AOAM533vHeyZ4j8LAWisqL7ECvzQHqWpICjp0nshkLGDHnPiXOP7KEHt GbE6WGlTxV1q7dONI9eGnXNoeyn753NtvC2G X-Google-Smtp-Source: ABdhPJw842Xmefjg6Pr516BmHvil7QMQAJbbyTK+Hkj4vHeiVJkDZb6CCalKioObVlmx7pHptle2+Q== X-Received: by 2002:ac5:cdd1:0:b0:34d:2e78:2482 with SMTP id u17-20020ac5cdd1000000b0034d2e782482mr5079732vkn.15.1651602879812; Tue, 03 May 2022 11:34:39 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id r28-20020a05612206bc00b0034e6f1fd064sm1362437vkq.46.2022.05.03.11.34.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 03 May 2022 11:34:39 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH 5/7] gnu: chez-scheme: Refactor configure phase and fix '--threads'. Date: Tue, 3 May 2022 14:33:44 -0400 Message-Id: <9e681352e108ec1464b3f35beb04f6d338450009.1651594312.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 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: -0.4 (/) Move Chez-specific logic into '#:configure-flags' and a new 'configure-environment-variables' phase, leaving the 'configure' phase as just a variant of the one from 'gnu-build-system' (including support for '#:out-of-source?') that doesn't add implicit Autoconf-style flags. In the process, do the right thing for "--threads", rather than assuming the only nonthreaded platform is broken. * gnu/packages/chez.scm (chez-scheme)[arguments]: Set configure flags in '#:configure-flags' and separate 'configure-environment-variables' from the residual 'configure' phase. More closely follow 'gnu-build-system'. Use 'chez-upstream-features-for-system' for "--threads". (chez-scheme-for-racket)[arguments]<#:configure-flags>: Add "--threads" unconditionally. --- gnu/packages/chez.scm | 63 ++++++++++++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 49051abd17..785b6837c1 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -258,8 +258,18 @@ (define-public chez-scheme (ice-9 ftw) (ice-9 match)) #:test-target "test" - ;; TODO when we fix armhf, it may not support --threads - #:configure-flags #~'("--threads") + #: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 @@ -273,26 +283,35 @@ (define-public chez-scheme (search-input-directory (or native-inputs inputs) "lib/chez-scheme-bootfiles") "boot"))) - ;; NOTE: the custom Chez 'configure' script doesn't allow + ;; NOTE: The custom Chez 'configure' script doesn't allow ;; unrecognized flags, such as those automatically added - ;; by `gnu-build-system`. + ;; by `gnu-build-system`. This replacement phase uses only + ;; the explicitly provided `#:configure-flags`. (replace 'configure - (lambda* (#:key inputs (configure-flags '()) #:allow-other-keys) - ;; add flags which are always required: - (let ((flags (cons* (string-append "--installprefix=" #$output) - "ZLIB=-lz" - "LZ4=-llz4" - "--libkernel" - ;; Guix will do compress-man-pages, - ;; and letting Chez try causes an error - "--nogzip-man-pages" - configure-flags))) - (format #t "configure flags: ~s~%" flags) - ;; Some makefiles (for tests) don't seem to propagate CC - ;; properly, so we take it out of their hands: - (setenv "CC" #$(cc-for-target)) - (setenv "HOME" "/tmp") - (apply invoke "./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) + (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. @@ -385,7 +404,9 @@ (define-public chez-scheme-for-racket (arguments (substitute-keyword-arguments (package-arguments chez-scheme) ((#:configure-flags cfg-flags #~'()) - #~(cons "--disable-x11" #$cfg-flags)) + #~(cons* "--disable-x11" + "--threads" ;; ok to potentially duplicate + #$cfg-flags)) ((#:phases those-phases #~%standard-phases) #~(let* ((those-phases #$those-phases) (unpack (assoc-ref those-phases 'unpack))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue May 03 14:34:50 2022 Received: (at 55248) by debbugs.gnu.org; 3 May 2022 18:34:50 +0000 Received: from localhost ([127.0.0.1]:41053 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxMI-0002mS-GY for submit@debbugs.gnu.org; Tue, 03 May 2022 14:34:50 -0400 Received: from mail-vs1-f45.google.com ([209.85.217.45]:42722) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxMH-0002ls-6Y for 55248@debbugs.gnu.org; Tue, 03 May 2022 14:34:49 -0400 Received: by mail-vs1-f45.google.com with SMTP id i186so17282141vsc.9 for <55248@debbugs.gnu.org>; Tue, 03 May 2022 11:34:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Qjy7GoVY+8fdHFIxYvj8l085ymqiF47iTCDIlBChsm0=; b=QcX0MI2RjEYBZqe11mhaaeYKABS+nVlRBRtGzOY0CkFfk/eHxiPlCeenOcbvhuNFvw C7vpH4Bga2XheD4K0FxPbIkq9XrafIhRM5CwpYEm1tyyKKDJp91bTmiz7Aey3bAkcrJ5 kZ/zrnLsxNuXkRIcIsz+TRATsD78dJsJ9O9G95IcdiKz8nujYnY18lxXlwLzkbDjyext Mih2T1kh6opeHaDcqmEO8r3JvI88W3mn7bpinhDqsb8XH4MiTfWroRNgly86woluNSWn V1OrJBohSKPQxXSFnZdrkXquyjkK94s/G4onK7KK+4Ks+xiWDTGXJ0mpXnaeeOMQdrP4 zXuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Qjy7GoVY+8fdHFIxYvj8l085ymqiF47iTCDIlBChsm0=; b=ORNpH7eT2KQPwf+CYIEYYA5rSuAZ9VyrTjkVqObwTSXRC1fM+XW/GoPJdq2M+QeaWE Lhiyu3Kis+3jn4ioXXQ+tzZDdXH30rnHc05yYih9XDp7BdbNczTEN2J5ByztUDxiyGhU kRCMKtkXvTnyx98a/VUYstW6Qe1y/f7ecH69Iqn+e6LSFtD8zjPkDqaYVYG/TPezJmS8 atL27vX1/tSPIa4AYIZgGmjkn7oUEQ7DbYsBJaJvd85vqRdAPMqg5WlljlOXp8H/V+KZ /xONAuAx8H+gPbfFtz7JUJsgBbNCyW5z72j9lDrhqUwQo3yHitUU2xGP33LJ5C5SMnNY cVWQ== X-Gm-Message-State: AOAM531/FivDC7Y4kob8pPOfTCpKXiTnWiiuZcuo+GeCfduWV3ravJtZ PDF2brNKPO5meY4suBrh/4zwN6yGY54Lrr7a X-Google-Smtp-Source: ABdhPJwnrDEuZKnd5BBsBApAFt4X8px7CHqd3x7yL6ZdMvuAohDV/FIxaRH7wnb/uVXxMNoJEykHrg== X-Received: by 2002:a67:e217:0:b0:32c:c30f:e9b0 with SMTP id g23-20020a67e217000000b0032cc30fe9b0mr4984834vsa.26.1651602883684; Tue, 03 May 2022 11:34:43 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id w1-20020ab07281000000b003626f894dfasm3823144uao.40.2022.05.03.11.34.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 03 May 2022 11:34:43 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH 6/7] gnu: stex: Get machine type dynamically. Date: Tue, 3 May 2022 14:33:45 -0400 Message-Id: <5375de56eda0ee7c218ddf48da61ea600c0d2589.1651594312.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 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: -0.4 (/) * gnu/packages/chez.scm (stex)[arguments]: Run 'scheme' to determine the machine type. --- gnu/packages/chez.scm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 785b6837c1..ea53cf5774 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -602,6 +602,10 @@ (define-public stex-bootstrap ("src" "lib/stex/") ("Mf-stex" "lib/stex/") ("Makefile.template" "lib/stex/")) + #:modules + '((guix build copy-build-system) + (guix build utils) + (ice-9 popen)) #:phases #~(modify-phases %standard-phases (add-before 'install 'patch-sources @@ -633,8 +637,12 @@ (define-public stex-bootstrap (define makefile (string-append (getcwd) "/Makefile")) (define machine - #$(and=> (nix-system->chez-machine) - chez-machine->threaded)) + (let ((pipe (open-pipe* OPEN_BOTH scheme "-q"))) + (write '(machine-type) pipe) + (force-output pipe) + (let ((sym (read pipe))) + (close-pipe pipe) + (symbol->string sym)))) (with-directory-excursion (search-input-directory outputs "/lib/stex") (invoke "make" -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue May 03 14:34:59 2022 Received: (at 55248) by debbugs.gnu.org; 3 May 2022 18:34:59 +0000 Received: from localhost ([127.0.0.1]:41056 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxMN-0002mk-P1 for submit@debbugs.gnu.org; Tue, 03 May 2022 14:34:59 -0400 Received: from mail-vs1-f44.google.com ([209.85.217.44]:33428) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nlxML-0002mI-GS for 55248@debbugs.gnu.org; Tue, 03 May 2022 14:34:54 -0400 Received: by mail-vs1-f44.google.com with SMTP id v139so17359631vsv.0 for <55248@debbugs.gnu.org>; Tue, 03 May 2022 11:34:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8ycsc98fpE1bZer5wTillA3/L9AMfgXNrFk4vRKwYW0=; b=S3bdUzJNj0LkV4KxShcuj0Dizu64+axTfXkzwNDEFLCN6zWnT1GFLqZRCfwmqdceb9 r/cXE+C6rgSiThVZwM2lZjxwjlsXwNNJRYR/fYUItaNr3aoozIFihFkzh46byA50OVdY qRNNaRwe8YADjT+TmdZc9kJ442IdKfMnFhLq4MbiBmG8jRQ5fN9vd/Qr9f3H5PeFzxfP tbUVmFL/L7a9mfhrayj5e/+LBvkRx4j9rmyjnhDzsZVl6YTR1Dz0tqkS3uLUSR7qKO4H 4F1BFtjoh54GOJ7hVqIyTb6RusOqYCKHTb8YuR4pBHFDz0CtkUJp0Wbx/F6CHdw6Uxrh tpig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8ycsc98fpE1bZer5wTillA3/L9AMfgXNrFk4vRKwYW0=; b=BiYuUZIhkkjrqPN5aYZhYoD1IEnSga0o52y7PeAums8euj1YL044g3pNzvJW1MDyQN Zc2icp8pBMFzfsYIues4Rb6D1P46AGr8x6bUPMvY0Ip+4xuLDeKNp674lIEEVZbWSOSy da4Sk0DFpnw+fONaS5FHEUZ49OHXt2XSF6w8JMokKL42u68YNZROg9j9F8E+cmETxuYe KubGFa8zX5dZbb8t6nKivb5QaIvGg90OaxQE8/LM1TBqiee9vjPDgyr7qcN9xQzKdcI+ 1QaOhy7MnbnFaYnM3DZSAoCw0hD4qCMmEETSd/GJp6eA2yx54bw/dHvbEoYDPSqNqTUL T9rA== X-Gm-Message-State: AOAM532bgGgJTTlphyxfHLvzLbiB87EwOjWzKp6adpea6rlYVAix9X8L aVjyNJdJMB4+dIU85V0qfhapRd6cs4W+VqRu X-Google-Smtp-Source: ABdhPJy5MLXOf5hZY5yLu+TDw+Va/XpHbnCxi3MSiEJZhdfgO5OhX6BhZQeoJMbqQJcXrj+JoYfLPg== X-Received: by 2002:a05:6102:3e8e:b0:31b:aaec:cece with SMTP id m14-20020a0561023e8e00b0031baaeccecemr4899477vsv.42.1651602887554; Tue, 03 May 2022 11:34:47 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id g1-20020a056102080100b0032ccd227898sm1537836vsb.1.2022.05.03.11.34.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 03 May 2022 11:34:47 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH 7/7] gnu: chez-scheme-for-system: Adjust support logic. Date: Tue, 3 May 2022 14:33:46 -0400 Message-Id: <9ba89b23f86a163679047f113e3524b4352df55d.1651594312.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 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: -0.4 (/) This is a follow-up to commit b8fc9169515ef1a6d6037c84e30ad308e5418b6f: see . Thanks to Liliana Marie Prikler for pointing out various issues, e.g. that being able to represent a Nix system as a Chez Scheme machine type does not necessarily mean the system is supported! Racket's variant of Chez Scheme does or will soon run even on systems for which native code generation is not supported: see discussion at . This helps us to eliminate unused functions (that may not have been quite right, anyway). * gnu/packages/chez.scm (chez-machine->nonthreaded, chez-machine->threaded, %nix-arch-to-chez-alist, %nix-os-to-chez-alist, chez-machine->nix-system, nix-system->chez-machine): Replace with ... (%chez-features-table, target-chez-arch, target-chez-os): ... these new variables. (chez-upstream-features-for-system): Adapt accordingly. (chez-scheme-bootstrap-bootfiles)[supported-systems]: Use enhanced 'chez-upstream-features-for-system'. (chez-scheme-for-system): Likewise, and use 'chez-scheme-for-racket' on systems without native code generation. (racket-cs-native-supported-system?): New variable. (chez-scheme-for-racket)[supported-systems]: Use it. * gnu/packages/racket.scm (racket-vm-for-system): Likewise. --- gnu/packages/chez.scm | 269 +++++++++++++++++++++++----------------- gnu/packages/racket.scm | 7 +- 2 files changed, 159 insertions(+), 117 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index ea53cf5774..a61146eb02 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -48,9 +48,7 @@ (define-module (gnu packages chez) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:export (chez-scheme-for-system - nix-system->chez-machine - chez-machine->nonthreaded - chez-machine->threaded + racket-cs-native-supported-system? unpack-nanopass+stex)) ;; Commentary: @@ -73,96 +71,17 @@ (define* (chez-scheme-for-system #:optional (%current-system)))) "Return 'chez-scheme' unless only 'chez-scheme-for-racket' supports SYSTEM, including support for native threads." - (if (or - ;; full support upstream - (and=> (chez-upstream-features-for-system system) - (cut memq 'threads <>)) - ;; no support anywhere - (not (nix-system->chez-machine system))) + (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 (chez-machine->nonthreaded machine) - "Given a string MACHINE naming a Chez Scheme machine type, returns a string -naming the nonthreaded machine type for the same architecture and OS as -MACHINE. The returned string may share storage with MACHINE." - ;; Chez Scheme documentation consistently uses "nonthreaded" rather than - ;; e.g. "unthreaded" - (if (eqv? #\t (string-ref machine 0)) - (substring machine 1) - machine)) -(define (chez-machine->threaded machine) - "Like @code{chez-machine->nonthreaded}, but returns the threaded machine -type." - (if (eqv? #\t (string-ref machine 0)) - machine - (string-append "t" machine))) - -;; Based on the implementation from raco-cross-lib/private/cross/platform.rkt -;; in https://github.com/racket/raco-cross. -;; For supported platforms, refer to release_notes/release_notes.stex in the -;; upstream Chez Scheme repository or to racket/src/ChezScheme/README.md -;; in https://github.com/racket/racket. -(define %nix-arch-to-chez-alist - `(("x86_64" . "a6") - ("i386" . "i3") - ("aarch64" . "arm64") - ("armhf" . "arm32") ;; Chez supports ARM v6+ - ("ppc" . "ppc32"))) -(define %nix-os-to-chez-alist - `(("w64-mingw32" . "nt") - ("darwin" . "osx") - ("linux" . "le") - ("freebsd" . "fb") - ("openbsd" . "ob") - ("netbsd" . "nb") - ("solaris" . "s2"))) - -(define (chez-machine->nix-system machine) - "Return the Nix system type corresponding to the Chez Scheme machine type -MACHINE. If MACHINE is not a string representing a known machine type, an -exception is raised. This function does not distinguish between threaded and -nonthreaded variants of MACHINE. - -Note that this function only handles Chez Scheme machine types in the -strictest sense, not other kinds of descriptors sometimes used in place of a -Chez Scheme machine type by Racket, such as @code{\"pb\"}, @code{#f}, or -@code{\"racket\"}. (When using such extensions, the Chez Scheme machine type -for the host system is often still relevant.)" - (let ((machine (chez-machine->nonthreaded machine))) - (let find-arch ((alist %nix-arch-to-chez-alist)) - (match alist - (((nix . chez) . alist) - (if (string-prefix? chez machine) - (string-append - nix "-" (let ((machine-os - (substring machine (string-length chez)))) - (let find-os ((alist %nix-os-to-chez-alist)) - (match alist - (((nix . chez) . alist) - (if (equal? chez machine-os) - nix - (find-os alist))))))) - (find-arch alist))))))) - -(define* (nix-system->chez-machine #:optional - (system (or (%current-target-system) - (%current-system)))) - "Return the Chez Scheme machine type corresponding to the Nix system -identifier SYSTEM, or @code{#f} if the translation of SYSTEM to a Chez Scheme -machine type is undefined. - -It is unspecified whether the resulting string will name a threaded or a -nonthreaded machine type: when the distinction is relevant, use -@code{chez-machine->nonthreaded} or @code{chez-machine->threaded} to adjust -the result." - (let* ((hyphen (string-index system #\-)) - (nix-arch (substring system 0 hyphen)) - (nix-os (substring system (+ 1 hyphen))) - (chez-arch (assoc-ref %nix-arch-to-chez-alist nix-arch)) - (chez-os (assoc-ref %nix-os-to-chez-alist nix-os))) - (and chez-arch chez-os (string-append chez-arch chez-os)))) - (define* (chez-upstream-features-for-system #:optional (system (or (%current-target-system) @@ -172,20 +91,150 @@ (define* (chez-upstream-features-for-system #:optional does not support SYSTEM at all. If native threads are supported, the returned list will include -@code{'threads}. Other feature symbols may be added in the future." +@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* (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? +Otherwise, SYSTEM can use only the ``portable bytecode'' backends." + (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 <>)) + #t))) + +(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) + ("ppc32" threads)) + ;; 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 + ;; 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* (target-chez-arch #:optional (system + (or (%current-target-system) + (%current-system)))) + "Return a string representing the architecture of SYSTEM as used in Chez +Scheme machine types, or '#f' if none is defined." (cond - ((not (nix-system->chez-machine system)) - #f) + ((target-x86-64? system) + "a6") + ((target-x86-32? system) + "i3") ((target-aarch64? system) - #f) + "arm64") ((target-arm32? system) - (and (target-linux? system) - '())) + "arm32") + ((target-ppc64le? system) + #f) ((target-ppc32? system) - (and (target-linux? system) - '(threads))) + "ppc32") + ((target-riscv64? system) + #f) (else - '(threads)))) + #f))) + +(define* (target-chez-os #:optional (system (or (%current-target-system) + (%current-system)))) + "Return a string representing the operating system kernel of SYSTEM as used +in Chez Scheme machine types, or '#f' if none is defined." + ;; e.g. "le" includes both GNU/Linux and Android + (cond + ((target-linux? system) + "le") + ((target-hurd? system) + #f) + ((target-mingw? system) + "nt") + ;; missing (guix utils) predicates + ;; cf. https://github.com/NixOS/nixpkgs/blob/master/lib/systems/doubles.nix + ((string-suffix? "-darwin" system) + "osx") + ((string-suffix? "-freebsd" system) + "fb") + ((string-suffix? "-openbsd" system) + "ob") + ((string-suffix? "-netbsd" system) + "nb") + ;; Nix says "x86_64-solaris", but accommodate "-solaris2" + ((string-contains system "solaris") + "s2") + ;; unknown + (else + #f))) + ;; ;; Chez Scheme: @@ -365,14 +414,9 @@ (define-public chez-scheme ((pth) (symlink pth "csug.pdf"))))))))) - ;; Chez Scheme does not have a MIPS backend. - ;; FIXME: Debian backports patches to get armhf working. - ;; We should too. It is the Chez machine type arm32le - ;; (no threaded version upstream yet, though there is in - ;; Racket's fork), more specifically (per the release notes) ARMv6. (supported-systems (delete - "armhf-linux" ;; <-- should work, but reportedly broken + "armhf-linux" ;; XXX is this still broken? (filter chez-upstream-features-for-system %supported-systems))) (home-page "https://cisco.github.io/ChezScheme/") @@ -418,7 +462,9 @@ (define-public chez-scheme-for-racket (add-after 'unpack 'chdir (lambda args (chdir "racket/src/ChezScheme")))))))) - (supported-systems (filter nix-system->chez-machine + ;; TODO: How to build pbarch/pbchunks for other systems? + ;; See https://racket.discourse.group/t/950 + (supported-systems (filter racket-cs-native-supported-system? %supported-systems)) (home-page "https://github.com/racket/ChezScheme") ;; ^ This is downstream of https://github.com/racket/racket, @@ -471,16 +517,9 @@ (define-public chez-scheme-bootstrap-bootfiles (list #:install-plan #~`(("boot/" "lib/chez-scheme-bootfiles")))) (supported-systems - ;; Upstream only distributes pre-built bootfiles for - ;; arm32le and t?(i3|a6)(le|nt|osx) (filter (lambda (system) - (let ((machine (and=> (nix-system->chez-machine system) - chez-machine->nonthreaded))) - (or (equal? "arm32le" machine) - (and machine - (member (substring machine 0 2) '("i3" "a6")) - (or-map (cut string-suffix? <> machine) - '("le" "nt" "osx")))))) + (and=> (chez-upstream-features-for-system system) + (cut memq 'bootstrap-bootfiles <>))) %supported-systems)) (synopsis "Chez Scheme bootfiles (binary seed)") (description diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 2f4f7cebd8..41f45f4215 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -190,8 +190,11 @@ (define-module (gnu packages racket) (define* (racket-vm-for-system #:optional (system (or (%current-target-system) (%current-system)))) - "Return 'racket-vm-cs' if it supports SYSTEM; 'racket-vm-bc' otherwise." - (if (nix-system->chez-machine system) + "Return 'racket-vm-cs' we are able to build it for SYSTEM; 'racket-vm-bc' +otherwise." + ;; Once we figure out the issues in https://racket.discourse.group/t/950, + ;; we can use 'racket-vm-cs' everywhere. + (if (racket-cs-native-supported-system? system) racket-vm-cs racket-vm-bc)) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Wed May 04 02:53:49 2022 Received: (at 55248) by debbugs.gnu.org; 4 May 2022 06:53:49 +0000 Received: from localhost ([127.0.0.1]:41548 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nm8tQ-0007ts-UR for submit@debbugs.gnu.org; Wed, 04 May 2022 02:53:49 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:31837) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nm8tN-0007th-6n for 55248@debbugs.gnu.org; Wed, 04 May 2022 02:53:48 -0400 Received: from lprikler-laptop.ist.intra (gw.ist.tugraz.at [129.27.202.101]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4KtSGY1NKyz1LZWB; Wed, 4 May 2022 08:53:40 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4KtSGY1NKyz1LZWB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1651647221; bh=9NNRYbNPSfeun40MERNaMBjdhfvhr9YfPTaWP3TS2yQ=; h=Subject:From:To:Date:In-Reply-To:References:From; b=qMvbDslunCleym+wQknkQBrTgvTgTeUvkieoi024c7C0tUZg4PFZU7Li9j//+Qrxu 7ED8EXDij/3dAYcn+CQl3+jnUbqWhFjbX0xek6SrEYs7rGeYwGUFw4J8edP6GBVydy a/OeqInPVyEIbzqOSyawOnGHrWLdoAg8a26JA4vc= Message-ID: <7b3da393016daa21c35dd27fc086b03339435e9d.camel@ist.tugraz.at> Subject: Re: [PATCH 1/7] gnu: racket: Update to 8.5. From: Liliana Marie Prikler To: Philip McGrath , 55248@debbugs.gnu.org Date: Wed, 04 May 2022 08:53:40 +0200 In-Reply-To: <2290ebb81a8acaa959eff9f60694330e495e3a19.1651594312.git.philip@philipmcgrath.com> References: <2290ebb81a8acaa959eff9f60694330e495e3a19.1651594312.git.philip@philipmcgrath.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-TUG-Backscatter-control: waObeELIUl4ypBWmcn/8wQ X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 55248 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 (---) Am Dienstag, dem 03.05.2022 um 14:33 -0400 schrieb Philip McGrath: > * gnu/packages/patches/racket-gui-tethered-launcher-backport.patch, > gnu/packages/patches/racket-enable-scheme-backport.patch: Delete > files. > * gnu/local.mk (dist_patch_DATA): Remove them. LGTM. > * gnu/packages/chez.scm (chez-scheme-for-racket): Update to 9.5.7.6. This... > * gnu/packages/racket.scm (%racket-version): Update to 8.4.900. ... and this might be done in different commits. Also, you typo'd in the ChangeLog, the version ought to be 8.5 > (%racket-origin)[sha256]: Update accordingly. You don't normally need to mention hash updates, but (*). > [patches]: Remove obsolete patches. LGTM. > (racket-vm-common-configure-flags): Remove incorrect comment. No. Unless you address the issue at hand (which I don't want to be a blocker for this series, mind you), it persists. If you don't like how the comment is written currently, you might suggest an alternative formulation, but people deserve to know that the origtree layout is a hack. > (simple-racket-origin): Accept optional #:commit argument. Is this used anywhere? If not, I suggest leaving it be for now. > (racket)[inputs]<2d, datalog, deinprogramm, draw, drracket, > expeditor, htdp, pict, plot, quickscript, racklog, rackunit, redex, > scribble, typed-racket, string-constants, syntax-color, web-server, > xrepl>: Update checksums. (*) here it makes sense to document the checksum updates, because they'd otherwise be invisible. > : Likewise, and remove obsolete backports. Cheers From debbugs-submit-bounces@debbugs.gnu.org Wed May 04 02:58:12 2022 Received: (at 55248) by debbugs.gnu.org; 4 May 2022 06:58:12 +0000 Received: from localhost ([127.0.0.1]:41572 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nm8xg-00081N-Jb for submit@debbugs.gnu.org; Wed, 04 May 2022 02:58:12 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:45103) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nm8xf-00081F-7y for 55248@debbugs.gnu.org; Wed, 04 May 2022 02:58:11 -0400 Received: from lprikler-laptop.ist.intra (gw.ist.tugraz.at [129.27.202.101]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4KtSMh72jdz3x7v; Wed, 4 May 2022 08:58:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1651647489; bh=ygBJP1HCnYi4JHLqeEgbOPlZHUDqgn+S3HsYpjpX8jM=; h=Subject:From:To:Date:In-Reply-To:References; b=p3X9zihufgmKn4p8cUr3ubYQoIjgGBGXjJLTjSiZsQKPVPRQTfxSuvphHycj7oRdV BgseYUUNA0AQh8jUBzOtkvCDbjb7S6W9HHZZNODQHNgQbPIaTi5z1TesqgGvfikO7V QvcFHqMV17CQ/Y84kmpAlFNjF0v//SawNS80Iy30= Message-ID: <95374cf5b8dc2f7e2406506f00df274e29122077.camel@ist.tugraz.at> Subject: Re: [PATCH 6/7] gnu: stex: Get machine type dynamically. From: Liliana Marie Prikler To: Philip McGrath , 55248@debbugs.gnu.org Date: Wed, 04 May 2022 08:58:08 +0200 In-Reply-To: <5375de56eda0ee7c218ddf48da61ea600c0d2589.1651594312.git.philip@philipmcgrath.com> References: <5375de56eda0ee7c218ddf48da61ea600c0d2589.1651594312.git.philip@philipmcgrath.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-TUG-Backscatter-control: waObeELIUl4ypBWmcn/8wQ X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 55248 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 (---) Am Dienstag, dem 03.05.2022 um 14:33 -0400 schrieb Philip McGrath: > * gnu/packages/chez.scm (stex)[arguments]: Run 'scheme' to determine > the machine type. How is this beneficial? What about cross-compilation? From debbugs-submit-bounces@debbugs.gnu.org Wed May 04 03:21:16 2022 Received: (at 55248) by debbugs.gnu.org; 4 May 2022 07:21:16 +0000 Received: from localhost ([127.0.0.1]:41606 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nm9Jw-00009y-PF for submit@debbugs.gnu.org; Wed, 04 May 2022 03:21:16 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:21222) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nm9Jp-00009U-SN for 55248@debbugs.gnu.org; Wed, 04 May 2022 03:21:11 -0400 Received: from lprikler-laptop.ist.intra (gw.ist.tugraz.at [129.27.202.101]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4KtSt53M47z3xfs; Wed, 4 May 2022 09:21:01 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1651648861; bh=rt7ZeAiv7rtUO9x46z7rkJ3V2Tq2/jGnDiZIpwFZFvY=; h=Subject:From:To:Date:In-Reply-To:References; b=hkMnGcjlXwmkAJr0fCuRW3u1XqLgAvrUSWU6ytIkJ3y+uKcFERr6LfJNEt0QbymG8 Vk3VYurBaDURENjSwnnsGqElIj/uIhhexGPp3GZzfTVhCZemMfq6ZaFDp7JbSvob0t 4nn+VEPIHaCFboK96pGxYdhgxeij/fmuxIaQ921Q= Message-ID: <1dc114e6acd0320c553837e1d9f5d94e4e8c800d.camel@ist.tugraz.at> Subject: Re: [PATCH 7/7] gnu: chez-scheme-for-system: Adjust support logic. From: Liliana Marie Prikler To: Philip McGrath , 55248@debbugs.gnu.org Date: Wed, 04 May 2022 09:21:00 +0200 In-Reply-To: <9ba89b23f86a163679047f113e3524b4352df55d.1651594312.git.philip@philipmcgrath.com> References: <9ba89b23f86a163679047f113e3524b4352df55d.1651594312.git.philip@philipmcgrath.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: waObeELIUl4ypBWmcn/8wQ X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -0.4 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 55248 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 (---) Am Dienstag, dem 03.05.2022 um 14:33 -0400 schrieb Philip McGrath: > This is a follow-up to commit > b8fc9169515ef1a6d6037c84e30ad308e5418b6f: > see . Thanks to Liliana Marie > Prikler for pointing out various issues, e.g. that being able to > represent a Nix system as a Chez Scheme machine type does not > necessarily mean the system is supported! The issue in that commit is a different one: nix-system->chez-machine can fail if there's no conversion. Anyway... > [...] > ;; Commentary: > @@ -73,96 +71,17 @@ (define* (chez-scheme-for-system #:optional >                                               (%current-system)))) >    "Return 'chez-scheme' unless only 'chez-scheme-for-racket' > supports SYSTEM, >  including support for native threads." > -  (if (or > -       ;; full support upstream > -       (and=> (chez-upstream-features-for-system system) > -              (cut memq 'threads <>)) > -       ;; no support anywhere > -       (not (nix-system->chez-machine system))) > +  (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)) Does it make sense to require 'threads always? >   > -(define (chez-machine->nonthreaded machine) > -  "Given a string MACHINE naming a Chez Scheme machine type, returns > a string > -naming the nonthreaded machine type for the same architecture and OS > as > -MACHINE.  The returned string may share storage with MACHINE." > -  ;; Chez Scheme documentation consistently uses "nonthreaded" > rather than > -  ;; e.g. "unthreaded" > -  (if (eqv? #\t (string-ref machine 0)) > -      (substring machine 1) > -      machine)) > -(define (chez-machine->threaded machine) > -  "Like @code{chez-machine->nonthreaded}, but returns the threaded > machine > -type." > -  (if (eqv? #\t (string-ref machine 0)) > -      machine > -      (string-append "t" machine))) > - > -;; Based on the implementation from raco-cross- > lib/private/cross/platform.rkt > -;; in https://github.com/racket/raco-cross. > -;; For supported platforms, refer to > release_notes/release_notes.stex in the > -;; upstream Chez Scheme repository or to > racket/src/ChezScheme/README.md > -;; in https://github.com/racket/racket. > -(define %nix-arch-to-chez-alist > -  `(("x86_64" . "a6") > -    ("i386" . "i3") > -    ("aarch64" . "arm64") > -    ("armhf" . "arm32") ;; Chez supports ARM v6+ > -    ("ppc" . "ppc32"))) > -(define %nix-os-to-chez-alist > -  `(("w64-mingw32" . "nt") > -    ("darwin" . "osx") > -    ("linux" . "le") > -    ("freebsd" . "fb") > -    ("openbsd" . "ob") > -    ("netbsd" . "nb") > -    ("solaris" . "s2"))) > - > -(define (chez-machine->nix-system machine) > -  "Return the Nix system type corresponding to the Chez Scheme > machine type > -MACHINE.  If MACHINE is not a string representing a known machine > type, an > -exception is raised.  This function does not distinguish between > threaded and > -nonthreaded variants of MACHINE. > - > -Note that this function only handles Chez Scheme machine types in > the > -strictest sense, not other kinds of descriptors sometimes used in > place of a > -Chez Scheme machine type by Racket, such as @code{\"pb\"}, > @code{#f}, or > -@code{\"racket\"}.  (When using such extensions, the Chez Scheme > machine type > -for the host system is often still relevant.)" > -  (let ((machine (chez-machine->nonthreaded machine))) > -    (let find-arch ((alist %nix-arch-to-chez-alist)) > -      (match alist > -        (((nix . chez) . alist) > -         (if (string-prefix? chez machine) > -             (string-append > -              nix "-" (let ((machine-os > -                             (substring machine (string-length > chez)))) > -                        (let find-os ((alist %nix-os-to-chez-alist)) > -                          (match alist > -                            (((nix . chez) . alist) > -                             (if (equal? chez machine-os) > -                                 nix > -                                 (find-os alist))))))) > -             (find-arch alist))))))) > - > -(define* (nix-system->chez-machine #:optional > -                                   (system (or (%current-target- > system) > -                                               (%current-system)))) > -  "Return the Chez Scheme machine type corresponding to the Nix > system > -identifier SYSTEM, or @code{#f} if the translation of SYSTEM to a > Chez Scheme > -machine type is undefined. > - > -It is unspecified whether the resulting string will name a threaded > or a > -nonthreaded machine type: when the distinction is relevant, use > -@code{chez-machine->nonthreaded} or @code{chez-machine->threaded} to > adjust > -the result." > -  (let* ((hyphen (string-index system #\-)) > -         (nix-arch (substring system 0 hyphen)) > -         (nix-os (substring system (+ 1 hyphen))) > -         (chez-arch (assoc-ref %nix-arch-to-chez-alist nix-arch)) > -         (chez-os (assoc-ref %nix-os-to-chez-alist nix-os))) > -    (and chez-arch chez-os (string-append chez-arch chez-os)))) > - The replacement code should go here for readability imho. At the very least I was confused why this was first above and now below. >  (define* (chez-upstream-features-for-system #:optional >                                              (system >                                               (or (%current-target- > system) > @@ -172,20 +91,150 @@ (define* (chez-upstream-features-for-system > #:optional >  does not support SYSTEM at all. >   >  If native threads are supported, the returned list will include > -@code{'threads}.  Other feature symbols may be added in the future." > +@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* (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? > +Otherwise, SYSTEM can use only the ``portable bytecode'' backends." > +  (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 <>)) > +         #t))) > + > +(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) > +     ("ppc32" threads)) > +    ;; 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 > +    ;; 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* (target-chez-arch #:optional (system > +                                       (or (%current-target-system) > +                                           (%current-system)))) > +  "Return a string representing the architecture of SYSTEM as used > in Chez > +Scheme machine types, or '#f' if none is defined." >    (cond > -   ((not (nix-system->chez-machine system)) > -    #f) > +   ((target-x86-64? system) > +    "a6") > +   ((target-x86-32? system) > +    "i3") >     ((target-aarch64? system) > -    #f) > +    "arm64") >     ((target-arm32? system) > -    (and (target-linux? system) > -         '())) > +    "arm32") > +   ((target-ppc64le? system) > +    #f) >     ((target-ppc32? system) > -    (and (target-linux? system) > -         '(threads))) > +    "ppc32") > +   ((target-riscv64? system) > +    #f) >     (else > -    '(threads)))) > +    #f))) > + > +(define* (target-chez-os #:optional (system (or (%current-target- > system) > +                                                (%current-system)))) > +  "Return a string representing the operating system kernel of > SYSTEM as used > +in Chez Scheme machine types, or '#f' if none is defined." > +  ;; e.g. "le" includes both GNU/Linux and Android > +  (cond > +   ((target-linux? system) > +    "le") > +   ((target-hurd? system) > +    #f) > +   ((target-mingw? system) > +    "nt") > +   ;; missing (guix utils) predicates > +   ;; cf. > https://github.com/NixOS/nixpkgs/blob/master/lib/systems/doubles.nix > +   ((string-suffix? "-darwin" system) > +    "osx") > +   ((string-suffix? "-freebsd" system) > +    "fb") > +   ((string-suffix? "-openbsd" system) > +    "ob") > +   ((string-suffix? "-netbsd" system) > +    "nb") > +   ;; Nix says "x86_64-solaris", but accommodate "-solaris2" > +   ((string-contains system "solaris") > +    "s2") > +   ;; unknown > +   (else > +    #f))) > + For the sake of completeness, we might want to still have nix-system- >chez-machine (with a threaded? argument) defined in terms of target- chez-arch and target-chez-os. See 6/7 for motivation. >   >  ;; >  ;; Chez Scheme: > @@ -365,14 +414,9 @@ (define-public chez-scheme >                    ((pth) >                     (symlink pth >                              "csug.pdf"))))))))) > -    ;; Chez Scheme does not have a  MIPS backend. > -    ;; FIXME: Debian backports patches to get armhf working. > -    ;; We should too. It is the Chez machine type arm32le > -    ;; (no threaded version upstream yet, though there is in > -    ;; Racket's fork), more specifically (per the release notes) > ARMv6. >      (supported-systems >       (delete > -      "armhf-linux" ;; <-- should work, but reportedly broken > +      "armhf-linux" ;; XXX is this still broken? I'd say "XXX: reportedly broken, needs checking" >        (filter chez-upstream-features-for-system >                %supported-systems))) >      (home-page "https://cisco.github.io/ChezScheme/") > @@ -418,7 +462,9 @@ (define-public chez-scheme-for-racket >                (add-after 'unpack 'chdir >                  (lambda args >                    (chdir "racket/src/ChezScheme")))))))) > -    (supported-systems (filter nix-system->chez-machine > +    ;; TODO: How to build pbarch/pbchunks for other systems? > +    ;; See https://racket.discourse.group/t/950 > +    (supported-systems (filter racket-cs-native-supported-system? >                                 %supported-systems)) >      (home-page "https://github.com/racket/ChezScheme") >      ;; ^ This is downstream of https://github.com/racket/racket, > @@ -471,16 +517,9 @@ (define-public chez-scheme-bootstrap-bootfiles >       (list #:install-plan >             #~`(("boot/" "lib/chez-scheme-bootfiles")))) >      (supported-systems > -     ;; Upstream only distributes pre-built bootfiles for > -     ;; arm32le and t?(i3|a6)(le|nt|osx) >       (filter (lambda (system) > -               (let ((machine (and=> (nix-system->chez-machine > system) > -                                     chez-machine->nonthreaded))) > -                 (or (equal? "arm32le" machine) > -                     (and machine > -                          (member (substring machine 0 2) '("i3" > "a6")) > -                          (or-map (cut string-suffix? <> machine) > -                                  '("le" "nt" "osx")))))) > +               (and=> (chez-upstream-features-for-system system) > +                      (cut memq 'bootstrap-bootfiles <>))) Yup, that's simpler. >               %supported-systems)) >      (synopsis "Chez Scheme bootfiles (binary seed)") >      (description > diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm > index 2f4f7cebd8..41f45f4215 100644 > --- a/gnu/packages/racket.scm > +++ b/gnu/packages/racket.scm > @@ -190,8 +190,11 @@ (define-module (gnu packages racket) >  (define* (racket-vm-for-system #:optional >                                 (system (or (%current-target-system) >                                             (%current-system)))) > -  "Return 'racket-vm-cs' if it supports SYSTEM; 'racket-vm-bc' > otherwise." > -  (if (nix-system->chez-machine system) > +  "Return 'racket-vm-cs' we are able to build it for SYSTEM; > 'racket-vm-bc' > +otherwise." > +  ;; Once we figure out the issues in > https://racket.discourse.group/t/950, > +  ;; we can use 'racket-vm-cs' everywhere. > +  (if (racket-cs-native-supported-system? system) >        racket-vm-cs >        racket-vm-bc)) All in all, the individual logic of this patch seems fine, but overall it appears as though it's doing three separate things (chez-scheme-for- system, chez features, racket-cs stuff). IMO it would make sense to split this patch according to those lines. WDYT? Patches 2-5 mostly LGTM, at least I don't see any glaring issues in this iteration. Cheers From debbugs-submit-bounces@debbugs.gnu.org Wed May 04 05:29:30 2022 Received: (at 55248) by debbugs.gnu.org; 4 May 2022 09:29:30 +0000 Received: from localhost ([127.0.0.1]:41804 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmBK6-0003TB-3K for submit@debbugs.gnu.org; Wed, 04 May 2022 05:29:30 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:51754) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmBK3-0003T2-LJ for 55248@debbugs.gnu.org; Wed, 04 May 2022 05:29:28 -0400 Received: from ptr-bvsjgyhxw7psv60dyze.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:3c5f:2eff:feb0:ba5a]) by michel.telenet-ops.be with bizsmtp id SZVR2700c4UW6Th06ZVR9q; Wed, 04 May 2022 11:29:26 +0200 Message-ID: Subject: Re: [bug#55248] [PATCH 2/7] gnu: racket: Fix out-of-source build. From: Maxime Devos To: Philip McGrath , 55248@debbugs.gnu.org Date: Wed, 04 May 2022 11:29:24 +0200 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-uonev5kGGGhbXRY6AeCj" User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1651656566; bh=8+fXCt86NWFDoFcnNHCpZBbnA+Dwn5WFu3v6nkN13sw=; h=Subject:From:To:Date:In-Reply-To:References; b=g8R5GjeK8OTfP6TxUIiQx3v2Wg17gq/jbv7BnQ92GEhinLYuUWymyrWYx4HPVDnAh 6Om24yL435Ugmgv6qh19UFNUzK2qc9m1VbIU1Y7n9dF+rQqAhi6kDgVoVY1399B9JL 3DdAsQICwPotzpD5+NZlKN751RdDFNzNxQgg69CrT8D+8fJYCXNLPtbcCL75Ux3ECr RIbGW5J8GTrT3bqpAfFZbOv/YDx2wPpexXBmJq6fPiLgmthoAm1TKvDmW6HgtI0aAj 0q1+OZUz/jCxxo4a65vRJX6d+k3I7GHNXys24VLx9w08HH1fIDjhJVsmFAR2eRKZSK nsN4S9j/UxIfQ== X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 55248 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 (-) --=-uonev5kGGGhbXRY6AeCj Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 UGhpbGlwIE1jR3JhdGggc2NocmVlZiBvcCBkaSAwMy0wNS0yMDIyIG9tIDE0OjMzIFstMDQwMF06 Cj4gLcKgwqDCoMKgwqDCoCA7OyBoZWxwIHdpdGggZGVidWdnaW5nLCBidXQgaXQgY29uZnVzZXMg YGluc3RhbGwtbGljZW5zZS1maWxlc2AuClsuLi5dCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCA7OyB3b3JrYXJvdW5kIGZvciBpbnN0YWxsLWxpY2Vuc2UtZmlsZXMKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIChsYW1iZGEqICgjOmtleSBvdXQtb2Ytc291cmNlPyAjOmFsbG93LW90aGVy LWtleXMpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHdoZW4gb3V0LW9mLXNvdXJj ZT8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHdpdGgtZGlyZWN0b3J5LWV4 Y3Vyc2lvbiAiLi4iCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3lt bGluayAic3JjIgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgKHBhY2thZ2UtbmFtZS0+bmFtZSt2ZXJzaW9uCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChzdHJpcC1zdG9yZS1m aWxlLW5hbWUgIyRvdXRwdXQpKSkpKSkpKSkpCgpTdXJlbHkgd2UgY291bGQgZml4IHRoaXMgYnVn L2xpbWl0YXRpb24gb2YgaW5zdGFsbC1saWNlbnNlLWZpbGVzCnVwc3RyZWFtIChpbiB0aGlzIGNh c2UsIHVwc3RyZWFtPUd1aXgpPwoKR3JlZXRpbmdzLApNYXhpbWUuCg== --=-uonev5kGGGhbXRY6AeCj Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYnJHdBccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7n4SAP0ZMkcX04ipHwEpDPDblwqqAZ7L O9D/L5CRBFWAQqXUAgEAk4njTrtqBOEglLllYTjnP+u+5wnAdDmvOKzKNpxasQk= =9ihk -----END PGP SIGNATURE----- --=-uonev5kGGGhbXRY6AeCj-- From debbugs-submit-bounces@debbugs.gnu.org Thu May 05 14:53:36 2022 Received: (at 55248) by debbugs.gnu.org; 5 May 2022 18:53:36 +0000 Received: from localhost ([127.0.0.1]:46479 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmgbY-0004wP-6W for submit@debbugs.gnu.org; Thu, 05 May 2022 14:53:36 -0400 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]:52375) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmgbV-0004wA-Es for 55248@debbugs.gnu.org; Thu, 05 May 2022 14:53:34 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.west.internal (Postfix) with ESMTP id 08438320085B; Thu, 5 May 2022 14:53:26 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Thu, 05 May 2022 14:53:27 -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:sender:subject:subject:to:to; s=fm1; t=1651776806; x=1651863206; bh=VyM/sAv0yx0hzvwrg7Mnku5Ug GqjvSaAbeOkjfpBu7w=; b=WEp1LMLPd01P2S9uOL3dYTEmrXlw+CFbgk0T0Dw+N 2LK9JISL1H+8ehKk+pWwhgZ6GbPYi63vWWOO8PyuwHnkj5GW8dO2K9yS3Jt0hwkT tI2sdbV3tMYiujAzDjI3yXd4VgmPHEf5qcuVP7dUJ5MXCPOwZ9BID1+5w4SjICy2 TSqDqMy8VBYgSCU0JLc4aSiwbIfUWK0H1jKTlJ+MxZaOCQSMKKNkvTvV+UWQ42la 63uEfrxDnMqzTJ8IrwOzOJch1ziZBg7/m5quoj0jE3WTGgIOV7krNPIfDCuPVsC2 L+oDQ50rdw7BPD4hWWJz5D5D/HH//KbWzukwF5qGx9sfA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.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:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1651776806; x=1651863206; bh=VyM/sAv0yx0hzvwrg7Mnku5UgGqj vSaAbeOkjfpBu7w=; b=rXmrNBYkR9MDqtx7L8AeRUDsFj8lkhk+x3tJKcLDHigT rZprucAbK3Xar2CcdQ5r6wbkzEI1dlVpjI/eDH3SDHgI2CpDNercqSiz3yBuTKbc V7pwdF8MkGtmnl3Kv6H96scXfhnT8vuouQ798oVefBsgG2RXXg7KkzT0r5nZP3f7 O69PBFYuUYYkMmKEj4SSnFovIL7Pz3vW8Lbv9lkVoRAuhsVEpEzPNhqcDmc0SylN 5TFDBXQlbYaIDz6mNq3+W2LE2ibhSNHp+/izOgx6kUDZ8z2wzShTIdFEQENVNEt7 AYHJt0OcKMej925R045ZlmoR6Q1kNaIE6p3vU8q0WA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfedugdduvdekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvfhfhjggtgfesthekredttdefjeenucfhrhhomheprfhhihhl ihhpucfotgfirhgrthhhuceophhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtoh hmqeenucggtffrrghtthgvrhhnpedvjeeuudelhedvgfevudetvdduteevudegvdeuvdef lefhgeeiteefvdeukeetieenucffohhmrghinheprhgvuhhsvgdrshhofhhtfigrrhgvpd hgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr ihhlfhhrohhmpehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 5 May 2022 14:53:25 -0400 (EDT) Message-ID: Date: Thu, 5 May 2022 14:53:24 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: [bug#55248] [PATCH 2/7] gnu: racket: Fix out-of-source build. Content-Language: en-US To: Maxime Devos , 55248@debbugs.gnu.org, Liliana Marie Prikler , Liliana Marie Prikler 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: 55248 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, On 5/4/22 05:29, Maxime Devos wrote: > Philip McGrath schreef op di 03-05-2022 om 14:33 [-0400]: >> -       ;; help with debugging, but it confuses `install-license-files`. > [...] >> +             ;; workaround for install-license-files >> +             (lambda* (#:key out-of-source? #:allow-other-keys) >> +               (when out-of-source? >> +                 (with-directory-excursion ".." >> +                   (symlink "src" >> +                            (package-name->name+version >> +                             (strip-store-file-name #$output)))))))))) > > Surely we could fix this bug/limitation of install-license-files > upstream (in this case, upstream=Guix)? > I'd certainly be in favor of that! I've never edited '(guix build gnu-build-system)' but I assume that would be a 'core-updates' change. I'm also not sure what the best solution would be in general. In Racket's specific case, the source directory for the Racket VM is (relative to the repository root), "racket/src/", where other notable directories present include "racket/collects/" and "pkgs/". An out-of-source build ends up happening in "racket/build/". The license files are in the source directory, which is what install-license-files expects, but the find-source-directory helper function fails to guess the location of the source directory: > (define (find-source-directory package) > ;; For an out-of-source build, guess the source directory location > ;; relative to the current directory. Return #f on failure. > (match (scandir ".." > (lambda (file) > (and (not (member file '("." ".." "build"))) > (file-is-directory? > (string-append "../" file))))) > (() ;hmm, no source > #f) > ((source) ;only one other file > (string-append "../" source)) > ((directories ...) ;pick the most likely one > ;; This happens for example with libstdc++, which lives within the GCC > ;; source tree. > (any (lambda (directory) > (and (string-prefix? package directory) > (string-append "../" directory))) > directories)))) Some possibilities I can imagine: * We could add a case to find-source-directory specifically for "src". * We could change configure to communicate the location of the source directory, e.g. via an environment variable, rather than trying to guess. * We could change install-license-files to do more searching in general, e.g. trying multiple directories or preferring a directory that contains at least one match for #:license-file-regexp. We'd have to consider the potential for false positives, too (e.g. sibling directories with projects under different licenses.) * We could add an argument to install-license-files to specify the directory explicitly, as a complement to #:license-file-regexp. Another scenario that might be worth considering is projects that follow the REUSE specification[1], which I don't think would be handled by the current install-license-files. But actually, for Racket, I forgot that a patch I'd sent upstream to handle this in `make install` should be in 8.5, so we may not need this patch at all: I'll confirm before I send v2. -Philip [1]: https://reuse.software/ [2]: https://github.com/racket/racket/pull/4127 From debbugs-submit-bounces@debbugs.gnu.org Thu May 05 15:39:41 2022 Received: (at 55248) by debbugs.gnu.org; 5 May 2022 19:39:41 +0000 Received: from localhost ([127.0.0.1]:46520 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmhK9-00063P-6n for submit@debbugs.gnu.org; Thu, 05 May 2022 15:39:41 -0400 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]:40415) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmhK6-000639-Vz for 55248@debbugs.gnu.org; Thu, 05 May 2022 15:39:39 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id A8A8C3200973; Thu, 5 May 2022 15:39:32 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Thu, 05 May 2022 15:39:33 -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:sender:subject:subject:to:to; s=fm1; t=1651779572; x=1651865972; bh=TYV7EYxGxJDuhtydJU+gx//Zb ZcjC22jlpSQV0hjbf0=; b=KGeyUmSpH+doMuw4Lb5BunByOjaM7WFK2jrO65DGg DyJs7VQnFhRdimO+XXe9w7Bxete3RUVF4DwbUkxELsPLnPs2oFeczyAQSVneoSV5 Tt1vR0kG6koi6xZX6Za8lublpJGb4Nyq7yY4naP0VK+K1hKBI6XCJJdG7BCqeXQp P1gnw2cSd7FGywjbF4HOIWJVI3LvpQQIh9hJPD7jMJd2rpn06KMrzsozTsXAhvjd 36e2FHuge9n86+5mvUyP7tAOmHgGCfkyuPcmbFcuJpryiO3Jfi0ZcXduEGrnLXPm WYI8efa/gfgUygd3xJbqgcFV4XXEXLqEAyoGL8W/txEPg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.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:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1651779572; x=1651865972; bh=TYV7EYxGxJDuhtydJU+gx//ZbZcj C22jlpSQV0hjbf0=; b=dOK8ulyzLIwCWm6y465ym/nZ0p/BzQmONOeC9VvxzC1R UoA7w0vWfZG2m5V4XuGLlbNyl3dPqgvrEmwd4cBt0IDz5akb+JKlN5WuwBYZoMRH QtiXQ/B4w++vo7xXNGsLilw7tggsqIkwJhsuQ/KOt4c6cCUE+lS7P6sGcrC550S8 SwSnq20qJy7TqIgobobcDB9Ud8zm1mt5ZAUxD6lTnUnhAtjbiQ4RzckBzCCrb9uu ikkx4XcUMmZXt6nHbkAYvL38/z32F05g6S1LGMaO9ASG9WNgH718/9pQZzVxc6GI MWztBCLdo5kV09c3pdCv/w+j6W0TBSN7s/4HksG55Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfedugddufeejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvfhfhjggtgfesthejredttdefjeenucfhrhhomheprfhhihhl ihhpucfotgfirhgrthhhuceophhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtoh hmqeenucggtffrrghtthgvrhhnpeegudfffeffjeejtdfhtefgtdduieevudeihfdtjedv fffgteefuefhgfelueekgfenucffohhmrghinhepghhithhhuhgsrdgtohhmnecuvehluh hsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphhhihhlihhpsehp hhhilhhiphhmtghgrhgrthhhrdgtohhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 5 May 2022 15:39:31 -0400 (EDT) Message-ID: <7dbcbd6e-4038-79f1-ec83-f93434f61985@philipmcgrath.com> Date: Thu, 5 May 2022 15:39:30 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: [PATCH 6/7] gnu: stex: Get machine type dynamically. Content-Language: en-US To: Liliana Marie Prikler , 55248@debbugs.gnu.org, Maxime Devos References: <5375de56eda0ee7c218ddf48da61ea600c0d2589.1651594312.git.philip@philipmcgrath.com> <95374cf5b8dc2f7e2406506f00df274e29122077.camel@ist.tugraz.at> From: Philip McGrath In-Reply-To: <95374cf5b8dc2f7e2406506f00df274e29122077.camel@ist.tugraz.at> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 55248 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, On 5/4/22 02:58, Liliana Marie Prikler wrote: > Am Dienstag, dem 03.05.2022 um 14:33 -0400 schrieb Philip McGrath: >> * gnu/packages/chez.scm (stex)[arguments]: Run 'scheme' to determine >> the machine type. > How is this beneficial? At some high level of generality, there are two ways we could determine the machine type:* 1. We could predict ahead of time what it will be; or 2. We can ask the `scheme` executable we actually have. Trying to predict is easy to get wrong, because there's more than one possible machine type for a given system: currently that's true due to "--threads", and it will be even more true with "portable bytecode" back-ends. The `scheme` executable we're compiling with knows the definitive answer. This lets us remove the only use of 'nix-system->chez-machine'. > What about cross-compilation? I remembered this backwards; it should be `(#%$target-machine)` rather than `(machine-type)`. I'll fix that. But note that upstream stex does not support cross-compilation (though I hope to fix that one day). For example, both `Makefile` and `Mf-stex` contain: m := $(shell echo '(machine-type)' | $(Scheme) -q) (* To some extent there's an XY problem here: we don't care about the machine type per se, we care about the extension of intermediate object files we don't want to have installed, analogous to ".o" files. I think [1] upstream may have incidentally fixed the issues that made us build in that odd way, but it hasn't been part of a release yet. I plan to reevaluate before Racket 8.6, when we'll need [2] anyway to fix a bug exposed by Zuo.) -Philip [1]: https://github.com/dybvig/stex/pull/5 [2]: https://github.com/dybvig/stex/pull/6 From debbugs-submit-bounces@debbugs.gnu.org Thu May 05 15:52:47 2022 Received: (at 55248) by debbugs.gnu.org; 5 May 2022 19:52:48 +0000 Received: from localhost ([127.0.0.1]:46524 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmhWp-0006Pb-FM for submit@debbugs.gnu.org; Thu, 05 May 2022 15:52:47 -0400 Received: from mail-ej1-f66.google.com ([209.85.218.66]:45772) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmhWn-0006PL-NJ for 55248@debbugs.gnu.org; Thu, 05 May 2022 15:52:46 -0400 Received: by mail-ej1-f66.google.com with SMTP id y3so10626710ejo.12 for <55248@debbugs.gnu.org>; Thu, 05 May 2022 12:52:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:subject:from:to:date:in-reply-to:references:user-agent :mime-version:content-transfer-encoding; bh=UJObVC9udNbmrnVmX3fPegFIaynLbCPgjM0BDAuJtHc=; b=m7xzOd3j5tHCPTGsdUXbSUjeC/oKuw2X2U9aPJbOFhAVs6CCeKAHcTzPz3dYXl8QBF TkXPyRNeQKrd7JSoyGijY30ywaxsYsZWMz1gsLtDjoT3gyf+w3ZCx+XUgikkcDTyTK3F 3qavbvG4l9Fe6qWRn+652OHoR4XjAinukhG0sf5cr5yrH4WvnvsxgjUL7uLfW1FvyivM pOHeJMky9Chr3oyqzefHfg/7i29BqkyEBjPDPzke3RzvHvTJjnkgt9AinFY/wHZot+vK 6chO3ScpD1Rhx+1WGP2f/29SZWrw/R4lzGhbLIh9RonoGXn+udcWube0kNnR1IOD7fcv tP+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=UJObVC9udNbmrnVmX3fPegFIaynLbCPgjM0BDAuJtHc=; b=sZQbfwEC+XktN7Oh8qE5toY1KwCtoh6AaA+5rOAzo/JnRC4WAfVQEY6P82GKsfm4bB buAhhZ4hNoAS0AGy6BuaFNfHYQKw8jlVLYlvTcLYd5N7fWoRDaX/06qduijdNrF1mN4P tf6fWqW44EfGSqH5fKNfV9GabtCN7cTItTkLfsRMGxp1qvX7tz2mwqCjekVnwbx3CNGj pQtCjDbWxAeFhwSPaKxv5gRrha43XMuAkpaM8QZqicxGcd8a8YMnU+olicCtOoj4FYc0 HxFQgK5l223sCyLuR9QlU5dU/f3HcyHS2DoxVswu2FOEYuAsLuvZIBRVJhYXKpYIh2Bw VZlA== X-Gm-Message-State: AOAM532jts6oFS/BpxcgzewfNE/z3FnCjS7Nu6mikYLNQAKtaW3NBQTP HiABLG1D9b1awn5mWL8W+gM= X-Google-Smtp-Source: ABdhPJxgBkPD5FqPyycfTNE8lNmOMJYOYroBidfwYxOLJdFQ3WecxkEpPXtSBdHqonaMCctPj8sHmw== X-Received: by 2002:a17:906:4fce:b0:6f4:f41c:3233 with SMTP id i14-20020a1709064fce00b006f4f41c3233mr4801704ejw.117.1651780359662; Thu, 05 May 2022 12:52:39 -0700 (PDT) Received: from nijino.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id p9-20020aa7c4c9000000b0042617ba63casm1210054edr.84.2022.05.05.12.52.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 May 2022 12:52:38 -0700 (PDT) Message-ID: <72f621841c62c3663ee23371a91927e975617b80.camel@gmail.com> Subject: Re: [bug#55248] [PATCH 2/7] gnu: racket: Fix out-of-source build. From: Liliana Marie Prikler To: Philip McGrath , Maxime Devos , 55248@debbugs.gnu.org Date: Thu, 05 May 2022 21:52:37 +0200 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 55248 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 Donnerstag, dem 05.05.2022 um 14:53 -0400 schrieb Philip McGrath: > Hi, > > On 5/4/22 05:29, Maxime Devos wrote: > > Philip McGrath schreef op di 03-05-2022 om 14:33 [-0400]: > > > -       ;; help with debugging, but it confuses `install-license- > > > files`. > > [...] > > > +             ;; workaround for install-license-files > > > +             (lambda* (#:key out-of-source? #:allow-other-keys) > > > +               (when out-of-source? > > > +                 (with-directory-excursion ".." > > > +                   (symlink "src" > > > +                            (package-name->name+version > > > +                             (strip-store-file-name > > > #$output)))))))))) > > > > Surely we could fix this bug/limitation of install-license-files > > upstream (in this case, upstream=Guix)? > > > > I'd certainly be in favor of that! I've never edited '(guix build > gnu-build-system)' but I assume that would be a 'core-updates' change. >   It would. > I'm also not sure what the best solution would be in general. > > In Racket's specific case, the source directory for the Racket VM is > (relative to the repository root), "racket/src/", where other notable > directories present include "racket/collects/" and "pkgs/". An > out-of-source build ends up happening in "racket/build/". The license > files are in the source directory, which is what install-license-files > expects, but the find-source-directory helper function fails to guess > the location of the source directory: I think the issue here is that we're in a chdir into the source, where the typical assumption that there's only a single directory besides it fails. > >   (define (find-source-directory package) > >     ;; For an out-of-source build, guess the source directory > > location > >     ;; relative to the current directory.  Return #f on failure. > >     (match (scandir ".." > >                     (lambda (file) > >                       (and (not (member file '("." ".." "build"))) > >                            (file-is-directory? > >                             (string-append "../" file))))) > >       (()                                         ;hmm, no source > >        #f) > >       ((source)                                   ;only one other > > file > >        (string-append "../" source)) > >       ((directories ...)                          ;pick the most > > likely one > >        ;; This happens for example with libstdc++, which lives > > within the GCC > >        ;; source tree. > >        (any (lambda (directory) > >               (and (string-prefix? package directory) > >                    (string-append "../" directory))) > >             directories)))) I don't think (lambda (directory) (and (string-prefix? package directory) (string-append "../" directory))) does what we think it does. Even so, it's debatable whether that works for Racket. > Some possibilities I can imagine: > >    * We could add a case to find-source-directory specifically for > "src". Not a fan personally. >    * We could change configure to communicate the location of the > source directory, e.g. via an environment variable, rather than > trying to guess. That would work, but gratuitous environment variables could have unexpected consequences. However, note that the build systems themselves already need to capture the information of where the source directory lives! For gnu-build-system, you could check for abs_srcdir in the Makefile for instance. If this ever becomes necessary (reading ahead it doesn't seem to be, but let that if be an if), I'd suggest splitting install-license-files into a helper procedure that assumes we're in the correct directory and a top level procedure, that performs the guess. This top level procedure would need to be implemented once per build system, while the helper could be inherited. >    * We could change install-license-files to do more searching in >      general, e.g. trying multiple directories or preferring a > directory that contains at least one match for > #:license-file-regexp. We'd have to consider the potential for > false positives, too (e.g. sibling directories with projects > under different licenses.) >    * We could add an argument to install-license-files to specify the >      directory explicitly, as a complement to #:license-file-regexp. I would not do either. An alternative to adding another phase is wrapping install-license-files in a directory excursion within this package. That'd be less code which achieves the same thing. > Another scenario that might be worth considering is projects that > follow the REUSE specification[1], which I don't think would be > handled by the current install-license-files. I don't think we can rely on projects consistently following them, sadly. > But actually, for Racket, I forgot that a patch I'd sent upstream to > handle this in `make install` should be in 8.5, so we may not need > this patch at all: I'll confirm before I send v2. That is of course the best solution :) From debbugs-submit-bounces@debbugs.gnu.org Thu May 05 16:33:31 2022 Received: (at 55248) by debbugs.gnu.org; 5 May 2022 20:33:31 +0000 Received: from localhost ([127.0.0.1]:46562 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmiAF-0007Rn-6t for submit@debbugs.gnu.org; Thu, 05 May 2022 16:33:31 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:35870) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmiAC-0007Rd-S8 for 55248@debbugs.gnu.org; Thu, 05 May 2022 16:33:29 -0400 Received: from ptr-bvsjgyhxw7psv60dyze.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:3c5f:2eff:feb0:ba5a]) by laurent.telenet-ops.be with bizsmtp id T8ZS2700U4UW6Th018ZSQj; Thu, 05 May 2022 22:33:27 +0200 Message-ID: Subject: Re: [bug#55248] [PATCH 2/7] gnu: racket: Fix out-of-source build. From: Maxime Devos To: Philip McGrath , 55248@debbugs.gnu.org, Liliana Marie Prikler , Liliana Marie Prikler Date: Thu, 05 May 2022 22:33:26 +0200 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-YVQP3XRsz392/7rJuGN9" User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1651782807; bh=KBpgOHNuEvqTlv8OQ2FAeu/x+JdVrmix5RaneRUfp/Y=; h=Subject:From:To:Date:In-Reply-To:References; b=BeB1ydeg0+Xlgg1M7epR2uFN5fcvZJ7xHErbh3N5qam1SYvS56R1uOKb5/Qc6IJcv EBsxa2fEuPYncVb88K2RoCQ5e7Cqpl5sMqeaQ2U+NnNB77n8iJQ9xKvwLFxrKoTZwT uUxnvbZbhjjSdxVKive67fJVrMaTemWAGB7F1NcvoIbKrZ9820IymROo0M7X8nVqfU Of1tx3C3ql5ngxSHBcnwU5dlje7pVF2GPbMidIyBi0j/CPSYomyWf/rq0PnBad5oqb jUq510dH2O75hC3PvkZ5t/RKjT7gKCjxiiqHQO3T2/ehq+v6zyPQUsZbzRjwDzkHsW cbQH3/6h/k7ng== X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 55248 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 (-) --=-YVQP3XRsz392/7rJuGN9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Philip McGrath schreef op do 05-05-2022 om 14:53 [-0400]: > Another scenario that might be worth considering is projects that follow= =20 > the REUSE specification[1], which I don't think would be handled by the= =20 > current install-license-files. It doesn't copy .reuse/dep5 and LICENSES yet, though that can be implemented: . I don't think that helps for this particular package though, given that Racket doesn't ship those files. Greetings, Maxime. --=-YVQP3XRsz392/7rJuGN9 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYnQ0lhccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7ppDAQD5ax71GdJathjQnelRDEKf4r6m ezSczC07qZiHgs6ZvwEAxhiKupvqXzK+uzQXTOHmw/Da2UsipQjdFgp4xaGzGQg= =Ui+w -----END PGP SIGNATURE----- --=-YVQP3XRsz392/7rJuGN9-- From debbugs-submit-bounces@debbugs.gnu.org Thu May 05 16:36:40 2022 Received: (at 55248) by debbugs.gnu.org; 5 May 2022 20:36:40 +0000 Received: from localhost ([127.0.0.1]:46579 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmiDI-0007Y2-Fj for submit@debbugs.gnu.org; Thu, 05 May 2022 16:36:40 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:38948) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmiDG-0007Xt-30 for 55248@debbugs.gnu.org; Thu, 05 May 2022 16:36:38 -0400 Received: from ptr-bvsjgyhxw7psv60dyze.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:3c5f:2eff:feb0:ba5a]) by laurent.telenet-ops.be with bizsmtp id T8cd270074UW6Th018cd86; Thu, 05 May 2022 22:36:37 +0200 Message-ID: Subject: Re: [bug#55248] [PATCH 2/7] gnu: racket: Fix out-of-source build. From: Maxime Devos To: Liliana Marie Prikler , Philip McGrath , 55248@debbugs.gnu.org Date: Thu, 05 May 2022 22:36:37 +0200 In-Reply-To: <72f621841c62c3663ee23371a91927e975617b80.camel@gmail.com> References: <72f621841c62c3663ee23371a91927e975617b80.camel@gmail.com> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-7kcMUROpNZtCiTfz+niU" User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1651782997; bh=6KqYKcpROYgfLhznen9ejcCQ1iXQN/+fnNTjWatAAeQ=; h=Subject:From:To:Date:In-Reply-To:References; b=B+mroq3tNwA9cQtf4u1Ah5exS8DYy5ftZqzzdJE2tBdlZxd3nz/ULNyt8xE++/4Me jPoOGsGqTdRf2YAgjAyADPhOgOHch6DFpowqMVrYxxquWCUlR9mdGief2BMOYQVCKL Pf8XKfWJodhuyTPQ7os/rOM6oQbLTqcEZXFb2FmKvkzbmL3pJSRXZwiLqTye1iDMR0 vf+HTBnTXsQzT/EBNagK0L5WW9sS3QFSq7Cyyvlq+U2kV5VFqP7Bb3i82tk5ch8ONq R/rCziZpDafjYoN7zpaHklgMz9PxvOz8Ore6cspe+OkSfFk8l4h5zK/jEMIQX94Jgq +/iSMUWQmHBSw== X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 55248 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 (-) --=-7kcMUROpNZtCiTfz+niU Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Liliana Marie Prikler schreef op do 05-05-2022 om 21:52 [+0200]: > > Another scenario that might be worth considering is projects that > > follow the REUSE specification[1], which I don't think would be > > handled by the current install-license-files. > I don't think we can rely on projects consistently following them, > sadly. There's plenty of projects that don't follow REUSE (e.g., Guix itself), and there might be some that have the .reuse/dep5 and LICENSES but aren't doing things 100% according to the spec, but I don't think it matters much to Guix if SPDX-License-Identifier is present in every file and such, given that all Guix has to do here is copy license files, so Guix could be taught to copy .reuse/dep5 and LICENSES (in addition to LICENSE, COPYING, ...). Greetings, Maxime --=-7kcMUROpNZtCiTfz+niU Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYnQ1VRccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7vTiAP43FSeSKjdoVaivR4DKNV77ZGom kGu1aHUEZjDr1s4+lAD/TfpyXoVm3/WwhS3/jfkDK2rvfscmwECKLASJdqPv2Qc= =Y8Ce -----END PGP SIGNATURE----- --=-7kcMUROpNZtCiTfz+niU-- From debbugs-submit-bounces@debbugs.gnu.org Thu May 05 16:42:43 2022 Received: (at 55248) by debbugs.gnu.org; 5 May 2022 20:42:43 +0000 Received: from localhost ([127.0.0.1]:46601 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmiJ9-0007hg-0D for submit@debbugs.gnu.org; Thu, 05 May 2022 16:42:43 -0400 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:41625) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmiJ7-0007hR-5A for 55248@debbugs.gnu.org; Thu, 05 May 2022 16:42:42 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id E514B3200645; Thu, 5 May 2022 16:42:34 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Thu, 05 May 2022 16:42:35 -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:sender:subject:subject:to:to; s=fm1; t=1651783354; x=1651869754; bh=ijyASzVAQT1Jdx7Zpv6Jiye3H C0vHhssWPmVE+3CCQk=; b=I9TrVprrLnoFY+MwHzvQSzacoAuquzeN0AU2HVGKW MGcsqgy00lZYVy7FKSRG5ELe6ygLRrndwcOZsm3CR4woS/DEJchEPMhu+DMERXTh k6mIWBWtlXXAt8CW276S0Pyjpk1i5O7djNsFm9JeYkcnRNCDoBo6NOIrM3W0Utdm kdIwGVrUYbFRfJBo9N3ZGWRNnaUJdX6J4sljVfokTizPkxUYf3md28NeVHSP1i2w URRrXP3QtqJoHI+zkd7dnWkQhD7HVDVaZSelA6GDXD5HVPajqah1ZKRVP9OimfeS Iph7jNXRgF2Ji9+9X1YCK6dfK13uahcF37nEJyMeytUZg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.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:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1651783354; x=1651869754; bh=ijyASzVAQT1Jdx7Zpv6Jiye3HC0v HhssWPmVE+3CCQk=; b=br3zeZjpo75tTrXDgoIe8LH0zWSx8liz1ID3Mj983E1f pC92V+h4V+z3PkX3BZlAJqGkb/yZW0IXlxA35wuuJW4cfYKkyWH00UGFQNv3+NAP wDfvs2w3jem5UKflFJrwSSW6MSI40OJwdwPplj9YRFoPHa3xleuI67NKKPN2rkkA CkWujMzf03JsioLoGs5k2ZK93XFawj4GbBc3iCiF6+T7d/X/x+zLE7MVYjmo6Q4I CTUPX0dH83TGxMr4XJvJvq7edCn8UiVmav/7rW9rDs3tXVwb+ueYzgYcRwiq/1ts oqCeLLB36H6FA/Z1ThZgsjvWxpi8a6XLz2qFtoxakA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfedugddugeelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvfhfhjggtgfesthekredttdefjeenucfhrhhomheprfhhihhl ihhpucfotgfirhgrthhhuceophhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtoh hmqeenucggtffrrghtthgvrhhnpedvudfhheelveegleetfedvgfetgedugfdtiedttdef ffeuheeiveduieffgeefgfenucffohhmrghinhepghhnuhdrohhrghdpghhithhhuhgsrd gtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhep phhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtohhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 5 May 2022 16:42:33 -0400 (EDT) Message-ID: <770e2e49-e27c-dbfb-ee03-e2886df94f42@philipmcgrath.com> Date: Thu, 5 May 2022 16:42:32 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: [PATCH 7/7] gnu: chez-scheme-for-system: Adjust support logic. Content-Language: en-US To: Liliana Marie Prikler , 55248@debbugs.gnu.org, Maxime Devos References: <9ba89b23f86a163679047f113e3524b4352df55d.1651594312.git.philip@philipmcgrath.com> <1dc114e6acd0320c553837e1d9f5d94e4e8c800d.camel@ist.tugraz.at> From: Philip McGrath In-Reply-To: <1dc114e6acd0320c553837e1d9f5d94e4e8c800d.camel@ist.tugraz.at> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 55248 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, On 5/4/22 03:21, Liliana Marie Prikler wrote: > Am Dienstag, dem 03.05.2022 um 14:33 -0400 schrieb Philip McGrath: >> This is a follow-up to commit >> b8fc9169515ef1a6d6037c84e30ad308e5418b6f: >> see . Thanks to Liliana Marie >> Prikler for pointing out various issues, e.g. that being able to >> represent a Nix system as a Chez Scheme machine type does not >> necessarily mean the system is supported! > The issue in that commit is a different one: nix-system->chez-machine > can fail if there's no conversion. Anyway... > The issue fixed in the commit is different, but this issue hadn't occurred to me until you wrote in : > I pushed that definition upstream, but a rewrite is still needed. I > also think this logic should be a little decoupled from the question of > whether or not a given nix-system is supported. While surely this > function returning #f means it's not, there are still other questions > to consider. >> [...] >> ;; Commentary: >> @@ -73,96 +71,17 @@ (define* (chez-scheme-for-system #:optional >>                                               (%current-system)))) >>    "Return 'chez-scheme' unless only 'chez-scheme-for-racket' >> supports SYSTEM, >>  including support for native threads." >> -  (if (or >> -       ;; full support upstream >> -       (and=> (chez-upstream-features-for-system system) >> -              (cut memq 'threads <>)) >> -       ;; no support anywhere >> -       (not (nix-system->chez-machine system))) >> +  (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)) > Does it make sense to require 'threads always? > I guess there are a few notions of "always". In 'chez-scheme-for-racket', yes, because Racket CS needs thread support for "futures" and "places". (Racket BC had a notion of platforms where those features were not available, but AFAIK there isn't support for a non-threaded configuration of Racket CS.) For 'chez-scheme', every distribution I'm aware of packages the threaded version (only) on platforms where thread support is available. The only reason to use the nonthreaded version is if you know for sure that your application doesn't use threads---IIRC, that may even include any FFI libraries not using threads internally---AND the small performance gain from not implementing thread safety internally makes a difference. For 'chez-scheme-for-system', I don't have a strong view, but the fact that I think the benefits of thread support are significant makes me lean that way. Concretely, the answer to this question only affects armhf-linux, so I think we should not change this at least until we re-enable it in upstream Chez's 'supported-system'. >> -(define* (nix-system->chez-machine #:optional >> -                                   (system (or (%current-target- >> system) >> -                                               (%current-system)))) >> -  "Return the Chez Scheme machine type corresponding to the Nix >> system >> -identifier SYSTEM, or @code{#f} if the translation of SYSTEM to a >> Chez Scheme >> -machine type is undefined. >> - >> -It is unspecified whether the resulting string will name a threaded >> or a >> -nonthreaded machine type: when the distinction is relevant, use >> -@code{chez-machine->nonthreaded} or @code{chez-machine->threaded} to >> adjust >> -the result." >> -  (let* ((hyphen (string-index system #\-)) >> -         (nix-arch (substring system 0 hyphen)) >> -         (nix-os (substring system (+ 1 hyphen))) >> -         (chez-arch (assoc-ref %nix-arch-to-chez-alist nix-arch)) >> -         (chez-os (assoc-ref %nix-os-to-chez-alist nix-os))) >> -    (and chez-arch chez-os (string-append chez-arch chez-os)))) >> - > The replacement code should go here for readability imho. At the very > least I was confused why this was first above and now below. > Happy to move things. Specifically, do you want 'target-chez-arch' and 'target-chez-os' (and '%chez-features-table'?) before 'chez-upstream-features-for-system' and 'racket-cs-native-supported-system?'? >> + > For the sake of completeness, we might want to still have nix-system- >> chez-machine (with a threaded? argument) defined in terms of target- > chez-arch and target-chez-os. See 6/7 for motivation. > Eventually, I imagine we will want to have a function like 'nix-system->chez-machine', but I think it would be better to wait until we have a concrete use-case. In particular, what I'd written here: >> -Note that this function only handles Chez Scheme machine types in >> the >> -strictest sense, not other kinds of descriptors sometimes used in >> place of a >> -Chez Scheme machine type by Racket, such as @code{\"pb\"}, >> @code{#f}, or >> -@code{\"racket\"}. (When using such extensions, the Chez Scheme >> machine type >> -for the host system is often still relevant.)" is no longer necessarily true, thanks to the improvements in the "portable bytecode" backends. >> >>  ;; >>  ;; Chez Scheme: >> @@ -365,14 +414,9 @@ (define-public chez-scheme >>                    ((pth) >>                     (symlink pth >>                              "csug.pdf"))))))))) >> -    ;; Chez Scheme does not have a  MIPS backend. >> -    ;; FIXME: Debian backports patches to get armhf working. >> -    ;; We should too. It is the Chez machine type arm32le >> -    ;; (no threaded version upstream yet, though there is in >> -    ;; Racket's fork), more specifically (per the release notes) >> ARMv6. >>      (supported-systems >>       (delete >> -      "armhf-linux" ;; <-- should work, but reportedly broken >> +      "armhf-linux" ;; XXX is this still broken? > I'd say "XXX: reportedly broken, needs checking" That seems better, particularly given e.g. : > > it is likely musl-related since I assume that arm32le is well tested > in conjunction with glibc > > That's probably not the best assumption... arm32le is not tested in > GitHub automation, and the last work that I know for sure was done on > it was for a project that is now defunct. I'm sure it was working and > tested at some point, but bit rot may have set in. > > All in all, the individual logic of this patch seems fine, but overall > it appears as though it's doing three separate things (chez-scheme-for- > system, chez features, racket-cs stuff). IMO it would make sense to > split this patch according to those lines. WDYT? > I don't think I'm picturing what you have in mind. The way I've been thinking of this patch is replacing the Chez features and machine type functions based on '%chez-features-table', then updating other things accordingly. I guess there is a distinguishable change to the behavior of 'chez-scheme-for-system' for systems with no native-code backed. I could separate that, if you want. On the other hand, it continues to return a package that can't actually be built for the specified system, so the change seems mostly theoretical. In terms of "racket-cs stuff", 'racket-cs-native-supported-system?' seemed better than any name I could come up with based on 'chez-scheme-for-racket', but the answer is based only on Racket's variant of Chez scheme. The old version based on 'nix-system->chez-machine' was just wrong (it would falsely claim to support e.g. "powerpc-w64-mingw32"), and we didn't have a way to implement a correct function until adding the information in '%chez-features-table'. -Philip From debbugs-submit-bounces@debbugs.gnu.org Thu May 05 17:49:44 2022 Received: (at 55248) by debbugs.gnu.org; 5 May 2022 21:49:44 +0000 Received: from localhost ([127.0.0.1]:46648 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmjLz-00010N-Pk for submit@debbugs.gnu.org; Thu, 05 May 2022 17:49:44 -0400 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:51669) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmjLy-000106-3x for 55248@debbugs.gnu.org; Thu, 05 May 2022 17:49:42 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 122253200955; Thu, 5 May 2022 17:49:34 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Thu, 05 May 2022 17:49:35 -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:sender:subject:subject:to:to; s=fm1; t=1651787374; x=1651873774; bh=1R5T6g/ilCNynD8r+ZepG/G5V y80DRCAkncIFn3rwtg=; b=hTrqfewIMlWkUY2Zmu0SgYcX7ksGsdUV/XzKMsvsn 4K7uNjTY9bCu7EUUfrFAmRUWIaCIF/SzXAVbC5g6NVnj/m6CPbjWqtE6PBgIyfco rnZTO1QM/gyZwR+WylNonabLw2+9xAs0jmTv1c+zuE8KPyV19Q3fB0bWdFYRs+gF C0O+ngPP9WXPjdlBor9N8HVjsWzS3CATF6LaYZSiHaFzbSCgShydnzK45kkkUc0+ PbtGMkJ1olZ1BpbowRowB9bAgbi+rEN1UYWonTGJsr7L28WhhBJhDZHy3i6Wt452 vbIEih9ACEW2ThpYN/xYnt7uuizrJMVQXrDbddQlRuNjA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.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:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1651787374; x=1651873774; bh=1R5T6g/ilCNynD8r+ZepG/G5Vy80 DRCAkncIFn3rwtg=; b=z6t8zkFgTD8RGyjmbUbjACj+l2OmCytwqgBD947GJgL1 JnAgufWVTbPuZZKoemBdYTV0eqFRwOxvWhQqMFswOchTSTumrmgCZUcr/z5th8EQ zRHc8jBuy/1UV/+X7Bjl+QJLCAhiJafyGiq0sxfvVFUPdvLq1JBb3T9gTmjG7Dj3 HhkT2sc5EMQF+EEt/UlnJmecVDweMqij3U1PoAjvPpzD/3b/eKi739PFJXT3ZF9R E/tIcZlJbIr4l8omz427MPs+HaPvAxzVJKY3ZfrMzeY+iV39qPHmBDi+Br2lhOD5 y2tKDzJsYZGXzP+2RRWqfBv6FxKiXv0gOV7hbEZU2A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfedvgddtvdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefkffggfgfuvfhfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpefrhhhilhhi phcuofgtifhrrghthhcuoehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomh eqnecuggftrfgrthhtvghrnhepheejhedugedvveettdetleeiheetjedvfeffudffgffh ffdvvdfhvefftdegieeknecuffhomhgrihhnpehrrggtkhgvthdqlhgrnhhgrdhorhhgne cuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphhhihhl ihhpsehphhhilhhiphhmtghgrhgrthhhrdgtohhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 5 May 2022 17:49:33 -0400 (EDT) Message-ID: <9d2423b2-aacb-4869-b3a7-e4ac885cc36c@philipmcgrath.com> Date: Thu, 5 May 2022 17:49:32 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: [PATCH 1/7] gnu: racket: Update to 8.5. Content-Language: en-US To: Liliana Marie Prikler , 55248@debbugs.gnu.org, Maxime Devos References: <2290ebb81a8acaa959eff9f60694330e495e3a19.1651594312.git.philip@philipmcgrath.com> <7b3da393016daa21c35dd27fc086b03339435e9d.camel@ist.tugraz.at> From: Philip McGrath In-Reply-To: <7b3da393016daa21c35dd27fc086b03339435e9d.camel@ist.tugraz.at> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 55248 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, On 5/4/22 02:53, Liliana Marie Prikler wrote: > Am Dienstag, dem 03.05.2022 um 14:33 -0400 schrieb Philip McGrath: >> * gnu/packages/patches/racket-gui-tethered-launcher-backport.patch, >> gnu/packages/patches/racket-enable-scheme-backport.patch: Delete >> files. >> * gnu/local.mk (dist_patch_DATA): Remove them. > LGTM. >> * gnu/packages/chez.scm (chez-scheme-for-racket): Update to 9.5.7.6. > This... >> * gnu/packages/racket.scm (%racket-version): Update to 8.4.900. > ... and this might be done in different commits. Since 'chez-scheme-for-racket' uses the same origin as the Racket VM packages, I think the versions have to be updated at the same time, short of having a commit where one of them is incorrect or doing something needlessly complicated. > Also, you typo'd in > the ChangeLog, the version ought to be 8.5 Thanks! (8.4.900 was the release candidate, from which I `git commit --amend`ed this patch.) >> (%racket-origin)[sha256]: Update accordingly. > You don't normally need to mention hash updates, but (*). Ok, will drop this but keep below. >> [patches]: Remove obsolete patches. > LGTM. >> (racket-vm-common-configure-flags): Remove incorrect comment. > No. Unless you address the issue at hand (which I don't want to be a > blocker for this series, mind you), it persists. If you don't like how > the comment is written currently, you might suggest an alternative > formulation, but people deserve to know that the origtree layout is a > hack. I understand that this is your opinion. I disagree. I don't want to make a big deal out of it, but I'm uncomfortable with the fact that `git blame` currently attributes to me a statement of opinion which I did not write and do not believe. I could write a lot of prose arguing in favor of --enable-origtree as a matter of opinion, but I'd rather spend my time trying to write a racket-build-system, which I expect will make its usefulness more obvious. For now, I'll limit myself to noting that, while Racket supports --enable-unix-style for those who insist on it (a group which formerly included me!), if you run the Racket installer script [1] with default options, it will install the files that 'racket-vm-cs' and similar place in "/opt/racket-vm/" in "/usr/racket". Optionally, the installer will then create symlinks is "/usr/bin" etc. pointing to a subset of the files that Guix's 'racket-minimal' installs into '#$output'. To the extent that there is an assertion of fact embedded in: > > - ;; XXX: origtree layout is required by some other packages down the > > - ;; bootstrap chain. Remove these flags as soon as we can do without them. it is not true. The packages which operate on a Racket installation with this layout (e.g. 'distro-build' and 'raco-cross') are not part of "the bootstrap chain", and the packages which are part of the bootstrap chain do not require --enable-origtree, except to the extent that e.g. it is a convenient way of telling apart multiple executables named "racket". >> (simple-racket-origin): Accept optional #:commit argument. > Is this used anywhere? If not, I suggest leaving it be for now. It isn't, but it was extremely useful for building the release candidate. That said, I'm ok with not changing it in Guix. >> (racket)[inputs]<2d, datalog, deinprogramm, draw, drracket, >> expeditor, htdp, pict, plot, quickscript, racklog, rackunit, redex, >> scribble, typed-racket, string-constants, syntax-color, web-server, >> xrepl>: Update checksums. > (*) here it makes sense to document the checksum updates, because > they'd otherwise be invisible. >> : Likewise, and remove obsolete backports. -Philip [1]: https://download.racket-lang.org/releases/8.5/installers/racket-minimal-8.5-x86_64-linux-cs.sh From debbugs-submit-bounces@debbugs.gnu.org Thu May 05 17:55:58 2022 Received: (at 55248) by debbugs.gnu.org; 5 May 2022 21:55:58 +0000 Received: from localhost ([127.0.0.1]:46675 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmjRy-0001At-Jn for submit@debbugs.gnu.org; Thu, 05 May 2022 17:55:58 -0400 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:60063) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmjRw-0001Ab-D5 for 55248@debbugs.gnu.org; Thu, 05 May 2022 17:55:52 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 541CD3200931; Thu, 5 May 2022 17:55:46 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Thu, 05 May 2022 17:55:46 -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:sender:subject:subject:to:to; s=fm1; t=1651787745; x=1651874145; bh=YH9CBf0GEzn8VnaL19rOTZNWi CKUcNj40aumWB0oFJQ=; b=WorPOt9V08lejSfNR/GblSUwDivB0utQgxYgcwJsO Pn+VI488Df1+E9xS/MIExEEGp0yepY1Q5TzuiKLlDeP8OroqNC7faaUElmFiom1r GVU/ywtKb4NCuKRMrU17lf8Q/6E10nAbXWKPpfd0MSyAfw3HpKxTe920JBSi2dUb smIRVZV6zfLJlCBg0zyID10oFK7yL6zWg/13lUjb4zD2VJgVTN/q2PQly/JHESy6 G90mVTFLXIRdF3eFGfD8rAaHUzy9CC2G16+Jf3mThPBHIxlv0rfGaghs+fDj+BM4 E4qg+HZq1E/6taVVj6KXrjmol8sv8NBD7Xdywcz0cUsNQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.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:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1651787745; x=1651874145; bh=YH9CBf0GEzn8VnaL19rOTZNWiCKU cNj40aumWB0oFJQ=; b=lFbMiVaXI/uRnXRPzTAzelIVc8ZRBCCyGM6VBxHNtcKf jRg40cGBCjKNizs44ZjilZfraetofBwdFIFfJ6e0MXjmhFXsp47dhyebcTsijb9x a0PeItORR6hdD2l76D8V+RvySDW5ALh/3sH0HaCCj5s3oijJYlqB95TkYEtqk/iD ZB+rUFyOizw9+UCDNqC9rv/kCY2NbYn/vd1x5xoH30Vab7oAroDHCrgBuZZBRdPx +q0yzFekAszsg+pCESViQC+2hu5OIH5FK4OHmX4Ah18AWvUk50ACTXq8i1S4KHBr Hr4smr+RKjnzzb8KSJpw/ihrGqM0XML2dydQOKcQow== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfedvgddtfecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefkffggfgfuvfhfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpefrhhhilhhi phcuofgtifhrrghthhcuoehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomh eqnecuggftrfgrthhtvghrnhepgfegkefhvdffffffiedvkeejjedujeevgfeiueejueeu jedvhfehfedvjeduffegnecuffhomhgrihhnpehgnhhurdhorhhgnecuvehluhhsthgvrh fuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphhhihhlihhpsehphhhilhhi phhmtghgrhgrthhhrdgtohhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 5 May 2022 17:55:45 -0400 (EDT) Message-ID: <2ede14d3-75e2-c427-e651-ef0bd66ded8a@philipmcgrath.com> Date: Thu, 5 May 2022 17:55:44 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: [bug#55248] [PATCH 2/7] gnu: racket: Fix out-of-source build. Content-Language: en-US To: Maxime Devos , 55248@debbugs.gnu.org, Liliana Marie Prikler , Liliana Marie Prikler References: 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: 55248 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 (-) On 5/5/22 16:33, Maxime Devos wrote: > Philip McGrath schreef op do 05-05-2022 om 14:53 [-0400]: >> Another scenario that might be worth considering is projects that follow >> the REUSE specification[1], which I don't think would be handled by the >> current install-license-files. > > It doesn't copy .reuse/dep5 and LICENSES yet, though that can be > implemented: . I don't think that > helps for this particular package though, given that Racket doesn't > ship those files. > Right, it wouldn't help Racket, it was just another example of a case not handled by the current implementation. (Though I think it would be much more justifiable to add a special case for REUSE than for Racket.) Glad people are already thinking about it! -Philip From debbugs-submit-bounces@debbugs.gnu.org Fri May 06 02:37:43 2022 Received: (at 55248) by debbugs.gnu.org; 6 May 2022 06:37:44 +0000 Received: from localhost ([127.0.0.1]:46913 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmrax-0008BB-H6 for submit@debbugs.gnu.org; Fri, 06 May 2022 02:37:43 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:42433) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nmrau-0008B1-N8 for 55248@debbugs.gnu.org; Fri, 06 May 2022 02:37:41 -0400 Received: from lprikler-laptop.ist.intra (gw.ist.tugraz.at [129.27.202.101]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4Kvgq44lrkz3xNS; Fri, 6 May 2022 08:37:36 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1651819056; bh=Kx07UnLPpvWbXPC+9O3cf6c/vWexiFJxSacR3ZOD+do=; h=Subject:From:To:Date:In-Reply-To:References; b=fq3TlRow8wIbgBlh8wbB/tOmLBrlCiPLkAyLop9HFAlws/2j6hPeYNMRL8QaGga+y kJ9IINOZsMxo/ZIJeKBmg8jjd43ZBj5JNgcSsaI/esztQiBei3wcKNnkS4olfqz38g UKLUb9YGNkY62ef7lQYB1h0q+sOOLBfj6ywzlqfU= Message-ID: <03612de279ff26c801eb02a2d0aaa03fecfe59f9.camel@ist.tugraz.at> Subject: Re: [PATCH 1/7] gnu: racket: Update to 8.5. From: Liliana Marie Prikler To: Philip McGrath , 55248@debbugs.gnu.org, Maxime Devos Date: Fri, 06 May 2022 08:37:37 +0200 In-Reply-To: <9d2423b2-aacb-4869-b3a7-e4ac885cc36c@philipmcgrath.com> References: <2290ebb81a8acaa959eff9f60694330e495e3a19.1651594312.git.philip@philipmcgrath.com> <7b3da393016daa21c35dd27fc086b03339435e9d.camel@ist.tugraz.at> <9d2423b2-aacb-4869-b3a7-e4ac885cc36c@philipmcgrath.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: waObeELIUl4ypBWmcn/8wQ X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 55248 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 (---) Hi, Am Donnerstag, dem 05.05.2022 um 17:49 -0400 schrieb Philip McGrath: > Hi, > > On 5/4/22 02:53, Liliana Marie Prikler wrote: > > Am Dienstag, dem 03.05.2022 um 14:33 -0400 schrieb Philip McGrath: > > > * gnu/packages/patches/racket-gui-tethered-launcher- > > > backport.patch, > > > gnu/packages/patches/racket-enable-scheme-backport.patch: Delete > > > files. > > > * gnu/local.mk (dist_patch_DATA): Remove them. > > LGTM. > > > * gnu/packages/chez.scm (chez-scheme-for-racket): Update to > > > 9.5.7.6. > > This... > > > * gnu/packages/racket.scm (%racket-version): Update to 8.4.900. > > ... and this might be done in different commits. > > Since 'chez-scheme-for-racket' uses the same origin as the Racket VM > packages, I think the versions have to be updated at the same time, > short of having a commit where one of them is incorrect or doing > something needlessly complicated. Fair enough, go ahead. > > [...] > > > [patches]: Remove obsolete patches. > > LGTM. > > > > > (racket-vm-common-configure-flags): Remove incorrect comment. > > No.  Unless you address the issue at hand (which I don't want to be > > a blocker for this series, mind you), it persists.  If you don't > > like how the comment is written currently, you might suggest an > > alternative formulation, but people deserve to know that the > > origtree layout is a hack. > > I understand that this is your opinion. I disagree. I don't want to > make a big deal out of it, but I'm uncomfortable with the fact that > `git blame` currently attributes to me a statement of opinion which I > did not write and do not believe. Well, I'm uncomfortable with the fact that git assigns blame to people. The wording of the command name is (as many things in git) poorly chosen, but that's somewhat besides the point. I'm leaving open the option of writing a comment that you're more comfortable with, but I'm not leaving the option of silently removing it. > I could write a lot of prose arguing in favor of --enable-origtree as > a matter of opinion, but I'd rather spend my time trying to write a > racket-build-system, which I expect will make its usefulness more > obvious.  You can argue in favour of it, but that doesn't change the fact that this layout breaks assumptions that are held elsewhere. "Dump everything into a single directory" has never been a good deployment strategy, and those who use it tend to regret their decision later. > For now, I'll limit myself to noting that, while Racket > supports --enable-unix-style for those who insist on it (a group > which formerly included me!), if you run the Racket installer script > [1] with default options, it will install the files that 'racket-vm- > cs' and similar place in "/opt/racket-vm/" in "/usr/racket". > Optionally, the installer will then create symlinks is "/usr/bin" > etc. pointing to a subset of the files that Guix's 'racket-minimal' > installs into'#$output'. This paragraph does not make as much sense to another person as you believe it does. If I'm counting correctly, we're talking about three different configurations right now. --enable-origtree, --enable-unix- style, and a default that uses neither of the two. I don't think we can easily draw inferences from either to the others. > To the extent that there is an assertion of fact embedded in: > > > > -      ;; XXX: origtree layout is required by some other packages > > > down the > > > -      ;; bootstrap chain.  Remove these flags as soon as we can > > > do without them. > > it is not true. The packages which operate on a Racket installation > with this layout (e.g. 'distro-build' and 'raco-cross') are not part > of "the bootstrap chain", and the packages which are part of the > bootstrap chain do not require --enable-origtree, except to the > extent that e.g. it is a convenient way of telling apart multiple > executables named "racket". >From my POV "the bootstrap chain" consists of everything from the first VM to the final racket package. In that sense, I am sure you communicated elsewhere that it is very important to get layers going, and I'm also fairly certain that we can't currently build the VM chain without origtree either -- at least it would require nontrivial modification of said packages. Again, if you have a formulation that is more factual, but doesn't span several pages like other comments in racket.scm do, you are free to replace it. However, for the sake of a racket-build-system even, I suggest that it would be better if racket's own layout was meaningful. In other words, why can't racket be more like guile and support RACKET_LOAD_PATH and RACKET_LOAD_COMPILED_PATH? > > Cheers From debbugs-submit-bounces@debbugs.gnu.org Fri May 06 03:08:55 2022 Received: (at 55248) by debbugs.gnu.org; 6 May 2022 07:08:55 +0000 Received: from localhost ([127.0.0.1]:46944 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nms58-0000ZC-P4 for submit@debbugs.gnu.org; Fri, 06 May 2022 03:08:55 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:19055) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nms56-0000Z1-CQ for 55248@debbugs.gnu.org; Fri, 06 May 2022 03:08:53 -0400 Received: from lprikler-laptop.ist.intra (gw.ist.tugraz.at [129.27.202.101]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4KvhW46kQhz3xSm; Fri, 6 May 2022 09:08:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1651820929; bh=ibq6NAdgZSIxIE50bu1wX7gSXoXGSExmcNF/79kGp5k=; h=Subject:From:To:Date:In-Reply-To:References; b=kY7tDNK0T0ZzlCOAi0BMunGPzowXIDmrNjd5kQceIqtF43hkaiXO3rTvGG9YwB3fB 56YNI7NInDab1FRwWSSzEdEmbKRGaSXTStqKA+lbD2pHT5Py/EvTcTLr54DEyX0r2A M2r5xdnw7bovRwqNQRcNajTrQJPyYtCqDWCYjgWM= Message-ID: <5919abe72ececaa4464a52869ecee7397e93b372.camel@ist.tugraz.at> Subject: Re: [PATCH 7/7] gnu: chez-scheme-for-system: Adjust support logic. From: Liliana Marie Prikler To: Philip McGrath , 55248@debbugs.gnu.org, Maxime Devos Date: Fri, 06 May 2022 09:08:48 +0200 In-Reply-To: <770e2e49-e27c-dbfb-ee03-e2886df94f42@philipmcgrath.com> References: <9ba89b23f86a163679047f113e3524b4352df55d.1651594312.git.philip@philipmcgrath.com> <1dc114e6acd0320c553837e1d9f5d94e4e8c800d.camel@ist.tugraz.at> <770e2e49-e27c-dbfb-ee03-e2886df94f42@philipmcgrath.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: waObeELIUl4ypBWmcn/8wQ X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -0.4 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.116 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 55248 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 (---) Am Donnerstag, dem 05.05.2022 um 16:42 -0400 schrieb Philip McGrath: > Hi, > > On 5/4/22 03:21, Liliana Marie Prikler wrote: > > Am Dienstag, dem 03.05.2022 um 14:33 -0400 schrieb Philip McGrath: > > > > > This is a follow-up to commit > > > b8fc9169515ef1a6d6037c84e30ad308e5418b6f: > > > see . Thanks to Liliana Marie > > > Prikler for pointing out various issues, e.g. that being able to > > > represent a Nix system as a Chez Scheme machine type does not > > > necessarily mean the system is supported! > > The issue in that commit is a different one: nix-system->chez-machine > > can fail if there's no conversion.  Anyway... > > > > The issue fixed in the commit is different, but this issue hadn't > occurred to me until you wrote in > : > > > I pushed that definition upstream, but a rewrite is still needed.  I > > also think this logic should be a little decoupled from the > > question of whether or not a given nix-system is supported.  While > > surely this function returning #f means it's not, there are still > > other questions to consider. Ahh, in that case the commit message is pointing people to the wrong location. I think this needs to be communicated more clearly, e.g. "This commit is a follow-up to b8fc9169515ef1a6d6037c84e30ad308e5418b6f. While that commit did fix a breaking build, this one addresses the assumptions that lead to the failure, see also ." Thereafter go on to describe what's actually done. > > > [...] > > > ;; Commentary: > > > @@ -73,96 +71,17 @@ (define* (chez-scheme-for-system #:optional > > >                                                (%current- > > > system)))) > > >     "Return 'chez-scheme' unless only 'chez-scheme-for-racket' > > > supports SYSTEM, > > >   including support for native threads." > > > -  (if (or > > > -       ;; full support upstream > > > -       (and=> (chez-upstream-features-for-system system) > > > -              (cut memq 'threads <>)) > > > -       ;; no support anywhere > > > -       (not (nix-system->chez-machine system))) > > > +  (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)) > > Does it make sense to require 'threads always? > > > > I guess there are a few notions of "always". > > In 'chez-scheme-for-racket', yes, because Racket CS needs thread > support for "futures" and "places". (Racket BC had a notion of > platforms where those features were not available, but AFAIK there > isn't support for a non-threaded configuration of Racket CS.) > > For 'chez-scheme', every distribution I'm aware of packages the > threaded version (only) on platforms where thread support is > available. The only reason to use the nonthreaded version is if you > know for sure that your application doesn't use threads---IIRC, that > may even include any FFI libraries not using threads internally---AND > the small performance gain from not implementing thread safety > internally makes a difference. > > For 'chez-scheme-for-system', I don't have a strong view, but the > fact that I think the benefits of thread support are significant > makes me lean that way. Concretely, the answer to this question only > affects armhf-linux, so I think we should not change this at least > until we re-enable it in upstream Chez's 'supported-system'. In other words, there aren't that many uses of Chez scheme in embedded spaces, so we might as well always require threads? > > > -(define* (nix-system->chez-machine #:optional > > > -                                   (system (or (%current-target- > > > system) > > > -                                               (%current- > > > system)))) > > > -  "Return the Chez Scheme machine type corresponding to the Nix > > > system > > > -identifier SYSTEM, or @code{#f} if the translation of SYSTEM to > > > a > > > Chez Scheme > > > -machine type is undefined. > > > - > > > -It is unspecified whether the resulting string will name a > > > threaded > > > or a > > > -nonthreaded machine type: when the distinction is relevant, use > > > -@code{chez-machine->nonthreaded} or @code{chez-machine- > > > >threaded} to > > > adjust > > > -the result." > > > -  (let* ((hyphen (string-index system #\-)) > > > -         (nix-arch (substring system 0 hyphen)) > > > -         (nix-os (substring system (+ 1 hyphen))) > > > -         (chez-arch (assoc-ref %nix-arch-to-chez-alist nix- > > > arch)) > > > -         (chez-os (assoc-ref %nix-os-to-chez-alist nix-os))) > > > -    (and chez-arch chez-os (string-append chez-arch chez-os)))) > > > - > > The replacement code should go here for readability imho.  At the > > very least I was confused why this was first above and now below. > > > > Happy to move things. Specifically, do you want 'target-chez-arch' > and 'target-chez-os' (and '%chez-features-table'?) before > 'chez-upstream-features-for-system' and > 'racket-cs-native-supported-system?'? This is my personal bias coming from a C background, but I read source files top to bottom with helper procedures at the top and the main thing at the bottom. If you look closely, much of Guix also follows that pattern. For instance, build systems have their phases declared at the bottom, "guix build" expects the last line to evaluate to a package, and so on. > > > + > > For the sake of completeness, we might want to still have nix- > > system- > > > chez-machine (with a threaded? argument) defined in terms of > > > target- > > chez-arch and target-chez-os.  See 6/7 for motivation. > > > > Eventually, I imagine we will want to have a function like > 'nix-system->chez-machine', but I think it would be better to wait > until we have a concrete use-case. In particular, what I'd written > here: > >  >> -Note that this function only handles Chez Scheme machine types > in >  >> the >  >> -strictest sense, not other kinds of descriptors sometimes used > in >  >> place of a >  >> -Chez Scheme machine type by Racket, such as @code{\"pb\"}, >  >> @code{#f}, or >  >> -@code{\"racket\"}.  (When using such extensions, the Chez Scheme >  >> machine type >  >> -for the host system is often still relevant.)" > > is no longer necessarily true, thanks to the improvements in the > "portable bytecode" backends. In other words, nix-system->chez-scheme would get an extra #:features argument, which would be a sequence of 'threads and 'portable-bytecode, no? This question also has relevance w.r.t. 6/7 and potentially a chez-build-system, where this machine-type could actually be a discriminating factor. > > > [...] > > All in all, the individual logic of this patch seems fine, but > > overall it appears as though it's doing three separate things > > (chez-scheme-for-system, chez features, racket-cs stuff).  IMO it > > would make sense to split this patch according to those lines.  > > WDYT? > > > > I don't think I'm picturing what you have in mind. > > The way I've been thinking of this patch is replacing the Chez > features and machine type functions based on '%chez-features-table', > then updating other things accordingly. Sure, but if we retain nix-system->chez-machine as a function, I think we can make a cut here and proceed with the second patch thereafter. > I guess there is a distinguishable change to the behavior of > 'chez-scheme-for-system' for systems with no native-code backed. I > could separate that, if you want. On the other hand, it continues to > return a package that can't actually be built for the specified > system, so the change seems mostly theoretical. This should be the second patch imo. Regardless of theoreticness in value, I think the change itself is one that deserves its own commit message. It would also be easier to review and reason about later that way. > In terms of "racket-cs stuff", 'racket-cs-native-supported-system?' > seemed better than any name I could come up with based on > 'chez-scheme-for-racket', but the answer is based only on Racket's > variant of Chez scheme. The old version based on > 'nix-system->chez-machine' was just wrong (it would falsely claim to > support e.g. "powerpc-w64-mingw32"), and we didn't have a way to > implement a correct function until adding the information in > '%chez-features-table'. This would be the third patch according to my initial suggestion. That way, racket-cs-native-supported-system? would remain wrong for patch 7/9, but be corrected in patch 9/9, which imo would more clearly communicate that it was previously wrong. WDYT? From debbugs-submit-bounces@debbugs.gnu.org Sat May 07 14:40:05 2022 Received: (at 55248) by debbugs.gnu.org; 7 May 2022 18:40:05 +0000 Received: from localhost ([127.0.0.1]:52945 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnPLY-0008Ge-Dg for submit@debbugs.gnu.org; Sat, 07 May 2022 14:40:05 -0400 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:41547) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnPLV-0008Fz-1k for 55248@debbugs.gnu.org; Sat, 07 May 2022 14:40:03 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 9E83432004ED; Sat, 7 May 2022 14:39:53 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Sat, 07 May 2022 14:39:53 -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:sender:subject:subject:to:to; s=fm1; t=1651948793; x=1652035193; bh=CjaCK4VMUgfIzifJ/AHhVw+Z9 3paxE1qpp5WYlqSq28=; b=lOEjos11pnjqlr00UiozIf4/abnT2KwAfOXHL1bzL P81XkWI6/JsafqumbMN0V4d/kgNl+kX54jano2S4C6hjXbOR060XVNThf2ubF9SM DWXZlXqM/lbPvDxPtsDfzY6n0K9H1/Xp4Wx8zCR+cQjYnFDKq4LiLHIeNHFq1itY XIzGJtsyDAJT9c2dIBXeA25+PNSJmdIlbf2GT6HaaYzl/7nVuzuUrxnPRuxGGcMN 3RlSqxvsDCWLUxk22UkD0c+kFmkgnEIkKJeq55SX/RUAckARAklv6XmDIJJpRx8H jUG6IPjCsyQbMUpN0MPMwuXO2CwuTRYNvf1LtHLdDKOAw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.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:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1651948793; x=1652035193; bh=CjaCK4VMUgfIzifJ/AHhVw+Z93pa xE1qpp5WYlqSq28=; b=f2yk4wAnzKX/eSOKofWUG6Vj9mIevm/5IDI2d08yqdHv szpLcMMnl4z0bsLXfDASN+Ew3D46u7/oJy9ATb8BHFFNiXurNQ/sCg7UxFqB5Hp3 OCnPiAcnoP0QTHzr/rjP03HnzFEoOEfc6ngHkU9UKZO/BysXTohJfN0+SDyRRZak Sn2bM1dBfD2WHaFgriIuvm3mcBS3WHgXLLgOEpI5Dmh5Vj+r3aMKREGyUHrDmiD5 L03nYtY3jvKUSOIbf28fa+J3GQNyCEn6OrMy39/rYd8exp5dgTVkyL9z0j/xd+I9 72SjivFYrgoulPMhEaHGGAyDDzLAXR0sNLFHHsJX2Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfeehgdduvdelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvfhfhjggtgfesthekredttdefjeenucfhrhhomheprfhhihhl ihhpucfotgfirhgrthhhuceophhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtoh hmqeenucggtffrrghtthgvrhhnpefgheetkeetheekteehvedugfehledtteeiueffieeu hfegfeeitddtjefgkeeuveenucffohhmrghinhepghhnuhdrohhrghenucevlhhushhtvg hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehphhhilhhiphesphhhihhl ihhpmhgtghhrrghthhdrtghomh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 7 May 2022 14:39:52 -0400 (EDT) Message-ID: Date: Sat, 7 May 2022 14:39:51 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: [PATCH 1/7] gnu: racket: Update to 8.5. Content-Language: en-US To: Liliana Marie Prikler , 55248@debbugs.gnu.org, Maxime Devos References: <2290ebb81a8acaa959eff9f60694330e495e3a19.1651594312.git.philip@philipmcgrath.com> <7b3da393016daa21c35dd27fc086b03339435e9d.camel@ist.tugraz.at> <9d2423b2-aacb-4869-b3a7-e4ac885cc36c@philipmcgrath.com> <03612de279ff26c801eb02a2d0aaa03fecfe59f9.camel@ist.tugraz.at> From: Philip McGrath In-Reply-To: <03612de279ff26c801eb02a2d0aaa03fecfe59f9.camel@ist.tugraz.at> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 55248 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, On 5/6/22 02:37, Liliana Marie Prikler wrote: > Hi, > > Am Donnerstag, dem 05.05.2022 um 17:49 -0400 schrieb Philip McGrath: >> Hi, >> >> On 5/4/22 02:53, Liliana Marie Prikler wrote: >>> Am Dienstag, dem 03.05.2022 um 14:33 -0400 schrieb Philip McGrath: >>>> (racket-vm-common-configure-flags): Remove incorrect comment. >>> No.  Unless you address the issue at hand (which I don't want to be >>> a blocker for this series, mind you), it persists.  If you don't >>> like how the comment is written currently, you might suggest an >>> alternative formulation, but people deserve to know that the >>> origtree layout is a hack. >> >> I understand that this is your opinion. I disagree. I don't want to >> make a big deal out of it, but I'm uncomfortable with the fact that >> `git blame` currently attributes to me a statement of opinion which I >> did not write and do not believe. > Well, I'm uncomfortable with the fact that git assigns blame to people. > The wording of the command name is (as many things in git) poorly > chosen, but that's somewhat besides the point. I'm leaving open the > option of writing a comment that you're more comfortable with, but I'm > not leaving the option of silently removing it. > >> I could write a lot of prose arguing in favor of --enable-origtree as >> a matter of opinion, but I'd rather spend my time trying to write a >> racket-build-system, which I expect will make its usefulness more >> obvious. > You can argue in favour of it, but that doesn't change the fact that > this layout breaks assumptions that are held elsewhere. "Dump > everything into a single directory" has never been a good deployment > strategy, and those who use it tend to regret their decision later. > >> For now, I'll limit myself to noting that, while Racket >> supports --enable-unix-style for those who insist on it (a group >> which formerly included me!), if you run the Racket installer script >> [1] with default options, it will install the files that 'racket-vm- >> cs' and similar place in "/opt/racket-vm/" in "/usr/racket". >> Optionally, the installer will then create symlinks is "/usr/bin" >> etc. pointing to a subset of the files that Guix's 'racket-minimal' >> installs into'#$output'. > This paragraph does not make as much sense to another person as you > believe it does. If I'm counting correctly, we're talking about three > different configurations right now. --enable-origtree, --enable-unix- > style, and a default that uses neither of the two. I don't think we > can easily draw inferences from either to the others. > Given the vehemence of your opinion, I was assuming some familiarity with building Racket. There are various ways of ending up with a "Unix-style" installation as implemented by the 'setup/unixstyle-install' module, including `make unix-style` in the top-level directory, `./configure --enable-origtree=no` in the vm source directory, and the default answers to the installer script (which embeds an archive of the built files). There are some platform-specific details, but none that currently affect Guix. (E.g. when building for Mac, you can fine-tune the installation style and the use of GTK vs. Cocoa for `racket/gui`). An in-place installation (as produced by --enable-origtree) is self-contained and can be freely relocated. A Unix-style installation moves parts of an in-place build to better suit a shared FHS prefix (e.g. "etc/config.rktd" -> "etc/racket/config.rktd"; "collects" -> "share/racket/collects"), injects absolute paths to find parts of itself, and generates an uninstall script. But those things are not useful in this context: the `racket` executable from the VM packages should only be run to build the rest of Racket, and we want to build a Racket installation additive, not by mutating it. >> To the extent that there is an assertion of fact embedded in: >> >>>> -      ;; XXX: origtree layout is required by some other packages >>>> down the >>>> -      ;; bootstrap chain.  Remove these flags as soon as we can >>>> do without them. >> >> it is not true. The packages which operate on a Racket installation >> with this layout (e.g. 'distro-build' and 'raco-cross') are not part >> of "the bootstrap chain", and the packages which are part of the >> bootstrap chain do not require --enable-origtree, except to the >> extent that e.g. it is a convenient way of telling apart multiple >> executables named "racket". > From my POV "the bootstrap chain" consists of everything from the first > VM to the final racket package. In that sense, I am sure you > communicated elsewhere that it is very important to get layers going, > and I'm also fairly certain that we can't currently build the VM chain > without origtree either -- at least it would require nontrivial > modification of said packages. > It is true that removing `--enable-origtree` would require nontrivial changes, primarily to `configure-layer.rkt`. > Again, if you have a formulation that is more factual, but doesn't span > several pages like other comments in racket.scm do, you are free to > replace it. I will try to write a strictly factual comment. > However, for the sake of a racket-build-system even, I > suggest that it would be better if racket's own layout was meaningful. > In other words, why can't racket be more like guile and support > RACKET_LOAD_PATH and RACKET_LOAD_COMPILED_PATH? > I mean, you are certainly free to dislike Racket's model of linking and compilation! And, in fact, Racket has enough configuration options and compatibility hooks that you could try to use it with e.g. PLTCOLLECTS, though it would not be recommended, well-tested, or useful for most Racketeers. With the caveat that all analogies are imprecise, why does Guix prefer to avoid relying on LD_LIBRARY_PATH for C libraries? From my perspective, Racket avoids at least several (maybe not all, but we shall see) of the weaknesses/restrictions described in [1]: > This is not the end of stat storms, though. Interpreters and language > run-time systems rely on search paths—GUILE_LOAD_PATH for Guile, > PYTHONPATH for Python, OCAMLPATH for OCaml, etc.—and are equally prone > to stormy application startups. Unlike ELF, they do not have a mechanism > akin to RUNPATH, let alone a run-time search path cache. We have yet to > find ways to address these. -Philip [1]: https://guix.gnu.org/en/blog/2021/taming-the-stat-storm-with-a-loader-cache/ From debbugs-submit-bounces@debbugs.gnu.org Sat May 07 15:18:36 2022 Received: (at 55248) by debbugs.gnu.org; 7 May 2022 19:18:36 +0000 Received: from localhost ([127.0.0.1]:52965 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnPwp-0000mY-BX for submit@debbugs.gnu.org; Sat, 07 May 2022 15:18:36 -0400 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:35809) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnPwm-0000mL-Rl for 55248@debbugs.gnu.org; Sat, 07 May 2022 15:18:34 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 124C5320010B; Sat, 7 May 2022 15:18:25 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Sat, 07 May 2022 15:18:26 -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:sender:subject:subject:to:to; s=fm1; t=1651951105; x=1652037505; bh=xwiqcTwbHnxk4JNJPf7s15QD+ oYRX1nofVxn0iNXU5U=; b=GWk0T2tHtA3oZszCg+rw+OlMQFPzixthwQHdYWiky 3lfEzjNhCHBGJNr4w8fNbpevApRBEZplDXtDsNLAFI+5/JqeFtWsW3Wt6gBmSXHO 2U2T/Ya/8/XcpNKY7AISSUn5yjlBRMoCuhwrO3r9hBMGCDwfrLWjSUOUbV7u9WXx aVl9gFCKQrxvYZPtaCsuOgZnyLPdR8f10uLucLhK5qnFe2xryBitZiJ14LpvHMhM HuiPrhBCBljBbMxis9mcBT9VFJofQLbNA0i/C5uZVTOEFaBn62f641AhZVDuOzdm vPAMmYwF+sZUCjreZOHpyW/UbBHYhtDNBre1/8ECC9kRA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.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:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1651951105; x=1652037505; bh=xwiqcTwbHnxk4JNJPf7s15QD+oYR X1nofVxn0iNXU5U=; b=xPhnqX8LZua6XZklTDkR1ImtJa0HRwvalCPhVW/X8jN6 Itcwm5PFvkC1Z8rUZsufXcjrwRqfrpsg3VXbrESaKv9bA9+nNL/vBUFRwWji6ddx 4auow4f+ez0/ckvvZGUEe0CNA2kz/f/c5hwq6iRb6ju8m7ylbDN2oaoaL9s9I8GZ QBgpwjiBFGYbgO82krCTV0JCloI7KmSNB9mSguWkki3P8OPuhVOGxRXHS5tcn/8H 5LJdZMsyGc2iQ8Aq97/V0j4s/p3AZlPeq7FRTDs44YU4NXOmTgpe/l4PZ8dIhRaE 7HghijCi6DvzB3TtuQxxEPeuC6WuRTy4vI4mlOcaGw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfeehgddufeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne goufhushhpvggtthffohhmrghinhculdegledmnecujfgurhepkfffgggfuffvfhfhjggt gfesthekredttdefjeenucfhrhhomheprfhhihhlihhpucfotgfirhgrthhhuceophhhih hlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtohhmqeenucggtffrrghtthgvrhhnpefh gfdtkeeukedtfedvhfefkeefhedvffeutdfffefgtdetudejieefkeduieetueenucffoh hmrghinhepghhnuhdrohhrghdpghhoohhglhgvrdgtohhmnecuvehluhhsthgvrhfuihii vgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphhhihhlihhpsehphhhilhhiphhmtg hgrhgrthhhrdgtohhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 7 May 2022 15:18:24 -0400 (EDT) Message-ID: <5db08b29-a064-76ed-20a6-d55836071d4c@philipmcgrath.com> Date: Sat, 7 May 2022 15:18:24 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: [PATCH 7/7] gnu: chez-scheme-for-system: Adjust support logic. Content-Language: en-US To: Liliana Marie Prikler , 55248@debbugs.gnu.org, Maxime Devos References: <9ba89b23f86a163679047f113e3524b4352df55d.1651594312.git.philip@philipmcgrath.com> <1dc114e6acd0320c553837e1d9f5d94e4e8c800d.camel@ist.tugraz.at> <770e2e49-e27c-dbfb-ee03-e2886df94f42@philipmcgrath.com> <5919abe72ececaa4464a52869ecee7397e93b372.camel@ist.tugraz.at> From: Philip McGrath In-Reply-To: <5919abe72ececaa4464a52869ecee7397e93b372.camel@ist.tugraz.at> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 55248 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, On 5/6/22 03:08, Liliana Marie Prikler wrote: > Am Donnerstag, dem 05.05.2022 um 16:42 -0400 schrieb Philip McGrath: >> Hi, >> >> On 5/4/22 03:21, Liliana Marie Prikler wrote: >>> Am Dienstag, dem 03.05.2022 um 14:33 -0400 schrieb Philip McGrath: >>> >>>> This is a follow-up to commit >>>> b8fc9169515ef1a6d6037c84e30ad308e5418b6f: >>>> see . Thanks to Liliana Marie >>>> Prikler for pointing out various issues, e.g. that being able to >>>> represent a Nix system as a Chez Scheme machine type does not >>>> necessarily mean the system is supported! >>> The issue in that commit is a different one: nix-system->chez-machine >>> can fail if there's no conversion.  Anyway... >>> >> >> The issue fixed in the commit is different, but this issue hadn't >> occurred to me until you wrote in >> : >> >>> I pushed that definition upstream, but a rewrite is still needed.  I >>> also think this logic should be a little decoupled from the >>> question of whether or not a given nix-system is supported.  While >>> surely this function returning #f means it's not, there are still >>> other questions to consider. > Ahh, in that case the commit message is pointing people to the wrong > location. I think this needs to be communicated more clearly, e.g. > > "This commit is a follow-up to > b8fc9169515ef1a6d6037c84e30ad308e5418b6f. While that commit did fix a > breaking build, this one addresses the assumptions that lead to the > failure, see also ." > > Thereafter go on to describe what's actually done. > Yes, that seems better. (I was trying to focus the summary on user-facing functions, rather than replaced internals, but I think it can be better.) > >>>> [...] >>>> ;; Commentary: >>>> @@ -73,96 +71,17 @@ (define* (chez-scheme-for-system #:optional >>>>                                                (%current- >>>> system)))) >>>>     "Return 'chez-scheme' unless only 'chez-scheme-for-racket' >>>> supports SYSTEM, >>>>   including support for native threads." >>>> -  (if (or >>>> -       ;; full support upstream >>>> -       (and=> (chez-upstream-features-for-system system) >>>> -              (cut memq 'threads <>)) >>>> -       ;; no support anywhere >>>> -       (not (nix-system->chez-machine system))) >>>> +  (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)) >>> Does it make sense to require 'threads always? >>> >> >> I guess there are a few notions of "always". >> >> In 'chez-scheme-for-racket', yes, because Racket CS needs thread >> support for "futures" and "places". (Racket BC had a notion of >> platforms where those features were not available, but AFAIK there >> isn't support for a non-threaded configuration of Racket CS.) >> >> For 'chez-scheme', every distribution I'm aware of packages the >> threaded version (only) on platforms where thread support is >> available. The only reason to use the nonthreaded version is if you >> know for sure that your application doesn't use threads---IIRC, that >> may even include any FFI libraries not using threads internally---AND >> the small performance gain from not implementing thread safety >> internally makes a difference. >> >> For 'chez-scheme-for-system', I don't have a strong view, but the >> fact that I think the benefits of thread support are significant >> makes me lean that way. Concretely, the answer to this question only >> affects armhf-linux, so I think we should not change this at least >> until we re-enable it in upstream Chez's 'supported-system'. > In other words, there aren't that many uses of Chez scheme in embedded > spaces, so we might as well always require threads? > At least, I think it's a sufficiently niche use-case that its reasonable for those users to use a package transformation (and check that it works for all of the libraries they use) while allowing general Chez code to assume threads are available, since they are well supported overall. (I have heard stories about embedded Chez, e.g. to control a Disney World virtual reality ride.[1] But I'm not aware of any free software Chez projects that don't work with threads.) >>>> -(define* (nix-system->chez-machine #:optional >>>> -                                   (system (or (%current-target- >>>> system) >>>> -                                               (%current- >>>> system)))) >>>> -  "Return the Chez Scheme machine type corresponding to the Nix >>>> system >>>> -identifier SYSTEM, or @code{#f} if the translation of SYSTEM to >>>> a >>>> Chez Scheme >>>> -machine type is undefined. >>>> - >>>> -It is unspecified whether the resulting string will name a >>>> threaded >>>> or a >>>> -nonthreaded machine type: when the distinction is relevant, use >>>> -@code{chez-machine->nonthreaded} or @code{chez-machine- >>>>> threaded} to >>>> adjust >>>> -the result." >>>> -  (let* ((hyphen (string-index system #\-)) >>>> -         (nix-arch (substring system 0 hyphen)) >>>> -         (nix-os (substring system (+ 1 hyphen))) >>>> -         (chez-arch (assoc-ref %nix-arch-to-chez-alist nix- >>>> arch)) >>>> -         (chez-os (assoc-ref %nix-os-to-chez-alist nix-os))) >>>> -    (and chez-arch chez-os (string-append chez-arch chez-os)))) >>>> - >>> The replacement code should go here for readability imho.  At the >>> very least I was confused why this was first above and now below. >>> >> >> Happy to move things. Specifically, do you want 'target-chez-arch' >> and 'target-chez-os' (and '%chez-features-table'?) before >> 'chez-upstream-features-for-system' and >> 'racket-cs-native-supported-system?'? > This is my personal bias coming from a C background, but I read source > files top to bottom with helper procedures at the top and the main > thing at the bottom. If you look closely, much of Guix also follows > that pattern. For instance, build systems have their phases declared > at the bottom, "guix build" expects the last line to evaluate to a > package, and so on. > My personal preference vacillates between defining helpers before using them and putting high-level or public definitions above internal utilities. >>>> + >>> For the sake of completeness, we might want to still have nix- >>> system- >>>> chez-machine (with a threaded? argument) defined in terms of >>>> target- >>> chez-arch and target-chez-os.  See 6/7 for motivation. >>> >> >> Eventually, I imagine we will want to have a function like >> 'nix-system->chez-machine', but I think it would be better to wait >> until we have a concrete use-case. In particular, what I'd written >> here: >> >>  >> -Note that this function only handles Chez Scheme machine types >> in >>  >> the >>  >> -strictest sense, not other kinds of descriptors sometimes used >> in >>  >> place of a >>  >> -Chez Scheme machine type by Racket, such as @code{\"pb\"}, >>  >> @code{#f}, or >>  >> -@code{\"racket\"}.  (When using such extensions, the Chez Scheme >>  >> machine type >>  >> -for the host system is often still relevant.)" >> >> is no longer necessarily true, thanks to the improvements in the >> "portable bytecode" backends. > In other words, nix-system->chez-scheme would get an extra #:features > argument, which would be a sequence of 'threads and 'portable-bytecode, > no? This question also has relevance w.r.t. 6/7 and potentially a > chez-build-system, where this machine-type could actually be a > discriminating factor. > It may end up being more complex than that, depending on how many of the underlying options we want to expose via Guix. For example, there is "pb" for a fully machine-independent bytecode, but e.g. "tpb64l" for a specialized bytecode for 64-bit little-endian machines with threads. I also don't yet understand when, if ever, we might want to supply a native machine type (if one is defined) in addition to a pb-based machine types. The uncertainty is why I'd rather avoid nix-system->chez-machine until we actually need it. >>> >> [...] >>> All in all, the individual logic of this patch seems fine, but >>> overall it appears as though it's doing three separate things >>> (chez-scheme-for-system, chez features, racket-cs stuff).  IMO it >>> would make sense to split this patch according to those lines. >>> WDYT? >>> >> >> I don't think I'm picturing what you have in mind. >> >> The way I've been thinking of this patch is replacing the Chez >> features and machine type functions based on '%chez-features-table', >> then updating other things accordingly. > Sure, but if we retain nix-system->chez-machine as a function, I think > we can make a cut here and proceed with the second patch thereafter. > I don't think we should retain nix-system->chez-machine beyond this series, but I guess we can delay removing it to split here. >> I guess there is a distinguishable change to the behavior of >> 'chez-scheme-for-system' for systems with no native-code backed. I >> could separate that, if you want. On the other hand, it continues to >> return a package that can't actually be built for the specified >> system, so the change seems mostly theoretical. > This should be the second patch imo. Regardless of theoreticness in > value, I think the change itself is one that deserves its own commit > message. It would also be easier to review and reason about later that > way. > This is the part that makes the most sense to me to put in its own commit. >> In terms of "racket-cs stuff", 'racket-cs-native-supported-system?' >> seemed better than any name I could come up with based on >> 'chez-scheme-for-racket', but the answer is based only on Racket's >> variant of Chez scheme. The old version based on >> 'nix-system->chez-machine' was just wrong (it would falsely claim to >> support e.g. "powerpc-w64-mingw32"), and we didn't have a way to >> implement a correct function until adding the information in >> '%chez-features-table'. > This would be the third patch according to my initial suggestion. That > way, racket-cs-native-supported-system? would remain wrong for patch > 7/9, but be corrected in patch 9/9, which imo would more clearly > communicate that it was previously wrong. > > WDYT? I will try to come up with a v2 more or less along these lines. -Philip [1]: https://groups.google.com/g/comp.lang.scheme/c/Xud6nGrF0Ss/m/BaJDopHMYYAJ From debbugs-submit-bounces@debbugs.gnu.org Sat May 07 16:01:27 2022 Received: (at 55248) by debbugs.gnu.org; 7 May 2022 20:01:27 +0000 Received: from localhost ([127.0.0.1]:52984 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnQcJ-0001qQ-AQ for submit@debbugs.gnu.org; Sat, 07 May 2022 16:01:27 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:48834) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnQcH-0001qE-HS for 55248@debbugs.gnu.org; Sat, 07 May 2022 16:01:26 -0400 Received: from ptr-bvsjgyhxw7psv60dyze.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:3c5f:2eff:feb0:ba5a]) by laurent.telenet-ops.be with bizsmtp id Tw1P270014UW6Th01w1PXN; Sat, 07 May 2022 22:01:23 +0200 Message-ID: <63e0a11d577741fc1a57e0d1ea9e0cc4d793ddb0.camel@telenet.be> Subject: Re: [PATCH 1/7] gnu: racket: Update to 8.5. From: Maxime Devos To: Philip McGrath , Liliana Marie Prikler , 55248@debbugs.gnu.org Date: Sat, 07 May 2022 22:01:15 +0200 In-Reply-To: References: <2290ebb81a8acaa959eff9f60694330e495e3a19.1651594312.git.philip@philipmcgrath.com> <7b3da393016daa21c35dd27fc086b03339435e9d.camel@ist.tugraz.at> <9d2423b2-aacb-4869-b3a7-e4ac885cc36c@philipmcgrath.com> <03612de279ff26c801eb02a2d0aaa03fecfe59f9.camel@ist.tugraz.at> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-pv88gEOK7jN9bWMdyioU" User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1651953683; bh=Qkp3v2QLI8wl+BRorlvAlEZNVv9E1KLKN9xA/1h0Z0s=; h=Subject:From:To:Date:In-Reply-To:References; b=MKpB7fD/RY4jhZ/JDn3kVQwVuzjVi4bfXLR6WDfdVz7aaBKudJlds3pEfk6EHZfol KG/iJPIjFSLwwYrlpQm+JNylD5ofFR2nJ8xy+gMwd1ZjiiSwA19H+ix0WAbcnJzgwA CjfnBmCIKTGxxFEMRsh0OM2F79Xzuic9qlgtiyP9Wr3ybB/3Lom2mY+pXdi56lnO2B hERIx8SI9sHKT1L5PXG/toEfzZnDghjrgVJpYp7zyDa+yUa7hrkQr+ArBCgXynyNBF YPrz5jcIwwJWyPfOKKku+qAuNQN2sPK7icm5BEO2ot9ThN0P1BeqSK1I7BIb3scISu kjDHlCv8ocaIQ== X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 55248 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 (-) --=-pv88gEOK7jN9bWMdyioU Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Philip McGrath schreef op za 07-05-2022 om 14:39 [-0400]: > With the caveat that all analogies are imprecise, why does Guix prefer= =20 > to avoid relying on LD_LIBRARY_PATH for C libraries? Because when using LD_LIBRARY_PATH, you not only need to install the binary in a profile, but also it library dependencies. Now, suppose that Guix didn't use RUNPATH or RPATH and instead relied on LD_LIBRARY_PATH. Now suppose you have a binary 'vlc' in /usr/bin (on a foreign distro) and 'openssl.so' in ~/.guix-profile/lib/... . Note that 'vlc' has 'openssl' as a dependency (for streaming over the Internet). Then suppose you run 'vlc'. The dynamic linker will see =E2=80=98we have a $LD_LIBRARY_PATH, let's use the openssl.so from ~/.guix-profile/lib instead of /usr/lib!=E2=80=99. However, it (could) turn out that the opens= sls from the two different locations have an incompatible ABI, causing a crash or such. Also, if you depend of LD_LIBRARY_PATH (without wrap-program), then you can't run things directly from /gnu/store. In the same manner, GUILE_LOAD_COMPILED_PATH (=3D Guile's mix of LD_LIBRARY_PATH (for 'guile') and LIBRARY_PATH (for Guile's compiler, e.g. the cross-module inlining) is a bit suboptimal, Guile binaries need to be wrapped (wrap-program / wrap-script). Would be nice to have a RUNPATH/RPATH equivalent ... Greetings, Maxime. --=-pv88gEOK7jN9bWMdyioU Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYnbQCxccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7r3YAQDo2gUdpZDmM6rLKCP/R2GHM73q HHHzywJNQIDnFLvOwgD+LEI1/Bul2wZ8x2OjlF28FpZBhcfLeAY5b9UEfp5YYwc= =k2jT -----END PGP SIGNATURE----- --=-pv88gEOK7jN9bWMdyioU-- From debbugs-submit-bounces@debbugs.gnu.org Sun May 08 16:09:08 2022 Received: (at 55248) by debbugs.gnu.org; 8 May 2022 20:09:08 +0000 Received: from localhost ([127.0.0.1]:55256 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDI-0002Jy-9D for submit@debbugs.gnu.org; Sun, 08 May 2022 16:09:08 -0400 Received: from mail-vs1-f47.google.com ([209.85.217.47]:41777) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDG-0002JY-SA for 55248@debbugs.gnu.org; Sun, 08 May 2022 16:09:07 -0400 Received: by mail-vs1-f47.google.com with SMTP id w124so12061095vsb.8 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 13:09:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OmMt+X4qzz3I+WRXnNDHjD63pcnWIxm6qYYhvnptsl8=; b=EEig3EkdIjZ6bdxUQExjQRI7iZLj7HwCp6zjCYWvHOsApMrulW9fF47STTJZmU0oAM 1RExGET2OBnZbgdH0EsjO8lxdnoYhAiqwwYyizzek8O1fLU0XaZbro7JcNnIyrxQbN49 qpngdU5/3XTixuD3QKgeBPy9Nl2jMwWCVGdudpCFSAt7MY6NhZjLLbdXnZc8VJnZzFHI fOW19SnQ9pOxNbgIxLOIFbxrPijiHzQr+58thC5KAAqQs+WcptSE0ECmyK3/f42dJ9BD EHbOuYCYx2b7qDrwCthXQUz9JZzq6WpI3V1aH4AhfMt2gIHD0UntUNQ2Db3u9O/XBAA9 nNKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=OmMt+X4qzz3I+WRXnNDHjD63pcnWIxm6qYYhvnptsl8=; b=Aq5TxOUtup3c684Y33JbY5WjgJeVxjroqhmLRAAiSnQxnipRakiKwSYnRfxkhYoU1E E2Ds+Dx1H7xFAf8O2LeL1zIrtw63hgE9GFM5Xou0RWUYDJwID7+NDzVPNWNXTWCU5UT4 x6bhZQLuuGjibJR66mKoFt8YyBcAMbH/lDCgIsh5UCTyUD83MlgRb8NqzVVYR1ezo/g6 8fPHpuq85l8JHMBf8InK5DOvl5pJGb01xWysyz4sgBsjs/No8Vyn4saV+/Gq4HOR8OXP oG1MGAYjHg5XGbQFUyuVWYhmxaqrBf1JsgzQ6/Kfss9m43wRHVFx8rZnPBqSbYO8f61E yTFg== X-Gm-Message-State: AOAM533qFlA1+BZoaFsjy/cn4864Cws+Cw2/OcyURFrg/QvufewgMx3U vfw2LSpzQpck104QRX0tP5P7vSXmPVbeOiyq X-Google-Smtp-Source: ABdhPJzVvN5QsE+XVf4B1vIAWODeZKykN6pjdOM3fUTr3/DcgJzS3JatOJpoV7VNv0PhI99jUhKSBg== X-Received: by 2002:a67:1a02:0:b0:320:a51f:8067 with SMTP id a2-20020a671a02000000b00320a51f8067mr6704351vsa.38.1652040541107; Sun, 08 May 2022 13:09:01 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id h11-20020a05612201cb00b0034e6f1fd040sm1222442vko.10.2022.05.08.13.09.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 13:09:00 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v2 0/9] gnu: Update Racket to 8.5 and Chez Scheme to 9.5.8. Date: Sun, 8 May 2022 16:07:43 -0400 Message-Id: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) Hi, Here is v2! The workaround for install-license-files with an out-of-source build did turn out to still be needed: I've added a comment explaining. As requested, I split the final patch into three parts. I hope the organization makes sense. -Philip Philip McGrath (9): gnu: racket: Update to 8.5. gnu: racket: Fix out-of-source build. gnu: chez-scheme: Update to 9.5.8. gnu: chez-scheme: Refactor documentation phases. gnu: chez-scheme: Refactor configure phase and fix '--threads'. gnu: stex: Get machine type dynamically. gnu: chez-upstream-features-for-system: Improve implementation. gnu: chez-scheme-for-racket: Fix supported systems. gnu: chez-scheme-for-system: Adjust for bytecode backend. gnu/local.mk | 2 - gnu/packages/chez.scm | 426 +++++++++------- .../racket-enable-scheme-backport.patch | 465 ------------------ ...acket-gui-tethered-launcher-backport.patch | 26 - gnu/packages/racket.scm | 107 ++-- 5 files changed, 302 insertions(+), 724 deletions(-) delete mode 100644 gnu/packages/patches/racket-enable-scheme-backport.patch delete mode 100644 gnu/packages/patches/racket-gui-tethered-launcher-backport.patch base-commit: 668313e07fa2518fe02704b047237c173f63c6d4 -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun May 08 16:09:28 2022 Received: (at 55248) by debbugs.gnu.org; 8 May 2022 20:09:28 +0000 Received: from localhost ([127.0.0.1]:55260 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDc-0002Ka-Hz for submit@debbugs.gnu.org; Sun, 08 May 2022 16:09:28 -0400 Received: from mail-vs1-f48.google.com ([209.85.217.48]:43914) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDb-0002KJ-9X for 55248@debbugs.gnu.org; Sun, 08 May 2022 16:09:27 -0400 Received: by mail-vs1-f48.google.com with SMTP id c62so12041023vsc.10 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 13:09:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=HkK+ErOS2hA7+W84RIfwwEGLDOSu3AHQYO0mtAnYsOw=; b=OSLq9rjcnWN3No1jyrrX06BxUkeJsmM01QTVOsib21PT/GscKj6yfQmvOy0JBeXw9K /ok5tnCKpeOCQbFEx6xmcWDz+FobsWMngFNIjoKze/VgTnoY0ZcJ+FgdM3DN4R4vX/Jo 3LmSVV4SHqjS7ScHaDgjtwxvymiqVU5T4kA0+f5j0Tnmhjl7H5lq5oONQz+9dIdUeLoz rnauWdGgXCnTxlzz4/zKkC8HPVjlgRcWjm/SsaZEKqwm+kYNwUmCUOxLuVh7swIqw3+G ODd2sWOuj+5yfRo/sDbSlX+iNa5HT4mSyqGP+6nhpLMgYSwCa6w9FfIlFlr8/zJLaTAW aB9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HkK+ErOS2hA7+W84RIfwwEGLDOSu3AHQYO0mtAnYsOw=; b=PJ83exdbVkP/eMVJiXwF5afKDnKfmQTeUYpgTuPtyvNszZEAOVmllZhBzG7OZGwp9q KB/3Okr1TsIhjWxhWKkp8GKGgetzcMg1b6e+WV70VRzEp3NacNnphqtAaswR8uiqGN/0 sa4i7WcP4VxvT/UBjqGY3POCVjZzdSZImnTmAg29MpTECqSj5ZhE8WkCt77GlEQ4mW3g SGDTVkpnMwqfZg3A3OnPrXKYKIzH3Qx32EPTlLuyqSazc3R3CGfCTK66rMIHecoAJYre OoWi2kuJxHSKr9lEuvSg/zXe5oFrmmbIKUJ5DME7DIsZnvkBEHJj8nso9FnqVmHr1Y8D htuA== X-Gm-Message-State: AOAM530y7C2AJHpEgb0uthCDAzLgN7ft0w/3RUVrzIVilkpKKdxPCpkM l4HcBAOQ2yNFvtDd4IKlnBYZ/DiMkvuwrfPu X-Google-Smtp-Source: ABdhPJwbqPbFDXjKkK530pa4cvsbRMoydIHpMf8CH6VSG/XbThY93K6JyXIqtk8j9/xT33z0o1T8hA== X-Received: by 2002:a67:e197:0:b0:32d:fbb:b0b2 with SMTP id e23-20020a67e197000000b0032d0fbbb0b2mr6649430vsl.84.1652040561830; Sun, 08 May 2022 13:09:21 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id k5-20020ab07545000000b003626f894de7sm1357282uaq.21.2022.05.08.13.09.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 13:09:21 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v2 2/9] gnu: racket: Fix out-of-source build. Date: Sun, 8 May 2022 16:07:45 -0400 Message-Id: <63d9ad60e39d8315f493b0ca49517f21fb320575.1652039837.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) * gnu/packages/racket.scm (racket-vm-cgc)[arguments]: Add phase 'symlink-license-src' to work around limitation in 'install-license-files'. Supply '#:out-of-source? #t'. --- gnu/packages/racket.scm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 7d51707156..904dfe9bef 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -276,8 +276,9 @@ (define-public racket-vm-cgc ;; main-distribution-test that aren't part of the main ;; distribution. #:tests? #f - ;; Upstream recommends #:out-of-source?, and it does - ;; help with debugging, but it confuses `install-license-files`. + ;; Upstream recommends #:out-of-source?, and it + ;; helps a lot with debugging. + #:out-of-source? #t #:modules '((ice-9 match) (ice-9 regex) (guix build gnu-build-system) @@ -314,7 +315,18 @@ (define-public racket-vm-cgc #f))))))) (add-before 'configure 'chdir (lambda _ - (chdir "racket/src")))))) + (chdir "racket/src"))) + (add-after 'chdir 'symlink-license-src + ;; Work around limitation of install-license-files by symlinking + ;; srcdir where it expects. (It doesn't handle this variant of + ;; #:out-of-source? and a subdirectory for srcdir.) Just running + ;; `make install` only puts them in Racket's 'share-dir'. + (lambda* (#:key out-of-source? #:allow-other-keys) + (when out-of-source? + (with-directory-excursion ".." + (symlink "src" + (package-name->name+version + (strip-store-file-name #$output)))))))))) (home-page "https://racket-lang.org") (synopsis "Old Racket implementation used for bootstrapping") (description "This variant of the Racket BC (``before Chez'' or -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun May 08 16:09:38 2022 Received: (at 55248) by debbugs.gnu.org; 8 May 2022 20:09:38 +0000 Received: from localhost ([127.0.0.1]:55262 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDe-0002Kq-RW for submit@debbugs.gnu.org; Sun, 08 May 2022 16:09:38 -0400 Received: from mail-ua1-f52.google.com ([209.85.222.52]:41641) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDX-0002KF-M6 for 55248@debbugs.gnu.org; Sun, 08 May 2022 16:09:29 -0400 Received: by mail-ua1-f52.google.com with SMTP id x5so4719539uap.8 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 13:09:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=HCZ+5Ymuh1YLSQ3MZtM5EKO/UncoN3bwaZmEpAcIJac=; b=QaCvodGoXqYI5pJhT3cG6DBCuMTQoPdcIL3Euw6BocREV59qdo/FtbtcEc/ncBUHen +mDA43GZaJZEZ28qnb3vfMqUQeotcFgzf1iN4uCJldX2hRN1mla/hRMdv+5zlxf5mMxz N4Tvhm6PpEU2n21ja82M5mEVmz4+vtpxH1llHe8CgDK2cEYb9SsN/LbSHOnQdQsvbXwh WbHW4Se3nSc6j4kdfQgfxoFvDyX6tYlK3Xx0umAtS9boPuHMw7xaFpgSJqLO4GULHVas j924h7NuCjIrEmtOK7IM+6LRXb+D38dE6C/9U+fFUKOse/54I+I7iPRHwCUxM5kBWwjP tniQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HCZ+5Ymuh1YLSQ3MZtM5EKO/UncoN3bwaZmEpAcIJac=; b=PVFQi4vFWwlEAozh11iOr79IdUzaktBy/TnMVQQxo5cOGTd6Xcgcf73ao4K537hBvS BacytGT2Fg0CWg3Me9JMydaWgBa9JpwFPMI0ENl8BU5XsxKYu3kkwDZ690p5hIIDztRe VFVvIzS0kpNUMWj04Pbm4aNzktCXrg7Lbdkp/tRmGozh+6S8kHXyASuAKyu8sl+YxeVI LY/8xlWEeQl6ZZhuFdxsJ63iZvFCOM52Yhjcbl6nh5gOEYep9X1f97nmTZw2jNgCxjJl ucVpuY93U8Fj/rF+eDkq6mZ4FjQ1YtiHQGf3SczJnCZmavgEfIvhE5OefwOkjn7ok2vf ISmw== X-Gm-Message-State: AOAM531SDZOvXH7SJ3wt9JmkzbUQVU/ju/DIrzzFfwizv5iU7wAuUELS VLhW2I1ITGTJSTAHzdjnOj3f4QuZ2qCqanlf X-Google-Smtp-Source: ABdhPJyHLnUeXEfBpjXKXX98kB5lES9QzZncXjxYTSpxUUI4BvF8b6lzFKXA/W+pIH1FtVsfPpyMcA== X-Received: by 2002:a9f:3582:0:b0:365:8006:eceb with SMTP id t2-20020a9f3582000000b003658006ecebmr6886916uad.70.1652040557626; Sun, 08 May 2022 13:09:17 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id v13-20020a0561020f0d00b0032d275e691esm993160vss.30.2022.05.08.13.09.17 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 13:09:17 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v2 1/9] gnu: racket: Update to 8.5. Date: Sun, 8 May 2022 16:07:44 -0400 Message-Id: <0274097e2e661519d5a5bf2b0ae2a8c3735af3c7.1652039837.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) * gnu/packages/patches/racket-gui-tethered-launcher-backport.patch, gnu/packages/patches/racket-enable-scheme-backport.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. * gnu/packages/chez.scm (chez-scheme-for-racket): Update to 9.5.7.6. * gnu/packages/racket.scm (%racket-version): Update to 8.5. (%racket-origin)[patches]: Remove obsolete patches. (racket-vm-common-configure-flags): Correct comment. (racket)[inputs]<2d, datalog, deinprogramm, draw, drracket, expeditor, htdp, pict, plot, quickscript, racklog, rackunit, redex, scribble, typed-racket, string-constants, syntax-color, web-server, xrepl>: Update checksums. : Likewise, and remove obsolete backports. --- gnu/local.mk | 2 - gnu/packages/chez.scm | 4 +- .../racket-enable-scheme-backport.patch | 465 ------------------ ...acket-gui-tethered-launcher-backport.patch | 26 - gnu/packages/racket.scm | 82 ++- 5 files changed, 32 insertions(+), 547 deletions(-) delete mode 100644 gnu/packages/patches/racket-enable-scheme-backport.patch delete mode 100644 gnu/packages/patches/racket-gui-tethered-launcher-backport.patch diff --git a/gnu/local.mk b/gnu/local.mk index bc9f976a39..d593aecfc2 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1757,8 +1757,6 @@ dist_patch_DATA = \ %D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ %D%/packages/patches/rtags-separate-rct.patch \ - %D%/packages/patches/racket-enable-scheme-backport.patch \ - %D%/packages/patches/racket-gui-tethered-launcher-backport.patch \ %D%/packages/patches/racket-minimal-sh-via-rktio.patch \ %D%/packages/patches/remake-impure-dirs.patch \ %D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \ diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index d47225dbe5..a7f75a731a 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 Philip McGrath +;;; Copyright © 2021, 2022 Philip McGrath ;;; ;;; This file is part of GNU Guix. ;;; @@ -361,7 +361,7 @@ (define-public chez-scheme-for-racket (package (inherit chez-scheme) (name "chez-scheme-for-racket") - (version "9.5.7.3") + (version "9.5.7.6") ;; The version should match `(scheme-fork-version-number)`. ;; See racket/src/ChezScheme/s/cmacros.ss c. line 360. ;; It will always be different than the upstream version! diff --git a/gnu/packages/patches/racket-enable-scheme-backport.patch b/gnu/packages/patches/racket-enable-scheme-backport.patch deleted file mode 100644 index 3a5a4a3d82..0000000000 --- a/gnu/packages/patches/racket-enable-scheme-backport.patch +++ /dev/null @@ -1,465 +0,0 @@ -From 8d7687842f099e3e7e60d3a83fed58b2c6a92863 Mon Sep 17 00:00:00 2001 -From: Matthew Flatt -Date: Sun, 6 Feb 2022 10:36:09 -0700 -Subject: [PATCH 1/2] Chez Scheme: adapt bootfile build for supplied `Scheme=` - -(cherry picked from commit fca1e02349664060e10278ca2ce6577a949bebf5) - -(Fixed conflicts by dropping pbchunks and pbarch changes.) ---- - racket/src/ChezScheme/configure | 15 ++++++++++++++- - racket/src/ChezScheme/s/Mf-base | 4 ++-- - racket/src/ChezScheme/s/Mf-cross | 4 +++- - 3 files changed, 19 insertions(+), 4 deletions(-) - -diff --git a/racket/src/ChezScheme/configure b/racket/src/ChezScheme/configure -index 4515ffc105..0098829091 100755 ---- a/racket/src/ChezScheme/configure -+++ b/racket/src/ChezScheme/configure -@@ -45,6 +45,7 @@ threads=yes - nothreads=no - temproot="" - help=no -+forceworkarea=no - gzipmanpages=yes - installowner="" - installgroup="" -@@ -205,6 +206,9 @@ while [ $# != 0 ] ; do - --pb) - pb=yes - ;; -+ --force) -+ forceworkarea=yes -+ ;; - --installprefix=*) - installprefix=`echo $1 | sed -e 's/^--installprefix=//'` - ;; -@@ -439,6 +443,7 @@ if [ "$help" = "yes" ]; then - echo " --toolprefix= prefix tool (compiler, linker, ...) names" - echo " --[no]gzip-man-pages compress manual pages ($gzipmanpages)" - echo " --workarea= build directory ($w)" -+ echo " --force configure even without boot files" - echo " CC= C compiler" - echo " CPPFLAGS= C preprocessor flags" - echo " CFLAGS= C compiler flags" -@@ -721,8 +726,16 @@ case "${flagsmuni}" in - ;; - esac - -+if [ "$w" = "$m" ] ; then -+ configuringin="" -+else -+ configuringin=" in $w" -+fi -+ - if [ -f boot/$m/scheme.boot -o -f "$srcdir"/boot/$m/scheme.boot ] ; then -- echo "Configuring for $m" -+ echo "Configuring for $m$configuringin" -+elif [ "$forceworkarea" = yes ] ; then -+ echo "Configuring for $m$configuringin despite missing boot files" - else - if [ "$m" = "" ] ; then - maybem="" -diff --git a/racket/src/ChezScheme/s/Mf-base b/racket/src/ChezScheme/s/Mf-base -index cc6178c973..1f4a967998 100644 ---- a/racket/src/ChezScheme/s/Mf-base -+++ b/racket/src/ChezScheme/s/Mf-base -@@ -94,7 +94,7 @@ endif - # that Scheme and SCHEMEHEAPDIRS are set by Mf-cross to point to the host Scheme - # implementation - Scheme = ../bin/$m/scheme${ExeSuffix} --export SCHEMEHEAPDIRS=../boot/%m -+export SCHEMEHEAPDIRS=../boot/$m - export CHEZSCHEMELIBDIRS=. - - # Define the libdirs separator character -@@ -691,4 +691,4 @@ reset-one: - - .PHONY: run - run: -- env SCHEMEHEAPDIRS=../boot/$m/ ../bin/$m/scheme $(ARGS) -+ env SCHEMEHEAPDIRS=${SCHEMEHEAPDIRS} ${Scheme} $(ARGS) -diff --git a/racket/src/ChezScheme/s/Mf-cross b/racket/src/ChezScheme/s/Mf-cross -index d796cbb459..397af59a28 100644 ---- a/racket/src/ChezScheme/s/Mf-cross -+++ b/racket/src/ChezScheme/s/Mf-cross -@@ -43,5 +43,7 @@ x$(xm).$(m): - $(MAKE) -f Mf-cross m=$(m) xm=$(xm) i=f o=3 d=0 xpatch - mv xpatch x$(xm).$(m) - -+ifneq ($(SCHEMEHEAPDIRS),:) - # Ensure that cross-compiling "nanopass.so" is rebuilt if the host compiler changed --nanopass.so: ${SCHEME} ${SCHEMEHEAPDIRS}/petite.boot ${SCHEMEHEAPDIRS}/scheme.boot -+nanopass.so: ${Scheme} ${SCHEMEHEAPDIRS}/petite.boot ${SCHEMEHEAPDIRS}/scheme.boot -+endif --- -2.32.0 - - -From 26c8e2c1d9b02ad85acef8bda40d92154cf0b699 Mon Sep 17 00:00:00 2001 -From: Matthew Flatt -Date: Sun, 6 Feb 2022 11:03:30 -0700 -Subject: [PATCH 2/2] configure: make `--enable-scheme` work with an executable - -When the same Chez Scheme version as used by Racket is already -available, then `--enable-scheme=...` can supply an executable. For -cross builds, `--enable-scheme=...` can still supply a build -directory, instead, as before. - -(cherry picked from commit 4f0e76855ce7e86107de495292a553469daf0b3f) ---- - racket/src/ChezScheme/makefiles/Makefile.in | 3 ++ - racket/src/README.txt | 30 +++++++++++--- - racket/src/configure | 8 +++- - racket/src/cs/README.txt | 6 ++- - racket/src/cs/c/Makefile.in | 44 ++++++++++++++++----- - racket/src/cs/c/configure | 24 +++++++++-- - racket/src/cs/c/configure.ac | 21 ++++++++-- - 7 files changed, 112 insertions(+), 24 deletions(-) - -diff --git a/racket/src/ChezScheme/makefiles/Makefile.in b/racket/src/ChezScheme/makefiles/Makefile.in -index c396efc851..3998ef9ccd 100644 ---- a/racket/src/ChezScheme/makefiles/Makefile.in -+++ b/racket/src/ChezScheme/makefiles/Makefile.in -@@ -59,6 +59,9 @@ reset: - %.boot: - (cd $(workarea) && $(MAKE) $*.boot) - -+auto.boot: -+ (cd $(workarea) && $(MAKE) $(defaultm).boot) -+ - # .bootquick to build boot files for - # with o=3 d=0 for the cross compiler, and only after - # building the kernel for the configured machine -diff --git a/racket/src/README.txt b/racket/src/README.txt -index 98647aebce..d77310b4a4 100644 ---- a/racket/src/README.txt -+++ b/racket/src/README.txt -@@ -354,6 +354,10 @@ variant of MinGW without "libdelayimp.a", get the implementation of - ======================================================================== - - Cross-compilation requires at least two flags to `configure`: -+`--host=OS` and either `--enable-racket=RACKET` or (for Racket CS) -+`--enable-scheme-SCHEME`. -+ -+More information: - - * `--host=OS`, where OS is something like `i386-gnu-linux` to - indicate the target platform. -@@ -374,11 +378,27 @@ Cross-compilation requires at least two flags to `configure`: - run `configure` again (with no arguments) in a "local" subdirectory - to create a build for the current platform. - --An additional flag is needed for building Racket CS, unless the flag --`--enable-racket=auto` is used: -- -- * `--enable-scheme=DIR`, where DIR is a path that has a "ChezScheme" -- directory where Chez Scheme is built for the host system. -+ * `--enable-scheme=SCHEME`, where SCHEME is a Chez Scheme executable -+ executable that runs on the build platform; the executable must be -+ the same version as used in Racket built for the target platform. -+ -+ Supplying `--enable-scheme=DIR` is also supported in cross-build -+ mode, where DIR is a path that has a "ChezScheme" directory where -+ Chez Scheme is built for the host system. -+ -+The `--enable-racket=RACKET` and `--enable-scheme=SCHEME` flags are -+allowed for non-cross builds, too: -+ -+ * For Racket CS, supplying either selects a Racket or Chez Scheme -+ implementation used to create boot files to the build platform. -+ Suppling Chez Scheme is a much more direct path, but when Racket is -+ supplied, its version does not have to match the version being -+ built. -+ -+ * For Racket BC, `--enable-racket=RACKET` selects a Racket for -+ prepare C sources to cooperate with garbage collection. Its version -+ needs to be close to the one being built, and potentially exactly -+ the same version. - - Some less commonly needed `configure` flags are for Racket BC: - -diff --git a/racket/src/configure b/racket/src/configure -index c9f3ba4419..1b53ec7ce2 100755 ---- a/racket/src/configure -+++ b/racket/src/configure -@@ -9,6 +9,7 @@ pb_dir="$dir/ChezScheme/boot/pb" - use_cs=maybe - use_bc=maybe - supplied_racket=no -+supplied_scheme=no - enable_boothelp= - - # We don't have to detect conflicts like `--enable-csdefault --enable-bcdefault`, -@@ -34,6 +35,9 @@ for arg in $*; do - --enable-racket=*) - supplied_racket=yes - ;; -+ --enable-scheme=*) -+ supplied_scheme=yes -+ ;; - --help | -h) - echo $0: - echo see --help-bc or --help-cs, since the Racket CS build and the -@@ -70,8 +74,8 @@ elif test "$use_cs" = "maybe" ; then - fi - - if test "$use_cs" = "yes" ; then -- if test $use_bc = no -a $supplied_racket = no -a ! -d "$pb_dir" ; then -- echo $0: must have $pb_dir or --enable-racket=... for --enable-csonly -+ if test $use_bc = no -a $supplied_racket = no -a $supplied_scheme = no -a ! -d "$pb_dir" ; then -+ echo $0: must have $pb_dir, --enable-racket=... or --enable-scheme=... for --enable-csonly - exit 1 - fi - -diff --git a/racket/src/cs/README.txt b/racket/src/cs/README.txt -index 2ece417b78..8e6fc57b74 100644 ---- a/racket/src/cs/README.txt -+++ b/racket/src/cs/README.txt -@@ -39,6 +39,11 @@ build: - installed in the "../ChezScheme/boot/pb" directory as described by - "../ChezScheme/BUILDING". - -+ Supplying `--enable-scheme=...` is also an option if you alerady -+ have the same version of Chez Scheme built on the current platform. -+ Another build will be created, anyway, but more quickly than -+ without Chez Scheme. -+ - * Racket is needed to generate the files in the "schemified" - directory from the sources in sibling directories like "../io". The - Racket version must be practically the same as the current Racket -@@ -48,7 +53,6 @@ build: - Unlike Chez Scheme boot files, the files generated in "schemified" - are human-readable and -editable Scheme code. That provides a way - out of bootstrapping black holes, even without BC. -- - - - ======================================================================== -diff --git a/racket/src/cs/c/Makefile.in b/racket/src/cs/c/Makefile.in -index 54a644a1d9..d73993f0fc 100644 ---- a/racket/src/cs/c/Makefile.in -+++ b/racket/src/cs/c/Makefile.in -@@ -12,7 +12,9 @@ CS_HOST_WORKAREA_PREFIX = @CS_HOST_WORKAREA_PREFIX@ - SCHEME_HOST_WORKAREA = $(CS_HOST_WORKAREA_PREFIX)$(SCHEME_WORKAREA) - SCHEME_BIN = $(SCHEME_HOST_WORKAREA)/$(MACH)/bin/$(MACH)/scheme - SCHEME_INC = $(SCHEME_HOST_WORKAREA)/$(MACH)/boot/$(MACH) --SCHEME = $(SCHEME_BIN) -B $(SCHEME_INC)/petite.boot -B $(SCHEME_INC)/scheme.boot -+SCHEME_built = $(SCHEME_BIN) -B $(SCHEME_INC)/petite.boot -B $(SCHEME_INC)/scheme.boot -+SCHEME_existing = @MAKE_SCHEME_SCHEME@ -+SCHEME = $(SCHEME@USE_SCHEME_MODE@) - - TARGET_MACH = @TARGET_MACH@ - SCHEME_TARGET_INC = $(SCHEME_WORKAREA)/$(TARGET_MACH)/boot/$(TARGET_MACH) -@@ -88,7 +90,7 @@ mainsrcdir = @srcdir@/../.. - @INCLUDEDEP@ @srcdir@/../../version/version.mak - - cs: -- $(MAKE) scheme@T_CROSS_MODE@ -+ $(MAKE) scheme@MAKE_SCHEME_MODE@ - $(MAKE) racket-so - cd rktio; $(MAKE) - $(MAKE) racketcs -@@ -121,9 +123,13 @@ racket-so: - - RACKET_SO_ENV = @CONFIGURE_RACKET_SO_COMPILE@ - -+TARGET_MACH_built = $(TARGET_MACH) -+TARGET_MACH_existing = xc-$(TARGET_MACH) -+XPATCH_FILE = $(SCHEME_WORKAREA)/$(TARGET_MACH@USE_SCHEME_MODE@)/s/xpatch -+ - CS_PROGS = SCHEME="$(SCHEME)" - CS_OPTS = COMPRESS_COMP=@COMPRESS_COMP@ @ENABLE_OR_DISABLE_WPO@ --CS_OPTScross = $(CS_OPTS) CSO=$(MACH) CROSS_COMP="--xpatch $(SCHEME_WORKAREA)/$(TARGET_MACH)/s/xpatch" -+CS_OPTScross = $(CS_OPTS) CSO=$(MACH) CROSS_COMP="--xpatch $(XPATCH_FILE)" - PASS_COMPILE_DEPS = EXTRA_COMPILE_DEPS="$(SCHEME_INC)/petite.boot $(SCHEME_INC)/scheme.boot" - - build-racket-so: -@@ -163,6 +169,15 @@ pb-bootquick: - cd $(SCHEME_WORKAREA) && $(MAKE) reset - $(SHELL) $(srcdir)/ready_boot.sh $(MACH) $(SCHEME_WORKAREA) - -+scheme-via-scheme: -+ $(MAKE) $(SCHEME_WORKAREA)/boot/$(MACH)/scheme.boot -+ $(MAKE) mach-make -+ -+$(SCHEME_WORKAREA)/boot/$(MACH)/scheme.boot: -+ mkdir -p $(SCHEME_WORKAREA) -+ $(MAKE) config-scheme CONFIG_SCHEME_MODE="$(CONFIG_SCHEME_MODE) --force" -+ cd $(SCHEME_WORKAREA) && $(MAKE) $(MACH).boot Scheme="$(SCHEME)" SCHEMEHEAPDIRS=: o=3 d=0 what=all -+ - mach-make: - $(MAKE) config-scheme - cd $(SCHEME_WORKAREA) && $(MAKE) -@@ -182,24 +197,33 @@ config-scheme: - - scheme-cross: - env MAKE_BOOT_FOR_CROSS=yes SCHEME_SRC="$(SCHEME_DIR)" SCHEME_WORKAREA=$(SCHEME_WORKAREA) MACH="$(TARGET_MACH)" $(BOOTSTRAP_RACKET) "$(SCHEME_DIR)"/rktboot/make-boot.rkt -+ $(MAKE) finish-scheme-cross -+ -+finish-scheme-cross: - $(SHELL) $(srcdir)/reset_boot.sh $(TARGET_MACH) $(SCHEME_WORKAREA) - cd $(SCHEME_WORKAREA) && "$(UP_SCHEME_DIR)"/configure @SCHEME_CROSS_CONFIG_ARGS@ $(SCHEME_CONFIG_VARS) - cd $(SCHEME_WORKAREA)/$(TARGET_MACH)/c && $(CHOST_HACK@T_CROSS_MODE@) $(MAKE) o=o cross=t -- $(MAKE) $(SCHEME_WORKAREA)/$(TARGET_MACH)/s/xpatch -+ $(MAKE) $(XPATCH_FILE) -+ -+scheme-cross-via-scheme: -+ $(MAKE) $(SCHEME_WORKAREA)/boot/$(TARGET_MACH)/scheme.boot MACH=$(TARGET_MACH) -+ $(MAKE) finish-scheme-cross - - # Rebuild patch file and cross "petite.boot" and "scheme.boot" when older --# than the build-host "scheme.boot" or when "make-boot.rkt" touchs dummy boot files --XPATCH_DEPS = $(SCHEME_HOST_WORKAREA)/$(MACH)/boot/$(MACH)/scheme.boot \ -- $(SCHEME_WORKAREA)/boot/$(TARGET_MACH)/scheme.boot -+# than the build- use as Racket for build; or "auto" to create -- --enable-scheme= use as host's build directory for cross -+ --enable-scheme= use as host build for cross - --enable-mach= use Chez Scheme machine type - --enable-target= cross-build for Chez Scheme machine type - --enable-portable prefer portable to host-specific -@@ -2867,7 +2870,7 @@ show_explicitly_enabled "${enable_xonx}" "Unix style" - show_explicitly_enabled "${enable_libzo}" 'Compiled ".zo" files moved to lib' - - show_explicitly_set "${enable_racket}" "Racket" --show_explicitly_set "${enable_scheme}" "Chez Scheme build directory" -+show_explicitly_set "${enable_scheme}" "Chez Scheme for build" - show_explicitly_set "${enable_mach}" "machine type" - show_explicitly_set "${enable_target}" "cross-build machine type" - show_explicitly_enabled "${enable_portable}" "portable" -@@ -4745,9 +4748,21 @@ esac - - SCHEME_DIR=${srcdir}/../../ChezScheme - MAKE_BUILD_SCHEME=checkout -+USE_SCHEME_MODE="_built" -+MAKE_SCHEME_MODE="${T_CROSS_MODE}" - - if test "${enable_scheme}" != "" ; then -- CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ if test -d "${enable_scheme}" ; then -+ # Directory exists, so use it as a build directory -+ echo "Using supplied Scheme path as a build directory" -+ CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ else -+ # Directory does not exist, so assume it's an executable -+ echo "Using supplied Scheme path as an executable" -+ MAKE_SCHEME_MODE="${T_CROSS_MODE}-via-scheme" -+ MAKE_SCHEME_SCHEME="${enable_scheme}" -+ USE_SCHEME_MODE="_existing" -+ fi - fi - - if test "${enable_racket}" != "" ; then -@@ -6012,6 +6027,9 @@ SCHEME_CROSS_CONFIG_ARGS="--machine=${TARGET_MACH} --disable-x11 ${cs_auto_flags - - - -+ -+ -+ - - - -diff --git a/racket/src/cs/c/configure.ac b/racket/src/cs/c/configure.ac -index 464ebe1760..aaee88156d 100644 ---- a/racket/src/cs/c/configure.ac -+++ b/racket/src/cs/c/configure.ac -@@ -23,7 +23,7 @@ AC_ARG_ENABLE(compressmore, [ --enable-compressmore compress compiled code ev - AC_ARG_ENABLE(compressboot, [ --enable-compressboot compress boot files]) - m4_include(../ac/path_arg.m4) - AC_ARG_ENABLE(racket, [ --enable-racket= use as Racket for build; or "auto" to create]) --AC_ARG_ENABLE(scheme, [ --enable-scheme= use as host's build directory for cross]) -+AC_ARG_ENABLE(scheme, [ --enable-scheme= use as host build for cross]) - AC_ARG_ENABLE(mach, [ --enable-mach= use Chez Scheme machine type ]) - AC_ARG_ENABLE(target, [ --enable-target= cross-build for Chez Scheme machine type ]) - m4_include(../ac/portable_arg.m4) -@@ -81,7 +81,7 @@ show_explicitly_disabled "${enable_compressboot}" "Compressed boot files" - show_explicitly_enabled "${enable_xonx}" "Unix style" - m4_include(../ac/path_show.m4) - show_explicitly_set "${enable_racket}" "Racket" --show_explicitly_set "${enable_scheme}" "Chez Scheme build directory" -+show_explicitly_set "${enable_scheme}" "Chez Scheme for build" - show_explicitly_set "${enable_mach}" "machine type" - show_explicitly_set "${enable_target}" "cross-build machine type" - m4_include(../ac/portable_show.m4) -@@ -504,9 +504,21 @@ esac - - SCHEME_DIR=${srcdir}/../../ChezScheme - MAKE_BUILD_SCHEME=checkout -+USE_SCHEME_MODE="_built" -+MAKE_SCHEME_MODE="${T_CROSS_MODE}" - - if test "${enable_scheme}" != "" ; then -- CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ if test -d "${enable_scheme}" ; then -+ # Directory exists, so use it as a build directory -+ echo "Using supplied Scheme path as a build directory" -+ CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ else -+ # Directory does not exist, so assume it's an executable -+ echo "Using supplied Scheme path as an executable" -+ MAKE_SCHEME_MODE="${T_CROSS_MODE}-via-scheme" -+ MAKE_SCHEME_SCHEME="${enable_scheme}" -+ USE_SCHEME_MODE="_existing" -+ fi - fi - - if test "${enable_racket}" != "" ; then -@@ -821,6 +833,9 @@ AC_SUBST(DIFF_MACH) - AC_SUBST(CROSS_MODE) - AC_SUBST(T_CROSS_MODE) - AC_SUBST(TT_CROSS_MODE) -+AC_SUBST(MAKE_SCHEME_MODE) -+AC_SUBST(MAKE_SCHEME_SCHEME) -+AC_SUBST(USE_SCHEME_MODE) - AC_SUBST(SETUP_BOOT_MODE) - AC_SUBST(OSX) - AC_SUBST(NOT_OSX) --- -2.32.0 - diff --git a/gnu/packages/patches/racket-gui-tethered-launcher-backport.patch b/gnu/packages/patches/racket-gui-tethered-launcher-backport.patch deleted file mode 100644 index 1e018eaa79..0000000000 --- a/gnu/packages/patches/racket-gui-tethered-launcher-backport.patch +++ /dev/null @@ -1,26 +0,0 @@ -From aa792e707b1fbc5cc33691bfaee5828dc3fbebaa Mon Sep 17 00:00:00 2001 -From: Matthew Flatt -Date: Mon, 31 Jan 2022 15:31:22 -0700 -Subject: [PATCH] fix creation of tethered launchers - -Related to racket/racket#4133 - -(cherry picked from commit 563c68432f127729592f234ef30c31e92618b517) ---- - gui-lib/mred/installer.rkt | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/gui-lib/mred/installer.rkt b/gui-lib/mred/installer.rkt -index b1691472..9ef06c53 100644 ---- a/gui-lib/mred/installer.rkt -+++ b/gui-lib/mred/installer.rkt -@@ -72,4 +72,5 @@ - (list "-A" (path->string (find-system-path 'addon-dir))))) - - (define (config-flags) -- (list "-G" (path->string (find-config-dir)))) -+ (list "-X" (path->string (find-collects-dir)) -+ "-G" (path->string (find-config-dir)))) --- -2.32.0 - diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 471a11dd48..7d51707156 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -195,7 +195,7 @@ (define* (racket-vm-for-system #:optional racket-vm-cs racket-vm-bc)) -(define %racket-version "8.4") ; Remember to update chez-scheme-for-racket! +(define %racket-version "8.5") ; Remember to update chez-scheme-for-racket! (define %racket-commit (string-append "v" %racket-version)) (define %racket-origin @@ -205,11 +205,9 @@ (define %racket-origin (url "https://github.com/racket/racket") (commit %racket-commit))) (sha256 - (base32 "1vpl66gdgc8rnldmn8rmb7ar9l057jqjvgpfn29k57i3c5skr8s6")) + (base32 "0f9zyhdvbh4xsndrqjzl85j5ziz0rmqi676g9s1lw3h3skq2636h")) (file-name (git-file-name "racket" %racket-version)) - (patches (search-patches "racket-minimal-sh-via-rktio.patch" - ;; Remove by Racket 8.5: - "racket-enable-scheme-backport.patch")) + (patches (search-patches "racket-minimal-sh-via-rktio.patch")) (modules '((guix build utils))) (snippet #~(begin @@ -248,8 +246,10 @@ (define (racket-vm-common-configure-flags) ,(string-append "CPPFLAGS=-DGUIX_RKTIO_PATCH_BIN_SH=" #$(file-append bash-minimal "/bin/sh")) "--disable-strip" - ;; XXX: origtree layout is required by some other packages down the - ;; bootstrap chain. Remove these flags as soon as we can do without them. + ;; Using --enable-origtree lets us distinguish the VM from subsequent + ;; layers and produces a build with the shape expected by tools such as + ;; "distro-build" and "raco-cross". Removing these flags would require + ;; changes, especially to 'configure-layer.rkt' (defined below). "--enable-origtree" ,(string-append "--prefix=" #$output "/opt/racket-vm"))) @@ -589,7 +589,7 @@ (define-public racket racket-minimal ;; <-- TODO non-tethered layer (racket-vm-for-system) (simple-racket-origin - "2d" (base32 "1zzcz5qyjv7syi41vb8jkxjp1rqgj61zbsdrg0nlc4qy9qsafzgr") + "2d" (base32 "0fb5v6058ls08xw3zbmqyr2ym0psm119gl9ffgmhm9w8rs9i4dq7") '("2d" "2d-doc" "2d-lib")) (simple-racket-origin "algol60" (base32 "09kj6asypmc24n29w0izc9p0q8hpga2hpkchsypfwn5c8zpvihlx") @@ -622,22 +622,22 @@ (define-public racket "data" (base32 "10iabgrk9alaggvksnyb0hdq7f1p30pq6pq2bcakvhzpxwiv1f55") '("data" "data-doc" "data-enumerate-lib" "data-lib")) (simple-racket-origin - "datalog" (base32 "0n5j5gnqh7g31mvgx19ggl18hirzbvq2r189lbngmnrmbc7b73fp") + "datalog" (base32 "0nf6cy4djpyhfvgpa6yn72apbz9s83gp0qg95pzjd0az4v6qwq1s") '(("datalog" "."))) (simple-racket-origin "db" (base32 "1n02ja0yj3mjjhmz0yv04yfhyvrsznbljn8bjviyfxnm4xf9rcc5") '("db" "db-doc" "db-lib")) (simple-racket-origin - "deinprogramm" (base32 "1is6fapgv6rxfjz47nh6qf3kh7y7sjdinakaxqffi46gf1al8prd") + "deinprogramm" (base32 "0g8flr1qg3bcyhdinqhs4w7dyisaqyailbxrjgd2a7zlqmdyicfr") '("deinprogramm" "deinprogramm-signature")) (simple-racket-origin "distributed-places" (base32 "1dajpkj9balqcpv6cdk9hwjz592h1vq8rrx5vncariiac4vbdpa0") '("distributed-places" "distributed-places-doc" "distributed-places-lib")) (simple-racket-origin - "draw" (base32 "1xgjfbh70hqw67z88iqqajg98d04qwbzn6im2wj47rs28jxlm9ly") + "draw" (base32 "1fpk85rs2crd63bxnmwj2pysisd62pxcqaip01si67dv1ri8ff92") '("draw" "draw-doc" "draw-lib")) (simple-racket-origin - "drracket" (base32 "0m3l4an3nq2ycd1h287s1az2v2zprjbzd8if2x7d5r71vaj4i00c") + "drracket" (base32 "0dipnz92c63zxys9z1kl5215rm7arc35g9r8bs8ivp96p75mljnz") '("drracket" "drracket-plugin-lib" "drracket-tool" @@ -657,7 +657,7 @@ (define-public racket "errortrace" (base32 "14m7rhaxngj36070iw15am434hm438pfgmwjfsiqhsglz4pcxhip") '("errortrace" "errortrace-doc" "errortrace-lib")) (simple-racket-origin - "expeditor" (base32 "07djzxs6307l51mcsk3yr2g4g47ayxa3878g7sf5xhqdr4hd9vxf") + "expeditor" (base32 "0mjfwb4wzwsg5xj3k6cmik0va432n56rp5h7rxx1c2yy3prh1j7q") '("expeditor" "expeditor-doc" "expeditor-lib")) (simple-racket-origin "frtime" (base32 "0ydz2yn8vvv6z7brwlswcyx0f31a6y6d443i89rysfvd2xkhpfd5") @@ -670,25 +670,14 @@ (define-public racket (simple-racket-origin "games" (base32 "0kpn3izlx1ccd0pj0dnvmnrhny51b85xy418a7psj70lz8j8415d") '(("games" "."))) - (racket-packages-origin - "gui" (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/racket/gui") - (commit %racket-commit))) - (sha256 (base32 - "1x33jgrx3r32k7hgwr591z3xqv1m2r5nc4km2fnxv0ak2xa0j3gj")) - (patches - ;; remove in Racket 8.5 - ;; see https://github.com/racket/racket/issues/4133 - (search-patches "racket-gui-tethered-launcher-backport.patch")) - (file-name (git-file-name "racket-gui" %racket-version))) + (simple-racket-origin + "gui" (base32 "0hqryw3md67j5z4d6bv5qx75w8z1vjxfixabf2xq9bj6k43yzzmi") '("gui" "gui-doc" "gui-lib" "tex-table")) (simple-racket-origin "gui-pkg-manager" (base32 "1ji9448d723nklqvycwdswj0ni28sabrncag14f9mx47did5myb5") '("gui-pkg-manager-lib")) (simple-racket-origin - "htdp" (base32 "0r4ykybcpr10y2db9rlza9pr0xh58nd7ac389mjcxp8g386hgihl") + "htdp" (base32 "199qchdq6db6m2n4j861hiy4nxd6hg1qva16lhhdbfj274qmcplg") '("htdp" "htdp-doc" "htdp-lib")) (simple-racket-origin "html" (base32 "18n1jnjgzfknc8nv8dppi85nb8q08gqdwkg6hfjk08x0p00anx2x") @@ -756,7 +745,7 @@ (define-public racket "pconvert" (base32 "00czi0p399mmyrvxyrs5kniizpkqfxyz2ncxqi2jy79a7wk79pb1") '("pconvert-lib")) (simple-racket-origin - "pict" (base32 "0g1iwdr6qh1xb0crhj96830vjjnbds409xbpqn7j5sh0ksy6vr5x") + "pict" (base32 "0v7a3l77swsbh80mnb9rakdwgw7s66ji0mall7qcqfwyg1b4zmlv") '("pict" "pict-doc" "pict-lib")) (simple-racket-origin "pict-snip" (base32 "081nwiy4a0n4f7xws16hqbhf0j3kz5alizndi3nnyr3chm4kng6x") @@ -771,7 +760,7 @@ (define-public racket "planet" (base32 "0r2yqrzrmdjjyr14k6hhlzc5kzrcx3583m1s02mhrcmpfw0s85w9") '("planet" "planet-doc" "planet-lib")) (simple-racket-origin - "plot" (base32 "07kq32si34ybcwz8idxxcrzssg8diyrp1nfgkcj0mmvr45321zm7") + "plot" (base32 "04871pspbm0q3bz5896sa3jw2rp9i6jf0b5aivrxfp56vxxd2ybb") '("plot" "plot-compat" "plot-doc" "plot-gui-lib" "plot-lib")) (simple-racket-origin "preprocessor" (base32 "1p5aid58ifnjy4xl0ysh85cq39k25661v975jrpk182z3k5621mg") @@ -786,7 +775,7 @@ (define-public racket (url "https://github.com/Metaxal/quickscript") (commit %racket-commit))) (sha256 (base32 - "100g3yqhbjdq06b6l6d72ywsw29awgy8crqg33wj7h12xq07nzcr")) + "00sf5nw09aacd0l4a4cknnffvcs95p596im3blsdvfz5ck6jdwl8")) (file-name (git-file-name "Metaxal-quickscript" %racket-version))) '(("quickscript" "."))) (simple-racket-origin @@ -807,10 +796,10 @@ (define-public racket (git-file-name "jeapostrophe-racket-cheat" %racket-version))) '(("racket-cheat" "."))) (simple-racket-origin - "racklog" (base32 "1rgrvwy3kr9b9w5cghsffiv3ly00yfvvzr5xaaw83g1w7yin0mnb") + "racklog" (base32 "0fbq0fpfb3l6h7h772dvkmlzlk2dnq5f8296xx1qxhhwypibqzr9") '(("racklog" "."))) (simple-racket-origin - "rackunit" (base32 "057z31rja6h3nabh5b2xgwfrzmlm6h1cv1qcgf3xfy4g2q5dqn5p") + "rackunit" (base32 "0vfwcddzrgrdv5awjka7m0jzqhqvfc5wlkih83a670y96496a83n") '("rackunit" "rackunit-doc" "rackunit-gui" @@ -826,7 +815,7 @@ (define-public racket "realm" (base32 "0hxcgla08iack54j8v40fj51811chpy66ym2zq76zb52c7kzn0hi") '(("realm" "."))) (simple-racket-origin - "redex" (base32 "0vlgxbnbgrlihk1hh5zd6hsc4566ldi4q76f87z5vai54dxkwy2f") + "redex" (base32 "0a1fl5s80k3j3xh3lri8886ql443m7pmgv18y7whzlmsd7x8rdpr") '("redex" "redex-benchmark" "redex-doc" @@ -841,7 +830,7 @@ (define-public racket "scheme-lib" (base32 "0pcf0y8rp4qyjhaz5ww5sr5diq0wpcdfrrnask7zapyklzx1jx8x") '(("scheme-lib" "."))) (simple-racket-origin - "scribble" (base32 "0rgvnsykrxkah6s5fw1vyp9lxsb4z9w6hgwk5j6wbwjp2gsfczbm") + "scribble" (base32 "0fbb7xgz95y90247hfc1a19v7ry8m6blvv4y8irdgzhjvik70zb3") '("scribble" "scribble-doc" "scribble-html-lib" @@ -873,35 +862,24 @@ (define-public racket "snip" (base32 "01r9wc5xr3q3n4yyif6j0a37rgdzmpslxn05k13ksik73b3wj6hj") '("snip" "snip-lib")) (simple-racket-origin - "typed-racket" (base32 "1462kj9yswsxbnw71casylzlvhd7cxrml2v9j7rcsnn9hmrqx4vv") + "typed-racket" (base32 "05xlyjrx3m8xrrrw1xmfb1807qa5aqfl0zp9bdxwh2z7cfxaii09") '("source-syntax" "typed-racket" "typed-racket-compatibility" "typed-racket-doc" "typed-racket-lib" "typed-racket-more")) - (racket-packages-origin - "srfi" (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/racket/srfi") - ;; Includes an FSDG fix: return to %racket-commit in 8.5. - ;; See . - (commit "7243029b135741ce08ae30f877e2f49a2a460b22"))) - (sha256 (base32 - "0aqbcdv2dfc2xnk0h6zfi56p7bpwqji8s88qds3d03hhh9k28gvn")) - ;; Use the relevant version for srfi-doc and srfi-lib, - ;; since we're using a newer commit than the v8.4 tag. - (file-name (git-file-name "racket-srfi" "1.1"))) + (simple-racket-origin + "srfi" (base32 "0aqbcdv2dfc2xnk0h6zfi56p7bpwqji8s88qds3d03hhh9k28gvn") '("srfi" "srfi-doc" "srfi-lib" "srfi-lite-lib")) (simple-racket-origin - "string-constants" (base32 "1qizjq4n0hzdgdcjjpr94464gsywpsk2g9mnvwzqr7dcqbrsfvn6") + "string-constants" (base32 "1rjs0gyw9hsiglwxnimz272v9xj1gwjxrnzh4qbsxkvdaphvi38m") '("string-constants" "string-constants-doc" "string-constants-lib")) (simple-racket-origin "swindle" (base32 "164gdsphjzdl2vv7zxz7dfk9jwax8njpmim6sidm8qz8a8589y67") '(("swindle" "."))) (simple-racket-origin - "syntax-color" (base32 "1vf2fc3qvx8a1igi7swsg8gaqhx786sa0vqxd18xhbsidfgb5ywp") + "syntax-color" (base32 "1xf3rl8687c1nar4kkgkvyncwi0gl696rif0iqhffg730fk457gi") '("syntax-color" "syntax-color-doc" "syntax-color-lib")) (simple-racket-origin "trace" (base32 "070ihla5j796hdarn5wxdwn4xj0xnkm50shgh49jy994mribvhia") @@ -910,13 +888,13 @@ (define-public racket "unix-socket" (base32 "02dfwas5ynbpyz74w9kwb4wgb37y5wys7svrlmir8k0n9ph9vq0y") '("unix-socket" "unix-socket-doc" "unix-socket-lib")) (simple-racket-origin - "web-server" (base32 "1zgb6jl7zx6258ljs8f3lvryrq5n5zpd71dqzr698m92kw3x2pkn") + "web-server" (base32 "1g4x79ym3mgxv4f3z3z84j12355pf44pjlzlb7f0h6r0i7p0cbjd") '("web-server" "web-server-doc" "web-server-lib")) (simple-racket-origin "wxme" (base32 "1qp5gr9gqsakiq3alw6m4yyv5vw4i3hp4y4nhq8vl2nkjmirvn0b") '("wxme" "wxme-lib")) (simple-racket-origin - "xrepl" (base32 "12zjgsy5zqm3fck3ihg4a70wj56s2cnnjyb4jlfi5nnsfqyrnxg3") + "xrepl" (base32 "19svg0jfs656bld5ikqipz3a5szk5k02zq5fh43209qw527dnfbk") '("xrepl" "xrepl-doc" "xrepl-lib")))) (build-system gnu-build-system) (arguments -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun May 08 16:09:38 2022 Received: (at 55248) by debbugs.gnu.org; 8 May 2022 20:09:38 +0000 Received: from localhost ([127.0.0.1]:55266 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDm-0002LC-Ie for submit@debbugs.gnu.org; Sun, 08 May 2022 16:09:38 -0400 Received: from mail-vs1-f54.google.com ([209.85.217.54]:43923) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDf-0002KR-Bo for 55248@debbugs.gnu.org; Sun, 08 May 2022 16:09:31 -0400 Received: by mail-vs1-f54.google.com with SMTP id c62so12041097vsc.10 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 13:09:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SoPwsTzFr3RsITacAPdKN4iMp4D84nS8dHvfGdkjL90=; b=kAbQO47CcsXZGYtP3LgTO+1vLSr/dWXfw8SR6wVvPEiGQ78JP7SKEIHRt3n6a/tAb9 ldyGvAn+nFSsj67M5rSd2WTqe/wbNNYlQohC8WZWSaurkYqp4fzfJuWhifGAQhM0AW4A bBjTt7cYcUsKNtHTm9SoUldzewOSWZXmC+HSIs2rxQt14j1VqEVEUJsNOw1AyDkuQ4er xiWSjCXmrtQSikJ2Ko4c62GVnSyI6cE30z/JLdLgaCEirxB/rbi6EzJXhkaBzhq/iuTP HtvBMjB+EYe4RBoOA2gv69Lb0qCNjIPxmfsPOneoRkplUC/plWDa2+eg0lxt/yPmBT+t sUZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=SoPwsTzFr3RsITacAPdKN4iMp4D84nS8dHvfGdkjL90=; b=UbJoSHLp36q18SeHSqG/PbXZO3lnr5a05tEGydTh8twKF8mrnsOYXJA1x+bYjdi6u5 iuXVTvWl5/O5hOg54rPd91lAKRC9SnXaPnYzF5XTfLAFTedHdIbbEddBOFmOJlY2DHJD iWhIEzlQE2ZUsY/nRY0do3msqRNZ2aG18rFE9StwPrc0zXRZ/WcsGsYMZkW27l6Ux8Q2 eebNigc2CFmjWuPpXJRz21g3L+lctqnaVFIAWElmxC/UvqMV9IG0YsThIXoae3WeD6HX Z3e2nb1xvIYUnpJH37PNVFBXNfc/SkP0dMdP324YGBcwQ7+TBfHsit8X1vSujOyjZlZT DfZA== X-Gm-Message-State: AOAM532V+p3kjijQ8KKIfjSZaRjpdLd/GFsl3l2yx9sasQsOACWzZAd7 k8a0BnEJzHW2Uog/0kTMO4ZsRVZXqOLB7sdJ X-Google-Smtp-Source: ABdhPJx3Ejlo9mB1DHeuoBqsPnILv4WD1R7hg9IYwqkZ21ZFaATiOeI5op+4ppPxEoqd145Y96FoPA== X-Received: by 2002:a67:2ec4:0:b0:32c:c442:a309 with SMTP id u187-20020a672ec4000000b0032cc442a309mr6375673vsu.32.1652040565850; Sun, 08 May 2022 13:09:25 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id i18-20020ab00d92000000b003656e4096f3sm1289095uak.13.2022.05.08.13.09.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 13:09:25 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v2 3/9] gnu: chez-scheme: Update to 9.5.8. Date: Sun, 8 May 2022 16:07:46 -0400 Message-Id: <73175f996c4683dda7288b5cf605a1ff4b7fdf62.1652039837.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) * gnu/packages/chez.scm (chez-scheme): Update to 9.5.8. --- 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 a7f75a731a..34545b1f58 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -210,7 +210,7 @@ (define-public chez-scheme (name "chez-scheme") ;; The version should match `(scheme-version-number)`. ;; See s/cmacros.ss c. line 360. - (version "9.5.6") + (version "9.5.8") (source (origin (method git-fetch) (uri (git-reference @@ -218,7 +218,7 @@ (define-public chez-scheme (commit (string-append "v" version)))) (sha256 (base32 - "07s433hn1z2slfc026sidrpzxv3a8narcd40qqr1xrpb9012xdky")) + "0xchqq8cm0ka5wgpn18sjs0hh15rc3nb7xrjqbbc9al3asq0d7gc")) (file-name (git-file-name name version)) (snippet #~(begin (use-modules (guix build utils)) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun May 08 16:09:39 2022 Received: (at 55248) by debbugs.gnu.org; 8 May 2022 20:09:39 +0000 Received: from localhost ([127.0.0.1]:55268 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDm-0002LJ-TI for submit@debbugs.gnu.org; Sun, 08 May 2022 16:09:39 -0400 Received: from mail-vk1-f171.google.com ([209.85.221.171]:35333) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDj-0002Ko-Ea for 55248@debbugs.gnu.org; Sun, 08 May 2022 16:09:35 -0400 Received: by mail-vk1-f171.google.com with SMTP id e7so6010431vkh.2 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 13:09:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KjaP2rvANmmMXNQFFrlb7FuHL+nHim3mKpSwJJ/N+ls=; b=Zwsw8za4McewwxsBsRbpz90sWRjJptQcmkmtzRV2v9fBaDDlqURYHfXtxjfcEPMFvs 22zhH2NJN+bOXBtdbZKYC9hZrtFjP+TG4N/LSShrTvHAajvLZkJ3gyv+C9YYitH/ajIQ P4SHNb9T75Sw64R8TPZytiK7EDVIOFt55eGqnE6h4854Z/WKmA9fgrhtGcsFgAz4c71X znTepeNy175mvk52Jf6OzDme+19aEVmkDKc96iJtDQ4s1QqrvjtIWz1rlvNUFNy6AMrw YpY78J25f+oeHxO2V8xIDCoge2I41poZ+ShCV/n6V3ILaCVz1XTSqoufRxF/CSXT2JfB G0mQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KjaP2rvANmmMXNQFFrlb7FuHL+nHim3mKpSwJJ/N+ls=; b=q1EE4oaf+PNm6G5QklAu3TME11XaJ98vxuKg+29Vwa+LuVIHtZk79kPv9kc1d1nUtf IyDXlt6lw9kgh4IoxXvgdKg0/caherCwMiiavFM6JH4XdquqT7k1o0B42pQ04sYYZi+6 3dxfmWCfcylh4FDQ/rHMNWA8w5WgFPtdOfBIXoHslNVBfyyhCNoP1Jf+YtxUmy4u9njk 97xAAFHzpef5gyUKYWPziqDnr1nFHwLDZP3LjoiW/Tb9YlHjAmPryTy+241SjiMdG0MH 5MHDidG/IJQWXGsTccnF9cyDXPX+xnuHPOnWwDweg23ce/94HIT0CWPZc6Cej/ZOAAly cN5Q== X-Gm-Message-State: AOAM533nGtZpQ2ABn/MjyzKy9nn/6r6T2PfXrmWIxX0xhRJUuPO2L55h 3zBzm9KbiOb1oxi9hWyjLuGl3tQAaqXSSkeC X-Google-Smtp-Source: ABdhPJwCGC9D5s3Tow0fQHm7VX9l42zN9d2aBwUaU/AR0SIp4e+60nJTXWgLDu8gfWp6njUiDCqqQw== X-Received: by 2002:ac5:cb65:0:b0:34d:58d9:216d with SMTP id l5-20020ac5cb65000000b0034d58d9216dmr6921441vkn.21.1652040569973; Sun, 08 May 2022 13:09:29 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id u68-20020a1f2e47000000b0034e6f1fd048sm1563973vku.18.2022.05.08.13.09.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 13:09:29 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v2 4/9] gnu: chez-scheme: Refactor documentation phases. Date: Sun, 8 May 2022 16:07:47 -0400 Message-Id: <55dfaa9f70c0842d05424ed394c232e5454262d1.1652039837.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) Patches merged in both upstream Chez Scheme and Racket's variant will soon let us replace the 'install-docs' phase with just 'make install-docs'. Separating the 'link-doc-pdfs' phase (which won't change) leaves us well-prepared for the transition, regardless of whether Chez Scheme 9.5.10 or Racket 8.6 is released first. * gnu/packages/chez.scm (chez-scheme)[arguments]: Split 'install-doc' phase into 'install-docs' (matching the future 'make' target) and 'link-doc-pdfs'. --- gnu/packages/chez.scm | 64 ++++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 34545b1f58..49051abd17 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -309,35 +309,43 @@ (define-public chez-scheme (string-append (dirname scheme.boot) "/chez-scheme.boot"))))))) ;; Building the documentation requires stex and a running scheme. - ;; FIXME: this is probably wrong for cross-compilation - (add-after 'install-symlink 'install-doc + (add-after 'install-symlink 'install-docs (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) - (match (assoc-ref outputs "doc") - (#f - (format #t "not installing docs~%")) - (doc-prefix - (let* ((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")) - (with-directory-excursion doc-dir - (symlink "release_notes/release_notes.pdf" - "release_notes.pdf") - (symlink "csug/csug9_5.pdf" - "csug.pdf")))))))))) + (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"))))))))) ;; Chez Scheme does not have a MIPS backend. ;; FIXME: Debian backports patches to get armhf working. ;; We should too. It is the Chez machine type arm32le -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun May 08 16:09:42 2022 Received: (at 55248) by debbugs.gnu.org; 8 May 2022 20:09:42 +0000 Received: from localhost ([127.0.0.1]:55271 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDq-0002Le-8w for submit@debbugs.gnu.org; Sun, 08 May 2022 16:09:42 -0400 Received: from mail-vk1-f179.google.com ([209.85.221.179]:37496) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDo-0002L0-Hn for 55248@debbugs.gnu.org; Sun, 08 May 2022 16:09:40 -0400 Received: by mail-vk1-f179.google.com with SMTP id j14so3302336vkp.4 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 13:09:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6MUQea/akqiJw65v5UB+PXZnpK7I+lS4QjauOZJ1fUE=; b=AgnbKSnocBGjpwiWWvFgtfBy5OxAlMCQZHXNu7IVzIWjxVVT3uUSH/LD7IzhiqpTrY CDlaETUmbpggSJlK4t3D9fibxDRpcDv0tgQYd1qTo74Alik5ZhnrmQtkFlLhjKGE2D8q 4d6E+4LrEedIeTPxiH3HYIlaarErdZ7fBBOzVPILJZC9oJ0zRQAgXB8fr2ZNwN/nq/JM 5/56ZSm9yGns6MDHU87O2zw+P4QNLUbw6vqw1/2iuvoywK8h6bx00Md4TI7Fb19m8k44 3ThsRhWlFHE3qVf+z9VwiLfSPJtAJ9NORsTA8GSB12ofjJe0pRsdjNLtFmSnVpB+KKMt X7qA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6MUQea/akqiJw65v5UB+PXZnpK7I+lS4QjauOZJ1fUE=; b=5W7E6HI0OGs+QFONLT0yJE9/8hBukk4W11YyZaO7VT5Y04HsgJCDof2cpUduG39918 Dgndx3GSBQfloGyotagjLYJ85NsERk1k3rcnpKliAQbebs+ujbEWbagMH7wMimJWwduS KT2MEXJEpQ+++0hVvJiJE1zAoQ8cBRcbd7YlhqH0HZGj4tkhuNAtWrs7oEw23zHvlgFc xiK7MW5zUUDPW2DEzriGD5vTLyzKvWKRwBWpPJtyzvlsqy480krHFIgYbhMU9bBwQfaF YI+x6omNlVpPLrdfG3C2VK//UbA7FLdrBdIqkkAX8ZKow2X6g/klMzor6kaYVtkukojC cxRw== X-Gm-Message-State: AOAM531LZGo8sUfNHgxXEWSmaLgxtcySySKobmS0NkotQ9ogmPwErP92 nusqeYe2+Txr42RNlUEbGVgcZlzyHZxbjBUj X-Google-Smtp-Source: ABdhPJyB2kxXyOjie5db4UbNs9LUij4L5uhQlLWRzXyTnFln0MalfLhd1o/tvYNSHeH3LN8tDv4DoA== X-Received: by 2002:a05:6122:98a:b0:34e:9a92:35fd with SMTP id g10-20020a056122098a00b0034e9a9235fdmr6890829vkd.29.1652040574031; Sun, 08 May 2022 13:09:34 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id o46-20020ab05971000000b00365e024dc7bsm915209uad.8.2022.05.08.13.09.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 13:09:33 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v2 5/9] gnu: chez-scheme: Refactor configure phase and fix '--threads'. Date: Sun, 8 May 2022 16:07:48 -0400 Message-Id: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) Move Chez-specific logic into '#:configure-flags' and a new 'configure-environment-variables' phase, leaving the 'configure' phase as just a variant of the one from 'gnu-build-system' (including support for '#:out-of-source?') that doesn't add implicit Autoconf-style flags. In the process, do the right thing for "--threads", rather than assuming the only nonthreaded platform is broken. * gnu/packages/chez.scm (chez-scheme)[arguments]: Set configure flags in '#:configure-flags' and separate 'configure-environment-variables' from the residual 'configure' phase. More closely follow 'gnu-build-system'. Use 'chez-upstream-features-for-system' for "--threads". (chez-scheme-for-racket)[arguments]<#:configure-flags>: Add "--threads" unconditionally. --- gnu/packages/chez.scm | 63 ++++++++++++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 49051abd17..785b6837c1 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -258,8 +258,18 @@ (define-public chez-scheme (ice-9 ftw) (ice-9 match)) #:test-target "test" - ;; TODO when we fix armhf, it may not support --threads - #:configure-flags #~'("--threads") + #: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 @@ -273,26 +283,35 @@ (define-public chez-scheme (search-input-directory (or native-inputs inputs) "lib/chez-scheme-bootfiles") "boot"))) - ;; NOTE: the custom Chez 'configure' script doesn't allow + ;; NOTE: The custom Chez 'configure' script doesn't allow ;; unrecognized flags, such as those automatically added - ;; by `gnu-build-system`. + ;; by `gnu-build-system`. This replacement phase uses only + ;; the explicitly provided `#:configure-flags`. (replace 'configure - (lambda* (#:key inputs (configure-flags '()) #:allow-other-keys) - ;; add flags which are always required: - (let ((flags (cons* (string-append "--installprefix=" #$output) - "ZLIB=-lz" - "LZ4=-llz4" - "--libkernel" - ;; Guix will do compress-man-pages, - ;; and letting Chez try causes an error - "--nogzip-man-pages" - configure-flags))) - (format #t "configure flags: ~s~%" flags) - ;; Some makefiles (for tests) don't seem to propagate CC - ;; properly, so we take it out of their hands: - (setenv "CC" #$(cc-for-target)) - (setenv "HOME" "/tmp") - (apply invoke "./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) + (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. @@ -385,7 +404,9 @@ (define-public chez-scheme-for-racket (arguments (substitute-keyword-arguments (package-arguments chez-scheme) ((#:configure-flags cfg-flags #~'()) - #~(cons "--disable-x11" #$cfg-flags)) + #~(cons* "--disable-x11" + "--threads" ;; ok to potentially duplicate + #$cfg-flags)) ((#:phases those-phases #~%standard-phases) #~(let* ((those-phases #$those-phases) (unpack (assoc-ref those-phases 'unpack))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun May 08 16:09:44 2022 Received: (at 55248) by debbugs.gnu.org; 8 May 2022 20:09:44 +0000 Received: from localhost ([127.0.0.1]:55274 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDs-0002Lt-Lb for submit@debbugs.gnu.org; Sun, 08 May 2022 16:09:44 -0400 Received: from mail-vk1-f172.google.com ([209.85.221.172]:42815) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDr-0002LA-K4 for 55248@debbugs.gnu.org; Sun, 08 May 2022 16:09:43 -0400 Received: by mail-vk1-f172.google.com with SMTP id e144so5992837vke.9 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 13:09:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wfcAH5XAdwVPDZfDmFM08aox4jzMZXPVfAuJLvSM8WE=; b=i3EpgLDQ1oSSTsnyZwYyRhsw5aghbnAuMSB2inWnFs0xFFTVVxjhiY9h4RGJuI9tSZ eXidhHWPtgw8dfsuybOLeNENstwWlt5PekfrKTxrYwkghzVs1zYflzn38sH8jAoYMkw7 /XtKVvvl5hQE2WTIa0NwIvQ2AYL04oDS4068KVrWA78KTdHgpno5TpBCgMTD0ASIYqmt PBCp0ptyPm0cfv+30miWzH0j7A3Jo/3WonNkV2u/dF0Rc9IUjzgp7b3ph9Ob2U8deLnx AH2T0UjQONevl8a+wuq12HGyOgEC53ewehJQkVUiKx6y7BkfbthhbV+DbxogyJVpctyD K+Yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wfcAH5XAdwVPDZfDmFM08aox4jzMZXPVfAuJLvSM8WE=; b=OtHyylbAeWwHHVDkQbPEYttcqSJqju4hgwmRkox7JZyqM1pdPfxz8aGnax2sURmDcA /9cjmtU3RUlH/3N8njHpVLWSWOkfOuXZ0PhWw1e4lptzPaVkdbNgXQb0sYXW5NLDdycA DLPlxSBj5lv4t40juE0yFlwHNP6Lzafggsydoz7tS4Fodh1wfMZD8XxuwFhAp55BhCpF M1RKHPOk8pNYrM0EuEP+G0i3Hrjw/ESxIzuHduImNQXHV7Ufo0bXQ0IlD6Tah8BFkCkF tIZaqJUkD23I1c94UqdNopJBdXf4WGL30QsTJ62wz1YJiRYyXMRpAGCBahN7QiaymgH4 y4bA== X-Gm-Message-State: AOAM530JNvVdauG7t0vz64tfv6y4eOJDTC1gmOCRaPe+9hpH5S+kfgVl f0ncJ2lsB+by24VxuYyXZCxuWIBHa5ECWZJV X-Google-Smtp-Source: ABdhPJyXsWq2bezperGhksZfNPB3dNcTC11D/Ofnu3bKrdY27JVq0Z+MgRyGBksryWUcjLEtjbbj+w== X-Received: by 2002:a05:6122:e57:b0:351:f3a5:93f1 with SMTP id bj23-20020a0561220e5700b00351f3a593f1mr6758126vkb.33.1652040578156; Sun, 08 May 2022 13:09:38 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id f190-20020a1fe8c7000000b0034e6f1fd063sm1584661vkh.45.2022.05.08.13.09.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 13:09:37 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v2 6/9] gnu: stex: Get machine type dynamically. Date: Sun, 8 May 2022 16:07:49 -0400 Message-Id: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) * gnu/packages/chez.scm (stex)[arguments]: Run 'scheme' to determine the machine type. --- gnu/packages/chez.scm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 785b6837c1..dd485d37e1 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -602,6 +602,10 @@ (define-public stex-bootstrap ("src" "lib/stex/") ("Mf-stex" "lib/stex/") ("Makefile.template" "lib/stex/")) + #:modules + '((guix build copy-build-system) + (guix build utils) + (ice-9 popen)) #:phases #~(modify-phases %standard-phases (add-before 'install 'patch-sources @@ -633,8 +637,14 @@ (define-public stex-bootstrap (define makefile (string-append (getcwd) "/Makefile")) (define machine - #$(and=> (nix-system->chez-machine) - chez-machine->threaded)) + (let ((pipe (open-pipe* OPEN_BOTH scheme "-q"))) + ;; try to not be wrong for cross-compilation + ;; (avoid #% reader abbreviation for Guile) + (write '(($primitive $target-machine)) pipe) + (force-output pipe) + (let ((sym (read pipe))) + (close-pipe pipe) + (symbol->string sym)))) (with-directory-excursion (search-input-directory outputs "/lib/stex") (invoke "make" -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun May 08 16:09:50 2022 Received: (at 55248) by debbugs.gnu.org; 8 May 2022 20:09:50 +0000 Received: from localhost ([127.0.0.1]:55277 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDx-0002MC-TO for submit@debbugs.gnu.org; Sun, 08 May 2022 16:09:50 -0400 Received: from mail-vs1-f49.google.com ([209.85.217.49]:36778) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDv-0002Lm-TV for 55248@debbugs.gnu.org; Sun, 08 May 2022 16:09:48 -0400 Received: by mail-vs1-f49.google.com with SMTP id a127so12080541vsa.3 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 13:09:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ASOED8ZT+HX4kIHd14wSy3Dx+MokroCBH0hfgSIxOpE=; b=Ezr7JH/JuwOJ6PGGBZqpdz0HieDpQi2giG/jpqSx9cZ3xU4PZgS2ZKUb3W8H88V84g /ODeF1NWZLgbVgHxnZ0dAmRex0fIZNHDSyZBtQc1OBwo0O+bsGjIizILtRsO+4hkTnsK 1nYviT/nlY/duyCUiuaSN44ohqtYU7AHPSWhbuXyGTd3LMe5ANwn4CS7NQVp8RPdiw79 X8dbeP2qGvjEO4Jq4HtE2FAUTY/64lfkot8mDuaB6uSgnzOY4z+mceRvdN4lyaVFcbCE axQn06iwz3og72IED1e8LEhVGrqDXdDfCy/82lI3/HBigk6zI1YZ+VQVpZq6tZc2cTNJ xd/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ASOED8ZT+HX4kIHd14wSy3Dx+MokroCBH0hfgSIxOpE=; b=NWD/sFxC/EM9pUBfyxoKh9UPHaPKPibuh6bX1883WgNR1scMsuZDEfx4B/hU7krPev JtoB3DISFZb65YJdXws+dJ/6o5s0M8fX7l3kJ9KC3cAfiJ2AjH4GU4kmmiVRuSIFvDuv 6OsVVsJPYbERzh1V/R0eMJi53ijZbvHBgQw4FWGB27v3dkslyVi29NlZDyJ3ELpW2kHv r8p9SAT6wZapq/4u4VaEjIPcf+mavsHDN15TBz3QLdgn4Uq1HFe/md8J+8qJdN57Umhh soTq/76yfTk3e3TLeACJZIaoagCVILyXgp06WN4d22CLsesCQTklTVO//4iAZSN4S/Rj TWVA== X-Gm-Message-State: AOAM532uS+bDEMcBU2j5nsXnjz8eo17hfJtyMR6Rn+4U/b//GctNqHtJ I+1nq5eY/J0sgDJ/xPyd6yxXAHmc29I4VX54 X-Google-Smtp-Source: ABdhPJw9VmS1XREQ5m6Cuoj3esucVfH1Fdq3Jz4+Vn0EbmUjZOTmXY6TGuzH56fDPuXi5WWZQKUhuQ== X-Received: by 2002:a67:6684:0:b0:32d:c24:98b7 with SMTP id a126-20020a676684000000b0032d0c2498b7mr6343567vsc.78.1652040582261; Sun, 08 May 2022 13:09:42 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id b2-20020ab06902000000b003626f894df9sm1323929uas.39.2022.05.08.13.09.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 13:09:42 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v2 7/9] gnu: chez-upstream-features-for-system: Improve implementation. Date: Sun, 8 May 2022 16:07:50 -0400 Message-Id: <3deb541efd59acd25410f7019670071368291ad4.1652039837.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) This commit is a follow-up to b8fc9169515ef1a6d6037c84e30ad308e5418b6f. While that commit fixed a breaking build, this one begins to address the faulty assumptions that lead to the failure: see also . In this commit, we reimplement 'chez-upstream-features-for-system' using the new '%chez-features-table', which explicitly specifies platform support for both 'chez-scheme' and 'chez-scheme-for-racket', rather than assuming a non-false result from 'nix-system->chez-machine' means that the system is supported. The remaining uses of 'nix-system->chez-machine' still make that incorrect assumption and must be repaired in a future commit. * gnu/packages/chez.scm (%nix-arch-to-chez-alist, %nix-os-to-chez-alist): Replace with ... (target-chez-arch, target-chez-os): ... these new variables. (nix-system->chez-machine): Rewrite using them. (%chez-features-table): New variable. (chez-upstream-features-for-system): Rewrite using it. (chez-scheme)[supported-systems]: Update armhf-linux comment. (chez-scheme-bootstrap-bootfiles)[supported-systems]: Use 'chez-upstream-features-for-system'. (chez-machine->nonthreaded, chez-machine->threaded, chez-machine->nix-system): Remove unused functions. --- gnu/packages/chez.scm | 234 ++++++++++++++++++++++++------------------ 1 file changed, 134 insertions(+), 100 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index dd485d37e1..41f083e0ac 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -49,8 +49,6 @@ (define-module (gnu packages chez) #:use-module (srfi srfi-26) #:export (chez-scheme-for-system nix-system->chez-machine - chez-machine->nonthreaded - chez-machine->threaded unpack-nanopass+stex)) ;; Commentary: @@ -82,68 +80,57 @@ (define* (chez-scheme-for-system #:optional chez-scheme chez-scheme-for-racket)) -(define (chez-machine->nonthreaded machine) - "Given a string MACHINE naming a Chez Scheme machine type, returns a string -naming the nonthreaded machine type for the same architecture and OS as -MACHINE. The returned string may share storage with MACHINE." - ;; Chez Scheme documentation consistently uses "nonthreaded" rather than - ;; e.g. "unthreaded" - (if (eqv? #\t (string-ref machine 0)) - (substring machine 1) - machine)) -(define (chez-machine->threaded machine) - "Like @code{chez-machine->nonthreaded}, but returns the threaded machine -type." - (if (eqv? #\t (string-ref machine 0)) - machine - (string-append "t" machine))) - -;; Based on the implementation from raco-cross-lib/private/cross/platform.rkt -;; in https://github.com/racket/raco-cross. -;; For supported platforms, refer to release_notes/release_notes.stex in the -;; upstream Chez Scheme repository or to racket/src/ChezScheme/README.md -;; in https://github.com/racket/racket. -(define %nix-arch-to-chez-alist - `(("x86_64" . "a6") - ("i386" . "i3") - ("aarch64" . "arm64") - ("armhf" . "arm32") ;; Chez supports ARM v6+ - ("ppc" . "ppc32"))) -(define %nix-os-to-chez-alist - `(("w64-mingw32" . "nt") - ("darwin" . "osx") - ("linux" . "le") - ("freebsd" . "fb") - ("openbsd" . "ob") - ("netbsd" . "nb") - ("solaris" . "s2"))) - -(define (chez-machine->nix-system machine) - "Return the Nix system type corresponding to the Chez Scheme machine type -MACHINE. If MACHINE is not a string representing a known machine type, an -exception is raised. This function does not distinguish between threaded and -nonthreaded variants of MACHINE. +(define* (target-chez-arch #:optional (system + (or (%current-target-system) + (%current-system)))) + "Return a string representing the architecture of SYSTEM as used in Chez +Scheme machine types, or '#f' if none is defined." + (cond + ((target-x86-64? system) + "a6") + ((target-x86-32? system) + "i3") + ((target-aarch64? system) + "arm64") + ((target-arm32? system) + "arm32") + ((target-ppc64le? system) + #f) + ((target-ppc32? system) + "ppc32") + ((target-riscv64? system) + #f) + (else + #f))) -Note that this function only handles Chez Scheme machine types in the -strictest sense, not other kinds of descriptors sometimes used in place of a -Chez Scheme machine type by Racket, such as @code{\"pb\"}, @code{#f}, or -@code{\"racket\"}. (When using such extensions, the Chez Scheme machine type -for the host system is often still relevant.)" - (let ((machine (chez-machine->nonthreaded machine))) - (let find-arch ((alist %nix-arch-to-chez-alist)) - (match alist - (((nix . chez) . alist) - (if (string-prefix? chez machine) - (string-append - nix "-" (let ((machine-os - (substring machine (string-length chez)))) - (let find-os ((alist %nix-os-to-chez-alist)) - (match alist - (((nix . chez) . alist) - (if (equal? chez machine-os) - nix - (find-os alist))))))) - (find-arch alist))))))) +(define* (target-chez-os #:optional (system (or (%current-target-system) + (%current-system)))) + "Return a string representing the operating system kernel of SYSTEM as used +in Chez Scheme machine types, or '#f' if none is defined." + ;; e.g. "le" includes both GNU/Linux and Android + (cond + ((target-linux? system) + "le") + ((target-hurd? system) + #f) + ((target-mingw? system) + "nt") + ;; missing (guix utils) predicates + ;; cf. https://github.com/NixOS/nixpkgs/blob/master/lib/systems/doubles.nix + ((string-suffix? "-darwin" system) + "osx") + ((string-suffix? "-freebsd" system) + "fb") + ((string-suffix? "-openbsd" system) + "ob") + ((string-suffix? "-netbsd" system) + "nb") + ;; Nix says "x86_64-solaris", but accommodate "-solaris2" + ((string-contains system "solaris") + "s2") + ;; unknown + (else + #f))) (define* (nix-system->chez-machine #:optional (system (or (%current-target-system) @@ -153,16 +140,81 @@ (define* (nix-system->chez-machine #:optional machine type is undefined. It is unspecified whether the resulting string will name a threaded or a -nonthreaded machine type: when the distinction is relevant, use -@code{chez-machine->nonthreaded} or @code{chez-machine->threaded} to adjust -the result." - (let* ((hyphen (string-index system #\-)) - (nix-arch (substring system 0 hyphen)) - (nix-os (substring system (+ 1 hyphen))) - (chez-arch (assoc-ref %nix-arch-to-chez-alist nix-arch)) - (chez-os (assoc-ref %nix-os-to-chez-alist nix-os))) +nonthreaded machine type." + (let* ((chez-arch (target-chez-arch system)) + (chez-os (target-chez-os system))) (and chez-arch chez-os (string-append chez-arch chez-os)))) +(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) + ("ppc32" threads)) + ;; 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 + ;; 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) @@ -172,20 +224,14 @@ (define* (chez-upstream-features-for-system #:optional does not support SYSTEM at all. If native threads are supported, the returned list will include -@code{'threads}. Other feature symbols may be added in the future." - (cond - ((not (nix-system->chez-machine system)) - #f) - ((target-aarch64? system) - #f) - ((target-arm32? system) - (and (target-linux? system) - '())) - ((target-ppc32? system) - (and (target-linux? system) - '(threads))) - (else - '(threads)))) +@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)))) ;; ;; Chez Scheme: @@ -365,14 +411,9 @@ (define-public chez-scheme ((pth) (symlink pth "csug.pdf"))))))))) - ;; Chez Scheme does not have a MIPS backend. - ;; FIXME: Debian backports patches to get armhf working. - ;; We should too. It is the Chez machine type arm32le - ;; (no threaded version upstream yet, though there is in - ;; Racket's fork), more specifically (per the release notes) ARMv6. (supported-systems (delete - "armhf-linux" ;; <-- should work, but reportedly broken + "armhf-linux" ;; XXX reportedly broken, needs checking (filter chez-upstream-features-for-system %supported-systems))) (home-page "https://cisco.github.io/ChezScheme/") @@ -471,16 +512,9 @@ (define-public chez-scheme-bootstrap-bootfiles (list #:install-plan #~`(("boot/" "lib/chez-scheme-bootfiles")))) (supported-systems - ;; Upstream only distributes pre-built bootfiles for - ;; arm32le and t?(i3|a6)(le|nt|osx) (filter (lambda (system) - (let ((machine (and=> (nix-system->chez-machine system) - chez-machine->nonthreaded))) - (or (equal? "arm32le" machine) - (and machine - (member (substring machine 0 2) '("i3" "a6")) - (or-map (cut string-suffix? <> machine) - '("le" "nt" "osx")))))) + (and=> (chez-upstream-features-for-system system) + (cut memq 'bootstrap-bootfiles <>))) %supported-systems)) (synopsis "Chez Scheme bootfiles (binary seed)") (description -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun May 08 16:09:58 2022 Received: (at 55248) by debbugs.gnu.org; 8 May 2022 20:09:58 +0000 Received: from localhost ([127.0.0.1]:55281 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnE5-0002MW-OU for submit@debbugs.gnu.org; Sun, 08 May 2022 16:09:58 -0400 Received: from mail-vs1-f54.google.com ([209.85.217.54]:35717) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnDz-0002M2-Ok for 55248@debbugs.gnu.org; Sun, 08 May 2022 16:09:56 -0400 Received: by mail-vs1-f54.google.com with SMTP id d22so9301213vsf.2 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 13:09:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rEN63InRpJFw9FWbXtZMsikdTxt1Wx/ik5ZLTy2nCfM=; b=Wen7H1uEaNb//uuEeOjsy3piVWr59M5uFlKpezdMKsWCAXAXeqlj5/j2kZfFk3uTlU 2oXMuRPvFP1XG5wpuzLdvAX0RPR/SRNICAIABArTv0s8dhnfTHiL7IEI4et01l2Skeak CQ1GwBKYQMDMKYGJaQI5ifbUYSIFWQy0CDXluPEehNguFretm21YwW/JQfgpVLRmlKhr 3QRYMeGlEVHrdKsROthp844qHouCk2ioId10nEDYd1KxOP4mYZvq7tlLi9QKvgxPhqSb rNqMoYQWOSqwjTcpkj1YB5X693Foibw3Xljmylub82n7TeIBF/+7znubguppcvrgtYt+ c/EQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rEN63InRpJFw9FWbXtZMsikdTxt1Wx/ik5ZLTy2nCfM=; b=q8CLJPijBPPd6GhfUIwFqqVK6zfZ59XK9sFa0nEb3lQOVuXqyTfNoV7QgU8YKcn2G8 Kx0gCrijj7KvPR1x/un9cdlQlbTrTSVP7Nw6K8DzCyC6882GKldxFFoKaegDJJtKdXhe ixbRKgHj1Wi/dqARw+E0Auorg6DxMFmBY0r8Qa4JJiTWg6Vkf08yDUJ32coPIvywEMla R5AoYKD6+sjS9uE9kE/+wavWQ/r/RS0L3gRo81E8gp1DP216ScnaAlP4OEbJiY1gmugA vZdT/usy78T4F03F1f534F+ntV6qBPkAaC4Twsys6N3uY8OR38VPDoJsQKUERV+i1fsS zXNg== X-Gm-Message-State: AOAM530aTo9gTCdzsn9JJ1Ax9zsbt8LsH/7XhiQcJfFCSxRaA1l6xF8v uI1qJh7oNbhjKJc/1u9c3ebQn9/pOO0LCZ2D X-Google-Smtp-Source: ABdhPJz2FMS1obvBQ6xJAS7fI7TyguGf7n9Q3AzsQWtIpfOMd8O142iJDgDD92Eq6u+U7/hV1o1mmw== X-Received: by 2002:a67:c816:0:b0:32c:f407:7d40 with SMTP id u22-20020a67c816000000b0032cf4077d40mr6350975vsk.75.1652040586253; Sun, 08 May 2022 13:09:46 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id f19-20020a67ea93000000b0032d275e6904sm941802vso.4.2022.05.08.13.09.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 13:09:46 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v2 8/9] gnu: chez-scheme-for-racket: Fix supported systems. Date: Sun, 8 May 2022 16:07:51 -0400 Message-Id: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) This commit fixes the treatment of systems like "powerpc-w64-mingw32", where the combination of architecture and kernel is not supported, even though both are supported in other combinations. The build failure fixed in b8fc9169515ef1a6d6037c84e30ad308e5418b6f highlighted this problem: see also . The correct support status is specified by '%chez-features-table', which was added to improve 'chez-upstream-features-for-system': this commit uses it to fix the repair. Once the issues in are resolved, 'chez-scheme-for-racket' and 'racket-vm-cs' will be able to run even on systems for which native code generation is not supported. It's not clear what behavior would be useful from 'nix-system->chez-machine': since the current implementation is flawed and easy to misuse, we remove it for now, replacing the remaining uses with 'racket-cs-native-supported-system?'. * gnu/packages/chez.scm (nix-system->chez-machine): Remove it. (racket-cs-native-supported-system?): New variable. (chez-scheme-for-racket)[supported-systems]: Use it. * gnu/packages/racket.scm (racket-vm-for-system): Likewise. --- gnu/packages/chez.scm | 32 +++++++++++++++++--------------- gnu/packages/racket.scm | 7 +++++-- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 41f083e0ac..cae17580f8 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -48,7 +48,7 @@ (define-module (gnu packages chez) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:export (chez-scheme-for-system - nix-system->chez-machine + racket-cs-native-supported-system? unpack-nanopass+stex)) ;; Commentary: @@ -132,19 +132,6 @@ (define* (target-chez-os #:optional (system (or (%current-target-system) (else #f))) -(define* (nix-system->chez-machine #:optional - (system (or (%current-target-system) - (%current-system)))) - "Return the Chez Scheme machine type corresponding to the Nix system -identifier SYSTEM, or @code{#f} if the translation of SYSTEM to a Chez Scheme -machine type is undefined. - -It is unspecified whether the resulting string will name a threaded or a -nonthreaded machine type." - (let* ((chez-arch (target-chez-arch system)) - (chez-os (target-chez-os system))) - (and chez-arch chez-os (string-append chez-arch chez-os)))) - (define %chez-features-table ;; An alist of alists mapping: ;; os -> arch -> (or/c #f (listof symbol?)) @@ -233,6 +220,19 @@ (define* (chez-upstream-features-for-system #:optional (and=> (assoc-ref %chez-features-table chez-os) (cut assoc-ref <> chez-arch)))) +(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? +Otherwise, SYSTEM can use only the ``portable bytecode'' backends." + (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 <>)) + #t))) + ;; ;; Chez Scheme: ;; @@ -459,7 +459,9 @@ (define-public chez-scheme-for-racket (add-after 'unpack 'chdir (lambda args (chdir "racket/src/ChezScheme")))))))) - (supported-systems (filter nix-system->chez-machine + ;; TODO: How to build pbarch/pbchunks for other systems? + ;; See https://racket.discourse.group/t/950 + (supported-systems (filter racket-cs-native-supported-system? %supported-systems)) (home-page "https://github.com/racket/ChezScheme") ;; ^ This is downstream of https://github.com/racket/racket, diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 904dfe9bef..1f020f1276 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -190,8 +190,11 @@ (define-module (gnu packages racket) (define* (racket-vm-for-system #:optional (system (or (%current-target-system) (%current-system)))) - "Return 'racket-vm-cs' if it supports SYSTEM; 'racket-vm-bc' otherwise." - (if (nix-system->chez-machine system) + "Return 'racket-vm-cs' if we are able to build it for SYSTEM; 'racket-vm-bc' +otherwise." + ;; Once we figure out the issues in https://racket.discourse.group/t/950, + ;; we can use 'racket-vm-cs' everywhere. + (if (racket-cs-native-supported-system? system) racket-vm-cs racket-vm-bc)) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun May 08 16:10:06 2022 Received: (at 55248) by debbugs.gnu.org; 8 May 2022 20:10:06 +0000 Received: from localhost ([127.0.0.1]:55291 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnEE-0002O0-5l for submit@debbugs.gnu.org; Sun, 08 May 2022 16:10:06 -0400 Received: from mail-ua1-f41.google.com ([209.85.222.41]:42582) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnnE3-0002MJ-UE for 55248@debbugs.gnu.org; Sun, 08 May 2022 16:10:04 -0400 Received: by mail-ua1-f41.google.com with SMTP id ay15so4713224uab.9 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 13:09:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=sXAlWzX75Hlmhrp6qGDaKZes3YE2GAMM4FDqwjqZ+mw=; b=dXPZyh0U/1OJ2Z5MXkQJYYZO6/8lk0CBzijww7EAovQs7tpdM3jlYsyZETDuS3HiJ5 zHu0T9K3KCLMPkC2sH6JwRcN9iarX+WyNX9zC2AFRD1QI/46uQIsqY4xjND1lzy9KIVp GQRUqpuYojC2SQ6DPAFb4x083GLVswIqssyIQzr3iZ9SZeTeaf7jKG+MomdSsWQD3zcB Jx+dtVxqbYsKtJtYKRN7ypOizg1KmoJvfj2EvbbJBqd2YD7DfxMXFNrxqKZLjzbD2FcE gd3U3jDxpFgP3dVSuaz2eCrZO9l1FHwwSc079eKAM0Jt8WZ2P5liKgVGsaDcLNZ8xR89 cBaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=sXAlWzX75Hlmhrp6qGDaKZes3YE2GAMM4FDqwjqZ+mw=; b=g01auw0PjroOvsZYW0ynHnoZK1El3GRQQxBH9n/1ETT1SK9X9PnGz59ecOLIyNjD+a VdLdTjRlq+8CR/O6rVaLdfmFToUJHmTMnbdToqSeud/IXENj+9tR5pPxevYPyggokHOR oKqjoTEKKOcXl1unJtg495UC/EIUtn7ajKzi1a4O91nIQKvntuIAFmRU6UCJMTteRoi7 ipA62Hud9yji2Yq3EwHBE3D4M9EzsXY3I68aNc0UGjQntls7oPfn0aevmIBYEBni0Hs1 iCe6O1h/M+m6MW7cNQsxNFeeMUyXQfMG4P+OE0AskHPSDLmXyH6NJxtBjPrcAo/w+dyp dpKw== X-Gm-Message-State: AOAM532J155qBa9bY9N3+3Nay9canjnZJz3ck+fsyHu3AR32wsvTZ9/2 Y7v9DtDplCzsj+BGvmNdQc2Q6evYtMxjgX68 X-Google-Smtp-Source: ABdhPJxw+Bu4so/ua5v7I5mCZnCSVLqYXb9dkJwfT3mcVy4+UPIOLea1MfhtGpKDU6y+ZtajROlgLg== X-Received: by 2002:a9f:3272:0:b0:359:eded:9c7e with SMTP id y47-20020a9f3272000000b00359eded9c7emr6746459uad.35.1652040590467; Sun, 08 May 2022 13:09:50 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id t23-20020ab02797000000b00364e6da2ea5sm1323441uap.18.2022.05.08.13.09.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 13:09:50 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v2 9/9] gnu: chez-scheme-for-system: Adjust for bytecode backend. Date: Sun, 8 May 2022 16:07:52 -0400 Message-Id: <930d660fe1deaef1210ec6a04cec9e9aa66a150d.1652039837.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) Change 'chez-scheme-for-system' to return 'chez-scheme-for-racket' in two cases when it previously returned 'chez-scheme': 1. When 'chez-scheme' is not distributed with bootstrap bootfiles, since we can only cross-compile 'chez-scheme' for those systems; and 2. When neither 'chez-scheme' nor 'chez-scheme-for-racket' supports native code generation, since we will be able to use the ``portable bytecode'' backends of 'chez-scheme-for-racket' as soon as the issues in are resolved. * gnu/packages/chez.scm (chez-scheme-for-racket): Change condition. --- gnu/packages/chez.scm | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index cae17580f8..7e6273f26a 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -69,14 +69,17 @@ (define-module (gnu packages chez) (define* (chez-scheme-for-system #:optional (system (or (%current-target-system) (%current-system)))) - "Return 'chez-scheme' unless only 'chez-scheme-for-racket' supports SYSTEM, -including support for native threads." - (if (or - ;; full support upstream - (and=> (chez-upstream-features-for-system system) - (cut memq 'threads <>)) - ;; no support anywhere - (not (nix-system->chez-machine 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)) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun May 08 23:54:59 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 03:55:00 +0000 Received: from localhost ([127.0.0.1]:55634 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnuU7-0005wz-AX for submit@debbugs.gnu.org; Sun, 08 May 2022 23:54:59 -0400 Received: from mail-ed1-f67.google.com ([209.85.208.67]:39902) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnuU5-0005wP-50 for 55248@debbugs.gnu.org; Sun, 08 May 2022 23:54:57 -0400 Received: by mail-ed1-f67.google.com with SMTP id g20so14787690edw.6 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 20:54:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=Ife20QqKUJ/uvxpg37ZQM9hAfbNAF1fVe8MYKdAmtA0=; b=fM6t9972EXiOTiO1W31oGvSD9Y555O4t0Y6ExJePlYokmNYsiMg1m6k+RKlyiWTl0F 4RyBHxsMJ16cHwpJvr02dWJNu5zz79fqUQ57/nuyHnt5M/picKD/9tAfwBs/Y9VKtnlZ Q86ch7TH1YXRdesfEeph6i02ZeSr41q/M9FhEJOM1jGVnY6hCY+I1/ySvWBJrFDlpyKi 4ZmpxbTj+8jamV8/n6/budUXkh7O4pUoq1sn/gnwsZtbsw8kEUgRjWraP7uFays6NXUW F+BhKg5IVeAkHHbNeE7ee+ZwL7WAIFi+Ob8VJZTE7SnkQb+S4CQfEyRjd4SUFvtSnbfq EMCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=Ife20QqKUJ/uvxpg37ZQM9hAfbNAF1fVe8MYKdAmtA0=; b=I+cnfFNkJmQ711WBGI2b0/ZYwgZzPwGLoIeP51BuPATddXi9/d+lRiEgmgGX2r/TTx zGdH8YX90bapkHQ+SCFjLsR06qtiJBwJWX4D4qHG3rMv3e9ytDlAz44XCgqwwf3ql1cT hU4cjjh/Lm27inUBEHpkBTZcrHgIlz3DDQyM+9kHnk4JTBAJ+xPdkcFkDVz360jYZN/k uIXQCn5AClExE05FB2Boado55X9ajbs0gkF3uFppW23orG1/e3jv+oMS/joPqU5dD4TJ gSA4y3Ep2wNP7pAdWzjSe2TZa+uMBzQ1QSkSugBmJURBDT/5KkCWYhBCGiEXeE5AWXWz oXdg== X-Gm-Message-State: AOAM530jqSagn+C1RuBKkGNdFmYpi62EdGhLhe2wg9cbMWiIFSnFooyQ d6SlzzPLWOlFCTdNJDYzhfc= X-Google-Smtp-Source: ABdhPJxYoE+EMSh8tXOMbX5v5LhIr1C9UrittQwtpNh98cfCCkbf2FvC/zB1M5kWlCzmYG/jEP7FCw== X-Received: by 2002:a05:6402:1941:b0:413:2822:9c8 with SMTP id f1-20020a056402194100b00413282209c8mr15277104edz.13.1652068491034; Sun, 08 May 2022 20:54:51 -0700 (PDT) Received: from nijino.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id b6-20020a50e386000000b0042617ba63c8sm5800466edm.82.2022.05.08.20.54.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 08 May 2022 20:54:50 -0700 (PDT) Message-ID: Subject: Re: [PATCH v2 2/9] gnu: racket: Fix out-of-source build. From: Liliana Marie Prikler To: Philip McGrath , 55248@debbugs.gnu.org Date: Mon, 09 May 2022 05:54:49 +0200 In-Reply-To: <63d9ad60e39d8315f493b0ca49517f21fb320575.1652039837.git.philip@philipmcgrath.com> References: <63d9ad60e39d8315f493b0ca49517f21fb320575.1652039837.git.philip@philipmcgrath.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 55248 Cc: Maxime Devos 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 Philip, Correct me if I'm wrong, but I think you didn't quite get the point I raised w.r.t. install-license-files. Instead of Am Sonntag, dem 08.05.2022 um 16:07 -0400 schrieb Philip McGrath: > +           (add-after 'chdir 'symlink-license-src > +             ;; Work around limitation of install-license-files by > symlinking > +             ;; srcdir where it expects.  (It doesn't handle this > variant of > +             ;; #:out-of-source? and a subdirectory for srcdir.)  > Just running > +             ;; `make install` only puts them in Racket's 'share- > dir'. > +             (lambda* (#:key out-of-source? #:allow-other-keys) > +               (when out-of-source? > +                 (with-directory-excursion ".." > +                   (symlink "src" > +                            (package-name->name+version > +                             (strip-store-file-name > #$output)))))))))) you could (replace 'install-license-files (lambda args (with-directory-excursion ".." ; perhaps "../src" if needed (apply (assoc-ref %standard-phases 'install-license-files) args)))) If that doesn't work, you could fake an "in-source" build by appending "#:out-of-source? #f" to args. Cheers From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 02:03:31 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 06:03:31 +0000 Received: from localhost ([127.0.0.1]:55688 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwUV-0000sH-5o for submit@debbugs.gnu.org; Mon, 09 May 2022 02:03:31 -0400 Received: from mail-vs1-f44.google.com ([209.85.217.44]:39918) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwUT-0000s2-7R for 55248@debbugs.gnu.org; Mon, 09 May 2022 02:03:29 -0400 Received: by mail-vs1-f44.google.com with SMTP id u205so12828622vsu.6 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 23:03:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iRmUH1StUsizaa+DbiRjAR4rnyBt+VCYYpNChUAGlg4=; b=kXf2WI+mUBRFhykxIiFaJFQPUXYwxz466ck5rKy1T4Qyg/zQzwx17bGe8V9kS8Rli1 aLYbCAM25XPNPz/UPNg1iMYo/IIJ5o62s4SmYSPjFabwjgxwFn9KTanKAm732mJOBTgO IQtwwSOXT8nwlT5gl0shv5y5mbksdNCUxryuVhjOe1KqFchg8DraV+G+mQIHIPOm4ulK uPtfjTm+UaCVzuDW7jsFFXTJMYizqgvuO/2WrBVlKq03k5ZpmassT6udtubij/QDIcRW tcICdP9TffOagcBgYqc/olcFo42xP849lgGXqHzKfqDKtnG1mbdEOCnGXYz56YXYkT2h TIRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iRmUH1StUsizaa+DbiRjAR4rnyBt+VCYYpNChUAGlg4=; b=iHpjunHICbMGAUQ4BlFJ5KGf5HuDQY38vBJDBNYdPGoSdRyW9bniQgs4eTp99VHHT3 dHgmq9XF5h1/W+OTJPwRq8hqWqk+06YumxPqV1756VB9+78xhQcqug2RqhLN0AeCbJbW TLN9RpX0sa5J6SCAec2wy0vyS4GsH4eJXNB5t9RPvfoKVNelfw/85aoQ0SVYOMnKWZsX PghEtycwpyRIu3QfoYHYkiGCHnOshd18d8qGD6LPWZgX0UI3PL2OCQWKORp4WuhSJIrV GdQO6WHa6kGCoDlLsmtVHgfSQbVTPfkIIBaMpqTs8TOIsitcPEMazs9cBkY+LmzHNVhO aukw== X-Gm-Message-State: AOAM532tUrQ6WN/+YA3kLzLgGwR8RdUfonTd1Fowo1Hd1EAakmnVOUj6 CicRlGYsikGlE5Oclfrw1PEJTOCVX9Cg+i8e X-Google-Smtp-Source: ABdhPJwKJUtrTOMVuTBOowiTnaZS9dAswSQBeQETF226xIz2Rvdg9hFylw183muBegqtT/8JBMDVhg== X-Received: by 2002:a67:b445:0:b0:32c:e27c:b690 with SMTP id c5-20020a67b445000000b0032ce27cb690mr7078692vsm.43.1652076203453; Sun, 08 May 2022 23:03:23 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id f8-20020a1f9c08000000b0034e6f1fd05esm1319975vke.40.2022.05.08.23.03.22 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 23:03:23 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v3 0/9] gnu: Update Racket to 8.5 and Chez Scheme to 9.5.8. Date: Mon, 9 May 2022 02:02:41 -0400 Message-Id: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) Hi, On 5/8/22 23:54, Liliana Marie Prikler wrote: > Hi Philip, > > Correct me if I'm wrong, but I think you didn't quite get the point I > raised w.r.t. install-license-files. Instead of > > Am Sonntag, dem 08.05.2022 um 16:07 -0400 schrieb Philip McGrath: >> + (add-after 'chdir 'symlink-license-src >> + ;; Work around limitation of install-license-files by >> symlinking >> + ;; srcdir where it expects. (It doesn't handle this >> variant of >> + ;; #:out-of-source? and a subdirectory for srcdir.) >> Just running >> + ;; `make install` only puts them in Racket's 'share- >> dir'. >> + (lambda* (#:key out-of-source? #:allow-other-keys) >> + (when out-of-source? >> + (with-directory-excursion ".." >> + (symlink "src" >> + (package-name->name+version >> + (strip-store-file-name >> #$output)))))))))) > you could > > (replace 'install-license-files > (lambda args > (with-directory-excursion ".." ; perhaps "../src" if needed > (apply (assoc-ref %standard-phases 'install-license-files) > args)))) > > If that doesn't work, you could fake an "in-source" build by appending > "#:out-of-source? #f" to args. > Yes, a variant of that works. I can't say I see the benefit, personally, but here's a v3 if you prefer it. -Philip Philip McGrath (9): gnu: racket: Update to 8.5. gnu: racket: Fix out-of-source build. gnu: chez-scheme: Update to 9.5.8. gnu: chez-scheme: Refactor documentation phases. gnu: chez-scheme: Refactor configure phase and fix '--threads'. gnu: stex: Get machine type dynamically. gnu: chez-upstream-features-for-system: Improve implementation. gnu: chez-scheme-for-racket: Fix supported systems. gnu: chez-scheme-for-system: Adjust for bytecode backend. gnu/local.mk | 2 - gnu/packages/chez.scm | 426 +++++++++------- .../racket-enable-scheme-backport.patch | 465 ------------------ ...acket-gui-tethered-launcher-backport.patch | 26 - gnu/packages/racket.scm | 107 ++-- 5 files changed, 302 insertions(+), 724 deletions(-) delete mode 100644 gnu/packages/patches/racket-enable-scheme-backport.patch delete mode 100644 gnu/packages/patches/racket-gui-tethered-launcher-backport.patch base-commit: 668313e07fa2518fe02704b047237c173f63c6d4 -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 02:03:52 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 06:03:52 +0000 Received: from localhost ([127.0.0.1]:55692 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwUg-0000so-FI for submit@debbugs.gnu.org; Mon, 09 May 2022 02:03:52 -0400 Received: from mail-vs1-f43.google.com ([209.85.217.43]:37437) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwUb-0000sP-Hs for 55248@debbugs.gnu.org; Mon, 09 May 2022 02:03:41 -0400 Received: by mail-vs1-f43.google.com with SMTP id t85so12826513vst.4 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 23:03:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=HCZ+5Ymuh1YLSQ3MZtM5EKO/UncoN3bwaZmEpAcIJac=; b=HtrR8F+6gg1K1gMqRs4BS+THDO303rGXt+Cw8SZ5jS+TwDWA36nha55T5tByaI5MdW pxnqOfYaRl2HaMiLJv4r0DmOfYWhK6P1GUs1aJRAcF0100nN7jvXk3zz8u/U9XmoQKt7 i3BHbyd7KWiUCyiFHBhq8gr3aBCeH673BIOl5OCwTVk3Yd9asRIPUDZdc4hDBEpFeOBV JrTRgVtVKd/aGKLxbsUnblHyz8jAS0I+Ohtb6I6hpQCCALcsAnBZUu93LAnOiifiyFgo /mvWdUp0acISnWu4dbiMXjefiFvFuZozDbjC7YbyuHYc5v1ZORXxqXheTXEu1OtvdwQq a6bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HCZ+5Ymuh1YLSQ3MZtM5EKO/UncoN3bwaZmEpAcIJac=; b=kzuCRxDRFHWrOTL6s8l6QyRegfHUMLg0KJZz5xF108d5AkEFy5hVMQp355QFJBHafW blfOIrPUlaj4cwXsJtCnwCSi9tB1g4Av3Q0vSR/2lyYImZK29zMSgcNmpS2g8JfYjahU V+e2QNSdRYhm+0CM0bQRuyMbfPxTvLjVLCIl3Qd8fbDxMm0Adw/J5vn36Ss9WrRj0Kmd 4W1PgFy6J/HvmXu/74HJ+Y+kUivgzHCDb8kARv7jBQITX9JPs8YOSBEnTmiWoZt8aWu1 JuSY/hRCKWb4LqRcS3N009gdz+UexIYJ0iCxzpF7512MgJIsa4FVLQnJQyxafaCAal8B j8IA== X-Gm-Message-State: AOAM5329SxTo+93/MS6XWb4r0Ee/CTlKTOiW1mFFpB5RcmgXeBef1UV+ uT73bQkakP0up3EbUuXU9QOLP4Ly6vHtMqTA X-Google-Smtp-Source: ABdhPJwdVOd0Kq4g/zHGKENdt9ZamZFjrWoWWhoDbMQtHDV61fkteOBtjzdJ6Nc1I9wKRcVaGnuQpQ== X-Received: by 2002:a67:e311:0:b0:331:972b:9e93 with SMTP id j17-20020a67e311000000b00331972b9e93mr2697877vsf.63.1652076211444; Sun, 08 May 2022 23:03:31 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id s24-20020a67df18000000b0032d275e6915sm1026719vsk.21.2022.05.08.23.03.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 23:03:31 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v3 1/9] gnu: racket: Update to 8.5. Date: Mon, 9 May 2022 02:02:42 -0400 Message-Id: <0274097e2e661519d5a5bf2b0ae2a8c3735af3c7.1652075689.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) * gnu/packages/patches/racket-gui-tethered-launcher-backport.patch, gnu/packages/patches/racket-enable-scheme-backport.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. * gnu/packages/chez.scm (chez-scheme-for-racket): Update to 9.5.7.6. * gnu/packages/racket.scm (%racket-version): Update to 8.5. (%racket-origin)[patches]: Remove obsolete patches. (racket-vm-common-configure-flags): Correct comment. (racket)[inputs]<2d, datalog, deinprogramm, draw, drracket, expeditor, htdp, pict, plot, quickscript, racklog, rackunit, redex, scribble, typed-racket, string-constants, syntax-color, web-server, xrepl>: Update checksums. : Likewise, and remove obsolete backports. --- gnu/local.mk | 2 - gnu/packages/chez.scm | 4 +- .../racket-enable-scheme-backport.patch | 465 ------------------ ...acket-gui-tethered-launcher-backport.patch | 26 - gnu/packages/racket.scm | 82 ++- 5 files changed, 32 insertions(+), 547 deletions(-) delete mode 100644 gnu/packages/patches/racket-enable-scheme-backport.patch delete mode 100644 gnu/packages/patches/racket-gui-tethered-launcher-backport.patch diff --git a/gnu/local.mk b/gnu/local.mk index bc9f976a39..d593aecfc2 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1757,8 +1757,6 @@ dist_patch_DATA = \ %D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ %D%/packages/patches/rtags-separate-rct.patch \ - %D%/packages/patches/racket-enable-scheme-backport.patch \ - %D%/packages/patches/racket-gui-tethered-launcher-backport.patch \ %D%/packages/patches/racket-minimal-sh-via-rktio.patch \ %D%/packages/patches/remake-impure-dirs.patch \ %D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \ diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index d47225dbe5..a7f75a731a 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 Philip McGrath +;;; Copyright © 2021, 2022 Philip McGrath ;;; ;;; This file is part of GNU Guix. ;;; @@ -361,7 +361,7 @@ (define-public chez-scheme-for-racket (package (inherit chez-scheme) (name "chez-scheme-for-racket") - (version "9.5.7.3") + (version "9.5.7.6") ;; The version should match `(scheme-fork-version-number)`. ;; See racket/src/ChezScheme/s/cmacros.ss c. line 360. ;; It will always be different than the upstream version! diff --git a/gnu/packages/patches/racket-enable-scheme-backport.patch b/gnu/packages/patches/racket-enable-scheme-backport.patch deleted file mode 100644 index 3a5a4a3d82..0000000000 --- a/gnu/packages/patches/racket-enable-scheme-backport.patch +++ /dev/null @@ -1,465 +0,0 @@ -From 8d7687842f099e3e7e60d3a83fed58b2c6a92863 Mon Sep 17 00:00:00 2001 -From: Matthew Flatt -Date: Sun, 6 Feb 2022 10:36:09 -0700 -Subject: [PATCH 1/2] Chez Scheme: adapt bootfile build for supplied `Scheme=` - -(cherry picked from commit fca1e02349664060e10278ca2ce6577a949bebf5) - -(Fixed conflicts by dropping pbchunks and pbarch changes.) ---- - racket/src/ChezScheme/configure | 15 ++++++++++++++- - racket/src/ChezScheme/s/Mf-base | 4 ++-- - racket/src/ChezScheme/s/Mf-cross | 4 +++- - 3 files changed, 19 insertions(+), 4 deletions(-) - -diff --git a/racket/src/ChezScheme/configure b/racket/src/ChezScheme/configure -index 4515ffc105..0098829091 100755 ---- a/racket/src/ChezScheme/configure -+++ b/racket/src/ChezScheme/configure -@@ -45,6 +45,7 @@ threads=yes - nothreads=no - temproot="" - help=no -+forceworkarea=no - gzipmanpages=yes - installowner="" - installgroup="" -@@ -205,6 +206,9 @@ while [ $# != 0 ] ; do - --pb) - pb=yes - ;; -+ --force) -+ forceworkarea=yes -+ ;; - --installprefix=*) - installprefix=`echo $1 | sed -e 's/^--installprefix=//'` - ;; -@@ -439,6 +443,7 @@ if [ "$help" = "yes" ]; then - echo " --toolprefix= prefix tool (compiler, linker, ...) names" - echo " --[no]gzip-man-pages compress manual pages ($gzipmanpages)" - echo " --workarea= build directory ($w)" -+ echo " --force configure even without boot files" - echo " CC= C compiler" - echo " CPPFLAGS= C preprocessor flags" - echo " CFLAGS= C compiler flags" -@@ -721,8 +726,16 @@ case "${flagsmuni}" in - ;; - esac - -+if [ "$w" = "$m" ] ; then -+ configuringin="" -+else -+ configuringin=" in $w" -+fi -+ - if [ -f boot/$m/scheme.boot -o -f "$srcdir"/boot/$m/scheme.boot ] ; then -- echo "Configuring for $m" -+ echo "Configuring for $m$configuringin" -+elif [ "$forceworkarea" = yes ] ; then -+ echo "Configuring for $m$configuringin despite missing boot files" - else - if [ "$m" = "" ] ; then - maybem="" -diff --git a/racket/src/ChezScheme/s/Mf-base b/racket/src/ChezScheme/s/Mf-base -index cc6178c973..1f4a967998 100644 ---- a/racket/src/ChezScheme/s/Mf-base -+++ b/racket/src/ChezScheme/s/Mf-base -@@ -94,7 +94,7 @@ endif - # that Scheme and SCHEMEHEAPDIRS are set by Mf-cross to point to the host Scheme - # implementation - Scheme = ../bin/$m/scheme${ExeSuffix} --export SCHEMEHEAPDIRS=../boot/%m -+export SCHEMEHEAPDIRS=../boot/$m - export CHEZSCHEMELIBDIRS=. - - # Define the libdirs separator character -@@ -691,4 +691,4 @@ reset-one: - - .PHONY: run - run: -- env SCHEMEHEAPDIRS=../boot/$m/ ../bin/$m/scheme $(ARGS) -+ env SCHEMEHEAPDIRS=${SCHEMEHEAPDIRS} ${Scheme} $(ARGS) -diff --git a/racket/src/ChezScheme/s/Mf-cross b/racket/src/ChezScheme/s/Mf-cross -index d796cbb459..397af59a28 100644 ---- a/racket/src/ChezScheme/s/Mf-cross -+++ b/racket/src/ChezScheme/s/Mf-cross -@@ -43,5 +43,7 @@ x$(xm).$(m): - $(MAKE) -f Mf-cross m=$(m) xm=$(xm) i=f o=3 d=0 xpatch - mv xpatch x$(xm).$(m) - -+ifneq ($(SCHEMEHEAPDIRS),:) - # Ensure that cross-compiling "nanopass.so" is rebuilt if the host compiler changed --nanopass.so: ${SCHEME} ${SCHEMEHEAPDIRS}/petite.boot ${SCHEMEHEAPDIRS}/scheme.boot -+nanopass.so: ${Scheme} ${SCHEMEHEAPDIRS}/petite.boot ${SCHEMEHEAPDIRS}/scheme.boot -+endif --- -2.32.0 - - -From 26c8e2c1d9b02ad85acef8bda40d92154cf0b699 Mon Sep 17 00:00:00 2001 -From: Matthew Flatt -Date: Sun, 6 Feb 2022 11:03:30 -0700 -Subject: [PATCH 2/2] configure: make `--enable-scheme` work with an executable - -When the same Chez Scheme version as used by Racket is already -available, then `--enable-scheme=...` can supply an executable. For -cross builds, `--enable-scheme=...` can still supply a build -directory, instead, as before. - -(cherry picked from commit 4f0e76855ce7e86107de495292a553469daf0b3f) ---- - racket/src/ChezScheme/makefiles/Makefile.in | 3 ++ - racket/src/README.txt | 30 +++++++++++--- - racket/src/configure | 8 +++- - racket/src/cs/README.txt | 6 ++- - racket/src/cs/c/Makefile.in | 44 ++++++++++++++++----- - racket/src/cs/c/configure | 24 +++++++++-- - racket/src/cs/c/configure.ac | 21 ++++++++-- - 7 files changed, 112 insertions(+), 24 deletions(-) - -diff --git a/racket/src/ChezScheme/makefiles/Makefile.in b/racket/src/ChezScheme/makefiles/Makefile.in -index c396efc851..3998ef9ccd 100644 ---- a/racket/src/ChezScheme/makefiles/Makefile.in -+++ b/racket/src/ChezScheme/makefiles/Makefile.in -@@ -59,6 +59,9 @@ reset: - %.boot: - (cd $(workarea) && $(MAKE) $*.boot) - -+auto.boot: -+ (cd $(workarea) && $(MAKE) $(defaultm).boot) -+ - # .bootquick to build boot files for - # with o=3 d=0 for the cross compiler, and only after - # building the kernel for the configured machine -diff --git a/racket/src/README.txt b/racket/src/README.txt -index 98647aebce..d77310b4a4 100644 ---- a/racket/src/README.txt -+++ b/racket/src/README.txt -@@ -354,6 +354,10 @@ variant of MinGW without "libdelayimp.a", get the implementation of - ======================================================================== - - Cross-compilation requires at least two flags to `configure`: -+`--host=OS` and either `--enable-racket=RACKET` or (for Racket CS) -+`--enable-scheme-SCHEME`. -+ -+More information: - - * `--host=OS`, where OS is something like `i386-gnu-linux` to - indicate the target platform. -@@ -374,11 +378,27 @@ Cross-compilation requires at least two flags to `configure`: - run `configure` again (with no arguments) in a "local" subdirectory - to create a build for the current platform. - --An additional flag is needed for building Racket CS, unless the flag --`--enable-racket=auto` is used: -- -- * `--enable-scheme=DIR`, where DIR is a path that has a "ChezScheme" -- directory where Chez Scheme is built for the host system. -+ * `--enable-scheme=SCHEME`, where SCHEME is a Chez Scheme executable -+ executable that runs on the build platform; the executable must be -+ the same version as used in Racket built for the target platform. -+ -+ Supplying `--enable-scheme=DIR` is also supported in cross-build -+ mode, where DIR is a path that has a "ChezScheme" directory where -+ Chez Scheme is built for the host system. -+ -+The `--enable-racket=RACKET` and `--enable-scheme=SCHEME` flags are -+allowed for non-cross builds, too: -+ -+ * For Racket CS, supplying either selects a Racket or Chez Scheme -+ implementation used to create boot files to the build platform. -+ Suppling Chez Scheme is a much more direct path, but when Racket is -+ supplied, its version does not have to match the version being -+ built. -+ -+ * For Racket BC, `--enable-racket=RACKET` selects a Racket for -+ prepare C sources to cooperate with garbage collection. Its version -+ needs to be close to the one being built, and potentially exactly -+ the same version. - - Some less commonly needed `configure` flags are for Racket BC: - -diff --git a/racket/src/configure b/racket/src/configure -index c9f3ba4419..1b53ec7ce2 100755 ---- a/racket/src/configure -+++ b/racket/src/configure -@@ -9,6 +9,7 @@ pb_dir="$dir/ChezScheme/boot/pb" - use_cs=maybe - use_bc=maybe - supplied_racket=no -+supplied_scheme=no - enable_boothelp= - - # We don't have to detect conflicts like `--enable-csdefault --enable-bcdefault`, -@@ -34,6 +35,9 @@ for arg in $*; do - --enable-racket=*) - supplied_racket=yes - ;; -+ --enable-scheme=*) -+ supplied_scheme=yes -+ ;; - --help | -h) - echo $0: - echo see --help-bc or --help-cs, since the Racket CS build and the -@@ -70,8 +74,8 @@ elif test "$use_cs" = "maybe" ; then - fi - - if test "$use_cs" = "yes" ; then -- if test $use_bc = no -a $supplied_racket = no -a ! -d "$pb_dir" ; then -- echo $0: must have $pb_dir or --enable-racket=... for --enable-csonly -+ if test $use_bc = no -a $supplied_racket = no -a $supplied_scheme = no -a ! -d "$pb_dir" ; then -+ echo $0: must have $pb_dir, --enable-racket=... or --enable-scheme=... for --enable-csonly - exit 1 - fi - -diff --git a/racket/src/cs/README.txt b/racket/src/cs/README.txt -index 2ece417b78..8e6fc57b74 100644 ---- a/racket/src/cs/README.txt -+++ b/racket/src/cs/README.txt -@@ -39,6 +39,11 @@ build: - installed in the "../ChezScheme/boot/pb" directory as described by - "../ChezScheme/BUILDING". - -+ Supplying `--enable-scheme=...` is also an option if you alerady -+ have the same version of Chez Scheme built on the current platform. -+ Another build will be created, anyway, but more quickly than -+ without Chez Scheme. -+ - * Racket is needed to generate the files in the "schemified" - directory from the sources in sibling directories like "../io". The - Racket version must be practically the same as the current Racket -@@ -48,7 +53,6 @@ build: - Unlike Chez Scheme boot files, the files generated in "schemified" - are human-readable and -editable Scheme code. That provides a way - out of bootstrapping black holes, even without BC. -- - - - ======================================================================== -diff --git a/racket/src/cs/c/Makefile.in b/racket/src/cs/c/Makefile.in -index 54a644a1d9..d73993f0fc 100644 ---- a/racket/src/cs/c/Makefile.in -+++ b/racket/src/cs/c/Makefile.in -@@ -12,7 +12,9 @@ CS_HOST_WORKAREA_PREFIX = @CS_HOST_WORKAREA_PREFIX@ - SCHEME_HOST_WORKAREA = $(CS_HOST_WORKAREA_PREFIX)$(SCHEME_WORKAREA) - SCHEME_BIN = $(SCHEME_HOST_WORKAREA)/$(MACH)/bin/$(MACH)/scheme - SCHEME_INC = $(SCHEME_HOST_WORKAREA)/$(MACH)/boot/$(MACH) --SCHEME = $(SCHEME_BIN) -B $(SCHEME_INC)/petite.boot -B $(SCHEME_INC)/scheme.boot -+SCHEME_built = $(SCHEME_BIN) -B $(SCHEME_INC)/petite.boot -B $(SCHEME_INC)/scheme.boot -+SCHEME_existing = @MAKE_SCHEME_SCHEME@ -+SCHEME = $(SCHEME@USE_SCHEME_MODE@) - - TARGET_MACH = @TARGET_MACH@ - SCHEME_TARGET_INC = $(SCHEME_WORKAREA)/$(TARGET_MACH)/boot/$(TARGET_MACH) -@@ -88,7 +90,7 @@ mainsrcdir = @srcdir@/../.. - @INCLUDEDEP@ @srcdir@/../../version/version.mak - - cs: -- $(MAKE) scheme@T_CROSS_MODE@ -+ $(MAKE) scheme@MAKE_SCHEME_MODE@ - $(MAKE) racket-so - cd rktio; $(MAKE) - $(MAKE) racketcs -@@ -121,9 +123,13 @@ racket-so: - - RACKET_SO_ENV = @CONFIGURE_RACKET_SO_COMPILE@ - -+TARGET_MACH_built = $(TARGET_MACH) -+TARGET_MACH_existing = xc-$(TARGET_MACH) -+XPATCH_FILE = $(SCHEME_WORKAREA)/$(TARGET_MACH@USE_SCHEME_MODE@)/s/xpatch -+ - CS_PROGS = SCHEME="$(SCHEME)" - CS_OPTS = COMPRESS_COMP=@COMPRESS_COMP@ @ENABLE_OR_DISABLE_WPO@ --CS_OPTScross = $(CS_OPTS) CSO=$(MACH) CROSS_COMP="--xpatch $(SCHEME_WORKAREA)/$(TARGET_MACH)/s/xpatch" -+CS_OPTScross = $(CS_OPTS) CSO=$(MACH) CROSS_COMP="--xpatch $(XPATCH_FILE)" - PASS_COMPILE_DEPS = EXTRA_COMPILE_DEPS="$(SCHEME_INC)/petite.boot $(SCHEME_INC)/scheme.boot" - - build-racket-so: -@@ -163,6 +169,15 @@ pb-bootquick: - cd $(SCHEME_WORKAREA) && $(MAKE) reset - $(SHELL) $(srcdir)/ready_boot.sh $(MACH) $(SCHEME_WORKAREA) - -+scheme-via-scheme: -+ $(MAKE) $(SCHEME_WORKAREA)/boot/$(MACH)/scheme.boot -+ $(MAKE) mach-make -+ -+$(SCHEME_WORKAREA)/boot/$(MACH)/scheme.boot: -+ mkdir -p $(SCHEME_WORKAREA) -+ $(MAKE) config-scheme CONFIG_SCHEME_MODE="$(CONFIG_SCHEME_MODE) --force" -+ cd $(SCHEME_WORKAREA) && $(MAKE) $(MACH).boot Scheme="$(SCHEME)" SCHEMEHEAPDIRS=: o=3 d=0 what=all -+ - mach-make: - $(MAKE) config-scheme - cd $(SCHEME_WORKAREA) && $(MAKE) -@@ -182,24 +197,33 @@ config-scheme: - - scheme-cross: - env MAKE_BOOT_FOR_CROSS=yes SCHEME_SRC="$(SCHEME_DIR)" SCHEME_WORKAREA=$(SCHEME_WORKAREA) MACH="$(TARGET_MACH)" $(BOOTSTRAP_RACKET) "$(SCHEME_DIR)"/rktboot/make-boot.rkt -+ $(MAKE) finish-scheme-cross -+ -+finish-scheme-cross: - $(SHELL) $(srcdir)/reset_boot.sh $(TARGET_MACH) $(SCHEME_WORKAREA) - cd $(SCHEME_WORKAREA) && "$(UP_SCHEME_DIR)"/configure @SCHEME_CROSS_CONFIG_ARGS@ $(SCHEME_CONFIG_VARS) - cd $(SCHEME_WORKAREA)/$(TARGET_MACH)/c && $(CHOST_HACK@T_CROSS_MODE@) $(MAKE) o=o cross=t -- $(MAKE) $(SCHEME_WORKAREA)/$(TARGET_MACH)/s/xpatch -+ $(MAKE) $(XPATCH_FILE) -+ -+scheme-cross-via-scheme: -+ $(MAKE) $(SCHEME_WORKAREA)/boot/$(TARGET_MACH)/scheme.boot MACH=$(TARGET_MACH) -+ $(MAKE) finish-scheme-cross - - # Rebuild patch file and cross "petite.boot" and "scheme.boot" when older --# than the build-host "scheme.boot" or when "make-boot.rkt" touchs dummy boot files --XPATCH_DEPS = $(SCHEME_HOST_WORKAREA)/$(MACH)/boot/$(MACH)/scheme.boot \ -- $(SCHEME_WORKAREA)/boot/$(TARGET_MACH)/scheme.boot -+# than the build- use as Racket for build; or "auto" to create -- --enable-scheme= use as host's build directory for cross -+ --enable-scheme= use as host build for cross - --enable-mach= use Chez Scheme machine type - --enable-target= cross-build for Chez Scheme machine type - --enable-portable prefer portable to host-specific -@@ -2867,7 +2870,7 @@ show_explicitly_enabled "${enable_xonx}" "Unix style" - show_explicitly_enabled "${enable_libzo}" 'Compiled ".zo" files moved to lib' - - show_explicitly_set "${enable_racket}" "Racket" --show_explicitly_set "${enable_scheme}" "Chez Scheme build directory" -+show_explicitly_set "${enable_scheme}" "Chez Scheme for build" - show_explicitly_set "${enable_mach}" "machine type" - show_explicitly_set "${enable_target}" "cross-build machine type" - show_explicitly_enabled "${enable_portable}" "portable" -@@ -4745,9 +4748,21 @@ esac - - SCHEME_DIR=${srcdir}/../../ChezScheme - MAKE_BUILD_SCHEME=checkout -+USE_SCHEME_MODE="_built" -+MAKE_SCHEME_MODE="${T_CROSS_MODE}" - - if test "${enable_scheme}" != "" ; then -- CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ if test -d "${enable_scheme}" ; then -+ # Directory exists, so use it as a build directory -+ echo "Using supplied Scheme path as a build directory" -+ CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ else -+ # Directory does not exist, so assume it's an executable -+ echo "Using supplied Scheme path as an executable" -+ MAKE_SCHEME_MODE="${T_CROSS_MODE}-via-scheme" -+ MAKE_SCHEME_SCHEME="${enable_scheme}" -+ USE_SCHEME_MODE="_existing" -+ fi - fi - - if test "${enable_racket}" != "" ; then -@@ -6012,6 +6027,9 @@ SCHEME_CROSS_CONFIG_ARGS="--machine=${TARGET_MACH} --disable-x11 ${cs_auto_flags - - - -+ -+ -+ - - - -diff --git a/racket/src/cs/c/configure.ac b/racket/src/cs/c/configure.ac -index 464ebe1760..aaee88156d 100644 ---- a/racket/src/cs/c/configure.ac -+++ b/racket/src/cs/c/configure.ac -@@ -23,7 +23,7 @@ AC_ARG_ENABLE(compressmore, [ --enable-compressmore compress compiled code ev - AC_ARG_ENABLE(compressboot, [ --enable-compressboot compress boot files]) - m4_include(../ac/path_arg.m4) - AC_ARG_ENABLE(racket, [ --enable-racket= use as Racket for build; or "auto" to create]) --AC_ARG_ENABLE(scheme, [ --enable-scheme= use as host's build directory for cross]) -+AC_ARG_ENABLE(scheme, [ --enable-scheme= use as host build for cross]) - AC_ARG_ENABLE(mach, [ --enable-mach= use Chez Scheme machine type ]) - AC_ARG_ENABLE(target, [ --enable-target= cross-build for Chez Scheme machine type ]) - m4_include(../ac/portable_arg.m4) -@@ -81,7 +81,7 @@ show_explicitly_disabled "${enable_compressboot}" "Compressed boot files" - show_explicitly_enabled "${enable_xonx}" "Unix style" - m4_include(../ac/path_show.m4) - show_explicitly_set "${enable_racket}" "Racket" --show_explicitly_set "${enable_scheme}" "Chez Scheme build directory" -+show_explicitly_set "${enable_scheme}" "Chez Scheme for build" - show_explicitly_set "${enable_mach}" "machine type" - show_explicitly_set "${enable_target}" "cross-build machine type" - m4_include(../ac/portable_show.m4) -@@ -504,9 +504,21 @@ esac - - SCHEME_DIR=${srcdir}/../../ChezScheme - MAKE_BUILD_SCHEME=checkout -+USE_SCHEME_MODE="_built" -+MAKE_SCHEME_MODE="${T_CROSS_MODE}" - - if test "${enable_scheme}" != "" ; then -- CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ if test -d "${enable_scheme}" ; then -+ # Directory exists, so use it as a build directory -+ echo "Using supplied Scheme path as a build directory" -+ CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ else -+ # Directory does not exist, so assume it's an executable -+ echo "Using supplied Scheme path as an executable" -+ MAKE_SCHEME_MODE="${T_CROSS_MODE}-via-scheme" -+ MAKE_SCHEME_SCHEME="${enable_scheme}" -+ USE_SCHEME_MODE="_existing" -+ fi - fi - - if test "${enable_racket}" != "" ; then -@@ -821,6 +833,9 @@ AC_SUBST(DIFF_MACH) - AC_SUBST(CROSS_MODE) - AC_SUBST(T_CROSS_MODE) - AC_SUBST(TT_CROSS_MODE) -+AC_SUBST(MAKE_SCHEME_MODE) -+AC_SUBST(MAKE_SCHEME_SCHEME) -+AC_SUBST(USE_SCHEME_MODE) - AC_SUBST(SETUP_BOOT_MODE) - AC_SUBST(OSX) - AC_SUBST(NOT_OSX) --- -2.32.0 - diff --git a/gnu/packages/patches/racket-gui-tethered-launcher-backport.patch b/gnu/packages/patches/racket-gui-tethered-launcher-backport.patch deleted file mode 100644 index 1e018eaa79..0000000000 --- a/gnu/packages/patches/racket-gui-tethered-launcher-backport.patch +++ /dev/null @@ -1,26 +0,0 @@ -From aa792e707b1fbc5cc33691bfaee5828dc3fbebaa Mon Sep 17 00:00:00 2001 -From: Matthew Flatt -Date: Mon, 31 Jan 2022 15:31:22 -0700 -Subject: [PATCH] fix creation of tethered launchers - -Related to racket/racket#4133 - -(cherry picked from commit 563c68432f127729592f234ef30c31e92618b517) ---- - gui-lib/mred/installer.rkt | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/gui-lib/mred/installer.rkt b/gui-lib/mred/installer.rkt -index b1691472..9ef06c53 100644 ---- a/gui-lib/mred/installer.rkt -+++ b/gui-lib/mred/installer.rkt -@@ -72,4 +72,5 @@ - (list "-A" (path->string (find-system-path 'addon-dir))))) - - (define (config-flags) -- (list "-G" (path->string (find-config-dir)))) -+ (list "-X" (path->string (find-collects-dir)) -+ "-G" (path->string (find-config-dir)))) --- -2.32.0 - diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 471a11dd48..7d51707156 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -195,7 +195,7 @@ (define* (racket-vm-for-system #:optional racket-vm-cs racket-vm-bc)) -(define %racket-version "8.4") ; Remember to update chez-scheme-for-racket! +(define %racket-version "8.5") ; Remember to update chez-scheme-for-racket! (define %racket-commit (string-append "v" %racket-version)) (define %racket-origin @@ -205,11 +205,9 @@ (define %racket-origin (url "https://github.com/racket/racket") (commit %racket-commit))) (sha256 - (base32 "1vpl66gdgc8rnldmn8rmb7ar9l057jqjvgpfn29k57i3c5skr8s6")) + (base32 "0f9zyhdvbh4xsndrqjzl85j5ziz0rmqi676g9s1lw3h3skq2636h")) (file-name (git-file-name "racket" %racket-version)) - (patches (search-patches "racket-minimal-sh-via-rktio.patch" - ;; Remove by Racket 8.5: - "racket-enable-scheme-backport.patch")) + (patches (search-patches "racket-minimal-sh-via-rktio.patch")) (modules '((guix build utils))) (snippet #~(begin @@ -248,8 +246,10 @@ (define (racket-vm-common-configure-flags) ,(string-append "CPPFLAGS=-DGUIX_RKTIO_PATCH_BIN_SH=" #$(file-append bash-minimal "/bin/sh")) "--disable-strip" - ;; XXX: origtree layout is required by some other packages down the - ;; bootstrap chain. Remove these flags as soon as we can do without them. + ;; Using --enable-origtree lets us distinguish the VM from subsequent + ;; layers and produces a build with the shape expected by tools such as + ;; "distro-build" and "raco-cross". Removing these flags would require + ;; changes, especially to 'configure-layer.rkt' (defined below). "--enable-origtree" ,(string-append "--prefix=" #$output "/opt/racket-vm"))) @@ -589,7 +589,7 @@ (define-public racket racket-minimal ;; <-- TODO non-tethered layer (racket-vm-for-system) (simple-racket-origin - "2d" (base32 "1zzcz5qyjv7syi41vb8jkxjp1rqgj61zbsdrg0nlc4qy9qsafzgr") + "2d" (base32 "0fb5v6058ls08xw3zbmqyr2ym0psm119gl9ffgmhm9w8rs9i4dq7") '("2d" "2d-doc" "2d-lib")) (simple-racket-origin "algol60" (base32 "09kj6asypmc24n29w0izc9p0q8hpga2hpkchsypfwn5c8zpvihlx") @@ -622,22 +622,22 @@ (define-public racket "data" (base32 "10iabgrk9alaggvksnyb0hdq7f1p30pq6pq2bcakvhzpxwiv1f55") '("data" "data-doc" "data-enumerate-lib" "data-lib")) (simple-racket-origin - "datalog" (base32 "0n5j5gnqh7g31mvgx19ggl18hirzbvq2r189lbngmnrmbc7b73fp") + "datalog" (base32 "0nf6cy4djpyhfvgpa6yn72apbz9s83gp0qg95pzjd0az4v6qwq1s") '(("datalog" "."))) (simple-racket-origin "db" (base32 "1n02ja0yj3mjjhmz0yv04yfhyvrsznbljn8bjviyfxnm4xf9rcc5") '("db" "db-doc" "db-lib")) (simple-racket-origin - "deinprogramm" (base32 "1is6fapgv6rxfjz47nh6qf3kh7y7sjdinakaxqffi46gf1al8prd") + "deinprogramm" (base32 "0g8flr1qg3bcyhdinqhs4w7dyisaqyailbxrjgd2a7zlqmdyicfr") '("deinprogramm" "deinprogramm-signature")) (simple-racket-origin "distributed-places" (base32 "1dajpkj9balqcpv6cdk9hwjz592h1vq8rrx5vncariiac4vbdpa0") '("distributed-places" "distributed-places-doc" "distributed-places-lib")) (simple-racket-origin - "draw" (base32 "1xgjfbh70hqw67z88iqqajg98d04qwbzn6im2wj47rs28jxlm9ly") + "draw" (base32 "1fpk85rs2crd63bxnmwj2pysisd62pxcqaip01si67dv1ri8ff92") '("draw" "draw-doc" "draw-lib")) (simple-racket-origin - "drracket" (base32 "0m3l4an3nq2ycd1h287s1az2v2zprjbzd8if2x7d5r71vaj4i00c") + "drracket" (base32 "0dipnz92c63zxys9z1kl5215rm7arc35g9r8bs8ivp96p75mljnz") '("drracket" "drracket-plugin-lib" "drracket-tool" @@ -657,7 +657,7 @@ (define-public racket "errortrace" (base32 "14m7rhaxngj36070iw15am434hm438pfgmwjfsiqhsglz4pcxhip") '("errortrace" "errortrace-doc" "errortrace-lib")) (simple-racket-origin - "expeditor" (base32 "07djzxs6307l51mcsk3yr2g4g47ayxa3878g7sf5xhqdr4hd9vxf") + "expeditor" (base32 "0mjfwb4wzwsg5xj3k6cmik0va432n56rp5h7rxx1c2yy3prh1j7q") '("expeditor" "expeditor-doc" "expeditor-lib")) (simple-racket-origin "frtime" (base32 "0ydz2yn8vvv6z7brwlswcyx0f31a6y6d443i89rysfvd2xkhpfd5") @@ -670,25 +670,14 @@ (define-public racket (simple-racket-origin "games" (base32 "0kpn3izlx1ccd0pj0dnvmnrhny51b85xy418a7psj70lz8j8415d") '(("games" "."))) - (racket-packages-origin - "gui" (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/racket/gui") - (commit %racket-commit))) - (sha256 (base32 - "1x33jgrx3r32k7hgwr591z3xqv1m2r5nc4km2fnxv0ak2xa0j3gj")) - (patches - ;; remove in Racket 8.5 - ;; see https://github.com/racket/racket/issues/4133 - (search-patches "racket-gui-tethered-launcher-backport.patch")) - (file-name (git-file-name "racket-gui" %racket-version))) + (simple-racket-origin + "gui" (base32 "0hqryw3md67j5z4d6bv5qx75w8z1vjxfixabf2xq9bj6k43yzzmi") '("gui" "gui-doc" "gui-lib" "tex-table")) (simple-racket-origin "gui-pkg-manager" (base32 "1ji9448d723nklqvycwdswj0ni28sabrncag14f9mx47did5myb5") '("gui-pkg-manager-lib")) (simple-racket-origin - "htdp" (base32 "0r4ykybcpr10y2db9rlza9pr0xh58nd7ac389mjcxp8g386hgihl") + "htdp" (base32 "199qchdq6db6m2n4j861hiy4nxd6hg1qva16lhhdbfj274qmcplg") '("htdp" "htdp-doc" "htdp-lib")) (simple-racket-origin "html" (base32 "18n1jnjgzfknc8nv8dppi85nb8q08gqdwkg6hfjk08x0p00anx2x") @@ -756,7 +745,7 @@ (define-public racket "pconvert" (base32 "00czi0p399mmyrvxyrs5kniizpkqfxyz2ncxqi2jy79a7wk79pb1") '("pconvert-lib")) (simple-racket-origin - "pict" (base32 "0g1iwdr6qh1xb0crhj96830vjjnbds409xbpqn7j5sh0ksy6vr5x") + "pict" (base32 "0v7a3l77swsbh80mnb9rakdwgw7s66ji0mall7qcqfwyg1b4zmlv") '("pict" "pict-doc" "pict-lib")) (simple-racket-origin "pict-snip" (base32 "081nwiy4a0n4f7xws16hqbhf0j3kz5alizndi3nnyr3chm4kng6x") @@ -771,7 +760,7 @@ (define-public racket "planet" (base32 "0r2yqrzrmdjjyr14k6hhlzc5kzrcx3583m1s02mhrcmpfw0s85w9") '("planet" "planet-doc" "planet-lib")) (simple-racket-origin - "plot" (base32 "07kq32si34ybcwz8idxxcrzssg8diyrp1nfgkcj0mmvr45321zm7") + "plot" (base32 "04871pspbm0q3bz5896sa3jw2rp9i6jf0b5aivrxfp56vxxd2ybb") '("plot" "plot-compat" "plot-doc" "plot-gui-lib" "plot-lib")) (simple-racket-origin "preprocessor" (base32 "1p5aid58ifnjy4xl0ysh85cq39k25661v975jrpk182z3k5621mg") @@ -786,7 +775,7 @@ (define-public racket (url "https://github.com/Metaxal/quickscript") (commit %racket-commit))) (sha256 (base32 - "100g3yqhbjdq06b6l6d72ywsw29awgy8crqg33wj7h12xq07nzcr")) + "00sf5nw09aacd0l4a4cknnffvcs95p596im3blsdvfz5ck6jdwl8")) (file-name (git-file-name "Metaxal-quickscript" %racket-version))) '(("quickscript" "."))) (simple-racket-origin @@ -807,10 +796,10 @@ (define-public racket (git-file-name "jeapostrophe-racket-cheat" %racket-version))) '(("racket-cheat" "."))) (simple-racket-origin - "racklog" (base32 "1rgrvwy3kr9b9w5cghsffiv3ly00yfvvzr5xaaw83g1w7yin0mnb") + "racklog" (base32 "0fbq0fpfb3l6h7h772dvkmlzlk2dnq5f8296xx1qxhhwypibqzr9") '(("racklog" "."))) (simple-racket-origin - "rackunit" (base32 "057z31rja6h3nabh5b2xgwfrzmlm6h1cv1qcgf3xfy4g2q5dqn5p") + "rackunit" (base32 "0vfwcddzrgrdv5awjka7m0jzqhqvfc5wlkih83a670y96496a83n") '("rackunit" "rackunit-doc" "rackunit-gui" @@ -826,7 +815,7 @@ (define-public racket "realm" (base32 "0hxcgla08iack54j8v40fj51811chpy66ym2zq76zb52c7kzn0hi") '(("realm" "."))) (simple-racket-origin - "redex" (base32 "0vlgxbnbgrlihk1hh5zd6hsc4566ldi4q76f87z5vai54dxkwy2f") + "redex" (base32 "0a1fl5s80k3j3xh3lri8886ql443m7pmgv18y7whzlmsd7x8rdpr") '("redex" "redex-benchmark" "redex-doc" @@ -841,7 +830,7 @@ (define-public racket "scheme-lib" (base32 "0pcf0y8rp4qyjhaz5ww5sr5diq0wpcdfrrnask7zapyklzx1jx8x") '(("scheme-lib" "."))) (simple-racket-origin - "scribble" (base32 "0rgvnsykrxkah6s5fw1vyp9lxsb4z9w6hgwk5j6wbwjp2gsfczbm") + "scribble" (base32 "0fbb7xgz95y90247hfc1a19v7ry8m6blvv4y8irdgzhjvik70zb3") '("scribble" "scribble-doc" "scribble-html-lib" @@ -873,35 +862,24 @@ (define-public racket "snip" (base32 "01r9wc5xr3q3n4yyif6j0a37rgdzmpslxn05k13ksik73b3wj6hj") '("snip" "snip-lib")) (simple-racket-origin - "typed-racket" (base32 "1462kj9yswsxbnw71casylzlvhd7cxrml2v9j7rcsnn9hmrqx4vv") + "typed-racket" (base32 "05xlyjrx3m8xrrrw1xmfb1807qa5aqfl0zp9bdxwh2z7cfxaii09") '("source-syntax" "typed-racket" "typed-racket-compatibility" "typed-racket-doc" "typed-racket-lib" "typed-racket-more")) - (racket-packages-origin - "srfi" (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/racket/srfi") - ;; Includes an FSDG fix: return to %racket-commit in 8.5. - ;; See . - (commit "7243029b135741ce08ae30f877e2f49a2a460b22"))) - (sha256 (base32 - "0aqbcdv2dfc2xnk0h6zfi56p7bpwqji8s88qds3d03hhh9k28gvn")) - ;; Use the relevant version for srfi-doc and srfi-lib, - ;; since we're using a newer commit than the v8.4 tag. - (file-name (git-file-name "racket-srfi" "1.1"))) + (simple-racket-origin + "srfi" (base32 "0aqbcdv2dfc2xnk0h6zfi56p7bpwqji8s88qds3d03hhh9k28gvn") '("srfi" "srfi-doc" "srfi-lib" "srfi-lite-lib")) (simple-racket-origin - "string-constants" (base32 "1qizjq4n0hzdgdcjjpr94464gsywpsk2g9mnvwzqr7dcqbrsfvn6") + "string-constants" (base32 "1rjs0gyw9hsiglwxnimz272v9xj1gwjxrnzh4qbsxkvdaphvi38m") '("string-constants" "string-constants-doc" "string-constants-lib")) (simple-racket-origin "swindle" (base32 "164gdsphjzdl2vv7zxz7dfk9jwax8njpmim6sidm8qz8a8589y67") '(("swindle" "."))) (simple-racket-origin - "syntax-color" (base32 "1vf2fc3qvx8a1igi7swsg8gaqhx786sa0vqxd18xhbsidfgb5ywp") + "syntax-color" (base32 "1xf3rl8687c1nar4kkgkvyncwi0gl696rif0iqhffg730fk457gi") '("syntax-color" "syntax-color-doc" "syntax-color-lib")) (simple-racket-origin "trace" (base32 "070ihla5j796hdarn5wxdwn4xj0xnkm50shgh49jy994mribvhia") @@ -910,13 +888,13 @@ (define-public racket "unix-socket" (base32 "02dfwas5ynbpyz74w9kwb4wgb37y5wys7svrlmir8k0n9ph9vq0y") '("unix-socket" "unix-socket-doc" "unix-socket-lib")) (simple-racket-origin - "web-server" (base32 "1zgb6jl7zx6258ljs8f3lvryrq5n5zpd71dqzr698m92kw3x2pkn") + "web-server" (base32 "1g4x79ym3mgxv4f3z3z84j12355pf44pjlzlb7f0h6r0i7p0cbjd") '("web-server" "web-server-doc" "web-server-lib")) (simple-racket-origin "wxme" (base32 "1qp5gr9gqsakiq3alw6m4yyv5vw4i3hp4y4nhq8vl2nkjmirvn0b") '("wxme" "wxme-lib")) (simple-racket-origin - "xrepl" (base32 "12zjgsy5zqm3fck3ihg4a70wj56s2cnnjyb4jlfi5nnsfqyrnxg3") + "xrepl" (base32 "19svg0jfs656bld5ikqipz3a5szk5k02zq5fh43209qw527dnfbk") '("xrepl" "xrepl-doc" "xrepl-lib")))) (build-system gnu-build-system) (arguments -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 02:03:52 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 06:03:52 +0000 Received: from localhost ([127.0.0.1]:55696 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwUq-0000tB-2m for submit@debbugs.gnu.org; Mon, 09 May 2022 02:03:52 -0400 Received: from mail-vs1-f51.google.com ([209.85.217.51]:46018) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwUe-0000sT-WC for 55248@debbugs.gnu.org; Mon, 09 May 2022 02:03:41 -0400 Received: by mail-vs1-f51.google.com with SMTP id e19so12827197vsu.12 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 23:03:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tCGAYGqxnxsQJ22Fq13uH4OFi1mbolL+EAnq3xC2EgQ=; b=fXMeMILhGLxd1t9tiA5X5KEpQ3PJHlhYRmF5BfnDQW/qeY8FAfGyevGQe7ouWsocNE SdMXtf/UZkP/9JVbGnFvdjFL4d9azxV7vVGrV8eLCe+CVr1XTKp2NQNdjU7d5whZtF06 mEIBJubJOdMQJJJq5c9Zkxtuerc6BY1F7dxnpFdSEtfo4W3IFoyM8DVGOvxalxZPCPL6 9Oyhmb2yPdqhDLrnpDA+vm6SDcVeKVD6QCg2XjSG4IRxjvIY6CRT0Cr/Rayda04B+dpX AugHd20EPCR+LFe9gTcXy27ijkWtpdXs06bxHQhI/QVesgDPDuA4R293KMmp7QrdXAfn MUCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tCGAYGqxnxsQJ22Fq13uH4OFi1mbolL+EAnq3xC2EgQ=; b=4kUi41e4qhnYzUMg9bZHnoHksAEF+JpDusy///Lyl4PyP28kO69rYwgx5+KcZfcPRR XUro8BKFSCKyImlkp5xDOGrpEVuZpji++8srafZPBhX6xJK08oXHNjHiU/PcXxdMlfXm 0U8fz2TdnxnX7gacvk0ThX/G2RwDrFan7HZZ2rHGmqCO2VfBoo9HUMNzHnVWylHJiV69 IkXO2IVW6xslh/Z/VuXJhtPeOr5LNKZwa0pOjH9v8hgX8tMDvBXKqNKdYVLiYF4XYdk8 xT5XNUV3gD+ofZHG2Bs/QQU36lAqyKhvSVBrLEqU9O54VamNs4Eg84TpeAvR7lkLuyFU wZWg== X-Gm-Message-State: AOAM530AljUcpgXPHtHgN7JYUM1KW/XslRxZjrrgrjUGC5cS/lCjx5p9 rh1m+2+otPngydhH3yBVLaNcpDz7Wx/rzeCu X-Google-Smtp-Source: ABdhPJxXi9gZ9B6+RRblQ4P7RfXUFEoFH4GEPTWg0Ck9IGnyZqyP6zHTrqRO7JitutWz3AwzzT/FFw== X-Received: by 2002:a67:e153:0:b0:32d:15c:71d6 with SMTP id o19-20020a67e153000000b0032d015c71d6mr7282519vsl.36.1652076215459; Sun, 08 May 2022 23:03:35 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id o12-20020a056122178c00b0034e6f1fd05fsm1287823vkf.41.2022.05.08.23.03.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 23:03:35 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v3 2/9] gnu: racket: Fix out-of-source build. Date: Mon, 9 May 2022 02:02:43 -0400 Message-Id: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) * gnu/packages/racket.scm (racket-vm-cgc)[arguments]: Supply '#:out-of-source? #t'. Wrap 'install-license-files' to work around limitation. --- gnu/packages/racket.scm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 7d51707156..8438945ba0 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -276,8 +276,9 @@ (define-public racket-vm-cgc ;; main-distribution-test that aren't part of the main ;; distribution. #:tests? #f - ;; Upstream recommends #:out-of-source?, and it does - ;; help with debugging, but it confuses `install-license-files`. + ;; Upstream recommends #:out-of-source?, and it + ;; helps a lot with debugging. + #:out-of-source? #t #:modules '((ice-9 match) (ice-9 regex) (guix build gnu-build-system) @@ -314,7 +315,18 @@ (define-public racket-vm-cgc #f))))))) (add-before 'configure 'chdir (lambda _ - (chdir "racket/src")))))) + (chdir "racket/src"))) + (replace 'install-license-files + ;; The #:out-of-source? mode for install-license-files fails + ;; to find the srcdir: as a workaround, navigate there ourselves. + (let ((install-license-files + (assoc-ref %standard-phases 'install-license-files))) + (lambda args + (with-directory-excursion "../src" + (apply install-license-files + `(,@args + ;; if there are duplicate keywords, last is used + #:out-of-source? #f))))))))) (home-page "https://racket-lang.org") (synopsis "Old Racket implementation used for bootstrapping") (description "This variant of the Racket BC (``before Chez'' or -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 02:03:52 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 06:03:52 +0000 Received: from localhost ([127.0.0.1]:55698 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwUq-0000tK-KE for submit@debbugs.gnu.org; Mon, 09 May 2022 02:03:52 -0400 Received: from mail-ua1-f46.google.com ([209.85.222.46]:39599) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwUj-0000sZ-Aj for 55248@debbugs.gnu.org; Mon, 09 May 2022 02:03:45 -0400 Received: by mail-ua1-f46.google.com with SMTP id s1so5057439uac.6 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 23:03:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SoPwsTzFr3RsITacAPdKN4iMp4D84nS8dHvfGdkjL90=; b=Pcewm0s4td8P84djhRKg6GAbtAXF1igso0fiCYUlLou6j/KCjaZO/odZXzR1cyvPnb z0Kzm1HsSbztjW8JMGK2YbfWekskmFzBAUf2z0q7/dUtDv0MCVVuBq2jk9kiHPMu9Q2o QAPxQZ5OVf7r/Of7DKI918YdhMslGwSX4S0j0xfDclLBUGC5ohMr9q14MXlVHXkuENop s3i1VcULXCoHmc6faFdBFU4NPe6uv0YbBvfHmo2C3Q4zr+gJyS84eXGthbrGVtv/SugJ RNK/SU1W/Ce3LzXuZeIDj7VBTsBVVmQHyFpEVxiVkoLz7YPNQ1u/VWKpRL01RPII8fWI X9sA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=SoPwsTzFr3RsITacAPdKN4iMp4D84nS8dHvfGdkjL90=; b=fM9ff2hMsloNN+XJnVH3zrg3DUuh8oMTS4S/Z8oAiK6Tn/zZfxNT2Qn46f/Fm+Wwie EezZALJOVTrWPWvKU5hHrBBPhPG4MZs2sNvz15YVbVYO7NOM0/7eanUpCFrDzRnth51U R+ow62zbzrm+PvQwuvfPxH5jwrD5z5XX4Guyy1NaSAbPfcSuVBNi8lKI0hj/hGxe2j7/ AUihkTZtm7c1cf4AWDaoxJMoZ0xj3v0s+mdGzy7/dnM8izWRFKKBD3rsTB28t5o+ZBW6 lfUktz+Q5ZoI/0bvf1J4E/jrD6Et0hsczk6IX5QRmJTHwnOfBGdgmGcM41xiitCSUUiJ +HNw== X-Gm-Message-State: AOAM532mBEEZf6eBRcp+plVayQtYKrTkqS1jXSb5A2/pseA3yullA0GT Xk05yhjXGuIaWCAm5mbf1aZNuZYwNu+GPvjU X-Google-Smtp-Source: ABdhPJyOq5Q5w5iD2Q7ybQHvSAzGRuXGsEINVO7y8Jfiu0MReWw1qF1WIfOfh9RzhVlhb75QIl5efg== X-Received: by 2002:a05:6130:384:b0:365:7c50:696d with SMTP id az4-20020a056130038400b003657c50696dmr7687963uab.55.1652076219750; Sun, 08 May 2022 23:03:39 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id l8-20020a056102308800b0032d275e690csm993203vsb.12.2022.05.08.23.03.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 23:03:39 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v3 3/9] gnu: chez-scheme: Update to 9.5.8. Date: Mon, 9 May 2022 02:02:44 -0400 Message-Id: <7ad44a355df0dbfb80ba30d74f16cb1ad48d19e8.1652075689.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) * gnu/packages/chez.scm (chez-scheme): Update to 9.5.8. --- 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 a7f75a731a..34545b1f58 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -210,7 +210,7 @@ (define-public chez-scheme (name "chez-scheme") ;; The version should match `(scheme-version-number)`. ;; See s/cmacros.ss c. line 360. - (version "9.5.6") + (version "9.5.8") (source (origin (method git-fetch) (uri (git-reference @@ -218,7 +218,7 @@ (define-public chez-scheme (commit (string-append "v" version)))) (sha256 (base32 - "07s433hn1z2slfc026sidrpzxv3a8narcd40qqr1xrpb9012xdky")) + "0xchqq8cm0ka5wgpn18sjs0hh15rc3nb7xrjqbbc9al3asq0d7gc")) (file-name (git-file-name name version)) (snippet #~(begin (use-modules (guix build utils)) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 02:03:53 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 06:03:53 +0000 Received: from localhost ([127.0.0.1]:55700 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwUq-0000tR-Sy for submit@debbugs.gnu.org; Mon, 09 May 2022 02:03:53 -0400 Received: from mail-vs1-f41.google.com ([209.85.217.41]:36759) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwUn-0000sp-Dr for 55248@debbugs.gnu.org; Mon, 09 May 2022 02:03:49 -0400 Received: by mail-vs1-f41.google.com with SMTP id a127so12860713vsa.3 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 23:03:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KjaP2rvANmmMXNQFFrlb7FuHL+nHim3mKpSwJJ/N+ls=; b=BrMiAIOmBaE3D0Wry6gjtvJgqHTL9qxXm1nYIH+noISXZnxBx4COocgSxyck8OQhMQ QzYtmUARZO0p1ZjZIhFABaelLByjar1gGbGk3x8zmK3G1A6Op1z3sXkNOdQqokdBgeyI /uGcflyeFiobU+sMilXuraWvaJCCM8UZ/JUIswB1zaaUoBPgLZZ+mN0EIZAkBmhKEEGB 7O/1damZnQwgy4f7snIDm8uG1I0KWv5lbn+eTbzn3Qt3c71UYIocFWFhUFkCN7izNgBz xjqJoLenKW4o1Bi60lThxlWqPCa0o/hvDPB1Q60g6lD89h4pxvw3jfIbiFMadMEF3Qs1 d8SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KjaP2rvANmmMXNQFFrlb7FuHL+nHim3mKpSwJJ/N+ls=; b=BJ1wD+gP28TUxzVm14kLAiNbPlIBihqLkJPDwLTlXczT99eGcEHx2A+MmpaRQKQ7lI dMZpPNO2nnidOZBC89eF959oPtoWxV45/ncYtLZCyvIr3+3UCFkZPfeNZBIP/RRxAqRE 687rz9AfU0+G6RXewJ8SM4X7seSld0YhZyPm+CZTprW9feTe10S9LS1nSlvtWt623aiW mcRmk3hfJ9Ke7ePYEdPyfap3ok1Y9iJo0Y6rUYpBzYRBE7FOAGAoRAduY4MTQ5xwTPkF OD8Oc/QhwDvM1kKjHqVyIgLqw0qp6OJl7utMaEsHyo6i7KZsJbuyCU7arhHTepjtQ2Kc mveQ== X-Gm-Message-State: AOAM533RPyWiSn47sV37XBsOj3jImi3dTLm3QxE40HuI0Z4FGWqSTnMq TrvuS/tSiwZKny7yrNrRZvrV+zOuoeZgZq5i X-Google-Smtp-Source: ABdhPJzSrLEuCO5hPgUcIf04ugYyxgeNcLanZivmm4AWLD2VxPG+kH2KHRN+ZEJBy4a/tE2WU2WFOQ== X-Received: by 2002:a67:fe0b:0:b0:32c:ba4e:2b89 with SMTP id l11-20020a67fe0b000000b0032cba4e2b89mr6702306vsr.50.1652076223855; Sun, 08 May 2022 23:03:43 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id h17-20020ab06191000000b003626f894de9sm1558200uan.23.2022.05.08.23.03.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 23:03:43 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v3 4/9] gnu: chez-scheme: Refactor documentation phases. Date: Mon, 9 May 2022 02:02:45 -0400 Message-Id: <5fff69c601fd95ba51b3d6635dfa5865fdc714a4.1652075689.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) Patches merged in both upstream Chez Scheme and Racket's variant will soon let us replace the 'install-docs' phase with just 'make install-docs'. Separating the 'link-doc-pdfs' phase (which won't change) leaves us well-prepared for the transition, regardless of whether Chez Scheme 9.5.10 or Racket 8.6 is released first. * gnu/packages/chez.scm (chez-scheme)[arguments]: Split 'install-doc' phase into 'install-docs' (matching the future 'make' target) and 'link-doc-pdfs'. --- gnu/packages/chez.scm | 64 ++++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 34545b1f58..49051abd17 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -309,35 +309,43 @@ (define-public chez-scheme (string-append (dirname scheme.boot) "/chez-scheme.boot"))))))) ;; Building the documentation requires stex and a running scheme. - ;; FIXME: this is probably wrong for cross-compilation - (add-after 'install-symlink 'install-doc + (add-after 'install-symlink 'install-docs (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) - (match (assoc-ref outputs "doc") - (#f - (format #t "not installing docs~%")) - (doc-prefix - (let* ((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")) - (with-directory-excursion doc-dir - (symlink "release_notes/release_notes.pdf" - "release_notes.pdf") - (symlink "csug/csug9_5.pdf" - "csug.pdf")))))))))) + (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"))))))))) ;; Chez Scheme does not have a MIPS backend. ;; FIXME: Debian backports patches to get armhf working. ;; We should too. It is the Chez machine type arm32le -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 02:04:07 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 06:04:07 +0000 Received: from localhost ([127.0.0.1]:55703 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwUt-0000tk-7p for submit@debbugs.gnu.org; Mon, 09 May 2022 02:04:07 -0400 Received: from mail-vk1-f181.google.com ([209.85.221.181]:36453) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwUr-0000t1-Gw for 55248@debbugs.gnu.org; Mon, 09 May 2022 02:03:53 -0400 Received: by mail-vk1-f181.google.com with SMTP id h144so6417679vkh.3 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 23:03:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6MUQea/akqiJw65v5UB+PXZnpK7I+lS4QjauOZJ1fUE=; b=QUsTizjfpSBDGkqlJmE4F2jUS9QRvCjw94er3zNkmLI//viJxi/oTbThnmMRLx7fvM 4rb3SrpqrkiQ6tFxLXIFAOdKK7NZnKp4dd1On43E7CRwX4WQxgVmARMw0wF/ND0F70NW 96Dujv4el2loGhxd5lqZ9bV6365HCXx7GldGASKrElC1BxPyuyhkQFpvE7YUY0cs9t26 vaK0GdvBWdD36E7iJhlzQNUOY2EkdUbv8aKu41CXs0h0sPKjkj6DFQ8XZ5y3eaTnsIFm 7c6+G4sktUHyA8bbGlMbj5kUyE4m9Wx5rxpIyM+4Y+Ivs2vE/1C4+wfY8B1fEcsr4o2k d3fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6MUQea/akqiJw65v5UB+PXZnpK7I+lS4QjauOZJ1fUE=; b=nUkd/I/JC8/IjJPXpGHpfZkXD7atTxypdQz0vxtYGp0xu7wDb5ciyWKcDJM/KIPQnQ 28dTtgDeBsM+/srxMAY9u1Ou+WoXjyghsGJXs3CWnRCpK611ahR7NjWOs21r3PHtnEju 03Uj6hhuDCjAXE5sJ0hrq62GCpK5W4+NCaNqdLxN0B/NOCdUmsFNorgrSu3yD+9JAS/2 a1IK3Y8rFG5DXHCbioydwsyid1cQpAxNegBLgKNaFUz3zEtKvCt/q0C/um82/86AjyVY MP0EaEWSAAdQ+UjsYhr/EyyvuN0VaY1XyyOLOsIdzqhnXjzfKYM3pbgrlzybOiopH/eQ fJIw== X-Gm-Message-State: AOAM531z0x6DWTffwRiWtXObtT8+P1aaJscZ361qEfaio30bc4lNExaP sPTN30Dc5DYxYm+aN3spR1FMzwvXNb9MpHcC X-Google-Smtp-Source: ABdhPJwPL6oSTt1FYZTnANhl/r2umRjcw/CxffrBRCs+4v0qF2L2HhE466S5RZc1IAWex4CJ2p2rvg== X-Received: by 2002:a05:6122:18af:b0:34e:7a97:709 with SMTP id bi47-20020a05612218af00b0034e7a970709mr7305019vkb.24.1652076227960; Sun, 08 May 2022 23:03:47 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id d9-20020ab03789000000b003626f894df8sm1460351uav.38.2022.05.08.23.03.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 23:03:47 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v3 5/9] gnu: chez-scheme: Refactor configure phase and fix '--threads'. Date: Mon, 9 May 2022 02:02:46 -0400 Message-Id: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.3 (/) Move Chez-specific logic into '#:configure-flags' and a new 'configure-environment-variables' phase, leaving the 'configure' phase as just a variant of the one from 'gnu-build-system' (including support for '#:out-of-source?') that doesn't add implicit Autoconf-style flags. In the process, do the right thing for "--threads", rather than assuming the only nonthreaded platform is broken. * gnu/packages/chez.scm (chez-scheme)[arguments]: Set configure flags in '#:configure-flags' and separate 'configure-environment-variables' from the residual 'configure' phase. More closely follow 'gnu-build-system'. Use 'chez-upstream-features-for-system' for "--threads". (chez-scheme-for-racket)[arguments]<#:configure-flags>: Add "--threads" unconditionally. --- gnu/packages/chez.scm | 63 ++++++++++++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 49051abd17..785b6837c1 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -258,8 +258,18 @@ (define-public chez-scheme (ice-9 ftw) (ice-9 match)) #:test-target "test" - ;; TODO when we fix armhf, it may not support --threads - #:configure-flags #~'("--threads") + #: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 @@ -273,26 +283,35 @@ (define-public chez-scheme (search-input-directory (or native-inputs inputs) "lib/chez-scheme-bootfiles") "boot"))) - ;; NOTE: the custom Chez 'configure' script doesn't allow + ;; NOTE: The custom Chez 'configure' script doesn't allow ;; unrecognized flags, such as those automatically added - ;; by `gnu-build-system`. + ;; by `gnu-build-system`. This replacement phase uses only + ;; the explicitly provided `#:configure-flags`. (replace 'configure - (lambda* (#:key inputs (configure-flags '()) #:allow-other-keys) - ;; add flags which are always required: - (let ((flags (cons* (string-append "--installprefix=" #$output) - "ZLIB=-lz" - "LZ4=-llz4" - "--libkernel" - ;; Guix will do compress-man-pages, - ;; and letting Chez try causes an error - "--nogzip-man-pages" - configure-flags))) - (format #t "configure flags: ~s~%" flags) - ;; Some makefiles (for tests) don't seem to propagate CC - ;; properly, so we take it out of their hands: - (setenv "CC" #$(cc-for-target)) - (setenv "HOME" "/tmp") - (apply invoke "./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) + (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. @@ -385,7 +404,9 @@ (define-public chez-scheme-for-racket (arguments (substitute-keyword-arguments (package-arguments chez-scheme) ((#:configure-flags cfg-flags #~'()) - #~(cons "--disable-x11" #$cfg-flags)) + #~(cons* "--disable-x11" + "--threads" ;; ok to potentially duplicate + #$cfg-flags)) ((#:phases those-phases #~%standard-phases) #~(let* ((those-phases #$those-phases) (unpack (assoc-ref those-phases 'unpack))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 02:04:07 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 06:04:07 +0000 Received: from localhost ([127.0.0.1]:55713 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwV5-0000v5-Bs for submit@debbugs.gnu.org; Mon, 09 May 2022 02:04:07 -0400 Received: from mail-ua1-f49.google.com ([209.85.222.49]:35606) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwUv-0000tH-IA for 55248@debbugs.gnu.org; Mon, 09 May 2022 02:03:57 -0400 Received: by mail-ua1-f49.google.com with SMTP id x11so5062391uao.2 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 23:03:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wfcAH5XAdwVPDZfDmFM08aox4jzMZXPVfAuJLvSM8WE=; b=duK2JrSxOlmn3OX26POj1SIPfZ4DYdl6OGgJEbE2luX8FCLpb1ZAP608qy7kdzhb0+ WSre12PIcqaTi/1VXdhU2V63GFnKCPiIAgf7BvLMJVHPTLsw6OEdakKhAOmnhXr43BvP Eoxq8ctX5gh3d4EnVIMHfLYZ1GwMZU7cfHVszbnfQmhqWz5S8dMYT6ThWQRgrk1H9JvC nA8LdeC7L5VZAK63Dmc8RDF8N6VA2xSNSb47Bb0jSNiPuAxjnyuNDsww8kNaa2P9n9Bw 27RhV9i3XfIfFAKHun/92sjomMf9DXXb/56YzZJlpaF5wFv03JzmgHFxc+D1z4cAtfX4 0b4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wfcAH5XAdwVPDZfDmFM08aox4jzMZXPVfAuJLvSM8WE=; b=o6T2bpjrsH+yi+iBiumcsFxHTSySk3n4tDVW6mXLr4kpOY67i5cnJd6j4B8NWINP1J Ck/78OZ+BdZLMWCq+uXHuj8+ITPONOWzpzAUh/mt0q3tWSRk+xUZ6kLUtFH0CUbPMVRb +YIFTcMNo4ABpzQFpZvXUGxhlLcXYSImGP5xF1KiVG9IZLqU2hofCwaoip9U0146SD3Z RkSS5+Nxi3EJF0vWPFfuwbVJqTemwIQfONlzTupm03TdM9bYlQTq1SZlH2Q8crBeDkyT czWL1Sea8cc6qZpt31DIG4tpL+Bdjt+03u28JyOS1HAhed8FM+YgPJZPb9Jw6lcfYugh 1YYw== X-Gm-Message-State: AOAM533wrn5AqTPpT4p0BrEn3nfGCtGt3I9cmiHAJyHX69I1axutD5HO YC/8ldKsxr7H4EVj5FutqNepr+x8sVOAk0KC X-Google-Smtp-Source: ABdhPJyJ1bW2dbZc+UEX0S5ICHOCHFTqxc3gK80oWXe3mGngP1j6CYuCsjzVAXgaWp+YNdlas0XElA== X-Received: by 2002:ab0:15ed:0:b0:365:f250:7384 with SMTP id j42-20020ab015ed000000b00365f2507384mr2309472uae.44.1652076232068; Sun, 08 May 2022 23:03:52 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id e188-20020a1f1ec5000000b00352319fb500sm1273444vke.48.2022.05.08.23.03.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 23:03:51 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v3 6/9] gnu: stex: Get machine type dynamically. Date: Mon, 9 May 2022 02:02:47 -0400 Message-Id: <6521decd69c70fe38b056c2dbec10d1a1af0e570.1652075689.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) * gnu/packages/chez.scm (stex)[arguments]: Run 'scheme' to determine the machine type. --- gnu/packages/chez.scm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 785b6837c1..dd485d37e1 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -602,6 +602,10 @@ (define-public stex-bootstrap ("src" "lib/stex/") ("Mf-stex" "lib/stex/") ("Makefile.template" "lib/stex/")) + #:modules + '((guix build copy-build-system) + (guix build utils) + (ice-9 popen)) #:phases #~(modify-phases %standard-phases (add-before 'install 'patch-sources @@ -633,8 +637,14 @@ (define-public stex-bootstrap (define makefile (string-append (getcwd) "/Makefile")) (define machine - #$(and=> (nix-system->chez-machine) - chez-machine->threaded)) + (let ((pipe (open-pipe* OPEN_BOTH scheme "-q"))) + ;; try to not be wrong for cross-compilation + ;; (avoid #% reader abbreviation for Guile) + (write '(($primitive $target-machine)) pipe) + (force-output pipe) + (let ((sym (read pipe))) + (close-pipe pipe) + (symbol->string sym)))) (with-directory-excursion (search-input-directory outputs "/lib/stex") (invoke "make" -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 02:04:08 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 06:04:08 +0000 Received: from localhost ([127.0.0.1]:55715 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwV5-0000vC-Nc for submit@debbugs.gnu.org; Mon, 09 May 2022 02:04:08 -0400 Received: from mail-vs1-f43.google.com ([209.85.217.43]:37437) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwUy-0000sP-L6 for 55248@debbugs.gnu.org; Mon, 09 May 2022 02:04:01 -0400 Received: by mail-vs1-f43.google.com with SMTP id t85so12826513vst.4 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 23:04:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uOuOd+Ed4WqIDgrkI6KRUDCnHW8O63JUGYZZc826TOU=; b=fj8tFi4uUoyeC9vGbuI5g5sFZ+foExG5mMds8okV8D3YIQR82J1sI1KQ0efKpv1xnT W1P621ebG4zQK/HuTZpMXmlN/e3oegLdbNRs0zUW0y7pY2NKS4OVt4Lb7pvNaLlTB1P7 BMgW8E+dJu1v4GgvEnRnKnwhVd3Wq1jGwXWxnYpeVnX7ARgljctj4QtMn49Ek9GoE3LB /3ZHK0gfAH53ZzG6kv6+WQC0z9m5StwZQVRnOAGPeK5YBx5r1SwDoxkhW+YYgiqwbeeN gzUd/lJk1269fz3XXToN0SzKML00gJwWhWL1OjC9iVR+XKbaOaofkOTZWH4VTCx65NYc maqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=uOuOd+Ed4WqIDgrkI6KRUDCnHW8O63JUGYZZc826TOU=; b=4I1tijDRw1z6H+hhec5US3iROwx2vd+AIYmYegWX9iDZYN0mt4tUIhhJroVtshcoUi fo7kNpilnfxDZDGHgvWhYRgqT8Sb8SyD8Q1RHyEy+daMzNPrf0KAXySKqwLeMRzM1/mP E/duw9tM/8qFND+Ay9ZkFMwvJgayADzQ0gyNtJE2BQSeH7J+g+/8+Ho3QYHmhWwDB3GJ boWVMnDrX6kGpKInMmDGM8TAdGZHTX7Gf9zHWKNRfHHkV/9YOVclKAjcsLI6u4JQSbPE V7jSvStsXXKNLC6FRseF5+gmXWQrRLwnKfgH79f3MTW+5Ozmoe6i6Yedwvq7TaEZoSck egRg== X-Gm-Message-State: AOAM530ODFI6d/2nU/R+ukzenld26AkZDbwk2c/u9mY2M0hYvYXTGWFH bXAOdRGqKJaV0W/2ep8qULEfYcxeWKrfHDY7 X-Google-Smtp-Source: ABdhPJx8JEBE55d0vkzxR88SHUEg0hblWsHY+mivAGQbeUhmTiJeSztchNk9kHVcy+aCXwVqvVrqsQ== X-Received: by 2002:a67:ee90:0:b0:32a:6b7f:777c with SMTP id n16-20020a67ee90000000b0032a6b7f777cmr7149351vsp.83.1652076240268; Sun, 08 May 2022 23:04:00 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id o8-20020ab06048000000b003605c1e61dfsm1891481ual.0.2022.05.08.23.03.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 23:04:00 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v3 8/9] gnu: chez-scheme-for-racket: Fix supported systems. Date: Mon, 9 May 2022 02:02:49 -0400 Message-Id: <1328772b3ccb2d3909f8bca6fe14659e04434e3e.1652075689.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) This commit fixes the treatment of systems like "powerpc-w64-mingw32", where the combination of architecture and kernel is not supported, even though both are supported in other combinations. The build failure fixed in b8fc9169515ef1a6d6037c84e30ad308e5418b6f highlighted this problem: see also . The correct support status is specified by '%chez-features-table', which was added to improve 'chez-upstream-features-for-system': this commit uses it to fix the repair. Once the issues in are resolved, 'chez-scheme-for-racket' and 'racket-vm-cs' will be able to run even on systems for which native code generation is not supported. It's not clear what behavior would be useful from 'nix-system->chez-machine': since the current implementation is flawed and easy to misuse, we remove it for now, replacing the remaining uses with 'racket-cs-native-supported-system?'. * gnu/packages/chez.scm (nix-system->chez-machine): Remove it. (racket-cs-native-supported-system?): New variable. (chez-scheme-for-racket)[supported-systems]: Use it. * gnu/packages/racket.scm (racket-vm-for-system): Likewise. --- gnu/packages/chez.scm | 32 +++++++++++++++++--------------- gnu/packages/racket.scm | 7 +++++-- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 41f083e0ac..cae17580f8 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -48,7 +48,7 @@ (define-module (gnu packages chez) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:export (chez-scheme-for-system - nix-system->chez-machine + racket-cs-native-supported-system? unpack-nanopass+stex)) ;; Commentary: @@ -132,19 +132,6 @@ (define* (target-chez-os #:optional (system (or (%current-target-system) (else #f))) -(define* (nix-system->chez-machine #:optional - (system (or (%current-target-system) - (%current-system)))) - "Return the Chez Scheme machine type corresponding to the Nix system -identifier SYSTEM, or @code{#f} if the translation of SYSTEM to a Chez Scheme -machine type is undefined. - -It is unspecified whether the resulting string will name a threaded or a -nonthreaded machine type." - (let* ((chez-arch (target-chez-arch system)) - (chez-os (target-chez-os system))) - (and chez-arch chez-os (string-append chez-arch chez-os)))) - (define %chez-features-table ;; An alist of alists mapping: ;; os -> arch -> (or/c #f (listof symbol?)) @@ -233,6 +220,19 @@ (define* (chez-upstream-features-for-system #:optional (and=> (assoc-ref %chez-features-table chez-os) (cut assoc-ref <> chez-arch)))) +(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? +Otherwise, SYSTEM can use only the ``portable bytecode'' backends." + (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 <>)) + #t))) + ;; ;; Chez Scheme: ;; @@ -459,7 +459,9 @@ (define-public chez-scheme-for-racket (add-after 'unpack 'chdir (lambda args (chdir "racket/src/ChezScheme")))))))) - (supported-systems (filter nix-system->chez-machine + ;; TODO: How to build pbarch/pbchunks for other systems? + ;; See https://racket.discourse.group/t/950 + (supported-systems (filter racket-cs-native-supported-system? %supported-systems)) (home-page "https://github.com/racket/ChezScheme") ;; ^ This is downstream of https://github.com/racket/racket, diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 8438945ba0..f010cf3aa4 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -190,8 +190,11 @@ (define-module (gnu packages racket) (define* (racket-vm-for-system #:optional (system (or (%current-target-system) (%current-system)))) - "Return 'racket-vm-cs' if it supports SYSTEM; 'racket-vm-bc' otherwise." - (if (nix-system->chez-machine system) + "Return 'racket-vm-cs' if we are able to build it for SYSTEM; 'racket-vm-bc' +otherwise." + ;; Once we figure out the issues in https://racket.discourse.group/t/950, + ;; we can use 'racket-vm-cs' everywhere. + (if (racket-cs-native-supported-system? system) racket-vm-cs racket-vm-bc)) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 02:04:08 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 06:04:08 +0000 Received: from localhost ([127.0.0.1]:55717 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwV6-0000vK-6N for submit@debbugs.gnu.org; Mon, 09 May 2022 02:04:08 -0400 Received: from mail-ua1-f43.google.com ([209.85.222.43]:43991) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwUz-0000tm-Sv for 55248@debbugs.gnu.org; Mon, 09 May 2022 02:04:02 -0400 Received: by mail-ua1-f43.google.com with SMTP id 63so5053000uaw.10 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 23:04:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ASOED8ZT+HX4kIHd14wSy3Dx+MokroCBH0hfgSIxOpE=; b=P1UzdCF0+qKTA10QaTMLkm3/7TlCT4GG8YHlRg8BqMIGv+JtBW1hSkxOeRomI+d+h3 VzeQSN+S1sKIu7CilG6HcI1ZLB47ujrjG6W1zZdCpz6BVfHFozWEimYHe8c4sQQJGMls 8tQ6QUaYmyJteF+u05tTh8Bma7XpfftaGC1MbFCxrsxKseA7wjQer71LLjqMbF9CLt/6 lNY29VL9uPl+5e1HKEOcrJHqS+/eEd7/pSj/F38OeeWQ040IjqmX9fmRfNhD52/Wfi1p t5/KKXi/wpTsG2SRX+PzWaBgq9avA9ceMOKLvBGCOb8rSL2nj5+UNdoNw1gV7540Xs5x gipA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ASOED8ZT+HX4kIHd14wSy3Dx+MokroCBH0hfgSIxOpE=; b=6RXQpPRbQTTxeiY0bTCAiDeWZKETpgWhHc52mmTE4dmNrc0ioppukOW24KjBKtdEX8 p/ZGEPIkYl7rRfJZNr4C84i6c78rpSbeJ0QJmQP0xozQBHmMHZMUwzP8ATxliGRSIDuR 6R2EvZDWbkPNxKjO5wYPAju2XpSygIHs3UJLihux14NepRYztWOdxRnfDhYWlkJVICju CHnRGyaw3JCtkc67G26TVJDg9L//hULIADzjpm4VT2kYxuJil1n4iK6LK/P3m+/g4xm8 Q06M0QycGoJuZUwaVn+ozcULVW9o10m7eDriftHW4xOJMTr9J+/NjNSQ0xPYgvILk9l7 cSyg== X-Gm-Message-State: AOAM533jHbaVCmrq3seT3QAnI99Xf0TrLh7W/c9SVgsfFnQhUitDZaFJ wT21v0dH+S0szzOS0H4GDuM7tXpr0ISmNgbA X-Google-Smtp-Source: ABdhPJxKKkbsLrao4gxPKAqjEfaa+3Y+OA19omCLV5vGQKxoNiz0+qOrcYILh2CCWyBOaXoPv4kKpw== X-Received: by 2002:ab0:6f8f:0:b0:35d:5045:46c4 with SMTP id f15-20020ab06f8f000000b0035d504546c4mr6974629uav.116.1652076236176; Sun, 08 May 2022 23:03:56 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id t22-20020ac5c916000000b0034e6f1fd061sm1349130vkl.43.2022.05.08.23.03.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 23:03:55 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v3 7/9] gnu: chez-upstream-features-for-system: Improve implementation. Date: Mon, 9 May 2022 02:02:48 -0400 Message-Id: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) This commit is a follow-up to b8fc9169515ef1a6d6037c84e30ad308e5418b6f. While that commit fixed a breaking build, this one begins to address the faulty assumptions that lead to the failure: see also . In this commit, we reimplement 'chez-upstream-features-for-system' using the new '%chez-features-table', which explicitly specifies platform support for both 'chez-scheme' and 'chez-scheme-for-racket', rather than assuming a non-false result from 'nix-system->chez-machine' means that the system is supported. The remaining uses of 'nix-system->chez-machine' still make that incorrect assumption and must be repaired in a future commit. * gnu/packages/chez.scm (%nix-arch-to-chez-alist, %nix-os-to-chez-alist): Replace with ... (target-chez-arch, target-chez-os): ... these new variables. (nix-system->chez-machine): Rewrite using them. (%chez-features-table): New variable. (chez-upstream-features-for-system): Rewrite using it. (chez-scheme)[supported-systems]: Update armhf-linux comment. (chez-scheme-bootstrap-bootfiles)[supported-systems]: Use 'chez-upstream-features-for-system'. (chez-machine->nonthreaded, chez-machine->threaded, chez-machine->nix-system): Remove unused functions. --- gnu/packages/chez.scm | 234 ++++++++++++++++++++++++------------------ 1 file changed, 134 insertions(+), 100 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index dd485d37e1..41f083e0ac 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -49,8 +49,6 @@ (define-module (gnu packages chez) #:use-module (srfi srfi-26) #:export (chez-scheme-for-system nix-system->chez-machine - chez-machine->nonthreaded - chez-machine->threaded unpack-nanopass+stex)) ;; Commentary: @@ -82,68 +80,57 @@ (define* (chez-scheme-for-system #:optional chez-scheme chez-scheme-for-racket)) -(define (chez-machine->nonthreaded machine) - "Given a string MACHINE naming a Chez Scheme machine type, returns a string -naming the nonthreaded machine type for the same architecture and OS as -MACHINE. The returned string may share storage with MACHINE." - ;; Chez Scheme documentation consistently uses "nonthreaded" rather than - ;; e.g. "unthreaded" - (if (eqv? #\t (string-ref machine 0)) - (substring machine 1) - machine)) -(define (chez-machine->threaded machine) - "Like @code{chez-machine->nonthreaded}, but returns the threaded machine -type." - (if (eqv? #\t (string-ref machine 0)) - machine - (string-append "t" machine))) - -;; Based on the implementation from raco-cross-lib/private/cross/platform.rkt -;; in https://github.com/racket/raco-cross. -;; For supported platforms, refer to release_notes/release_notes.stex in the -;; upstream Chez Scheme repository or to racket/src/ChezScheme/README.md -;; in https://github.com/racket/racket. -(define %nix-arch-to-chez-alist - `(("x86_64" . "a6") - ("i386" . "i3") - ("aarch64" . "arm64") - ("armhf" . "arm32") ;; Chez supports ARM v6+ - ("ppc" . "ppc32"))) -(define %nix-os-to-chez-alist - `(("w64-mingw32" . "nt") - ("darwin" . "osx") - ("linux" . "le") - ("freebsd" . "fb") - ("openbsd" . "ob") - ("netbsd" . "nb") - ("solaris" . "s2"))) - -(define (chez-machine->nix-system machine) - "Return the Nix system type corresponding to the Chez Scheme machine type -MACHINE. If MACHINE is not a string representing a known machine type, an -exception is raised. This function does not distinguish between threaded and -nonthreaded variants of MACHINE. +(define* (target-chez-arch #:optional (system + (or (%current-target-system) + (%current-system)))) + "Return a string representing the architecture of SYSTEM as used in Chez +Scheme machine types, or '#f' if none is defined." + (cond + ((target-x86-64? system) + "a6") + ((target-x86-32? system) + "i3") + ((target-aarch64? system) + "arm64") + ((target-arm32? system) + "arm32") + ((target-ppc64le? system) + #f) + ((target-ppc32? system) + "ppc32") + ((target-riscv64? system) + #f) + (else + #f))) -Note that this function only handles Chez Scheme machine types in the -strictest sense, not other kinds of descriptors sometimes used in place of a -Chez Scheme machine type by Racket, such as @code{\"pb\"}, @code{#f}, or -@code{\"racket\"}. (When using such extensions, the Chez Scheme machine type -for the host system is often still relevant.)" - (let ((machine (chez-machine->nonthreaded machine))) - (let find-arch ((alist %nix-arch-to-chez-alist)) - (match alist - (((nix . chez) . alist) - (if (string-prefix? chez machine) - (string-append - nix "-" (let ((machine-os - (substring machine (string-length chez)))) - (let find-os ((alist %nix-os-to-chez-alist)) - (match alist - (((nix . chez) . alist) - (if (equal? chez machine-os) - nix - (find-os alist))))))) - (find-arch alist))))))) +(define* (target-chez-os #:optional (system (or (%current-target-system) + (%current-system)))) + "Return a string representing the operating system kernel of SYSTEM as used +in Chez Scheme machine types, or '#f' if none is defined." + ;; e.g. "le" includes both GNU/Linux and Android + (cond + ((target-linux? system) + "le") + ((target-hurd? system) + #f) + ((target-mingw? system) + "nt") + ;; missing (guix utils) predicates + ;; cf. https://github.com/NixOS/nixpkgs/blob/master/lib/systems/doubles.nix + ((string-suffix? "-darwin" system) + "osx") + ((string-suffix? "-freebsd" system) + "fb") + ((string-suffix? "-openbsd" system) + "ob") + ((string-suffix? "-netbsd" system) + "nb") + ;; Nix says "x86_64-solaris", but accommodate "-solaris2" + ((string-contains system "solaris") + "s2") + ;; unknown + (else + #f))) (define* (nix-system->chez-machine #:optional (system (or (%current-target-system) @@ -153,16 +140,81 @@ (define* (nix-system->chez-machine #:optional machine type is undefined. It is unspecified whether the resulting string will name a threaded or a -nonthreaded machine type: when the distinction is relevant, use -@code{chez-machine->nonthreaded} or @code{chez-machine->threaded} to adjust -the result." - (let* ((hyphen (string-index system #\-)) - (nix-arch (substring system 0 hyphen)) - (nix-os (substring system (+ 1 hyphen))) - (chez-arch (assoc-ref %nix-arch-to-chez-alist nix-arch)) - (chez-os (assoc-ref %nix-os-to-chez-alist nix-os))) +nonthreaded machine type." + (let* ((chez-arch (target-chez-arch system)) + (chez-os (target-chez-os system))) (and chez-arch chez-os (string-append chez-arch chez-os)))) +(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) + ("ppc32" threads)) + ;; 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 + ;; 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) @@ -172,20 +224,14 @@ (define* (chez-upstream-features-for-system #:optional does not support SYSTEM at all. If native threads are supported, the returned list will include -@code{'threads}. Other feature symbols may be added in the future." - (cond - ((not (nix-system->chez-machine system)) - #f) - ((target-aarch64? system) - #f) - ((target-arm32? system) - (and (target-linux? system) - '())) - ((target-ppc32? system) - (and (target-linux? system) - '(threads))) - (else - '(threads)))) +@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)))) ;; ;; Chez Scheme: @@ -365,14 +411,9 @@ (define-public chez-scheme ((pth) (symlink pth "csug.pdf"))))))))) - ;; Chez Scheme does not have a MIPS backend. - ;; FIXME: Debian backports patches to get armhf working. - ;; We should too. It is the Chez machine type arm32le - ;; (no threaded version upstream yet, though there is in - ;; Racket's fork), more specifically (per the release notes) ARMv6. (supported-systems (delete - "armhf-linux" ;; <-- should work, but reportedly broken + "armhf-linux" ;; XXX reportedly broken, needs checking (filter chez-upstream-features-for-system %supported-systems))) (home-page "https://cisco.github.io/ChezScheme/") @@ -471,16 +512,9 @@ (define-public chez-scheme-bootstrap-bootfiles (list #:install-plan #~`(("boot/" "lib/chez-scheme-bootfiles")))) (supported-systems - ;; Upstream only distributes pre-built bootfiles for - ;; arm32le and t?(i3|a6)(le|nt|osx) (filter (lambda (system) - (let ((machine (and=> (nix-system->chez-machine system) - chez-machine->nonthreaded))) - (or (equal? "arm32le" machine) - (and machine - (member (substring machine 0 2) '("i3" "a6")) - (or-map (cut string-suffix? <> machine) - '("le" "nt" "osx")))))) + (and=> (chez-upstream-features-for-system system) + (cut memq 'bootstrap-bootfiles <>))) %supported-systems)) (synopsis "Chez Scheme bootfiles (binary seed)") (description -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 02:04:11 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 06:04:11 +0000 Received: from localhost ([127.0.0.1]:55720 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwV8-0000ve-UJ for submit@debbugs.gnu.org; Mon, 09 May 2022 02:04:11 -0400 Received: from mail-vk1-f181.google.com ([209.85.221.181]:41959) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwV7-0000uz-MP for 55248@debbugs.gnu.org; Mon, 09 May 2022 02:04:09 -0400 Received: by mail-vk1-f181.google.com with SMTP id y27so6409265vkl.8 for <55248@debbugs.gnu.org>; Sun, 08 May 2022 23:04:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=sXAlWzX75Hlmhrp6qGDaKZes3YE2GAMM4FDqwjqZ+mw=; b=DAr97DAZFxKQ9sbiMh4wBnaBCrxoe2Zut8ZlOqSxV2145xfslSF/0m9csIMDYn/ID1 n4W5cztUqaK6mUm+tIFEAIFA2M2cGuJrzVCM21z4wUl5TUHGr96dcahLCnN3ItrLC3WB fLHJkNSZYTfE3mTOFFGkuIhetebhp9B4hAxtAZT4JaZ8LN0A8c38YfesUIhRWaIdPd7u PeQuG7jtl5kO6NNhMQ6lgJ/Tnx1IyuZF966tiLCoFLeMN9TVetNUVI5P9yDcfk5s9NGe hnl4fTlULIapmsu+1d8QMECy2mk1FPJeoVxiWgFX/5zukpU7MzfyxcD6M+GLDR4BX3gK wlHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=sXAlWzX75Hlmhrp6qGDaKZes3YE2GAMM4FDqwjqZ+mw=; b=mX/4LLzSw9gZBS4dzPpnGNktMPR4LyLEPaYGQd8742ts3TypwhYRBmSFPL7YAKw/Z1 zBFcqoSkQMbhcSbA5dYRiDKmh+9lUraIph7fQJ49aFNfbk/0GJIxvpk1qJsCYFP8vlxA aqBat/U99IJHl9+9ViBRwmUCqTB4RTcV+ro3F/SPNYjhtXglBwLxKZ4OrfykJlO/rPyx UvSsRYfxWKpj5kGT3MYJ2btSNa3v9NqnRTjl8aPrcJBtDpVBpC7gq0ySM7QYeOzQp8WN 5GmWo0ixVGrzVI97yw4wOzq9osDaEejzJCj6rUrazYwepToBONBRlQ9oFZTyQda1Sc2U VbhQ== X-Gm-Message-State: AOAM530VkqvWRzHALwbyQsIVJFH2GtFG+yrkionTQU3Q+GC64P3itOWP T94SoL3Kd4a8tvkxuMfpgzpL7BeuhFsXZQvs X-Google-Smtp-Source: ABdhPJxsPPT80rxWbBtrqCIU8XuW/ArJygjLh7dR95AdV8ub6TdVVSZTiNDEG+Evu+2YFFc5S/hbWw== X-Received: by 2002:a05:6122:1354:b0:351:bed1:611d with SMTP id f20-20020a056122135400b00351bed1611dmr7550617vkp.26.1652076244313; Sun, 08 May 2022 23:04:04 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id c15-20020a056122030f00b0034e98f6f2d8sm1344756vko.55.2022.05.08.23.04.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 May 2022 23:04:04 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v3 9/9] gnu: chez-scheme-for-system: Adjust for bytecode backend. Date: Mon, 9 May 2022 02:02:50 -0400 Message-Id: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Philip McGrath , 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: -0.4 (/) Change 'chez-scheme-for-system' to return 'chez-scheme-for-racket' in two cases when it previously returned 'chez-scheme': 1. When 'chez-scheme' is not distributed with bootstrap bootfiles, since we can only cross-compile 'chez-scheme' for those systems; and 2. When neither 'chez-scheme' nor 'chez-scheme-for-racket' supports native code generation, since we will be able to use the ``portable bytecode'' backends of 'chez-scheme-for-racket' as soon as the issues in are resolved. * gnu/packages/chez.scm (chez-scheme-for-racket): Change condition. --- gnu/packages/chez.scm | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index cae17580f8..7e6273f26a 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -69,14 +69,17 @@ (define-module (gnu packages chez) (define* (chez-scheme-for-system #:optional (system (or (%current-target-system) (%current-system)))) - "Return 'chez-scheme' unless only 'chez-scheme-for-racket' supports SYSTEM, -including support for native threads." - (if (or - ;; full support upstream - (and=> (chez-upstream-features-for-system system) - (cut memq 'threads <>)) - ;; no support anywhere - (not (nix-system->chez-machine 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)) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 02:21:36 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 06:21:36 +0000 Received: from localhost ([127.0.0.1]:55749 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwm0-0001LR-8q for submit@debbugs.gnu.org; Mon, 09 May 2022 02:21:36 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:55122) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwly-0001LJ-8K for 55248@debbugs.gnu.org; Mon, 09 May 2022 02:21:35 -0400 Received: from lprikler-laptop.ist.intra (gw.ist.tugraz.at [129.27.202.101]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4KxWK06jlFz3wCX; Mon, 9 May 2022 08:21:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1652077285; bh=SGGkjgvvpQ4UhyGbUBNFPDAdQbjfU1ZsVh+v9ix0y9k=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=b1LiZ7kbgWpzKg2HhxxxJJHdE2ORVosNLLWbMStpRwKMr8k2K40plbaORkhr8+gnN HXlNJh1WupixBxpxQhuq17IAtzg+exXlDWqv8WlcGLgbKmgmwKbQkJ+25kGVkT3gEA kQxY8xJX7SqfHjkwny2bKVOpznn+LQuluAJaz+M4= Message-ID: Subject: Re: [PATCH v3 7/9] gnu: chez-upstream-features-for-system: Improve implementation. From: Liliana Marie Prikler To: Philip McGrath , 55248@debbugs.gnu.org Date: Mon, 09 May 2022 08:21:24 +0200 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-TUG-Backscatter-control: waObeELIUl4ypBWmcn/8wQ X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.116 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 55248 Cc: Maxime Devos , 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 (---) Am Montag, dem 09.05.2022 um 02:02 -0400 schrieb Philip McGrath: > In this commit, we reimplement 'chez-upstream-features-for-system' > using the new '%chez-features-table', which explicitly specifies > platform support for both 'chez-scheme' and 'chez-scheme-for-racket', > rather than assuming a non-false result from 'nix-system->chez-machine' > means that the system is supported. > > The remaining uses of 'nix-system->chez-machine' still make that > incorrect assumption and must be repaired in a future commit. Do they really? As far as I can see, we have a bijection between supported nix systems and chez-machines, with the behaviour when looking up unsupported systems being undefined. This means that nix- system->chez-machine is well-formed in contexts outside of supported- system, e.g. also for the 6/9 patch. Cheers From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 02:34:50 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 06:34:50 +0000 Received: from localhost ([127.0.0.1]:55766 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwyo-0001g5-FU for submit@debbugs.gnu.org; Mon, 09 May 2022 02:34:50 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:50619) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnwym-0001fw-GY for 55248@debbugs.gnu.org; Mon, 09 May 2022 02:34:49 -0400 Received: from lprikler-laptop.ist.intra (gw.ist.tugraz.at [129.27.202.101]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4KxWcN4Yjrz1LWpD; Mon, 9 May 2022 08:34:44 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4KxWcN4Yjrz1LWpD DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1652078084; bh=GyQzCshUWKsVF1uJXbBODXCuw+ivBbNQwQBayP5MMOk=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=bEXO5xr983qzy18nyQQkSDuQOV53OcGhGAZsO22ecKRdJUFr2f91fjMz2xukQSek9 wLs3fO7VV26NC6jAPguDf1kcA+fyx5rAsFLzU1KmhOZl6J9UmJ/1KQs2TMA3DKdrl+ w+B/hylp2VVBtkMORvpFkaoHtSiq5hmz0reYf0bo= Message-ID: <1e7cf69aa12c81effaf2eb1ceff0997faca1cab2.camel@ist.tugraz.at> Subject: Re: [PATCH v3 8/9] gnu: chez-scheme-for-racket: Fix supported systems. From: Liliana Marie Prikler To: Philip McGrath , 55248@debbugs.gnu.org Date: Mon, 09 May 2022 08:34:44 +0200 In-Reply-To: <1328772b3ccb2d3909f8bca6fe14659e04434e3e.1652075689.git.philip@philipmcgrath.com> References: <1328772b3ccb2d3909f8bca6fe14659e04434e3e.1652075689.git.philip@philipmcgrath.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: waObeELIUl4ypBWmcn/8wQ X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 55248 Cc: Maxime Devos , 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 (---) Am Montag, dem 09.05.2022 um 02:02 -0400 schrieb Philip McGrath: > Once the issues in are > resolved, 'chez-scheme-for-racket' and 'racket-vm-cs' will be able to > run even on systems for which native code generation is not > supported. It's not clear what behavior would be useful from 'nix- > system->chez-machine': since the current implementation is flawed and > easy to misuse, we remove it for now, replacing the remaining uses > with 'racket-cs-native-supported-system?'. I think you're again making a wrong assumption here. nix-system->chez- scheme has purposes outside of solving supported-system. > +(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? > +Otherwise, SYSTEM can use only the ``portable bytecode'' backends." > +  (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 <>)) > +         #t))) I think this should rather be explicit in %chez-features-table. You can prefix features that only work inside racket with 'racket-. Then, this can be solved with memq just as with chez-scheme's supported- systems in 7/9. Cheers From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 03:20:38 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 07:20:39 +0000 Received: from localhost ([127.0.0.1]:55859 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnxh8-00052X-L4 for submit@debbugs.gnu.org; Mon, 09 May 2022 03:20:38 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:41395) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnxh7-00052K-2j for 55248@debbugs.gnu.org; Mon, 09 May 2022 03:20:37 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id E8B825C0150; Mon, 9 May 2022 03:20:31 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Mon, 09 May 2022 03:20:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:cc:content-transfer-encoding :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to; s=fm1; t=1652080831; x=1652167231; bh=aKAzZhYZTw OqbSoN5c7cAL3FldD8uqSYA5mgaK8wBQ8=; b=CzKK4y2dfSQ3+7koDKwvKAMFm4 fNYL2PKb5ys3oabs0ysTDDLZKPh5sCAyYOSJMKfC0uRO6gI/uG5Z3RNx9nNkaeWB BOSpyfCIhhmB9L4TNHmYHAs7huUL3dJLKNfouqUoryft6Iv0WAsTGxkAHXTL1gw+ /A0an8YE5Q5HDIM7aLGk+TLwTquRACkenlWuWVE1XUDxzwJrbA45ooDrfzwgm2zN 8FdvIO6VkkISK7Nnx6n5dSikNevl6sBgOEbNevdij3QNNMVeI9a8nyVTVukJ/VnW URgA456hbSXbyEnws4aeOluHNfXlAnLZ0x1tPZrx27R1LzDCB0glXF9ucGQA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1652080831; x=1652167231; bh=aKAzZhYZTwOqb SoN5c7cAL3FldD8uqSYA5mgaK8wBQ8=; b=VlmSwpaivRW7bPWaxR4NsaWBc6Fvi kd351SjUnfz6Lo5HV3kv86zlxilyjzWKpRMLdWRzepZ7qzln78jn2+cep7wxLy6a D2Ne9jP6KRj4ygaIb2QJnwpTltA3yKFZFwbaEhrsYCL7NAKMj/ss9Bn7x473hiCS zq+otBdqzaxuGlUtV/gqCkdVBx0ufoqnquBY292+xcUyYAmoRH1gfrtFoPcfMeHL aKK66v9XM4ANK6SRjxbH4YqapfuJMTANT4ZYzPyIwOrMzG3Ah8k8EwFT+fgOx9gZ zUhzOMmTin8DWbs+0pgqB4cQvvv4YHz8q2lJCiyuBna7rbjG9X/uDQckA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfeekgdduudelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpefrhhhi lhhiphcuofgtifhrrghthhcuoehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtg homheqnecuggftrfgrthhtvghrnhepgfdtgfethfevteehgeejfffgledtgfdvvdeuveel leegtdeilefhtdfgieeuieelnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpe hmrghilhhfrhhomhepphhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtohhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 9 May 2022 03:20:31 -0400 (EDT) Message-ID: <2c0151f9-f8b3-bd0e-7023-b6d29b9f6df1@philipmcgrath.com> Date: Mon, 9 May 2022 03:20:30 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: [PATCH v3 7/9] gnu: chez-upstream-features-for-system: Improve implementation. Content-Language: en-US To: Liliana Marie Prikler , 55248@debbugs.gnu.org References: 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: 55248 Cc: Maxime Devos , 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: -1.7 (-) Hi, On 5/9/22 02:21, Liliana Marie Prikler wrote: > Am Montag, dem 09.05.2022 um 02:02 -0400 schrieb Philip McGrath: >> In this commit, we reimplement 'chez-upstream-features-for-system' >> using the new '%chez-features-table', which explicitly specifies >> platform support for both 'chez-scheme' and 'chez-scheme-for-racket', >> rather than assuming a non-false result from 'nix-system->chez-machine' >> means that the system is supported. >> >> The remaining uses of 'nix-system->chez-machine' still make that >> incorrect assumption and must be repaired in a future commit. > Do they really? As far as I can see, we have a bijection between > supported nix systems and chez-machines, with the behaviour when > looking up unsupported systems being undefined. This means that nix- > system->chez-machine is well-formed in contexts outside of supported- > system, e.g. also for the 6/9 patch. > I think a bijection happens to exist at the moment, but only by accident. For example, while it isn't packaged for Guix, apparently aarch64-w64-mingw32 is a thing. Racket's Chez Scheme only added tarm64nt support as of this release, but had previously supported aarch64 with other kernels and the NT kernel with other architectures. If Guix had added that system before Racket's Chez did, 'nix-system->chez-machine' would have known how to write it as a Chez machine type, but nonetheless it wouldn't have had a native code backend. We explicitly list the systems for which Racket's Chez has a native code backend in '%chez-features-table', so I really think we should just use it, rather than try to be clever with 'nix-system->chez-machine'. -Philip From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 03:41:42 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 07:41:42 +0000 Received: from localhost ([127.0.0.1]:55895 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nny1W-0005a1-6Z for submit@debbugs.gnu.org; Mon, 09 May 2022 03:41:42 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:16896) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nny1T-0005Zp-Qm for 55248@debbugs.gnu.org; Mon, 09 May 2022 03:41:41 -0400 Received: from lprikler-laptop.ist.intra (gw.ist.tugraz.at [129.27.202.101]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4KxY5X1MH1z3wHl; Mon, 9 May 2022 09:41:36 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1652082096; bh=xW3m56I6hPfnzBWKBOwLWMLRpep7uKEw0d+j2lUrsBw=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=US8Z77pkOodLnmwqJvGXunA8jO2lBbKUp95+DRaiMnfLX9eJptdKLRK1VzgS2mMOh OTI5G4siite5GfMowzT91wZ0rKMJjh+w9k+EkLDOv5otvjRo+GLeVY1sr2er9MDFjt /IxqmhN/rcpBJ22OInMrVzRF2wOdxdXuMCJv2afo= Message-ID: Subject: Re: [PATCH v3 7/9] gnu: chez-upstream-features-for-system: Improve implementation. From: Liliana Marie Prikler To: Philip McGrath , 55248@debbugs.gnu.org Date: Mon, 09 May 2022 09:41:35 +0200 In-Reply-To: <2c0151f9-f8b3-bd0e-7023-b6d29b9f6df1@philipmcgrath.com> References: <2c0151f9-f8b3-bd0e-7023-b6d29b9f6df1@philipmcgrath.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: waObeELIUl4ypBWmcn/8wQ X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 55248 Cc: Maxime Devos , 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 (---) Am Montag, dem 09.05.2022 um 03:20 -0400 schrieb Philip McGrath: > On 5/9/22 02:21, Liliana Marie Prikler wrote: > > As far as I can see, we have a bijection between *supported nix > > systems* and chez-machines, with the *behaviour when looking up > > unsupported systems* being *undefined*. > I think a bijection happens to exist at the moment, but only by > accident.  Emphasis mine. Look more closely, it's a bijection + undefined, where undefined falls outside the realm of what should be reached outside of supported-system queries. In short, the specification for nix-system- >chez-machine is that for every *supported system* it returns the chez machine as a string. Otherwise, it may return a string or #f, we don't care. Thus, nix-system->chez-machine can serve as an upper bound for supported-system, but not as its implementation. > For example, while it isn't packaged for Guix, apparently > aarch64-w64-mingw32 is a thing. Racket's Chez Scheme only added > tarm64nt support as of this release, but had previously supported > aarch64 with other kernels and the NT kernel with other > architectures. If Guix had added that system before Racket's Chez > did, 'nix-system->chez-machine' would have known how to write it as > a Chez machine type, but nonetheless it wouldn't have had a native > code backend. That's irrelevant and not the purpose for having a conversion function. > We explicitly list the systems for which Racket's Chez has a native > code backend in '%chez-features-table', Do we really? > I think we should just use it, rather than try to be clever with > 'nix-system->chez-machine'. Well, that depends on what you're trying to use it for. Determining features? Sure. Determining system support? Okay. But that doesn't mean there's no valid use for nix-machine->chez-system – in particular I think you over-eagerly removed a valid one earlier. Cheers From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 03:55:24 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 07:55:24 +0000 Received: from localhost ([127.0.0.1]:55928 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnyEm-0005y0-Dy for submit@debbugs.gnu.org; Mon, 09 May 2022 03:55:24 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:37531) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnyEk-0005xn-T1 for 55248@debbugs.gnu.org; Mon, 09 May 2022 03:55:23 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 8A03B5C00F2; Mon, 9 May 2022 03:55:16 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Mon, 09 May 2022 03:55:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:cc:content-transfer-encoding :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to; s=fm1; t=1652082916; x=1652169316; bh=wWhPYsUrx8 167fGdENcpTKYudPSntvWJSuTgs6xpPwU=; b=ggL0uSCmt1uJ0+END/BWiX7Ial 1j3/lzbIF8vBOUffd9/1R84CjOrE36KJ4NI00R/YqA+rlSO31rCeHEAeV1GKlUM8 qvlZhXPffLtYa/f74scdRl0U93ytRnl4Y2VrKD28jWEAnIL2YQJDdVXDLnFUwvhX J66owe52/Oc8KXCNdVMvDAt7v/y7Fa8k1WtVNP6I4LevFTx37G2XSasVh9UWeGjE /ZJ7q7MRImqpUskNjO5yoCz6EsOMGdOcsajjCsGzFQ5dbPcTKJut8Voj7Nlk/RP8 jI5bI8KstxYXUG+Y97BdxtvVzIw/vQh7HPw+sUCFD1nPGiLTYYTR7C38Wd2Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1652082916; x=1652169316; bh=wWhPYsUrx8167 fGdENcpTKYudPSntvWJSuTgs6xpPwU=; b=h79UwJigD0XFnz0gP2o1ZrE/VsPNa GiY5UHpYUdLg2ii3hkE6JJpee0MV+z5FEfCY5vBPzftxjCl3vxEpqOInsMMBkXUe yhyVMFbEEkCQgXBQsoPYkDT0Zy7BXi2XljQDaqnPEeVju8xI7UB7r1PVzahfARJt nLjSII8yIzYziJKIJtbSi0pbLeDz7RkN+8MGwWudUmY6KMd1TbrWGblOqKto39wq Zj/0olYJrJ2eSHk33Bm+XXTVPujCqo5tTf1+pGFCgu0P0XZptxWD5wCgBt2CZOXi bTW/BZ37qtf6MTgtqLXJPMlDQlRHbXi89jDsSgNCY2D3OPjYqdwLaoijg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfeekgdduvdeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddtfeejnecuhfhrohhmpefrhhhi lhhiphcuofgtifhrrghthhcuoehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtg homheqnecuggftrfgrthhtvghrnhepueejgeeltdeugfdvgfdtjefhhedtledtieffvdet ieegieetfedvgefffeelgeetnecuffhomhgrihhnpeguihhstghouhhrshgvrdhgrhhouh hpnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphhh ihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtohhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 9 May 2022 03:55:16 -0400 (EDT) Message-ID: <7e8f385e-d2b5-6f38-fe4b-030748519574@philipmcgrath.com> Date: Mon, 9 May 2022 03:55:15 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: [PATCH v3 8/9] gnu: chez-scheme-for-racket: Fix supported systems. Content-Language: en-US To: Liliana Marie Prikler , 55248@debbugs.gnu.org References: <1328772b3ccb2d3909f8bca6fe14659e04434e3e.1652075689.git.philip@philipmcgrath.com> <1e7cf69aa12c81effaf2eb1ceff0997faca1cab2.camel@ist.tugraz.at> From: Philip McGrath In-Reply-To: <1e7cf69aa12c81effaf2eb1ceff0997faca1cab2.camel@ist.tugraz.at> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 55248 Cc: Maxime Devos , 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: -1.7 (-) Hi, On 5/9/22 02:34, Liliana Marie Prikler wrote: > Am Montag, dem 09.05.2022 um 02:02 -0400 schrieb Philip McGrath: >> Once the issues in are >> resolved, 'chez-scheme-for-racket' and 'racket-vm-cs' will be able to >> run even on systems for which native code generation is not >> supported. It's not clear what behavior would be useful from 'nix- >> system->chez-machine': since the current implementation is flawed and >> easy to misuse, we remove it for now, replacing the remaining uses >> with 'racket-cs-native-supported-system?'. > I think you're again making a wrong assumption here. nix-system->chez- > scheme has purposes outside of solving supported-system. > Concretely, there are no other uses in Guix. I do not know a robust, correct way to use 'nix-system->chez-machine'---certainly not without it growing many additional features, like maybe computing endianness for pbarch backends when we are able to build them. For example, if we continued using it as we did in 'stex', you couldn't build a package graph for nonthreaded Chez simply by applying a package transformation to remove '--threads' from its '#:configure-flags', because that would change the machine type without updating the uses of 'nix-system->chez-machine'. >> +(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? >> +Otherwise, SYSTEM can use only the ``portable bytecode'' backends." >> +  (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 <>)) >> +         #t))) > I think this should rather be explicit in %chez-features-table. You > can prefix features that only work inside racket with 'racket-. Then, > this can be solved with memq just as with chez-scheme's supported- > systems in 7/9. > I don't understand this. The presence of an entry in '%chez-features-table' explicitly means that 'chez-scheme-for-racket' can generate native code. The idea is that the "portable bytecode" backends should work, including thread support, on any system with a reasonably capable C compiler. There are no other "features" that vary among systems for 'chez-scheme-for-racket'. It doesn't rely on pre-built bootfiles for bootstrapping. Since the initial fork at the beginning of 2017, when support for new systems has been added, native threads have been supported immediately. Racket regularly merges all changes from upstream Chez (which has not added any supported systems during that time---not even the systems added already in Racket's variant). These conditions are documented in the comments on '%chez-features-table'. If they ever ceased to hold, it would mean that the relationship between 'chez-scheme-for-racket' and upstream 'chez-scheme' had changed significantly, and we would probably need to reevaluate more broadly which variant to use where. -Philip From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 05:36:37 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 09:36:37 +0000 Received: from localhost ([127.0.0.1]:56109 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnzoi-0002fL-Sq for submit@debbugs.gnu.org; Mon, 09 May 2022 05:36:37 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:33365) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnzoh-0002f2-43 for 55248@debbugs.gnu.org; Mon, 09 May 2022 05:36:36 -0400 Received: from lprikler-laptop.ist.intra (gw.ist.tugraz.at [129.27.202.101]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4Kxbdz6WgGz3xWR; Mon, 9 May 2022 11:36:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1652088984; bh=PZUhdxxv1iJMUk3R79p+D7+5WaPXQQ5pFAhrvFxLpEs=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=gjdqYU5usT8TZMOeL7WizDdTC3WxLBITd5g5RQDzZv+gQeMSszC7S5zedky48OzSL AK7b/qLIXicokk1tZcgFHt7X049V0JB/hhWKXAD9ILN1uVePSFI4Pl8ORQgkWA5D+E Qx9UKL6QDnSrYWW3YnCB1vhj2m+ZQ9MiEmSqqPdw= Message-ID: <77ff7763a7c87424e7195e9f8624dbdd2a26193c.camel@ist.tugraz.at> Subject: Re: [PATCH v3 8/9] gnu: chez-scheme-for-racket: Fix supported systems. From: Liliana Marie Prikler To: Philip McGrath , 55248@debbugs.gnu.org Date: Mon, 09 May 2022 11:36:23 +0200 In-Reply-To: <7e8f385e-d2b5-6f38-fe4b-030748519574@philipmcgrath.com> References: <1328772b3ccb2d3909f8bca6fe14659e04434e3e.1652075689.git.philip@philipmcgrath.com> <1e7cf69aa12c81effaf2eb1ceff0997faca1cab2.camel@ist.tugraz.at> <7e8f385e-d2b5-6f38-fe4b-030748519574@philipmcgrath.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: waObeELIUl4ypBWmcn/8wQ X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 55248 Cc: Maxime Devos , 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 (---) Hi, Am Montag, dem 09.05.2022 um 03:55 -0400 schrieb Philip McGrath: > Concretely, there are no other uses in Guix. > > I do not know a robust, correct way to use > 'nix-system->chez-machine'---certainly not without it growing many > additional features, like maybe computing endianness for pbarch > backends when we are able to build them. For example, if we continued > using it as we did in 'stex', you couldn't build a package graph for > nonthreaded Chez simply by applying a package transformation to > remove '--threads' from its '#:configure-flags', because that would > change the machine type without updating the uses of 'nix-system- > >chez-machine'. True, you would have to change the machine type, but I think I already noted that we might want to use this machine type as a distinguishing factor in packages built on top of chez (and later chez-build-system perhaps). You could do this the other way round by deriving flags from the given machine-type, e.g. stex for threaded chez machine is given -- threads, otherwise it's not. Since we have named symbols for these features, we could have a "package-with-chez-features" or similar transformer. Being able to specify this machine is a strength, not a weakness. > The presence of an entry in '%chez-features-table' explicitly means > that 'chez-scheme-for-racket' can generate native code. That is not explicit at all. There might be an explicit comment stating so somewhere, but in terms of actual code, it's super implicit. > The idea is that the "portable bytecode" backends should work, > including thread support, on any system with a reasonably capable C > compiler. The idea. In practice, what racket deems reasonably capable can change over time and might result in them dropping some architectures currently supported. What do you do then? > There are no other "features" that vary among systems for > 'chez-scheme-for-racket'. It doesn't rely on pre-built bootfiles for > bootstrapping. Since the initial fork at the beginning of 2017, when > support for new systems has been added, native threads have been > supported immediately. Racket regularly merges all changes from > upstream Chez (which has not added any supported systems during that > time---not even the systems added already in Racket's variant).  I'd still make "supported-by-racket" or however else you decide to name that feature an explicit part of that table rather than an implicit one, or use a separate "table" for platforms supported by racket. Note that none of the racket-vm packages appear to currently carry supported-systems, which seems dubious. > These conditions are documented in the comments on '%chez-features- > table'.  See above. Cheers From debbugs-submit-bounces@debbugs.gnu.org Mon May 09 05:44:14 2022 Received: (at 55248) by debbugs.gnu.org; 9 May 2022 09:44:14 +0000 Received: from localhost ([127.0.0.1]:56132 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnzw5-0002sa-UX for submit@debbugs.gnu.org; Mon, 09 May 2022 05:44:14 -0400 Received: from eggs.gnu.org ([209.51.188.92]:47148) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nnzw5-0002sH-8D for 55248@debbugs.gnu.org; Mon, 09 May 2022 05:44:13 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:47966) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nnzvy-0003XO-AW; Mon, 09 May 2022 05:44:06 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=+QKEC4qNqsnvchena1luV1/f5luEuVHzgWGAKpyyM80=; b=J99to1YAXkwT5vLvkh8z L/j2i3YdQYbmh5mH5e7ivCcgmHAWC4rJTOZVjJ0zgWW35ocEyjgHSgWvOxGKTSxO0rl3A8ji4lxc0 b4CboqG2WM71xk1hwgDRRcnA9PJkRLOaJYIgwAwt75U9x/UU8V6aClu6s1WajKdzvBULSP1jcQ7ZX Arw5eIpyQojTWBXV4JptOrL47zF7HNOwxLAwagtco1VX/iSwAuzxkC7c4tVsJHBf+soC76TDP4BaY esNBwsGriUJMABOP73brPCINqRx9CVcSxFz1HIl62eeLdfP1yG2j5ODDPtv8XfgjU7uJsvuWxHsPJ Kfe4YeDY/gYE4w==; Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=44916 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nnzvx-0008Db-Ks; Mon, 09 May 2022 05:44:05 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Philip McGrath Subject: Re: bug#55248: [PATCH 0/7] gnu: Update Racket to 8.5 and Chez Scheme to 9.5.8. References: Date: Mon, 09 May 2022 11:44:02 +0200 In-Reply-To: (Philip McGrath's message of "Mon, 9 May 2022 02:02:41 -0400") Message-ID: <878rrbrqfx.fsf_-_@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) 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: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Liliana Marie Prikler , 55248@debbugs.gnu.org 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 (---) Hi Philip, Philip McGrath skribis: > gnu: racket: Update to 8.5. > gnu: racket: Fix out-of-source build. > gnu: chez-scheme: Update to 9.5.8. > gnu: chez-scheme: Refactor documentation phases. > gnu: chez-scheme: Refactor configure phase and fix '--threads'. > gnu: stex: Get machine type dynamically. > gnu: chez-upstream-features-for-system: Improve implementation. > gnu: chez-scheme-for-racket: Fix supported systems. > gnu: chez-scheme-for-system: Adjust for bytecode backend. I applied the whole series (great work!), but stumbled upon this: --8<---------------cut here---------------start------------->8--- r:sha256 hash mismatch for /gnu/store/mipblqr29m18gvcmqp5j5s3aj5jknchy-rack= et-gui-8.5-checkout: expected hash: 0hqryw3md67j5z4d6bv5qx75w8z1vjxfixabf2xq9bj6k43yzzmi actual hash: 0r3ck4gxdhnzr1a1fi0f1i7gwfip7akq10qgcxza66pp57hnl0wx hash mismatch for store item '/gnu/store/mipblqr29m18gvcmqp5j5s3aj5jknchy-r= acket-gui-8.5-checkout' build of /gnu/store/xsbp1m2bh5wn4h0pxc7rr5pz4w88jfns-racket-gui-8.5-checkou= t.drv failed --8<---------------cut here---------------end--------------->8--- Could it be that the v8.5 tag on that repo was modified in place? You can resent just this one patch if you want, if it=E2=80=99s just a matt= er of changing the hash. Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Wed May 11 23:50:21 2022 Received: (at 55248) by debbugs.gnu.org; 12 May 2022 03:50:21 +0000 Received: from localhost ([127.0.0.1]:39095 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nozqG-0003Qp-VP for submit@debbugs.gnu.org; Wed, 11 May 2022 23:50:21 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:35813) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nozqE-0003QU-EW for 55248@debbugs.gnu.org; Wed, 11 May 2022 23:50:18 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 4CC485C018F; Wed, 11 May 2022 23:50:13 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Wed, 11 May 2022 23:50:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:cc:content-transfer-encoding :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to; s=fm1; t=1652327413; x=1652413813; bh=HaClU2/plS u4nhfhk1QctShLjl1uEGD+vmjb0G8kcK0=; b=Ly+NLaGTrrhTu3q1RX1pOWIRYe MYbFry+SDtIatDhroqya2RoMQS0WreQ+FsnVSI7bPqGL5vpUipPVehhcl35GoWXD nhCFKOv92TjFPPFuBkXi8Q6gN1w9nFoIzCQdFTVuoNkCgDDNtbV5U9HAMkWKnP1s 4WzLzOQ0Aqx8XyPfYNsx5R9tG5F8KXhg4ZHMseGAMN17L+KO9caEaD39TdrK8yzK Cgsl2OIkk5F/oB7SzARrCgIjBqR4E1hD5B3WB4U8pde6S9nxLrxJ3VD5HSrJJ9lg y7jxpqTMcTMmcryg2WIMuew6XrUcsukFJSl7HuBUlFz+WvKabP2Uk2CjE2LA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1652327413; x=1652413813; bh=HaClU2/plSu4n hfhk1QctShLjl1uEGD+vmjb0G8kcK0=; b=Jn5BHwyW241PKgShPt7JsYLAH/xS4 P72Bf4kFlMeQamsdTOvwTFlP1J+wOcc3suo/Im3eAFb969poVQGU/h2UQqyIoExd WR0pqsFQFlaonp4fSf8tBfWW+kvEuS6gd3H1uZXwonS+WsLD8TWnNQ36KwVsqopn TUmTboVmMhKbrgifBDSjG7Yp5+NTInI5e5E4G4x44Y0B8I3c2aQS7873sgymeZO0 XFazu0TJ1Xozr3H2mvYzqrpq4kL7/2uhbzsWW7KIiUEsUirC7WKMKSjn1VdDcN1L IBxHkUHDPiZZQDGEYO/omkMHpv1+xsnqOWtBcWHSU55yyOnlPQj1GU3mw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrgeeigdejhecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefkffggfgfuvfevfhfhjggtgfesthekredttdefjeenucfhrhhomheprfhhihhl ihhpucfotgfirhgrthhhuceophhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtoh hmqeenucggtffrrghtthgvrhhnpeetfedtkefgieejveegheejteehtdefhfefgeduieeh fefftdekleegieeigeelleenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmh grihhlfhhrohhmpehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 11 May 2022 23:50:12 -0400 (EDT) Message-ID: Date: Wed, 11 May 2022 23:50:11 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: bug#55248: [PATCH 0/7] gnu: Update Racket to 8.5 and Chez Scheme to 9.5.8. Content-Language: en-US To: =?UTF-8?Q?Ludovic_Court=c3=a8s?= References: <878rrbrqfx.fsf_-_@gnu.org> From: Philip McGrath In-Reply-To: <878rrbrqfx.fsf_-_@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , Maxime Devos , Liliana Marie Prikler , 55248@debbugs.gnu.org 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, On 5/9/22 05:44, Ludovic Courtès wrote: > Hi Philip, > > Philip McGrath skribis: > >> gnu: racket: Update to 8.5. >> gnu: racket: Fix out-of-source build. >> gnu: chez-scheme: Update to 9.5.8. >> gnu: chez-scheme: Refactor documentation phases. >> gnu: chez-scheme: Refactor configure phase and fix '--threads'. >> gnu: stex: Get machine type dynamically. >> gnu: chez-upstream-features-for-system: Improve implementation. >> gnu: chez-scheme-for-racket: Fix supported systems. >> gnu: chez-scheme-for-system: Adjust for bytecode backend. > > I applied the whole series (great work!), but stumbled upon this: > > --8<---------------cut here---------------start------------->8--- > r:sha256 hash mismatch for /gnu/store/mipblqr29m18gvcmqp5j5s3aj5jknchy-racket-gui-8.5-checkout: > expected hash: 0hqryw3md67j5z4d6bv5qx75w8z1vjxfixabf2xq9bj6k43yzzmi > actual hash: 0r3ck4gxdhnzr1a1fi0f1i7gwfip7akq10qgcxza66pp57hnl0wx > hash mismatch for store item '/gnu/store/mipblqr29m18gvcmqp5j5s3aj5jknchy-racket-gui-8.5-checkout' > build of /gnu/store/xsbp1m2bh5wn4h0pxc7rr5pz4w88jfns-racket-gui-8.5-checkout.drv failed > --8<---------------cut here---------------end--------------->8--- > > Could it be that the v8.5 tag on that repo was modified in place? > > You can resent just this one patch if you want, if it’s just a matter of > changing the hash. > Thanks for finding this! I will send the single revised patch in a separate email. The hashes for the "gui", "htdp", "redex", "typed-racket", "string-constants", and "syntax-color" origins needed to be updated. The v8.5 tags were not modified, but it looks like the v8.5 tags for those repositories included additional commits added after the first release candidate, which I had built early on. (The tag is created only when the release is actually released.) My best guess is that, somewhere in the process of amending this patch series, I had done a build with the commit and checksum for the first release candidate, but with the origin file name as though it were the 8.5 release. When I then changed these origins to point at the tag, I must not have changed the hashes, and I guess Guix saw that it already had store items with the correct name and hash and didn't try to download them again. I confirmed that this works by building on a computer where I hadn't built any of the earlier versions of this series (which took a little bit to set up). I'm not sure if there's a better way to prevent or check for this sort of problem in general. Just to be extra explicit, here's the diff between v3 and what I'm about to send as v4 1/9: > diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm > index 1f020f1276..c4183be210 100644 > --- a/gnu/packages/racket.scm > +++ b/gnu/packages/racket.scm > @@ -686,13 +686,13 @@ (define-public racket > "games" (base32 "0kpn3izlx1ccd0pj0dnvmnrhny51b85xy418a7psj70lz8j8415d") > '(("games" "."))) > (simple-racket-origin > - "gui" (base32 "0hqryw3md67j5z4d6bv5qx75w8z1vjxfixabf2xq9bj6k43yzzmi") > + "gui" (base32 "0r3ck4gxdhnzr1a1fi0f1i7gwfip7akq10qgcxza66pp57hnl0wx") > '("gui" "gui-doc" "gui-lib" "tex-table")) > (simple-racket-origin > "gui-pkg-manager" (base32 "1ji9448d723nklqvycwdswj0ni28sabrncag14f9mx47did5myb5") > '("gui-pkg-manager-lib")) > (simple-racket-origin > - "htdp" (base32 "199qchdq6db6m2n4j861hiy4nxd6hg1qva16lhhdbfj274qmcplg") > + "htdp" (base32 "19xqixrqbwdxph17w9jga19008j88harb5wgml4hpqj3x0apx9g3") > '("htdp" "htdp-doc" "htdp-lib")) > (simple-racket-origin > "html" (base32 "18n1jnjgzfknc8nv8dppi85nb8q08gqdwkg6hfjk08x0p00anx2x") > @@ -830,7 +830,7 @@ (define-public racket > "realm" (base32 "0hxcgla08iack54j8v40fj51811chpy66ym2zq76zb52c7kzn0hi") > '(("realm" "."))) > (simple-racket-origin > - "redex" (base32 "0a1fl5s80k3j3xh3lri8886ql443m7pmgv18y7whzlmsd7x8rdpr") > + "redex" (base32 "18rn8ddsqh1s7hdlb2cb9wxln63bz0wysjssaf9v92r712xnnv8i") > '("redex" > "redex-benchmark" > "redex-doc" > @@ -877,7 +877,7 @@ (define-public racket > "snip" (base32 "01r9wc5xr3q3n4yyif6j0a37rgdzmpslxn05k13ksik73b3wj6hj") > '("snip" "snip-lib")) > (simple-racket-origin > - "typed-racket" (base32 "05xlyjrx3m8xrrrw1xmfb1807qa5aqfl0zp9bdxwh2z7cfxaii09") > + "typed-racket" (base32 "0z6bagp6qiw0i3slhvq035y5hqgq664xw3bdlvdayad0bgbg0mdc") > '("source-syntax" > "typed-racket" > "typed-racket-compatibility" > @@ -888,13 +888,13 @@ (define-public racket > "srfi" (base32 "0aqbcdv2dfc2xnk0h6zfi56p7bpwqji8s88qds3d03hhh9k28gvn") > '("srfi" "srfi-doc" "srfi-lib" "srfi-lite-lib")) > (simple-racket-origin > - "string-constants" (base32 "1rjs0gyw9hsiglwxnimz272v9xj1gwjxrnzh4qbsxkvdaphvi38m") > + "string-constants" (base32 "0b1ji31pv6bjb0a2bh9sqp5abvf91gn2rai8r4c4nkar1fzfwfac") > '("string-constants" "string-constants-doc" "string-constants-lib")) > (simple-racket-origin > "swindle" (base32 "164gdsphjzdl2vv7zxz7dfk9jwax8njpmim6sidm8qz8a8589y67") > '(("swindle" "."))) > (simple-racket-origin > - "syntax-color" (base32 "1xf3rl8687c1nar4kkgkvyncwi0gl696rif0iqhffg730fk457gi") > + "syntax-color" (base32 "17lb2403ymz6sflw4vs3gsh2y7kgsf0gn8sncsxjhi16rpj3a9vm") > '("syntax-color" "syntax-color-doc" "syntax-color-lib")) > (simple-racket-origin > "trace" (base32 "070ihla5j796hdarn5wxdwn4xj0xnkm50shgh49jy994mribvhia") -Philip From debbugs-submit-bounces@debbugs.gnu.org Wed May 11 23:59:57 2022 Received: (at 55248) by debbugs.gnu.org; 12 May 2022 03:59:57 +0000 Received: from localhost ([127.0.0.1]:39112 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nozzP-0003hV-3Z for submit@debbugs.gnu.org; Wed, 11 May 2022 23:59:57 -0400 Received: from mail-qk1-f179.google.com ([209.85.222.179]:39839) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nozzK-0003hD-GI for 55248@debbugs.gnu.org; Wed, 11 May 2022 23:59:45 -0400 Received: by mail-qk1-f179.google.com with SMTP id b20so3792663qkc.6 for <55248@debbugs.gnu.org>; Wed, 11 May 2022 20:59:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=G+/PiFRY69fhPgYjq/kL47gsz50bjcXr4KRdcKN7VOY=; b=Swapu3Xf+W6S+tlPopBimYgtNQfAMOTwY8jEgpOi+sx+u62wPmO6PnDhqQSn1OtmJ/ eh2pfMloMnPnWvqUQMkLt4utKB9mutVnX8vHg1/YyDI0IbJwtqTZjX1CRAalDFB+dTPh itsS66NNyer063IQWhuYGhzCRIOcWSTHteUdOhg2JOE7PZp2VGLESbfagP9VUxDkNrDv dSB1rwqZogNKqutzCPbDmCsslS8tOWyyVPZR0a67bqlqOpefl1LT5FMsZecnlmeDRzhX AObiJbvoUEhYM723njKHlN++X9bEKqZnbXgVYsPjMZ7haJIN1chLxGjUlJCCiqFn/17r 8AfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=G+/PiFRY69fhPgYjq/kL47gsz50bjcXr4KRdcKN7VOY=; b=V3KjNlm9WY9eV2WDkbHCxBf1bmgLPXMr/x0WwBMkoiCaTZ1dZzEGJjuHqwN6e2fUsK e4m81QSR2VcCi/BgjE/TecIgmFN8+ow96eICOyU/qP7cJyh6+A6OSK5g+D5E1QjhBZcR vCfRu10jC7O3G05cVdixZBxB0+8R6Dts8AXpGGSnhQjWXG4NhQ2KtK6KURBRCACFtik8 5HvYfMSBAALgq/XHoVLTJik+O1/a6hc3dqCIXnUpppPMIOaj89a6RPpCeaXVCi93t7Qh PTv4V1pUk1cue4F6K7eP8Zwm6ngbuXHF0HC/zUKl8/+ARLDnfJncFxMAjxcjhyNYmm7t Ciyg== X-Gm-Message-State: AOAM5328PWwX36YXLuWB4Yb5Btv2XxywIDqThJOPlk2bD6+6sygy+i0j 3cjSwTs7JorbMkzAOOPBc1oMwqoEDkD9GPt2 X-Google-Smtp-Source: ABdhPJw1jy/yFmZBPtVlnD8FMGZjcM3bSXciuOQOiM46E+GExdrD7unKzaxzKDyGQbRX7YHYkcsVRA== X-Received: by 2002:a05:620a:4084:b0:6a0:4561:399f with SMTP id f4-20020a05620a408400b006a04561399fmr21233203qko.569.1652327976149; Wed, 11 May 2022 20:59:36 -0700 (PDT) Received: from localhost (c-73-125-98-51.hsd1.fl.comcast.net. [73.125.98.51]) by smtp.gmail.com with UTF8SMTPSA id 193-20020a3704ca000000b0069fc13ce251sm2252752qke.130.2022.05.11.20.59.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 11 May 2022 20:59:35 -0700 (PDT) From: Philip McGrath To: 55248@debbugs.gnu.org Subject: [PATCH v4 1/9] gnu: racket: Update to 8.5. Date: Wed, 11 May 2022 23:59:05 -0400 Message-Id: <13ccbbe30492ac15d3c8859e935dbfb5f54708b6.1652327601.git.philip@philipmcgrath.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: <878rrbrqfx.fsf_-_@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 55248 Cc: Liliana Marie Prikler , =?UTF-8?q?Ludovic=20Court=C3=A8s?= , Maxime Devos , Philip McGrath , 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: -0.4 (/) * gnu/packages/patches/racket-gui-tethered-launcher-backport.patch, gnu/packages/patches/racket-enable-scheme-backport.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. * gnu/packages/chez.scm (chez-scheme-for-racket): Update to 9.5.7.6. * gnu/packages/racket.scm (%racket-version): Update to 8.5. (%racket-origin)[patches]: Remove obsolete patches. (racket-vm-common-configure-flags): Correct comment. (racket)[inputs]<2d, datalog, deinprogramm, draw, drracket, expeditor, htdp, pict, plot, quickscript, racklog, rackunit, redex, scribble, typed-racket, string-constants, syntax-color, web-server, xrepl>: Update checksums. : Likewise, and remove obsolete backports. --- gnu/local.mk | 2 - gnu/packages/chez.scm | 4 +- .../racket-enable-scheme-backport.patch | 465 ------------------ ...acket-gui-tethered-launcher-backport.patch | 26 - gnu/packages/racket.scm | 82 ++- 5 files changed, 32 insertions(+), 547 deletions(-) delete mode 100644 gnu/packages/patches/racket-enable-scheme-backport.patch delete mode 100644 gnu/packages/patches/racket-gui-tethered-launcher-backport.patch diff --git a/gnu/local.mk b/gnu/local.mk index ed901a5ba8..d7788796cc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1757,8 +1757,6 @@ dist_patch_DATA = \ %D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ %D%/packages/patches/rtags-separate-rct.patch \ - %D%/packages/patches/racket-enable-scheme-backport.patch \ - %D%/packages/patches/racket-gui-tethered-launcher-backport.patch \ %D%/packages/patches/racket-minimal-sh-via-rktio.patch \ %D%/packages/patches/remake-impure-dirs.patch \ %D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \ diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index d47225dbe5..a7f75a731a 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 Philip McGrath +;;; Copyright © 2021, 2022 Philip McGrath ;;; ;;; This file is part of GNU Guix. ;;; @@ -361,7 +361,7 @@ (define-public chez-scheme-for-racket (package (inherit chez-scheme) (name "chez-scheme-for-racket") - (version "9.5.7.3") + (version "9.5.7.6") ;; The version should match `(scheme-fork-version-number)`. ;; See racket/src/ChezScheme/s/cmacros.ss c. line 360. ;; It will always be different than the upstream version! diff --git a/gnu/packages/patches/racket-enable-scheme-backport.patch b/gnu/packages/patches/racket-enable-scheme-backport.patch deleted file mode 100644 index 3a5a4a3d82..0000000000 --- a/gnu/packages/patches/racket-enable-scheme-backport.patch +++ /dev/null @@ -1,465 +0,0 @@ -From 8d7687842f099e3e7e60d3a83fed58b2c6a92863 Mon Sep 17 00:00:00 2001 -From: Matthew Flatt -Date: Sun, 6 Feb 2022 10:36:09 -0700 -Subject: [PATCH 1/2] Chez Scheme: adapt bootfile build for supplied `Scheme=` - -(cherry picked from commit fca1e02349664060e10278ca2ce6577a949bebf5) - -(Fixed conflicts by dropping pbchunks and pbarch changes.) ---- - racket/src/ChezScheme/configure | 15 ++++++++++++++- - racket/src/ChezScheme/s/Mf-base | 4 ++-- - racket/src/ChezScheme/s/Mf-cross | 4 +++- - 3 files changed, 19 insertions(+), 4 deletions(-) - -diff --git a/racket/src/ChezScheme/configure b/racket/src/ChezScheme/configure -index 4515ffc105..0098829091 100755 ---- a/racket/src/ChezScheme/configure -+++ b/racket/src/ChezScheme/configure -@@ -45,6 +45,7 @@ threads=yes - nothreads=no - temproot="" - help=no -+forceworkarea=no - gzipmanpages=yes - installowner="" - installgroup="" -@@ -205,6 +206,9 @@ while [ $# != 0 ] ; do - --pb) - pb=yes - ;; -+ --force) -+ forceworkarea=yes -+ ;; - --installprefix=*) - installprefix=`echo $1 | sed -e 's/^--installprefix=//'` - ;; -@@ -439,6 +443,7 @@ if [ "$help" = "yes" ]; then - echo " --toolprefix= prefix tool (compiler, linker, ...) names" - echo " --[no]gzip-man-pages compress manual pages ($gzipmanpages)" - echo " --workarea= build directory ($w)" -+ echo " --force configure even without boot files" - echo " CC= C compiler" - echo " CPPFLAGS= C preprocessor flags" - echo " CFLAGS= C compiler flags" -@@ -721,8 +726,16 @@ case "${flagsmuni}" in - ;; - esac - -+if [ "$w" = "$m" ] ; then -+ configuringin="" -+else -+ configuringin=" in $w" -+fi -+ - if [ -f boot/$m/scheme.boot -o -f "$srcdir"/boot/$m/scheme.boot ] ; then -- echo "Configuring for $m" -+ echo "Configuring for $m$configuringin" -+elif [ "$forceworkarea" = yes ] ; then -+ echo "Configuring for $m$configuringin despite missing boot files" - else - if [ "$m" = "" ] ; then - maybem="" -diff --git a/racket/src/ChezScheme/s/Mf-base b/racket/src/ChezScheme/s/Mf-base -index cc6178c973..1f4a967998 100644 ---- a/racket/src/ChezScheme/s/Mf-base -+++ b/racket/src/ChezScheme/s/Mf-base -@@ -94,7 +94,7 @@ endif - # that Scheme and SCHEMEHEAPDIRS are set by Mf-cross to point to the host Scheme - # implementation - Scheme = ../bin/$m/scheme${ExeSuffix} --export SCHEMEHEAPDIRS=../boot/%m -+export SCHEMEHEAPDIRS=../boot/$m - export CHEZSCHEMELIBDIRS=. - - # Define the libdirs separator character -@@ -691,4 +691,4 @@ reset-one: - - .PHONY: run - run: -- env SCHEMEHEAPDIRS=../boot/$m/ ../bin/$m/scheme $(ARGS) -+ env SCHEMEHEAPDIRS=${SCHEMEHEAPDIRS} ${Scheme} $(ARGS) -diff --git a/racket/src/ChezScheme/s/Mf-cross b/racket/src/ChezScheme/s/Mf-cross -index d796cbb459..397af59a28 100644 ---- a/racket/src/ChezScheme/s/Mf-cross -+++ b/racket/src/ChezScheme/s/Mf-cross -@@ -43,5 +43,7 @@ x$(xm).$(m): - $(MAKE) -f Mf-cross m=$(m) xm=$(xm) i=f o=3 d=0 xpatch - mv xpatch x$(xm).$(m) - -+ifneq ($(SCHEMEHEAPDIRS),:) - # Ensure that cross-compiling "nanopass.so" is rebuilt if the host compiler changed --nanopass.so: ${SCHEME} ${SCHEMEHEAPDIRS}/petite.boot ${SCHEMEHEAPDIRS}/scheme.boot -+nanopass.so: ${Scheme} ${SCHEMEHEAPDIRS}/petite.boot ${SCHEMEHEAPDIRS}/scheme.boot -+endif --- -2.32.0 - - -From 26c8e2c1d9b02ad85acef8bda40d92154cf0b699 Mon Sep 17 00:00:00 2001 -From: Matthew Flatt -Date: Sun, 6 Feb 2022 11:03:30 -0700 -Subject: [PATCH 2/2] configure: make `--enable-scheme` work with an executable - -When the same Chez Scheme version as used by Racket is already -available, then `--enable-scheme=...` can supply an executable. For -cross builds, `--enable-scheme=...` can still supply a build -directory, instead, as before. - -(cherry picked from commit 4f0e76855ce7e86107de495292a553469daf0b3f) ---- - racket/src/ChezScheme/makefiles/Makefile.in | 3 ++ - racket/src/README.txt | 30 +++++++++++--- - racket/src/configure | 8 +++- - racket/src/cs/README.txt | 6 ++- - racket/src/cs/c/Makefile.in | 44 ++++++++++++++++----- - racket/src/cs/c/configure | 24 +++++++++-- - racket/src/cs/c/configure.ac | 21 ++++++++-- - 7 files changed, 112 insertions(+), 24 deletions(-) - -diff --git a/racket/src/ChezScheme/makefiles/Makefile.in b/racket/src/ChezScheme/makefiles/Makefile.in -index c396efc851..3998ef9ccd 100644 ---- a/racket/src/ChezScheme/makefiles/Makefile.in -+++ b/racket/src/ChezScheme/makefiles/Makefile.in -@@ -59,6 +59,9 @@ reset: - %.boot: - (cd $(workarea) && $(MAKE) $*.boot) - -+auto.boot: -+ (cd $(workarea) && $(MAKE) $(defaultm).boot) -+ - # .bootquick to build boot files for - # with o=3 d=0 for the cross compiler, and only after - # building the kernel for the configured machine -diff --git a/racket/src/README.txt b/racket/src/README.txt -index 98647aebce..d77310b4a4 100644 ---- a/racket/src/README.txt -+++ b/racket/src/README.txt -@@ -354,6 +354,10 @@ variant of MinGW without "libdelayimp.a", get the implementation of - ======================================================================== - - Cross-compilation requires at least two flags to `configure`: -+`--host=OS` and either `--enable-racket=RACKET` or (for Racket CS) -+`--enable-scheme-SCHEME`. -+ -+More information: - - * `--host=OS`, where OS is something like `i386-gnu-linux` to - indicate the target platform. -@@ -374,11 +378,27 @@ Cross-compilation requires at least two flags to `configure`: - run `configure` again (with no arguments) in a "local" subdirectory - to create a build for the current platform. - --An additional flag is needed for building Racket CS, unless the flag --`--enable-racket=auto` is used: -- -- * `--enable-scheme=DIR`, where DIR is a path that has a "ChezScheme" -- directory where Chez Scheme is built for the host system. -+ * `--enable-scheme=SCHEME`, where SCHEME is a Chez Scheme executable -+ executable that runs on the build platform; the executable must be -+ the same version as used in Racket built for the target platform. -+ -+ Supplying `--enable-scheme=DIR` is also supported in cross-build -+ mode, where DIR is a path that has a "ChezScheme" directory where -+ Chez Scheme is built for the host system. -+ -+The `--enable-racket=RACKET` and `--enable-scheme=SCHEME` flags are -+allowed for non-cross builds, too: -+ -+ * For Racket CS, supplying either selects a Racket or Chez Scheme -+ implementation used to create boot files to the build platform. -+ Suppling Chez Scheme is a much more direct path, but when Racket is -+ supplied, its version does not have to match the version being -+ built. -+ -+ * For Racket BC, `--enable-racket=RACKET` selects a Racket for -+ prepare C sources to cooperate with garbage collection. Its version -+ needs to be close to the one being built, and potentially exactly -+ the same version. - - Some less commonly needed `configure` flags are for Racket BC: - -diff --git a/racket/src/configure b/racket/src/configure -index c9f3ba4419..1b53ec7ce2 100755 ---- a/racket/src/configure -+++ b/racket/src/configure -@@ -9,6 +9,7 @@ pb_dir="$dir/ChezScheme/boot/pb" - use_cs=maybe - use_bc=maybe - supplied_racket=no -+supplied_scheme=no - enable_boothelp= - - # We don't have to detect conflicts like `--enable-csdefault --enable-bcdefault`, -@@ -34,6 +35,9 @@ for arg in $*; do - --enable-racket=*) - supplied_racket=yes - ;; -+ --enable-scheme=*) -+ supplied_scheme=yes -+ ;; - --help | -h) - echo $0: - echo see --help-bc or --help-cs, since the Racket CS build and the -@@ -70,8 +74,8 @@ elif test "$use_cs" = "maybe" ; then - fi - - if test "$use_cs" = "yes" ; then -- if test $use_bc = no -a $supplied_racket = no -a ! -d "$pb_dir" ; then -- echo $0: must have $pb_dir or --enable-racket=... for --enable-csonly -+ if test $use_bc = no -a $supplied_racket = no -a $supplied_scheme = no -a ! -d "$pb_dir" ; then -+ echo $0: must have $pb_dir, --enable-racket=... or --enable-scheme=... for --enable-csonly - exit 1 - fi - -diff --git a/racket/src/cs/README.txt b/racket/src/cs/README.txt -index 2ece417b78..8e6fc57b74 100644 ---- a/racket/src/cs/README.txt -+++ b/racket/src/cs/README.txt -@@ -39,6 +39,11 @@ build: - installed in the "../ChezScheme/boot/pb" directory as described by - "../ChezScheme/BUILDING". - -+ Supplying `--enable-scheme=...` is also an option if you alerady -+ have the same version of Chez Scheme built on the current platform. -+ Another build will be created, anyway, but more quickly than -+ without Chez Scheme. -+ - * Racket is needed to generate the files in the "schemified" - directory from the sources in sibling directories like "../io". The - Racket version must be practically the same as the current Racket -@@ -48,7 +53,6 @@ build: - Unlike Chez Scheme boot files, the files generated in "schemified" - are human-readable and -editable Scheme code. That provides a way - out of bootstrapping black holes, even without BC. -- - - - ======================================================================== -diff --git a/racket/src/cs/c/Makefile.in b/racket/src/cs/c/Makefile.in -index 54a644a1d9..d73993f0fc 100644 ---- a/racket/src/cs/c/Makefile.in -+++ b/racket/src/cs/c/Makefile.in -@@ -12,7 +12,9 @@ CS_HOST_WORKAREA_PREFIX = @CS_HOST_WORKAREA_PREFIX@ - SCHEME_HOST_WORKAREA = $(CS_HOST_WORKAREA_PREFIX)$(SCHEME_WORKAREA) - SCHEME_BIN = $(SCHEME_HOST_WORKAREA)/$(MACH)/bin/$(MACH)/scheme - SCHEME_INC = $(SCHEME_HOST_WORKAREA)/$(MACH)/boot/$(MACH) --SCHEME = $(SCHEME_BIN) -B $(SCHEME_INC)/petite.boot -B $(SCHEME_INC)/scheme.boot -+SCHEME_built = $(SCHEME_BIN) -B $(SCHEME_INC)/petite.boot -B $(SCHEME_INC)/scheme.boot -+SCHEME_existing = @MAKE_SCHEME_SCHEME@ -+SCHEME = $(SCHEME@USE_SCHEME_MODE@) - - TARGET_MACH = @TARGET_MACH@ - SCHEME_TARGET_INC = $(SCHEME_WORKAREA)/$(TARGET_MACH)/boot/$(TARGET_MACH) -@@ -88,7 +90,7 @@ mainsrcdir = @srcdir@/../.. - @INCLUDEDEP@ @srcdir@/../../version/version.mak - - cs: -- $(MAKE) scheme@T_CROSS_MODE@ -+ $(MAKE) scheme@MAKE_SCHEME_MODE@ - $(MAKE) racket-so - cd rktio; $(MAKE) - $(MAKE) racketcs -@@ -121,9 +123,13 @@ racket-so: - - RACKET_SO_ENV = @CONFIGURE_RACKET_SO_COMPILE@ - -+TARGET_MACH_built = $(TARGET_MACH) -+TARGET_MACH_existing = xc-$(TARGET_MACH) -+XPATCH_FILE = $(SCHEME_WORKAREA)/$(TARGET_MACH@USE_SCHEME_MODE@)/s/xpatch -+ - CS_PROGS = SCHEME="$(SCHEME)" - CS_OPTS = COMPRESS_COMP=@COMPRESS_COMP@ @ENABLE_OR_DISABLE_WPO@ --CS_OPTScross = $(CS_OPTS) CSO=$(MACH) CROSS_COMP="--xpatch $(SCHEME_WORKAREA)/$(TARGET_MACH)/s/xpatch" -+CS_OPTScross = $(CS_OPTS) CSO=$(MACH) CROSS_COMP="--xpatch $(XPATCH_FILE)" - PASS_COMPILE_DEPS = EXTRA_COMPILE_DEPS="$(SCHEME_INC)/petite.boot $(SCHEME_INC)/scheme.boot" - - build-racket-so: -@@ -163,6 +169,15 @@ pb-bootquick: - cd $(SCHEME_WORKAREA) && $(MAKE) reset - $(SHELL) $(srcdir)/ready_boot.sh $(MACH) $(SCHEME_WORKAREA) - -+scheme-via-scheme: -+ $(MAKE) $(SCHEME_WORKAREA)/boot/$(MACH)/scheme.boot -+ $(MAKE) mach-make -+ -+$(SCHEME_WORKAREA)/boot/$(MACH)/scheme.boot: -+ mkdir -p $(SCHEME_WORKAREA) -+ $(MAKE) config-scheme CONFIG_SCHEME_MODE="$(CONFIG_SCHEME_MODE) --force" -+ cd $(SCHEME_WORKAREA) && $(MAKE) $(MACH).boot Scheme="$(SCHEME)" SCHEMEHEAPDIRS=: o=3 d=0 what=all -+ - mach-make: - $(MAKE) config-scheme - cd $(SCHEME_WORKAREA) && $(MAKE) -@@ -182,24 +197,33 @@ config-scheme: - - scheme-cross: - env MAKE_BOOT_FOR_CROSS=yes SCHEME_SRC="$(SCHEME_DIR)" SCHEME_WORKAREA=$(SCHEME_WORKAREA) MACH="$(TARGET_MACH)" $(BOOTSTRAP_RACKET) "$(SCHEME_DIR)"/rktboot/make-boot.rkt -+ $(MAKE) finish-scheme-cross -+ -+finish-scheme-cross: - $(SHELL) $(srcdir)/reset_boot.sh $(TARGET_MACH) $(SCHEME_WORKAREA) - cd $(SCHEME_WORKAREA) && "$(UP_SCHEME_DIR)"/configure @SCHEME_CROSS_CONFIG_ARGS@ $(SCHEME_CONFIG_VARS) - cd $(SCHEME_WORKAREA)/$(TARGET_MACH)/c && $(CHOST_HACK@T_CROSS_MODE@) $(MAKE) o=o cross=t -- $(MAKE) $(SCHEME_WORKAREA)/$(TARGET_MACH)/s/xpatch -+ $(MAKE) $(XPATCH_FILE) -+ -+scheme-cross-via-scheme: -+ $(MAKE) $(SCHEME_WORKAREA)/boot/$(TARGET_MACH)/scheme.boot MACH=$(TARGET_MACH) -+ $(MAKE) finish-scheme-cross - - # Rebuild patch file and cross "petite.boot" and "scheme.boot" when older --# than the build-host "scheme.boot" or when "make-boot.rkt" touchs dummy boot files --XPATCH_DEPS = $(SCHEME_HOST_WORKAREA)/$(MACH)/boot/$(MACH)/scheme.boot \ -- $(SCHEME_WORKAREA)/boot/$(TARGET_MACH)/scheme.boot -+# than the build- use as Racket for build; or "auto" to create -- --enable-scheme= use as host's build directory for cross -+ --enable-scheme= use as host build for cross - --enable-mach= use Chez Scheme machine type - --enable-target= cross-build for Chez Scheme machine type - --enable-portable prefer portable to host-specific -@@ -2867,7 +2870,7 @@ show_explicitly_enabled "${enable_xonx}" "Unix style" - show_explicitly_enabled "${enable_libzo}" 'Compiled ".zo" files moved to lib' - - show_explicitly_set "${enable_racket}" "Racket" --show_explicitly_set "${enable_scheme}" "Chez Scheme build directory" -+show_explicitly_set "${enable_scheme}" "Chez Scheme for build" - show_explicitly_set "${enable_mach}" "machine type" - show_explicitly_set "${enable_target}" "cross-build machine type" - show_explicitly_enabled "${enable_portable}" "portable" -@@ -4745,9 +4748,21 @@ esac - - SCHEME_DIR=${srcdir}/../../ChezScheme - MAKE_BUILD_SCHEME=checkout -+USE_SCHEME_MODE="_built" -+MAKE_SCHEME_MODE="${T_CROSS_MODE}" - - if test "${enable_scheme}" != "" ; then -- CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ if test -d "${enable_scheme}" ; then -+ # Directory exists, so use it as a build directory -+ echo "Using supplied Scheme path as a build directory" -+ CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ else -+ # Directory does not exist, so assume it's an executable -+ echo "Using supplied Scheme path as an executable" -+ MAKE_SCHEME_MODE="${T_CROSS_MODE}-via-scheme" -+ MAKE_SCHEME_SCHEME="${enable_scheme}" -+ USE_SCHEME_MODE="_existing" -+ fi - fi - - if test "${enable_racket}" != "" ; then -@@ -6012,6 +6027,9 @@ SCHEME_CROSS_CONFIG_ARGS="--machine=${TARGET_MACH} --disable-x11 ${cs_auto_flags - - - -+ -+ -+ - - - -diff --git a/racket/src/cs/c/configure.ac b/racket/src/cs/c/configure.ac -index 464ebe1760..aaee88156d 100644 ---- a/racket/src/cs/c/configure.ac -+++ b/racket/src/cs/c/configure.ac -@@ -23,7 +23,7 @@ AC_ARG_ENABLE(compressmore, [ --enable-compressmore compress compiled code ev - AC_ARG_ENABLE(compressboot, [ --enable-compressboot compress boot files]) - m4_include(../ac/path_arg.m4) - AC_ARG_ENABLE(racket, [ --enable-racket= use as Racket for build; or "auto" to create]) --AC_ARG_ENABLE(scheme, [ --enable-scheme= use as host's build directory for cross]) -+AC_ARG_ENABLE(scheme, [ --enable-scheme= use as host build for cross]) - AC_ARG_ENABLE(mach, [ --enable-mach= use Chez Scheme machine type ]) - AC_ARG_ENABLE(target, [ --enable-target= cross-build for Chez Scheme machine type ]) - m4_include(../ac/portable_arg.m4) -@@ -81,7 +81,7 @@ show_explicitly_disabled "${enable_compressboot}" "Compressed boot files" - show_explicitly_enabled "${enable_xonx}" "Unix style" - m4_include(../ac/path_show.m4) - show_explicitly_set "${enable_racket}" "Racket" --show_explicitly_set "${enable_scheme}" "Chez Scheme build directory" -+show_explicitly_set "${enable_scheme}" "Chez Scheme for build" - show_explicitly_set "${enable_mach}" "machine type" - show_explicitly_set "${enable_target}" "cross-build machine type" - m4_include(../ac/portable_show.m4) -@@ -504,9 +504,21 @@ esac - - SCHEME_DIR=${srcdir}/../../ChezScheme - MAKE_BUILD_SCHEME=checkout -+USE_SCHEME_MODE="_built" -+MAKE_SCHEME_MODE="${T_CROSS_MODE}" - - if test "${enable_scheme}" != "" ; then -- CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ if test -d "${enable_scheme}" ; then -+ # Directory exists, so use it as a build directory -+ echo "Using supplied Scheme path as a build directory" -+ CS_HOST_WORKAREA_PREFIX="${enable_scheme}/" -+ else -+ # Directory does not exist, so assume it's an executable -+ echo "Using supplied Scheme path as an executable" -+ MAKE_SCHEME_MODE="${T_CROSS_MODE}-via-scheme" -+ MAKE_SCHEME_SCHEME="${enable_scheme}" -+ USE_SCHEME_MODE="_existing" -+ fi - fi - - if test "${enable_racket}" != "" ; then -@@ -821,6 +833,9 @@ AC_SUBST(DIFF_MACH) - AC_SUBST(CROSS_MODE) - AC_SUBST(T_CROSS_MODE) - AC_SUBST(TT_CROSS_MODE) -+AC_SUBST(MAKE_SCHEME_MODE) -+AC_SUBST(MAKE_SCHEME_SCHEME) -+AC_SUBST(USE_SCHEME_MODE) - AC_SUBST(SETUP_BOOT_MODE) - AC_SUBST(OSX) - AC_SUBST(NOT_OSX) --- -2.32.0 - diff --git a/gnu/packages/patches/racket-gui-tethered-launcher-backport.patch b/gnu/packages/patches/racket-gui-tethered-launcher-backport.patch deleted file mode 100644 index 1e018eaa79..0000000000 --- a/gnu/packages/patches/racket-gui-tethered-launcher-backport.patch +++ /dev/null @@ -1,26 +0,0 @@ -From aa792e707b1fbc5cc33691bfaee5828dc3fbebaa Mon Sep 17 00:00:00 2001 -From: Matthew Flatt -Date: Mon, 31 Jan 2022 15:31:22 -0700 -Subject: [PATCH] fix creation of tethered launchers - -Related to racket/racket#4133 - -(cherry picked from commit 563c68432f127729592f234ef30c31e92618b517) ---- - gui-lib/mred/installer.rkt | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/gui-lib/mred/installer.rkt b/gui-lib/mred/installer.rkt -index b1691472..9ef06c53 100644 ---- a/gui-lib/mred/installer.rkt -+++ b/gui-lib/mred/installer.rkt -@@ -72,4 +72,5 @@ - (list "-A" (path->string (find-system-path 'addon-dir))))) - - (define (config-flags) -- (list "-G" (path->string (find-config-dir)))) -+ (list "-X" (path->string (find-collects-dir)) -+ "-G" (path->string (find-config-dir)))) --- -2.32.0 - diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 471a11dd48..c6f8ec20ba 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -195,7 +195,7 @@ (define* (racket-vm-for-system #:optional racket-vm-cs racket-vm-bc)) -(define %racket-version "8.4") ; Remember to update chez-scheme-for-racket! +(define %racket-version "8.5") ; Remember to update chez-scheme-for-racket! (define %racket-commit (string-append "v" %racket-version)) (define %racket-origin @@ -205,11 +205,9 @@ (define %racket-origin (url "https://github.com/racket/racket") (commit %racket-commit))) (sha256 - (base32 "1vpl66gdgc8rnldmn8rmb7ar9l057jqjvgpfn29k57i3c5skr8s6")) + (base32 "0f9zyhdvbh4xsndrqjzl85j5ziz0rmqi676g9s1lw3h3skq2636h")) (file-name (git-file-name "racket" %racket-version)) - (patches (search-patches "racket-minimal-sh-via-rktio.patch" - ;; Remove by Racket 8.5: - "racket-enable-scheme-backport.patch")) + (patches (search-patches "racket-minimal-sh-via-rktio.patch")) (modules '((guix build utils))) (snippet #~(begin @@ -248,8 +246,10 @@ (define (racket-vm-common-configure-flags) ,(string-append "CPPFLAGS=-DGUIX_RKTIO_PATCH_BIN_SH=" #$(file-append bash-minimal "/bin/sh")) "--disable-strip" - ;; XXX: origtree layout is required by some other packages down the - ;; bootstrap chain. Remove these flags as soon as we can do without them. + ;; Using --enable-origtree lets us distinguish the VM from subsequent + ;; layers and produces a build with the shape expected by tools such as + ;; "distro-build" and "raco-cross". Removing these flags would require + ;; changes, especially to 'configure-layer.rkt' (defined below). "--enable-origtree" ,(string-append "--prefix=" #$output "/opt/racket-vm"))) @@ -589,7 +589,7 @@ (define-public racket racket-minimal ;; <-- TODO non-tethered layer (racket-vm-for-system) (simple-racket-origin - "2d" (base32 "1zzcz5qyjv7syi41vb8jkxjp1rqgj61zbsdrg0nlc4qy9qsafzgr") + "2d" (base32 "0fb5v6058ls08xw3zbmqyr2ym0psm119gl9ffgmhm9w8rs9i4dq7") '("2d" "2d-doc" "2d-lib")) (simple-racket-origin "algol60" (base32 "09kj6asypmc24n29w0izc9p0q8hpga2hpkchsypfwn5c8zpvihlx") @@ -622,22 +622,22 @@ (define-public racket "data" (base32 "10iabgrk9alaggvksnyb0hdq7f1p30pq6pq2bcakvhzpxwiv1f55") '("data" "data-doc" "data-enumerate-lib" "data-lib")) (simple-racket-origin - "datalog" (base32 "0n5j5gnqh7g31mvgx19ggl18hirzbvq2r189lbngmnrmbc7b73fp") + "datalog" (base32 "0nf6cy4djpyhfvgpa6yn72apbz9s83gp0qg95pzjd0az4v6qwq1s") '(("datalog" "."))) (simple-racket-origin "db" (base32 "1n02ja0yj3mjjhmz0yv04yfhyvrsznbljn8bjviyfxnm4xf9rcc5") '("db" "db-doc" "db-lib")) (simple-racket-origin - "deinprogramm" (base32 "1is6fapgv6rxfjz47nh6qf3kh7y7sjdinakaxqffi46gf1al8prd") + "deinprogramm" (base32 "0g8flr1qg3bcyhdinqhs4w7dyisaqyailbxrjgd2a7zlqmdyicfr") '("deinprogramm" "deinprogramm-signature")) (simple-racket-origin "distributed-places" (base32 "1dajpkj9balqcpv6cdk9hwjz592h1vq8rrx5vncariiac4vbdpa0") '("distributed-places" "distributed-places-doc" "distributed-places-lib")) (simple-racket-origin - "draw" (base32 "1xgjfbh70hqw67z88iqqajg98d04qwbzn6im2wj47rs28jxlm9ly") + "draw" (base32 "1fpk85rs2crd63bxnmwj2pysisd62pxcqaip01si67dv1ri8ff92") '("draw" "draw-doc" "draw-lib")) (simple-racket-origin - "drracket" (base32 "0m3l4an3nq2ycd1h287s1az2v2zprjbzd8if2x7d5r71vaj4i00c") + "drracket" (base32 "0dipnz92c63zxys9z1kl5215rm7arc35g9r8bs8ivp96p75mljnz") '("drracket" "drracket-plugin-lib" "drracket-tool" @@ -657,7 +657,7 @@ (define-public racket "errortrace" (base32 "14m7rhaxngj36070iw15am434hm438pfgmwjfsiqhsglz4pcxhip") '("errortrace" "errortrace-doc" "errortrace-lib")) (simple-racket-origin - "expeditor" (base32 "07djzxs6307l51mcsk3yr2g4g47ayxa3878g7sf5xhqdr4hd9vxf") + "expeditor" (base32 "0mjfwb4wzwsg5xj3k6cmik0va432n56rp5h7rxx1c2yy3prh1j7q") '("expeditor" "expeditor-doc" "expeditor-lib")) (simple-racket-origin "frtime" (base32 "0ydz2yn8vvv6z7brwlswcyx0f31a6y6d443i89rysfvd2xkhpfd5") @@ -670,25 +670,14 @@ (define-public racket (simple-racket-origin "games" (base32 "0kpn3izlx1ccd0pj0dnvmnrhny51b85xy418a7psj70lz8j8415d") '(("games" "."))) - (racket-packages-origin - "gui" (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/racket/gui") - (commit %racket-commit))) - (sha256 (base32 - "1x33jgrx3r32k7hgwr591z3xqv1m2r5nc4km2fnxv0ak2xa0j3gj")) - (patches - ;; remove in Racket 8.5 - ;; see https://github.com/racket/racket/issues/4133 - (search-patches "racket-gui-tethered-launcher-backport.patch")) - (file-name (git-file-name "racket-gui" %racket-version))) + (simple-racket-origin + "gui" (base32 "0r3ck4gxdhnzr1a1fi0f1i7gwfip7akq10qgcxza66pp57hnl0wx") '("gui" "gui-doc" "gui-lib" "tex-table")) (simple-racket-origin "gui-pkg-manager" (base32 "1ji9448d723nklqvycwdswj0ni28sabrncag14f9mx47did5myb5") '("gui-pkg-manager-lib")) (simple-racket-origin - "htdp" (base32 "0r4ykybcpr10y2db9rlza9pr0xh58nd7ac389mjcxp8g386hgihl") + "htdp" (base32 "19xqixrqbwdxph17w9jga19008j88harb5wgml4hpqj3x0apx9g3") '("htdp" "htdp-doc" "htdp-lib")) (simple-racket-origin "html" (base32 "18n1jnjgzfknc8nv8dppi85nb8q08gqdwkg6hfjk08x0p00anx2x") @@ -756,7 +745,7 @@ (define-public racket "pconvert" (base32 "00czi0p399mmyrvxyrs5kniizpkqfxyz2ncxqi2jy79a7wk79pb1") '("pconvert-lib")) (simple-racket-origin - "pict" (base32 "0g1iwdr6qh1xb0crhj96830vjjnbds409xbpqn7j5sh0ksy6vr5x") + "pict" (base32 "0v7a3l77swsbh80mnb9rakdwgw7s66ji0mall7qcqfwyg1b4zmlv") '("pict" "pict-doc" "pict-lib")) (simple-racket-origin "pict-snip" (base32 "081nwiy4a0n4f7xws16hqbhf0j3kz5alizndi3nnyr3chm4kng6x") @@ -771,7 +760,7 @@ (define-public racket "planet" (base32 "0r2yqrzrmdjjyr14k6hhlzc5kzrcx3583m1s02mhrcmpfw0s85w9") '("planet" "planet-doc" "planet-lib")) (simple-racket-origin - "plot" (base32 "07kq32si34ybcwz8idxxcrzssg8diyrp1nfgkcj0mmvr45321zm7") + "plot" (base32 "04871pspbm0q3bz5896sa3jw2rp9i6jf0b5aivrxfp56vxxd2ybb") '("plot" "plot-compat" "plot-doc" "plot-gui-lib" "plot-lib")) (simple-racket-origin "preprocessor" (base32 "1p5aid58ifnjy4xl0ysh85cq39k25661v975jrpk182z3k5621mg") @@ -786,7 +775,7 @@ (define-public racket (url "https://github.com/Metaxal/quickscript") (commit %racket-commit))) (sha256 (base32 - "100g3yqhbjdq06b6l6d72ywsw29awgy8crqg33wj7h12xq07nzcr")) + "00sf5nw09aacd0l4a4cknnffvcs95p596im3blsdvfz5ck6jdwl8")) (file-name (git-file-name "Metaxal-quickscript" %racket-version))) '(("quickscript" "."))) (simple-racket-origin @@ -807,10 +796,10 @@ (define-public racket (git-file-name "jeapostrophe-racket-cheat" %racket-version))) '(("racket-cheat" "."))) (simple-racket-origin - "racklog" (base32 "1rgrvwy3kr9b9w5cghsffiv3ly00yfvvzr5xaaw83g1w7yin0mnb") + "racklog" (base32 "0fbq0fpfb3l6h7h772dvkmlzlk2dnq5f8296xx1qxhhwypibqzr9") '(("racklog" "."))) (simple-racket-origin - "rackunit" (base32 "057z31rja6h3nabh5b2xgwfrzmlm6h1cv1qcgf3xfy4g2q5dqn5p") + "rackunit" (base32 "0vfwcddzrgrdv5awjka7m0jzqhqvfc5wlkih83a670y96496a83n") '("rackunit" "rackunit-doc" "rackunit-gui" @@ -826,7 +815,7 @@ (define-public racket "realm" (base32 "0hxcgla08iack54j8v40fj51811chpy66ym2zq76zb52c7kzn0hi") '(("realm" "."))) (simple-racket-origin - "redex" (base32 "0vlgxbnbgrlihk1hh5zd6hsc4566ldi4q76f87z5vai54dxkwy2f") + "redex" (base32 "18rn8ddsqh1s7hdlb2cb9wxln63bz0wysjssaf9v92r712xnnv8i") '("redex" "redex-benchmark" "redex-doc" @@ -841,7 +830,7 @@ (define-public racket "scheme-lib" (base32 "0pcf0y8rp4qyjhaz5ww5sr5diq0wpcdfrrnask7zapyklzx1jx8x") '(("scheme-lib" "."))) (simple-racket-origin - "scribble" (base32 "0rgvnsykrxkah6s5fw1vyp9lxsb4z9w6hgwk5j6wbwjp2gsfczbm") + "scribble" (base32 "0fbb7xgz95y90247hfc1a19v7ry8m6blvv4y8irdgzhjvik70zb3") '("scribble" "scribble-doc" "scribble-html-lib" @@ -873,35 +862,24 @@ (define-public racket "snip" (base32 "01r9wc5xr3q3n4yyif6j0a37rgdzmpslxn05k13ksik73b3wj6hj") '("snip" "snip-lib")) (simple-racket-origin - "typed-racket" (base32 "1462kj9yswsxbnw71casylzlvhd7cxrml2v9j7rcsnn9hmrqx4vv") + "typed-racket" (base32 "0z6bagp6qiw0i3slhvq035y5hqgq664xw3bdlvdayad0bgbg0mdc") '("source-syntax" "typed-racket" "typed-racket-compatibility" "typed-racket-doc" "typed-racket-lib" "typed-racket-more")) - (racket-packages-origin - "srfi" (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/racket/srfi") - ;; Includes an FSDG fix: return to %racket-commit in 8.5. - ;; See . - (commit "7243029b135741ce08ae30f877e2f49a2a460b22"))) - (sha256 (base32 - "0aqbcdv2dfc2xnk0h6zfi56p7bpwqji8s88qds3d03hhh9k28gvn")) - ;; Use the relevant version for srfi-doc and srfi-lib, - ;; since we're using a newer commit than the v8.4 tag. - (file-name (git-file-name "racket-srfi" "1.1"))) + (simple-racket-origin + "srfi" (base32 "0aqbcdv2dfc2xnk0h6zfi56p7bpwqji8s88qds3d03hhh9k28gvn") '("srfi" "srfi-doc" "srfi-lib" "srfi-lite-lib")) (simple-racket-origin - "string-constants" (base32 "1qizjq4n0hzdgdcjjpr94464gsywpsk2g9mnvwzqr7dcqbrsfvn6") + "string-constants" (base32 "0b1ji31pv6bjb0a2bh9sqp5abvf91gn2rai8r4c4nkar1fzfwfac") '("string-constants" "string-constants-doc" "string-constants-lib")) (simple-racket-origin "swindle" (base32 "164gdsphjzdl2vv7zxz7dfk9jwax8njpmim6sidm8qz8a8589y67") '(("swindle" "."))) (simple-racket-origin - "syntax-color" (base32 "1vf2fc3qvx8a1igi7swsg8gaqhx786sa0vqxd18xhbsidfgb5ywp") + "syntax-color" (base32 "17lb2403ymz6sflw4vs3gsh2y7kgsf0gn8sncsxjhi16rpj3a9vm") '("syntax-color" "syntax-color-doc" "syntax-color-lib")) (simple-racket-origin "trace" (base32 "070ihla5j796hdarn5wxdwn4xj0xnkm50shgh49jy994mribvhia") @@ -910,13 +888,13 @@ (define-public racket "unix-socket" (base32 "02dfwas5ynbpyz74w9kwb4wgb37y5wys7svrlmir8k0n9ph9vq0y") '("unix-socket" "unix-socket-doc" "unix-socket-lib")) (simple-racket-origin - "web-server" (base32 "1zgb6jl7zx6258ljs8f3lvryrq5n5zpd71dqzr698m92kw3x2pkn") + "web-server" (base32 "1g4x79ym3mgxv4f3z3z84j12355pf44pjlzlb7f0h6r0i7p0cbjd") '("web-server" "web-server-doc" "web-server-lib")) (simple-racket-origin "wxme" (base32 "1qp5gr9gqsakiq3alw6m4yyv5vw4i3hp4y4nhq8vl2nkjmirvn0b") '("wxme" "wxme-lib")) (simple-racket-origin - "xrepl" (base32 "12zjgsy5zqm3fck3ihg4a70wj56s2cnnjyb4jlfi5nnsfqyrnxg3") + "xrepl" (base32 "19svg0jfs656bld5ikqipz3a5szk5k02zq5fh43209qw527dnfbk") '("xrepl" "xrepl-doc" "xrepl-lib")))) (build-system gnu-build-system) (arguments base-commit: b33ebc22fb2bb578c8150398538884439f36dfde -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu May 12 01:26:45 2022 Received: (at 55248) by debbugs.gnu.org; 12 May 2022 05:26:45 +0000 Received: from localhost ([127.0.0.1]:39186 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1np1LZ-0006UT-As for submit@debbugs.gnu.org; Thu, 12 May 2022 01:26:45 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:35307) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1np1LY-0006UF-1k for 55248@debbugs.gnu.org; Thu, 12 May 2022 01:26:44 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id ED81A5C01C7; Thu, 12 May 2022 01:26:38 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Thu, 12 May 2022 01:26:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= philipmcgrath.com; h=cc:cc:content-transfer-encoding :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to; s=fm1; t=1652333198; x=1652419598; bh=GZr1DBgDyr IyJBeA9Ad1k4SobmhMJUz5YQifmtwrfT0=; b=nU5ToBMAGJupCofTJz0gtKW2WZ 3cfdNS2XRhCL4W72ihEfLFmqKD3e+xPx4yiQM58BcWhd72PktHMEbbAI3E7X1qID KOYNPz5/fovZuw9wEuTbbLdeml0OLMIi4Hh0hVsVzHxy0JrqGRsv6i15nsVuTeiy HXbf+Bf1ywguWgHcE2bIjnwHGEbmErGTl4Rj5RVtH4Jx30mp0VxDDke3xFUMhmpm yzvPYJYtzqL3WWVLDhS89qvSgyWyUxszGbKoFEGuPXXRF8zA+57KDQAuJ7+lQ1fj K7dZGuyTzyVZGImiDQVAVWzf9hsrs29ke6u/pj58MNeTb0ynCHDwZx1HMBOw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1652333198; x=1652419598; bh=GZr1DBgDyrIyJ BeA9Ad1k4SobmhMJUz5YQifmtwrfT0=; b=X50Dp5EyzLRvY1BJHLvx8u5VO+FWO zV5uyFtrRHCvDkfHLJVJbe8Gq6dwJd1u8QbLCZ/CyAvq7FG79vxJL4KyPmfphnJi 7P+1oUeBEeMx6o/vuLl79Ws2q+vCC5F+h99Ye1TwJQW72aPsUXmBTYnma/nuXVEx C6KQMMEl+yPS/QBZtveIhwI8CiUBIPbjGyURh0OPwZRkUIIuJatgMz551P0ZgN+Z 38VqJLIcLyyuZ5NQ/k9GCFiYERfBmOI52Nf8Q+g6MDkeH6yILpBdOOjprAUvWN27 vRfWOMp81a7AfTxc08FUM5nT4zCKIvG8eqdvW3Py6E4KI9Ju6emSzjMsg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrgeeigdelfecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefkffggfgfuvfevfhfhjggtgfesthejredttdefjeenucfhrhhomheprfhhihhl ihhpucfotgfirhgrthhhuceophhhihhlihhpsehphhhilhhiphhmtghgrhgrthhhrdgtoh hmqeenucggtffrrghtthgvrhhnpefgtdfgtefhveetheegjeffgfeltdfgvddvueevleel gedtieelhfdtgfeiueeileenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmh grihhlfhhrohhmpehphhhilhhiphesphhhihhlihhpmhgtghhrrghthhdrtghomh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 12 May 2022 01:26:38 -0400 (EDT) Message-ID: <885eb0ab-e5a5-fa20-3aeb-ade167775a28@philipmcgrath.com> Date: Thu, 12 May 2022 01:26:36 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: [PATCH v3 8/9] gnu: chez-scheme-for-racket: Fix supported systems. Content-Language: en-US To: Liliana Marie Prikler , 55248@debbugs.gnu.org References: <1328772b3ccb2d3909f8bca6fe14659e04434e3e.1652075689.git.philip@philipmcgrath.com> <1e7cf69aa12c81effaf2eb1ceff0997faca1cab2.camel@ist.tugraz.at> <7e8f385e-d2b5-6f38-fe4b-030748519574@philipmcgrath.com> <77ff7763a7c87424e7195e9f8624dbdd2a26193c.camel@ist.tugraz.at> From: Philip McGrath In-Reply-To: <77ff7763a7c87424e7195e9f8624dbdd2a26193c.camel@ist.tugraz.at> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 55248 Cc: =?UTF-8?Q?Ludovic_Court=c3=a8s?= , Maxime Devos , 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: -1.7 (-) Hi, On 5/9/22 05:36, Liliana Marie Prikler wrote: > Hi, > > Am Montag, dem 09.05.2022 um 03:55 -0400 schrieb Philip McGrath: >> Concretely, there are no other uses in Guix. >> >> I do not know a robust, correct way to use >> 'nix-system->chez-machine'---certainly not without it growing many >> additional features, like maybe computing endianness for pbarch >> backends when we are able to build them. For example, if we continued >> using it as we did in 'stex', you couldn't build a package graph for >> nonthreaded Chez simply by applying a package transformation to >> remove '--threads' from its '#:configure-flags', because that would >> change the machine type without updating the uses of 'nix-system- >>> chez-machine'. > True, you would have to change the machine type, but I think I already > noted that we might want to use this machine type as a distinguishing > factor in packages built on top of chez (and later chez-build-system > perhaps). You could do this the other way round by deriving flags from > the given machine-type, e.g. stex for threaded chez machine is given -- > threads, otherwise it's not. Since we have named symbols for these > features, we could have a "package-with-chez-features" or similar > transformer. Being able to specify this machine is a strength, not a > weakness. > I can imagine something like this might be useful eventually. My problem is that, right now, 'nix-system->chez-machine' is an attractive nuisance: it sounds useful, but I don't know any way of using it that wouldn't be subtly wrong. I don't even feel certain even about what cases 'nix-system->chez-machine' would need to cover to be correct and useful: a fair amount seems to depend on what turns out to be necessary for cross-compilation and the portable bytecode architectures (which I hope to work out by July). >> The idea is that the "portable bytecode" backends should work, >> including thread support, on any system with a reasonably capable C >> compiler. > The idea. In practice, what racket deems reasonably capable can change > over time and might result in them dropping some architectures > currently supported. What do you do then? > I mean, "over time", at the extreme, anything "might" happen, but I don't think that's worth worrying about. Racket has an extremely strong commitment to backwards compatibility. To pick one example, support libraries for racket/draw and racket/gui are still maintained for ppc-macosx, which the vendor hasn't released any software for in a decade or more (depending on how you prefer to count). The C code deliberately does not require C99 support. >> The presence of an entry in '%chez-features-table' explicitly means >> that 'chez-scheme-for-racket' can generate native code. > That is not explicit at all. There might be an explicit comment > stating so somewhere, but in terms of actual code, it's super > implicit. > >> There are no other "features" that vary among systems for >> 'chez-scheme-for-racket'. It doesn't rely on pre-built bootfiles for >> bootstrapping. Since the initial fork at the beginning of 2017, when >> support for new systems has been added, native threads have been >> supported immediately. Racket regularly merges all changes from >> upstream Chez (which has not added any supported systems during that >> time---not even the systems added already in Racket's variant). > I'd still make "supported-by-racket" or however else you decide to name > that feature an explicit part of that table rather than an implicit > one, or use a separate "table" for platforms supported by racket. I really don't understand how this would be helpful. I don't think it would make sense for a list returned by chez-upstream-features-for-system to include a symbol supported-by-racket, which has nothing to do with *upstream* features. Aside from that, we would be adding this symbol to every single entry in %chez-features-table. That would imply turning all of the #f entries into (supported-by-racket), and then we would need some other solution for identifying platforms with no support upstream. > Note > that none of the racket-vm packages appear to currently carry > supported-systems, which seems dubious. > The only constraint on the systems supported by 'racket-vm-cs' is from 'chez-scheme-for-racket'---i.e., the trouble with `configure` for systems without a native-code backend, which should be fixed by the next release, if not before. I expect the fact that the 'chez-scheme-for-racket' input is not supported to work as an alternative to duplicating the filtering in its supported-systems field (which I think would create a cyclic dependency issue). AFAIK, 'racket-vm-cgc' and 'racket-vm-bc' should work everywhere (though possibly without the JIT, futures, and/or places) except that support for aarch64-macosx is prohibitively poor (IIUC due to W^X issues), which is fairly irrelevant for Guix. -Philip From debbugs-submit-bounces@debbugs.gnu.org Thu May 12 04:04:38 2022 Received: (at 55248) by debbugs.gnu.org; 12 May 2022 08:04:38 +0000 Received: from localhost ([127.0.0.1]:39459 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1np3oL-0005Gq-Ti for submit@debbugs.gnu.org; Thu, 12 May 2022 04:04:38 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:8051) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1np3oJ-0005Gh-Ty for 55248@debbugs.gnu.org; Thu, 12 May 2022 04:04:37 -0400 Received: from lprikler-laptop.ist.intra (gw.ist.tugraz.at [129.27.202.101]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4KzPSc1MfMz3wbn; Thu, 12 May 2022 10:04:31 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1652342672; bh=cVJV9DG8ycs4KFa2Yo/JqwRUhfavxmjdIyqJx2CRlEk=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=ImbEiiKwP64e6MZpxqtR13TZtfc08hCWE4lEc74HbPcD/QJH2HIr6ysF6FiTVmpQk 6WcuUNOqY8rxrRzbTCtU2roFhOt7rXII1AUZOoJEEkHnnPL9j7ChecGdWiMn6VXdVq GyDJ5W0fLL2ftYpeaT+oeNzJZnd55ASn6M3kcSIc= Message-ID: Subject: Re: [PATCH v3 8/9] gnu: chez-scheme-for-racket: Fix supported systems. From: Liliana Marie Prikler To: Philip McGrath , 55248@debbugs.gnu.org Date: Thu, 12 May 2022 10:04:31 +0200 In-Reply-To: <885eb0ab-e5a5-fa20-3aeb-ade167775a28@philipmcgrath.com> References: <1328772b3ccb2d3909f8bca6fe14659e04434e3e.1652075689.git.philip@philipmcgrath.com> <1e7cf69aa12c81effaf2eb1ceff0997faca1cab2.camel@ist.tugraz.at> <7e8f385e-d2b5-6f38-fe4b-030748519574@philipmcgrath.com> <77ff7763a7c87424e7195e9f8624dbdd2a26193c.camel@ist.tugraz.at> <885eb0ab-e5a5-fa20-3aeb-ade167775a28@philipmcgrath.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: waObeELIUl4ypBWmcn/8wQ X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.116 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 55248 Cc: Ludovic =?ISO-8859-1?Q?Court=E8s?= , Maxime Devos , 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 (---) Hi, Am Donnerstag, dem 12.05.2022 um 01:26 -0400 schrieb Philip McGrath: > > True, you would have to change the machine type, but I think I > > already noted that we might want to use this machine type as a > > distinguishing factor in packages built on top of chez (and later > > chez-build-system perhaps).  You could do this the other way round by > > deriving flags from the given machine-type, e.g. stex for threaded > > chez machine is given -- threads, otherwise it's not.  Since we have > > named symbols for these features, we could have a "package-with-chez- > > features" or similar transformer.  Being able to specify this machine > > is a strength, not a weakness. > > > > I can imagine something like this might be useful eventually. My > problem is that, right now, 'nix-system->chez-machine' is an attractive > nuisance: it sounds useful, but I don't know any way of using it that > wouldn't be subtly wrong.  Your 6/9 patch imho erases a use that wouldn't have been wrong. Certainly not if we add extra features to it or use inference at build time. For instance (let* ((base-system #$(nix-system->chez-machine  (or (%current-target-system)  (%current-system)))) (threaded? (member "--threads" configure-flags)) (portable-bytecode? [however you would determine that]) (actual-machine (string-append ...))) [code that uses actual-machine]) would be an alternative if you want actual-machine inferred by compile options rather than earlier on. > I don't even feel certain even about what cases 'nix-system->chez- > machine' would need to cover to be correct > and useful: a fair amount seems to depend on what turns out to be > necessary for cross-compilation and the portable bytecode > architectures (which I hope to work out by July). >From my POV it is already enough if we can do the basic translation with nix-system->chez-machine. Additional features like threads or portable bytecode would be nice to have, but if you feel that it'd be "subtly wrong" to add them (or not to add them), you can feel free to add or omit them as you like. > > I'd still make "supported-by-racket" or however else you decide to > > name that feature an explicit part of that table rather than an > > implicit one, or use a separate "table" for platforms supported by > > racket. > > I really don't understand how this would be helpful. I don't think it > would make sense for a list returned by > chez-upstream-features-for-system to include a symbol > supported-by-racket, which has nothing to do with *upstream* > features. For one, that procedure would be free to filter features as it needs so that it doesn't return racket-specific symbols, but more importantly if you do feel that using this table to report racket support explicitly is abuse, how is it not abuse if you report it implicitly? > Aside from that, we would be adding this symbol to every single entry > in %chez-features-table. That would imply turning all of the #f > entries into (supported-by-racket), and then we would need some other > solution for identifying platforms with no support upstream. If I read this table correctly, there is no entry, that does not have either 'threads or 'bootstrap-bootfiles. So null? after filtering racket features would work. If this is ever violated, e.g. we find an arch that has neither bootstrap nor threads, but is still supported by upstream, we could add an explicit 'basic-upstream-support feature to the table. > > Note that none of the racket-vm packages appear to currently carry > > supported-systems, which seems dubious. > > The only constraint on the systems supported by 'racket-vm-cs' is > from 'chez-scheme-for-racket'---i.e., the trouble with `configure` > for systems without a native-code backend, which should be fixed by > the next release, if not before.  Let's just assume that to be true. Even if so, why is "supported by racket" the condition for which we check rather than "not supported by upstream"? Seems kinda counterintuitive if racket supposedly supports all arches while chez itself does not. > I expect the fact that the 'chez-scheme-for-racket' input is not > supported to work as an alternative to duplicating the filtering in > its supported-systems field (which I think would create a cyclic > dependency issue). You might want to rephrase that sentence. I have no idea what you're trying to get across here. Cheers From debbugs-submit-bounces@debbugs.gnu.org Thu May 12 06:32:16 2022 Received: (at 55248-done) by debbugs.gnu.org; 12 May 2022 10:32:16 +0000 Received: from localhost ([127.0.0.1]:39753 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1np67E-0001r5-1c for submit@debbugs.gnu.org; Thu, 12 May 2022 06:32:16 -0400 Received: from eggs.gnu.org ([209.51.188.92]:32814) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1np67C-0001qr-Mk for 55248-done@debbugs.gnu.org; Thu, 12 May 2022 06:32:14 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:33024) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1np675-0001NR-DU; Thu, 12 May 2022 06:32:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=GiHR1d165o4MOmMXtsTGBNnT6laJiy6DtVfhUVUdXJA=; b=M4663dazBN2NUfZKqgA7 vZ73QJeXSeAuKjM035/TluBkRIOu3u25SbLkJ+v4pX/tOUFrGVIW3kAZD6UtiJSmOgmnSZ/Qzzbl5 H4q+ZAvzuM5WWxoMkeQ0bRSnUxigaaAtyGcn2Dfed9fMy3SMPr+G2fo/p+4cIg0+mHZG5mWyNINWn om87q+Xopya/Oy3eFtioGI2af8G6IFyBVOItYDjbdjcLsWcqoR6r/+nzvmuhcb8jNZwmmurXZ/8GS 5qHTa07yqJzw01PwV2G+0z5mDM/nKUf541L+GUjXwVNRrxDpjAol4AkRiGMjs87UhtpWCapbhN0/D zZAkSkFGf0MhYw==; Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=44924 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1np672-0008BF-Ue; Thu, 12 May 2022 06:32:07 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Philip McGrath Subject: Re: bug#55248: [PATCH 0/7] gnu: Update Racket to 8.5 and Chez Scheme to 9.5.8. References: Date: Thu, 12 May 2022 12:32:01 +0200 In-Reply-To: (Philip McGrath's message of "Mon, 9 May 2022 02:02:41 -0400") Message-ID: <87v8ubkpni.fsf_-_@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) 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: 55248-done Cc: Liliana Marie Prikler , 55248-done@debbugs.gnu.org, Maxime Devos , 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: > gnu: racket: Update to 8.5. > gnu: racket: Fix out-of-source build. > gnu: chez-scheme: Update to 9.5.8. > gnu: chez-scheme: Refactor documentation phases. > gnu: chez-scheme: Refactor configure phase and fix '--threads'. > gnu: stex: Get machine type dynamically. > gnu: chez-upstream-features-for-system: Improve implementation. > gnu: chez-scheme-for-racket: Fix supported systems. > gnu: chez-scheme-for-system: Adjust for bytecode backend. Pushed the whole series (including v4 for the first patch) as 3547bb6a66c32eb1deac46a98b40e2e051689ed3. It seems to work like a charm. :-) Thanks! Ludo=E2=80=99. From unknown Thu Aug 14 22:19:11 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 09 Jun 2022 11:24:07 +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