From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id 2BCvEhFjsGC3DQAAgWs5BA (envelope-from ) for ; Fri, 28 May 2021 05:27:13 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id oKJPDhFjsGDKYgAAbx9fmQ (envelope-from ) for ; Fri, 28 May 2021 03:27:13 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 99FC61639C for ; Fri, 28 May 2021 05:27:12 +0200 (CEST) Received: from localhost ([::1]:39568 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lmT9T-000859-LF for larch@yhetil.org; Thu, 27 May 2021 23:27:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51734) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lmT9L-00083s-6U for bug-guix@gnu.org; Thu, 27 May 2021 23:27:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:41862) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lmT9K-000856-Ue for bug-guix@gnu.org; Thu, 27 May 2021 23:27:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lmT9K-00035g-Pp for bug-guix@gnu.org; Thu, 27 May 2021 23:27:02 -0400 X-Loop: help-debbugs@gnu.org Subject: bug#48682: recursive import between (gnu packages chez) and (gnu packages racket) Resent-From: raingloom Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 28 May 2021 03:27:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48682 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Philip McGrath Received: via spool by 48682-submit@debbugs.gnu.org id=B48682.162217239011826 (code B ref 48682); Fri, 28 May 2021 03:27:02 +0000 Received: (at 48682) by debbugs.gnu.org; 28 May 2021 03:26:30 +0000 Received: from localhost ([127.0.0.1]:53406 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lmT8n-00034a-M3 for submit@debbugs.gnu.org; Thu, 27 May 2021 23:26:30 -0400 Received: from mx1.riseup.net ([198.252.153.129]:58204) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lmT8i-00033z-NC for 48682@debbugs.gnu.org; Thu, 27 May 2021 23:26:25 -0400 Received: from fews1.riseup.net (fews1-pn.riseup.net [10.0.1.83]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4Frqpg21g6zDrNr; Thu, 27 May 2021 20:26:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1622172379; bh=zk4uTTIxNN7E9oNKw/UaGS/fXe0HjExYor+X2sjmrN0=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=aRCDt5IQrVvKIjebD4676mlzSUIAwzqWRiMKJGktB2ArBj/9BkPSfJXWFdUftyx5g mpV5hkPrHb9SmiNeqvX3uzQFvMvb2P80IyZB+p6UcSUOd8qfEXU9hKVNpq9WSZ6u9y 8caiT9vjTJqC0E2e5RfvlxKNOBmQmqtVRzu5b6qg= X-Riseup-User-ID: CE45B33631BA86DA0D3AED06858EB42964E825541646D072F1092687481B5FDE Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews1.riseup.net (Postfix) with ESMTPSA id 4Frqpf2JvKz5vbM; Thu, 27 May 2021 20:26:18 -0700 (PDT) Date: Fri, 28 May 2021 04:02:58 +0200 From: raingloom Message-ID: <20210528040258.41d66653@riseup.net> In-Reply-To: <7bb14837-cd53-45f6-f572-7493c2b1bb50@philipmcgrath.com> References: <20210526205455.3431430c@riseup.net> <7bb14837-cd53-45f6-f572-7493c2b1bb50@philipmcgrath.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/mW1NjgWDZx/dFb+VLdoL1UX" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Guix Patches , 48682@debbugs.gnu.org Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1622172432; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=w2yUn2zfkawF3qxQaVqb5x4YxKVEw20+PFh47+KM0dY=; b=mtY+QCphnuz8aPnp1aSue7/vbffvjggdmpIq1D/dXA5JliOqqUnCLaOe+TN8iWqynUp1RL X4VFISFEdpV0WF7XY3wL0DkA0U8u5KljX5m4f1gdLk7Mm1a8ReXbyd/rjpisBfS9aocpXz bpUic/K9D/U2dEV4PJzGWun3FW/Eys212DtTuE3wowAV72AB5KJZ1BBd58yBum/vCfXcat LU7mBPtKiOREJipRDjw5nANeI5fbY1JArjzIzHxa4Ek8VHHwkHOFJyUk7nlCFGHLJ2IUeu QbxwGoRBmCf6Nyg8drOR6ysmrROgUJ8CaHXRdOYLbqX2G8otUvXOMbG5bW2A1w== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1622172432; a=rsa-sha256; cv=none; b=BTSzqHhWsIM9n/gmEky+C4VITqXrfpSuJR9k66/psU1K6MjwnKWBkULMVRjQ1I36kPJVOA NhCg5SQa9n+GPI1C7SA/c45nFjiZH2iUPvI8VHfnGEn7vEEOOEFQh4W4/ywAWqDCvnAFOT AivEdC3CCDEqJ41ko25XL5+Z8pK5d9dv2dfqFurz6+kHMj7delCitOq7DzVjAND2tqaIlc Vj4vSThz4iaV2cYwOFBM7UD1zNKf+uW3plVW6RiEVeVMLB+Uj/HjhjpMJGK0dgaZcjl759 2Xm4DK5xNAGtZBhPsQlQ2PJNdSZrcCGiCbrYh9mCEJGXeodbyrfd2OGN0fBbRg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=riseup.net header.s=squak header.b=aRCDt5IQ; spf=pass (aspmx1.migadu.com: domain of bug-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=bug-guix-bounces@gnu.org X-Migadu-Spam-Score: 0.17 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=riseup.net header.s=squak header.b=aRCDt5IQ; dmarc=fail reason="SPF not aligned (relaxed)" header.from=riseup.net (policy=none); spf=pass (aspmx1.migadu.com: domain of bug-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=bug-guix-bounces@gnu.org X-Migadu-Queue-Id: 99FC61639C X-Spam-Score: 0.17 X-Migadu-Scanner: scn0.migadu.com X-TUID: zAiARZWPkXEd --MP_/mW1NjgWDZx/dFb+VLdoL1UX Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline On Thu, 27 May 2021 00:26:56 -0400 Philip McGrath wrote: > Hi, I've been working on Racket packaging. I haven't looked into this > much yet---hopefully I can tomorrow---but here are a few quick > thoughts. > > On 5/26/21 2:54 PM, raingloom wrote: > > I also haven't found any other mention of chez-scheme in racket.scm > > other than the line that imports it, which is weird, given that > > Racket > > This was my doing. When I added `(gnu packages racket)` in [1], I > adapted the patch from a racket.scm I'd been using to experiment > ([2], also some branches of [3]): the changes that actually use (gnu > packages chez) aren't ready to go yet, but apparently I left the > import line in. > > > On 5/26/21 2:54 PM, raingloom wrote: > > other than the line that imports it, which is weird, given that > > Racket is now built on Chez, so I'd expect it to use it as an > > input. I guess it's a bundled version? In any case I don't think I > > should just remove the import, because it will be needed > > eventually, so this issue needs to be fixed by then. > > Racket uses a fork of Chez Scheme: I described the situation in [4]. > Racket won't have upstream Chez as an input in the foreseeable, but, > from a packaging perspective, building Racket's Chez fork uses many > of the same pieces as building upstream Chez. I think it may make > sense to refactor out some of the common infrastructure, so both > `(gnu packages racket)` and `(gnu packages chez)` could depend on > some low-level module, but I'm not sure what the Guix-preferred way > to organize things would be. (I'm mostly a Racketeer using Racket > packaging to learn more about Guix.) > > Here are some ways `(gnu packages chez)` and `(gnu packages racket)` > are intertwined, in no particular order: > > - `racket-minimal` should use the `nanopass` and `stex` origins > as `chez-scheme` does. (But it would be easiest to do this > once I've changed `racket-minimal` to build from the Git source, > rather than the bootstrapped tarball: I hope that will be soon.) > Some more of my not-quite-current thoughts on that at [5]. > > - The `chez-scheme` phases `unpack-nanopass+stex`, `configure`, > `prepare-stex`, and `install-doc` should be shared with Racket. > I think it would be better to put them in a build-side module and > actually share them, rather than to do tricky things to extract > their s-expression representation from > `(package-arguments chez-scheme)`. On the other hand, I think a > build system would be overkill: it would only build vanilla Chez > and Racket-flavored Chez. > > - Racket-flavored Chez has added some backends that vanilla Chez > doesn't support (and can't be readily ported, unless upstream > Chez eventually adopts Racket's changes to generating backends). > In particular, Racket-flavored Chez adds support for threading on > ARMv6 and support for aarch64 (which vanilla Chez doesn't > support at all). I haven't thought at all deeply about this, but it > might make sense for the default `chez-scheme` package on those > architectures to be Racket-flavored Chez. > > - We may in fact want to use Racket to bootstrap vanilla Chez. > > Chez has the usual problem with self-hosting compilers that you > need the old version to compile the new version. Specifically, > you need "bootfiles", which encapsulate the Scheme-implemented portion > of Chez, compiled to machine code. Thus, (a) they are platform- > specific and (b) they need to agree precisely with the > C-implemented part of Chez on the layout of datatypes and such. > > The vanilla Chez Git repository [6] has bootfiles for i686, > x86_64, and (non-threaded) ARMv6. Once you've done a native build for > one of those platforms, you can use it to cross-compile for any > platform Chez supports (ppc32, various BSDs, etc.). But these are > binary blobs. From a "trusting trust" perspective, it's especially > striking if you consider that Chez Scheme was non-free software from > 1984 to 2016, and the first libre release likewise needed the > bootfiles of its ancestors. (However, building bootfiles is > reproducible: Chez in fact builds them twice and errors if they aren't > byte-for-byte identical.) > > But Racket is able to simulate enough of Chez to (slowly) > compile the Chez compiler and generate bootfiles, providing a > path to Chez from just a C compiler. Racket does its whole > bootstrapping process regularly in CI, and I'm working on getting the > Guix package to do likewise. > > Unfortunately, the Racket fork has diverged enough from vanilla > Chez that the current Racket "cs-bootstrap" package [7] can't build > vanilla Chez, but I hope that the solution is just a matter of > walking through the Git history to find the right older version > of the bootstrapping package, before the Racket fork's `#!base-rtd` > gained a vector of ancestors rather than a parent and a few such > things. But I'd like to be able to build Racket packages with > Guix before I try that :) > > Ok, that got a bit long. > > I don't know where the cycle came from with `emacs-geiser-racket`, > but I think it would be reasonable either to do some refactoring to > `(gnu packages chez)` and `(gnu packages racket)`, or to just remove > the import for now to un-break things and figure out the rest later. > > -Philip > > [1]: https://issues.guix.gnu.org/47829 > [2]: https://gitlab.com/philip1/guix-racket-experiment > [3]: https://gitlab.com/philip1/guix-patches/ > [4]: https://issues.guix.gnu.org/46865#3 > [5]: https://issues.guix.gnu.org/47153#2 > [6]: https://github.com/cisco/ChezScheme > [7]: > https://github.com/racket/racket/tree/master/racket/src/ChezScheme/rktboot Well, here is a quick and obvious fix for now. --MP_/mW1NjgWDZx/dFb+VLdoL1UX Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0001-gnu-Break-up-import-loop-between-gnu-packages-racket.patch >From cef344639ccbf45b5397368d643a36fa48dac098 Mon Sep 17 00:00:00 2001 From: raingloom Date: Fri, 28 May 2021 03:59:16 +0200 Subject: [PATCH] gnu: Break up import loop between (gnu packages racket) and (gnu packages chez). * gnu/packages/racket.scm: Remove (gnu packages chez) import. --- gnu/packages/racket.scm | 2 -- 1 file changed, 2 deletions(-) diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index be33270b30..2d606071fe 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -32,8 +32,6 @@ #:use-module (ice-9 match) #:use-module (gnu packages) #:use-module (gnu packages bash) - #:use-module ((gnu packages chez) - #:select (chez-scheme)) #:use-module (gnu packages compression) #:use-module (gnu packages databases) #:use-module (gnu packages fontutils) -- 2.31.1 --MP_/mW1NjgWDZx/dFb+VLdoL1UX--