From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id cF3aNIbBPmEcjwAAgWs5BA (envelope-from ) for ; Mon, 13 Sep 2021 05:12:06 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id gGWPMIbBPmEvUAAAB5/wlQ (envelope-from ) for ; Mon, 13 Sep 2021 03:12:06 +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 482C11D816 for ; Mon, 13 Sep 2021 05:12:06 +0200 (CEST) Received: from localhost ([::1]:57800 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mPcO5-0005FG-AB for larch@yhetil.org; Sun, 12 Sep 2021 23:12:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34444) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mPcNR-0005Es-Vk for guix-devel@gnu.org; Sun, 12 Sep 2021 23:11:26 -0400 Received: from dustycloud.org ([50.116.34.160]:58578) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mPcNQ-0004ca-5U for guix-devel@gnu.org; Sun, 12 Sep 2021 23:11:25 -0400 Received: from twig (localhost [127.0.0.1]) by dustycloud.org (Postfix) with ESMTPS id 96AF22661B; Sun, 12 Sep 2021 23:11:22 -0400 (EDT) References: <73f02b09-6983-7535-b71d-69ff0b0124f4@sagegerard.com> <66138ed4-2725-03a9-5f09-0b8541046ed3@philipmcgrath.com> User-agent: mu4e 1.6.2; emacs 27.2 From: Christine Lemmer-Webber To: Philip McGrath Subject: Re: How did you handle making a GNU/Linux distribution? Date: Sun, 12 Sep 2021 23:09:59 -0400 In-reply-to: <66138ed4-2725-03a9-5f09-0b8541046ed3@philipmcgrath.com> Message-ID: <87v935gof9.fsf@dustycloud.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=50.116.34.160; envelope-from=cwebber@dustycloud.org; helo=dustycloud.org X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1631502726; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=gcVYMHGTcg3+zKhUx3fv+caxw7qBgARWfrHs7wWzdMI=; b=lT5dTVRIa9cnszP+G3YIfL3PtMVkP85pBwlOQrtU7PGk/KpxL5z2jv/+v3GDykY9hlumqO s6fQVT65JhmR9kFF8pKU5nZxLN06ZBRbE1k6FJjUQOcl2CooLiM2ZAFLhh1FGmeRq9hGSq JKP4/1JInOhBMsd8e+ACBg1ifjraCdpXQp8dc6XefNKEPWowoUvkBwOyu9//d3aHkxvfBI pt+hTddou/J48TNAbOYfKuoSUUmd4aC+Kukq1tqxTZoo5vfdCHQb87lXJ8O/KK2MhRxwJH MHAqiUUeomHTUQN6VowVU/DqNe4JQP8yAIsT3NF46ZViFk0Cl+ReP8xArbN3fA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1631502726; a=rsa-sha256; cv=none; b=BrfUkJs+E2oKNDKjCauuVRBlwldUkTX1i1cdVwe90nNFiJufG6vn0EsIF9I71on7DUBh1U 5DVl5z2Q0Uuvyj2d0MuN8NgLfgxPDWDbmsGoeR3sf/ii8frqJ7YEKHnNRDZIHxY9CY1P5N N9YsU5u7sMlARl3ZnRRcKYcsXH96inQcL88gzRd046nWrEl65KUik99yJ6aX0L5S+q+0rX Ynn7FjoaKCOCSZ1LtfkLqXqeWfiEExkgA13/bfCVt39YOFEzjw87grPbsrpsLmJpSLkiZZ yfJTJeTS7Q2QrhMwYzjMIxjhVKwBBM7QFq97RqSIlax/j1T1y85UMxVD+dSVlA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: 0.09 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: 482C11D816 X-Spam-Score: 0.09 X-Migadu-Scanner: scn0.migadu.com X-TUID: pM73ZM5pry8Y Philip McGrath writes: > Hi Sage, > > On 8/22/21 5:53 PM, Sage Gerard wrote: >> Thanks for the detailed answer! >> It seems wise to adapt GNU Mes towards Racket or Chez Scheme instead >> of >> Guile to bring GNU's benefits to more Scheme and Racket programmers. Has >> someone already tried something like that? > > I haven't tried Xiden yet, and I haven't done any concrete work toward > this (I have been working on managing Racket packages with Guix), but=20 > Christine Lemmer-Webber had floated the idea at some point of trying > to integrate Racket and Guile. > > IIRC, I think what she's had in mind was trying to make a Guile > backend for Racket along the lines of the Chez Scheme backend (or the > BC backend, or experimental backends like Pycket). Yes that's what I had in mind :) > As I said, I haven't actually tried any of this, but, as I've thought > about what might be involved, there are two things that have struck me=20 > as downsides: > > 1. Flatt et al. say in "Rebuilding Racket on Chez Scheme (Experience > Report)" (=C2=A76, p. 13) that, "If our task were to compile Racket t= o an > existing target, then we would not have achieved such a high degree > of compatibility. =E2=80=A6 we have taken the liberty of modifying Ch= ez > Scheme to make it an easier target for Racket." > > https://www.cs.utah.edu/plt/publications/icfp19-fddkmstz.pdf > > Presumably a Racket-on-Guile project would face the same trade-off, > where modifications to Guild, if Racket CS is a guide, could require > hard work over many years, and lesser compatibility would make the > result less useful. At one point when I spoke to Matthew, he was very optimistic that the work on porting on top of Chez would open Racket to running on top of many other backends. But yes... since there have been so many "custom" modifications to Chez, it's easier to be skeptical about that these days... > 2. As you probably know, Racket programs can't generally use > Chez Scheme implemented libraries, because Chez Scheme effectively > is the "unsafe" layer of the Racket VM. For example, not all Racket > procedures are Chez Scheme procedures, and Racket's continuations > wrap Chez Scheme's to implement delimited and composable control, > threads, parameters, full continuation marks, etc. > > For Racket CS, this isn't a great loss (there aren't so many > Chez-specific libraries, and portable libraries can run in Racket's > R6RS language), but, for a hypothetical Racket-on-Guile, > bidirectional interoperability would be a big attraction: imagine > Guix, Shepherd, Mcron, syntax/parse, racket/contract, and more all > working together. > > If I were going to work on this, I'd start by looking at having Racket > and Guile coexist as siblings with interoperability through their FFIs=20 > level. Even better, eventually you could compile Guile to Racket > linklets, so the two could coexist in the same primitive module > system. There would probably always need to be something along the > lines of require/typed to interoperate between the languages, since > Guile has mutable pairs and an unusual approach to falsehood and > nullity to let Scheme's #f and '() coexist with Emacs List's nil. (See=20 > https://www.gnu.org/software/guile/manual/html_node/Nil.html). > >>>> I'm at the point where users are requesting a GNU/Linux distribution f= or >>>> Xiden, such that Racket is the primary language for day-to-day >>>> operation. I'm ignorant of the scope of work, and am unsure if I can do >>>> it alone. > > To me, at least, the scope of the work in creating a new GNU/Linux > distribution seems daunting. My hope would be that bringing Racket and=20 > Guile closer together would let most if not all of the effort be shared. > > Hope some of this is useful, and best of luck! > > -Philip