From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id UK69Kvc/02UZZwEA62LTzQ:P1 (envelope-from ) for ; Mon, 19 Feb 2024 12:48:07 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id UK69Kvc/02UZZwEA62LTzQ (envelope-from ) for ; Mon, 19 Feb 2024 12:48:07 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=futurile.net header.s=selector1 header.b=FQn2AnAV; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1708343287; 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:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=yiNXcD3SGy9fup8xpsfTNMuGqpOG9ME5qR8Cb9uKCnA=; b=ckK1LvaVDs+v8l4fEsoXB0lLGCqYpowGID6tMsfSpNQ5XWdxsy7xwm23djcyIdAbn08slA TNK5sx+NkH/pIi3L2yAvVxfjJ8rs+4BATOo6E8yvfvNRdsqhyhxUfa2wYqHErtGZhpSItu TVE9BfVH0YfSVLUVOfenDzAF70V68nfbh11NZKa1UtsNXuCS+2VBYWN8fesiWgZJM/8muN KPPgmDDw4IKu+rtwwrGZem/5JLJi90fRfF43Gahc332MyDpw5DZbJBajXr6yLBP4dYK1G0 gdE++pP455ZiqzsNFKPdJ2pyq/T1YK4sskcxON+FJ2AearIX2k46mrKr7vOQ6w== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=futurile.net header.s=selector1 header.b=FQn2AnAV; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1708343287; a=rsa-sha256; cv=none; b=GjTvxhtAFzGwa3Ln2NdjOVEwIfnOT4jbX5gGYn2gG9cZ0tgmPrZ9QbN86UKC90Kcfo/72j zaa+EKibvWKWAj1JUF/nn6aMSBgO1dTQLlPkR1aiC8n0XJsZtCIiZg9I9a2v+0NU7XsetZ jaEdIxIx3TeSBgs68HbqC8raeUkJlhj/U1gduMn48nt46eWmtePY1Spl5kfqLhTTn6a+J3 hzF0l9m/JJBc6uJige4anaEBnZ87P1KOlctqLKSglIDJWjSINzh28XLeH41XyfqFRpj7Lp lFTcbpDCqbImw6TihK5l6IwoP0AsRPbICM191srgdii4B9K1YRlIo9nzLbpyGg== 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 22747547A0 for ; Mon, 19 Feb 2024 12:48:07 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rc27Z-0005Bx-OL; Mon, 19 Feb 2024 06:47:41 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rc27G-0005Aq-2g for guix-devel@gnu.org; Mon, 19 Feb 2024 06:47:34 -0500 Received: from mailtransmit05.runbox.com ([2a0c:5a00:149::26]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rc27B-0003Ti-MZ for guix-devel@gnu.org; Mon, 19 Feb 2024 06:47:21 -0500 Received: from mailtransmit02.runbox ([10.9.9.162] helo=aibo.runbox.com) by mailtransmit05.runbox.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1rc275-00FtQo-EK; Mon, 19 Feb 2024 12:47:11 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=futurile.net; s=selector1; h=Content-Type:MIME-Version:Message-ID:Subject: Cc:To:From:Date; bh=yiNXcD3SGy9fup8xpsfTNMuGqpOG9ME5qR8Cb9uKCnA=; b=FQn2AnAV9 UHE22JR3jG/TorSfOuYM1Ui2HJsKceWJgmDf9SdzNFaN6PYhz7wZT864/clEhH4MP5Vj6EHElAId2 F+LaF9oBO3qGCAt+L9CXrqv5ykVWIS65u7DrkTX0hH9mZ2ITuhE9OMMj9WAsKhfsoWDgMfr6jaXfv hqOGCAdpqBLy3p7rMI9A0mlXzu+UejlasrYwrk7oEPyZKC/0jczteLjn2mTOuygCRTlfS4IoX+sL/ /i6k9Rpw7bgLMSlR+OhKCuYRc+fN0QAOunN+10rqbxY9ydYoWa7cGgAvhkh+y94PW9ZRE/sLXsCSo u8qDBkhf2dsZ8lc/mZKmiUUCg==; Received: from [10.9.9.74] (helo=submission03.runbox) by mailtransmit02.runbox with esmtp (Exim 4.86_2) (envelope-from ) id 1rc274-0004fP-UZ; Mon, 19 Feb 2024 12:47:11 +0100 Received: by submission03.runbox with esmtpsa [Authenticated ID (641962)] (TLS1.2:ECDHE_SECP256R1__RSA_SHA256__AES_256_GCM:256) (Exim 4.93) id 1rc26u-008CDH-Ux; Mon, 19 Feb 2024 12:47:01 +0100 Date: Mon, 19 Feb 2024 11:46:53 +0000 From: Steve George To: guix-devel@gnu.org Cc: r0man , Reilly Siegel , Maxime Devos Subject: Proposal to turn off AOT in clojure-build-system Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Received-SPF: permerror client-ip=2a0c:5a00:149::26; envelope-from=steve@futurile.net; helo=mailtransmit05.runbox.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -8.94 X-Spam-Score: -8.94 X-Migadu-Queue-Id: 22747547A0 X-Migadu-Scanner: mx13.migadu.com X-TUID: y5lYkbxDoCPN Hi, Guix's clojure-build-system turns on AOT compilation by default. I would like to advocate that 'as a distributor' we should *not* ship Clojure code AOT'd, so we should change the default. This has been discussed previously. In #56604 r0man noted that AOT compilation should not be on by default [0], Reilly makes the same point in #53765 [1]. Maxime makes the point that where a compiler is available it should be used [2] and that if it doesn't work it's a bug: "if a Clojure library misbehaves when AOT-compiled, without additional context, that seems like a bug in the Clojure library to me (or the AOT-compilation code). The perspective in the Clojure community is quite different from Guix's on a number of fronts. There's not much discussion about offline builds, reproducibility or code coming from Distributions. The internalised perspective is that you use the build tools to download libraries directly from Clojars (a Maven repo) and developers create a final uberjar for production usage Consequently, there is no specific statement saying 'Distributors should not AOT libraries' that I can point to. But, I would like to draw attention to this thread on Clojureverse as the best source I could find: Alex Miller is the main community manager for Clojure, and is a maintainer of the core libraries, so his perspective is key. He notes that, AOT code is tied to *specific versions of Clojure*: "AOT'ed code is that it is inherently the product of a particular version of tthe Clojure compiler ... I would recommend NOT AOT compiling libraries" [4] In the same thread thheller, who is the maintainer of the most popular ClojureScript tooling, notes you cannot mix AOT and non-AOT libraries [5]: "you cannot just ship your library AOT compiles as it would also contain clojure.core. Clojure AOT current ... can not load clj files from .class files. So AOT produces the class files and will fail if one of the dependent classes is missing although the .clj file is present" I believe this means that with AOT code on, any user who installs a different version of Clojure from the one that we used to AOT the libraries *may* have problems. And, that we can't have trees where some part is AOT'd but a dependency is not. Finally, there is no expectation in the Clojure community that this is a bug, consequently it will not be fixed. Therefore, we should change to default to AOT off. What do people think, does this make sense? Thanks, Steve / Futurile [0] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=56604#5 [1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=53765#290 [2] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=53765#293 [4] https://clojureverse.org/t/deploying-aot-compiled-libraries/2545/6 [5] https://clojureverse.org/t/deploying-aot-compiled-libraries/2545/3 [5] https://gist.github.com/hiredman/c5710ad9247c6da12a99ff6c26dd442e