From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id AMnzBl1+ZGcPBwEAqHPOHw:P1 (envelope-from ) for ; Thu, 19 Dec 2024 20:13:17 +0000 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id AMnzBl1+ZGcPBwEAqHPOHw (envelope-from ) for ; Thu, 19 Dec 2024 21:13:17 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=subvertising.org header.s=stigmate header.b=FAqENhU2; 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"; dmarc=pass (policy=reject) header.from=subvertising.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1734639197; 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:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=gLkgC1QAoXjyISYVHBkVmB4xmeQ2F5aRnxA2Lypt7I0=; b=fNYQ5a8e2mkceeTTDlzTlSmJtlZ6D4XvDA0DvMQOdCf6967ocMm4oW2NRkA/6aiSHR8DWm Z+UGS27bKrwJKhoL8E1PHe1Kqh0+KK4iExIS4GVTo0u1WCB+LGqViLeoZTVACwWTtMEiOq ApS6asTtJTwrysyDDzRvOqD3Tp/T6aPuDqy7p6pXgWwnz1cUKLAA380Mqp5Qa6wn6QqhDB M+BiaxzGilEpsFbbxlfKFYlqtCii02WY8IcQ5Z3OJOacsQsIHiR0TTlk/n0EFJAjAe2x7H 7J3dzWpzNtYt8nV9Nd6LzvEXjhV6uYKaDLe4YurpgefDRiJH6a0D1j+HiXbDoQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1734639197; a=rsa-sha256; cv=none; b=eUx3HNe9Mmo3TyqngvMeuF32Tc2IF2mcruI9+oNVLBPjrfhgWtRHNQUb2JmYh80013o0Us GWopslMGfERXs7yEjamdlu8E5ewFNInV0Bit2J3e4v+FUs5oadBfLHgKC7PFonhywGf7m2 1KjhU8Bp4WB2OmsODF1sRAGvNSqWFR6HTaujruNfwWOoMYA7cMaua2RFSjT64Lx4Tb5mnO YjdV3hy13En8yvtYfrIIK8cratmOgKgLjaMQ+g7GFjkfL2XaRQt8mPD0g48xffmbA3hZ8c eUoqaVah6MQ2BbrqQt/7Nj1WZr3RB6HAWJqE4SX+XYyMxZae6U+5qoJFWYm/NQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=subvertising.org header.s=stigmate header.b=FAqENhU2; 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"; dmarc=pass (policy=reject) header.from=subvertising.org 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 D79E988FA0 for ; Thu, 19 Dec 2024 21:13:15 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tOMsu-0004Jh-5Q; Thu, 19 Dec 2024 15:12:36 -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 1tOMso-0004JT-V6 for guix-devel@gnu.org; Thu, 19 Dec 2024 15:12:31 -0500 Received: from devianza.investici.org ([198.167.222.108]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tOMsl-0007zQ-Ad for guix-devel@gnu.org; Thu, 19 Dec 2024 15:12:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=subvertising.org; s=stigmate; t=1734639144; bh=gLkgC1QAoXjyISYVHBkVmB4xmeQ2F5aRnxA2Lypt7I0=; h=From:To:Subject:CC:Date:From; b=FAqENhU2Gub0MCI7U+uzdNXEfyoxJpNZbhlZRr4UYIPib/Vc7p1T4Mwz3mey7382P EkLg/cuMf2BA1mk2jOLpVGA/UfDti/ZVCmWz79JlS1Qei22KkMeF7zg0709XQdJ1dy B2xIWBa9pqFcS4ciX8nnty1M0YbM/WUQe2OLQgrQ= Received: from mx2.investici.org (unknown [127.0.0.1]) by devianza.investici.org (Postfix) with ESMTP id 4YDhY417K7z70RN; Thu, 19 Dec 2024 20:12:24 +0000 (UTC) Received: from [198.167.222.108] (mx2.investici.org [198.167.222.108]) (Authenticated sender: divya@subvertising.org) by localhost (Postfix) with ESMTPSA id 4YDhY32YC3z70RH; Thu, 19 Dec 2024 20:12:23 +0000 (UTC) From: Divya Ranjan To: guix-devel@gnu.org Subject: On a Guile-based Build-Tool complimenting Guix User-Agent: Gnus/5.13 (Gnus v5.13) CC: pjotr.public12@thebird.nl Date: Thu, 19 Dec 2024 20:12:21 +0000 Message-ID: <87wmfvo2je.fsf@subvertising.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=198.167.222.108; envelope-from=divya@subvertising.org; helo=devianza.investici.org 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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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.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-Scanner: mx11.migadu.com X-Migadu-Spam-Score: -9.73 X-Spam-Score: -9.73 X-Migadu-Queue-Id: D79E988FA0 X-TUID: TD8m1kYKqeBC Hello Guix, The other day, after being frustrated of build systems (auto-tools, meson, = maven etc.), I wondered why doesn=E2=80=99t Guix which has such powerful to= ols within it (`guix build`, `guix pack` etc.) also not have a purely Guile= -based build tool? After all, our goal is to make deployment, and building = both more declarative and away from the all-too-familiar =E2=80=9Cdependenc= y hell=E2=80=9D. I am not exactly sure how I want to go with this, but I want to extend (if = needed) the capabilities of Guix, to allow the developer of a package to us= e it also to build the package effectively replacing existing build tools. = Since we already have build-system, instead of executing make (or whatever = other tool) commands from it, we could modify it to itself have all those t= hings that a Makefile would have. The developer would use Guile to declare their build config, I am again not= sure what this might exactly look like, but can=E2=80=99t we have it such = that we provide the developer with some tools to _declare_ a custom and pac= kage-specific build-system in Guile (just like our familiar gnu-build-syste= m), but this is purely in Guile and executes whatever commands, path declar= ations and other interactions (such as calling gcc) directly from Guile and= not by just calling `make`. I haven=E2=80=99t thought through this clearly= , but even if this doesn=E2=80=99t work, the main idea I=E2=80=99d like to = propose is to fully replace existing build-tools by making a new Guile buil= d tool to work alongside Guix. Ideally, once the developer has a build config ready, one can just wrap it = up with a package definition in Guile, just like the ones we create to pack= age something upstream. This package definition can then be used in `guix b= uild -f package.scm` to result in a fully transactional building process th= at focuses not on getting out of dependency hell, but just declaring your c= onfig right. And all of this without having to learn yet another build tool= that might disappear, and of course, without leaving the comfortable world= of Lisp (Scheme). I was indicated by others that such an idea has previously been conceievd a= mong Guix developers themselves, namely as a GSoC proposal[0]. I couldn=E2= =80=99t find if that has progressed towards anything, nor could find anythi= ng in the mailing list. I did see Pjotr volunteering to mentor for it, I=E2= =80=99ve CC-ed them to see if they=E2=80=99re still interested in such a pr= oject. Meanwhile, I=E2=80=99d like input from other Guix core developers on= what they think of this, and if they could provide me with some leads on w= here to go with this. [0]: https://libreplanet.org/wiki/Group:Guix/GSoC-2024 Regards, --=20 Divya Ranjan, Philosophy, Mathematics, Libre Software.