From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id CGJhID2FEmKKYQAAgWs5BA (envelope-from ) for ; Sun, 20 Feb 2022 19:15:25 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id uH22HT2FEmKCGAEA9RJhRA (envelope-from ) for ; Sun, 20 Feb 2022 19:15:25 +0100 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 0B09837A9F for ; Sun, 20 Feb 2022 19:15:25 +0100 (CET) Received: from localhost ([::1]:45888 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nLqjz-0000QA-69 for larch@yhetil.org; Sun, 20 Feb 2022 13:15:23 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40042) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nLqje-0000Pm-AP for guix-patches@gnu.org; Sun, 20 Feb 2022 13:15:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:39789) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nLqje-0003pS-0N for guix-patches@gnu.org; Sun, 20 Feb 2022 13:15:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nLqjd-0001TR-OC for guix-patches@gnu.org; Sun, 20 Feb 2022 13:15:01 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#53878] [PATCH v3 09/15] gnu: Add racket-vm-cgc. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 20 Feb 2022 18:15:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 53878 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Philip McGrath , 53878@debbugs.gnu.org, Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: Attila Lendvai , Maxime Devos , Malte Gerdes , raingloom , zimoun Received: via spool by 53878-submit@debbugs.gnu.org id=B53878.16453808575595 (code B ref 53878); Sun, 20 Feb 2022 18:15:01 +0000 Received: (at 53878) by debbugs.gnu.org; 20 Feb 2022 18:14:17 +0000 Received: from localhost ([127.0.0.1]:33686 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nLqiq-0001S6-1k for submit@debbugs.gnu.org; Sun, 20 Feb 2022 13:14:17 -0500 Received: from mail-ej1-f67.google.com ([209.85.218.67]:38406) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nLqij-0001RO-Mr for 53878@debbugs.gnu.org; Sun, 20 Feb 2022 13:14:11 -0500 Received: by mail-ej1-f67.google.com with SMTP id r13so4439891ejd.5 for <53878@debbugs.gnu.org>; Sun, 20 Feb 2022 10:14:05 -0800 (PST) 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=Z5B48EywOwqwqxtTc0cXW4FZzXmegk/u35RosmpHNmw=; b=VAbJn/2a9PHLYtXtwI0ppSYJ6LumaSFqyH4PBr0LieEUEzOovqCodbp0j5ZRO3+F++ 1AtzpB/lFDnUGR4wo+ihghoncsyT3LawWHhLQzIoPkW4uTIW98aEi/norIHeEl3kcX4h nyNMMPx/MNjjcqv9IeKg0EzB8kYm7MB6/tuSlOEifOZq8YueKN23CUHzBtvi7II62rmV YU1qXOKk3ltboYyrBo96ip/zk2KsABX5uWAEjWupyqLHd5dHMEFxkBBgLEF2Mlzlb3KB Phd9h9KZ/iYNQfApdbL9jieJriMIbqAhY1B/cTL8DqO2mBo0Ged8QOrwuTGkLkRrNtV5 TuDg== 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=Z5B48EywOwqwqxtTc0cXW4FZzXmegk/u35RosmpHNmw=; b=1V81L7gvWIW2SV/qPdKJpWdTZ01Ht4mxU7EIZnT25CYaqehgjissaD7PXeSis87yfe V3xcWJgBi7V0g3hxibc/B8+klhecVpZB+gbpZ8V8x1SBl9/GYoMV8sqCUUwepr0G33Zk vCg9+niF08G9j5Esmv+d/GoIInVAkR8AzG4VajVL+XyDEsrRfT6a51L8d3cMuHmPAlvC n6IJcC+QJ8ri0XmI67FgJtuSEzCPRbehm30zmdZC4nXgZfXt2EkA+po0ZX7i/7QshfcB u+UMkSqqHBo2CUHbeUCPtb6iCujfsFLq1jg8nckVePsnTsFCHmeJ/h3FBgdX1mD1gMVk oAhQ== X-Gm-Message-State: AOAM532Arhbl/uMGzh6gwGtA1eZ2I8gO1PrUwe0OYh6W8yFtjh7d8LJO obyrYsWN11n5nOvpIVTZ8ao= X-Google-Smtp-Source: ABdhPJyExoUTWiS+GohGKbSdzmTw+OkUzTnj14X94cEsP1yyDWNDR8SPQunbqBBet1GhPgBBSGDuUA== X-Received: by 2002:a17:906:69ce:b0:6a7:8c03:3caa with SMTP id g14-20020a17090669ce00b006a78c033caamr13253999ejs.335.1645380839822; Sun, 20 Feb 2022 10:13:59 -0800 (PST) Received: from nijino.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id e18sm7746812edj.85.2022.02.20.10.13.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Feb 2022 10:13:59 -0800 (PST) Message-ID: From: Liliana Marie Prikler Date: Sun, 20 Feb 2022 19:13:58 +0100 In-Reply-To: <5037281.s90xYg8xyF@bastet> References: <20220208151316.1897345-1-philip@philipmcgrath.com> <1853902.IiyMIqa0Cy@bastet> <5037281.s90xYg8xyF@bastet> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1645380925; 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: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=Z5B48EywOwqwqxtTc0cXW4FZzXmegk/u35RosmpHNmw=; b=lwNuEEsNXslHM7oB9IhD/dnTgIBcl39z7tHCRWgQxnygwCuk3S8uwVHMzemPO2h6J32vuJ /fY3oWKZBEw05edGQFehqbn4cnvEDI4/KMt/HF68QIlZshGkkQdbZH0veKjS79qLMcer9q Dc8lg9YzWLwIb6h0j2ddSWThWsINaGiKhTekKmSd5TPrL3FXdf7y2PiLqGZew1YpZE5avn LUoXBQ60ZRppIVkOTRb4H2HwNzRLyeIsKJyP2wc03L7P/7CKhPG+us7EdvTJYRiE3uP4m3 BPLho2BB9wx+pGVPFTrCAEXbMcW1uXhnspUHBSmIOgxU1giAX1Ai4IwNE7AlwQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1645380925; a=rsa-sha256; cv=none; b=GMkaO72peeXQrgVYgZ91ZxcE9LAH7kDlRk2uU70pNfF2iD7xeDO8hF1KH6sW8mWP701kPx 7IVJtiunv4XYizjX67k9+WzVeVrKy4PA1nOVMTYB0546GLZTsRmUVEzk2obhrdLbuQU9// 1Pdy/HzfdR1n0MMlgEEv+dZv8O+2VVCRfjdwUcaOBG1chY0OMi8a58HO2///IlF51SLINK fCMpuQqQtiSCvz+RfB/2mnNRscVS1HGD6cx5Jrxb+ELrNtt7ea5eSsEkWd33VP/V7MNBFK O/HW9gqbGNbURbpSsuLu568ckAzf4CDgoaoA/s7DNj6ZGFs9YzuzA4XjB1z5ZQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20210112 header.b="VAbJn/2a"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 0.17 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20210112 header.b="VAbJn/2a"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 0B09837A9F X-Spam-Score: 0.17 X-Migadu-Scanner: scn0.migadu.com X-TUID: 7nDRmEaWb5Be Hi, Am Sonntag, dem 20.02.2022 um 12:52 -0500 schrieb Philip McGrath: > AFAICT the error is not from applying the function bound to the > variable `racket-vm-for-system` (or `make-racket-vm-bc`, or > whatever), but from evaluating the reference to a variable imported > from a sibling `(gnu packages ...)` module, regardless of the value > to which the variable is bound. > > My current best guess at Guile's semantics for mutually-recursive > modules is that it's something like the `letrec` restriction, e.g. > the difference between these two examples (given an implementation > that fully enforces `letrec` semantics, as opposed to `letrec*`): > > --8<---------------cut here---------------start------------->8--- > $ scheme > Chez Scheme Version 9.5.6 > Copyright 1984-2021 Cisco Systems, Inc. > > > (letrec ((a (lambda () 1)) >            (b a)) >     2) > Exception: attempt to reference undefined variable a > Type (debug) to enter the debugger. > > (letrec ((a (lambda () 1)) >            (b (lambda () (a)))) >     (b)) > 1 > --8<---------------cut here---------------end--------------->8--- > > > > > See (standard-packages) in guix/build-system/gnu.scm pointing to > > (gnu > > packages commencement) or (default-python) in guix/build- > > system/python.scm for pointers. > > Given Ludo’'s explanation, I think the difference (or at least an > important difference) is that those functions are defined in `(guix > ...)` modules, as opposed to `(gnu packages ...)` modules. > > But I wish I knew with any degree of certainty *why* this would be > true, if indeed it is. > > Maybe Maxime knows? Both Ludo and Maxime already explained this, but to be extra clear, it's the thunking. (define foo ) (define bar ) <- problem (define (foo) ) (define bar ) <- no problem. Since inputs are thunked, you can define chez in chez.scm and racket in racket.scm and use them as input to each other without breaking the compiler (you will break the package builder though). If you want something more meaningful, you can define racket-minimal in racket.scm and use it in chez.scm as input to a package, then use that package as input to racket. This does not work for (source ) and (inherit ) however, because those forms are not thunked. You would have to thunk them until you reach a save haven (like a package's inputs), where you can call the thunk to produce a value. Cheers