From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id COOhMVHbI2F0fgEAgWs5BA (envelope-from ) for ; Mon, 23 Aug 2021 19:30:57 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id eMlZLVHbI2FQEQAA1q6Kng (envelope-from ) for ; Mon, 23 Aug 2021 17:30:57 +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 82D11190CB for ; Mon, 23 Aug 2021 19:30:57 +0200 (CEST) Received: from localhost ([::1]:54062 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mIDmi-0008AL-7D for larch@yhetil.org; Mon, 23 Aug 2021 13:30:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58116) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mIDmB-0007id-OG for guix-devel@gnu.org; Mon, 23 Aug 2021 13:30:23 -0400 Received: from mail-qt1-x82c.google.com ([2607:f8b0:4864:20::82c]:40786) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mIDm9-0004p6-Pw for guix-devel@gnu.org; Mon, 23 Aug 2021 13:30:23 -0400 Received: by mail-qt1-x82c.google.com with SMTP id c19so3591032qte.7 for ; Mon, 23 Aug 2021 10:30:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=BMUnRrSzP5PGWwg2E/HAbSpXiHmwiYyaYUScu3tTvIE=; b=NvfGabaV6aM/v/QqOWi+kjdOTYFYAsH0+Lkev1ekHAPQdjsoZf2fNbTgJTt6wdjOep YwS3B+dDO3qT/zUKFrSP516hDCl7H91XVZDqTIaLk8P1X+ohhhK8fSXgKfIglK9gFsFx r6Jr5fnWYM2tHFJRh7jnCQu6+tXfqra1LAvcBHYqfmUZx6tU/2Cv0T7fzYJK9ul+43qW bFVKnCf4iaGNEqc0awxNEZ4+6J5aRyAErigFanGNPpcxR10ZZl2VvutYVmRcM4eQzt/5 nR0ZIuGAxiP7A29i6CAvPaVmPUlAZixFgxQVvUIeGxBdLeAmbjG8MCvRnA/uhH3gnkCd oqVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=BMUnRrSzP5PGWwg2E/HAbSpXiHmwiYyaYUScu3tTvIE=; b=HnHBy1/A5o8pHcQZn7UWgoVbzBUwyu4ADBFtVwsfiH5p9O2+3xA2PZg5iYTyHAPV8J HsiqOWJ24qZvmv3FB3sfr54tawZzPDklITKcQw05n/VgTKtHzb+Wwuxul3F5J1UQUZC8 WozgosDRVR1mIyYR8d2UfDiUAQWC14JBVX8Qhxc8SKabA3OzyeepoK2ZKxRnhj39UFMx NiJ9112BP2fS2nS8cD9LUK9alNqt5bsLOyt/L6xRZWQsW7P1/W9//kHttX6oCi33pMF9 FPVKa/L//uUhUy5x11TqM1vti2y+IRmqybDw51GsFZA+z4hwSBfWGSZmDxGEa2igjBsa PvUQ== X-Gm-Message-State: AOAM533TeI2IGNgj+LZLKP1v15nhXbbUx26T3Me9/PhCt/gtQoMM3ybG nxJQlE9qM96cfrcT4gAom3ASk2jDr2XwAKpP X-Google-Smtp-Source: ABdhPJyWuP7r+BFes3Jqnk/x3Jury+iDr1a10yUChSPqj2LvX9tcfm07IAag7j0C6KScvqu+a8y8gw== X-Received: by 2002:ac8:118a:: with SMTP id d10mr30597951qtj.101.1629739820112; Mon, 23 Aug 2021 10:30:20 -0700 (PDT) Received: from [192.168.45.37] (c-73-125-89-242.hsd1.fl.comcast.net. [73.125.89.242]) by smtp.gmail.com with ESMTPSA id 62sm7026240qtg.58.2021.08.23.10.30.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 23 Aug 2021 10:30:19 -0700 (PDT) Subject: Re: How did you handle making a GNU/Linux distribution? To: zimoun , Sage Gerard References: <73f02b09-6983-7535-b71d-69ff0b0124f4@sagegerard.com> From: Philip McGrath Message-ID: Date: Mon, 23 Aug 2021 13:30:18 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Received-SPF: neutral client-ip=2607:f8b0:4864:20::82c; envelope-from=philip@philipmcgrath.com; helo=mail-qt1-x82c.google.com X-Spam_score_int: -32 X-Spam_score: -3.3 X-Spam_bar: --- X-Spam_report: (-3.3 / 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, NICE_REPLY_A=-2.023, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779 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 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=1629739857; 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:dkim-signature; bh=BMUnRrSzP5PGWwg2E/HAbSpXiHmwiYyaYUScu3tTvIE=; b=q8EXPUriR4CIPjVDOVi945alVfNvcfawTCcbz2efyRTCHw9nR64nJFtWOauJIkMrSIQQfg NYqRCmPZqqhP/p4OM8c4MJ66h1TTe9x3Kc7NWcOL416tirz/RcW0xr/dXyKh2xtnDiv+IG Rm58PZUpJKecDbBTfznFL0FW0Jwg9UXHMTFgGpWOWYqN9Hl71DGbV0Qp9+HK0nQHKmZJDM lWPrD0hy5lE4Fmr7a9svwIhg+hs1wZJgVqbFURfMYSP925uKrhiqk/+tSCqLS8kJvjFMdl pUOrOGpun+J9Cful1N7BXCHaTAiWlwmQeWX6MOmuaQb9bZuxOruaheW+6c/bLQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1629739857; a=rsa-sha256; cv=none; b=ZaF4YLI6MfJp2wyFZOOKe8KdtKD9Vk5vkcBg563MBiGWg6xsDRKKcIrqOjPvY07pS57DVq VGeorTAxSYtZ8jQspLv/vTPL6d+jod2Hahb7RvZ5f/TAeWQU2N3EMNGL6i1zM90QwULIk7 4ZKX0Jb6qBT01Dq/snP1K422G3P8Duq2QKELjJmtrG4SR/VJlMZ2+v5PLNIL1MmA09GnkW Fh2LwwK0qJ0gsDLUdrZUWKZRL0PUHPt+G+J1vy4kTHCvy7IwRBRm3anOYA8LneAh3XygHW KT3VeUFUXzxYd5LCM6ent3IE+3xt8BzDPQ7+ScmldQURcmIths4yXaqaTWVwYQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=philipmcgrath.com header.s=google header.b=NvfGabaV; 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: -1.62 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=philipmcgrath.com header.s=google header.b=NvfGabaV; 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: 82D11190CB X-Spam-Score: -1.62 X-Migadu-Scanner: scn0.migadu.com X-TUID: 6YYT2zMXK0K/ Hi Simon, On 8/23/21 11:38 AM, zimoun wrote: > The bootstrap path of Racket in Guix is not clear to me. I miss if a > Racket interpreter or compiler in its binary format is used (as > Haskell for instance) or if all is compiled from source using tools > already bootstrapped. Anyway, I miss what you would like bootstrap? > If you mean a trusted seed in order to start a package collection, you > could use the current Guix binaires---as a starting point. I wrote a long comment at the top of gnu/packages/racket.scm that explains the current state of affairs. (For anyone unfamiliar with the Guix source tree: ) In brief, Racket is bootstrapped from source using only a C compiler---including bootstrapping Racket's fork of Chez Scheme without an existing Chez Scheme compiler---with one exception: the "expander" subsystem (which implements the reader, module system, and macro expander) is implemented in Racket, and the older C implementation was completely replaced as of Racket 7.0. (One of the motivations was to fix many problems with the old implementation.) For bootstrapping, an intermediate representation as a "schemified" linklet is checked into the Racket source repository. This impact is mitigated because, by design, the intermediate representation is "human-readable and -editable Scheme code". Anecdotally, when I read diffs of changes to the Racket repository, I sometimes read tens of lines of code before I realize that I'm looking at the generated version of the file, not the source. So the expander is not bootstrappable in the most rigorous sense, but it is readily auditable. If someone wanted to tie the knot, the task would be to use an existing bootstappable language to write a minimal expander that can expand the canonical Racket implementation: if your output is identical to the checked-in generated files, you've succeeded. (Using Guile could avoid the heavy maintenance burden of the old C expander implementation, and indeed you could write just enough of an adapter to load the Racket source files into Guile, which is the technique Racket uses to bootstrap the Chez Scheme compiler.) I expect Racket would welcome a contribution along those lines; it just hasn't been a priority for anyone yet. -Philip