From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id IO7rBclBbmcTBQEAe85BDQ:P1 (envelope-from ) for ; Fri, 27 Dec 2024 05:57:29 +0000 Received: from aspmx1.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id IO7rBclBbmcTBQEAe85BDQ (envelope-from ) for ; Fri, 27 Dec 2024 06:57:29 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=disroot.org header.s=mail header.b=e7LvAN+V; 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=disroot.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1735279048; 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=uGi3jxpl0T81bjP4Mx7Bo8PruCw7P3NOK7FhOlqFQl4=; b=kWDXoWzDtl5npTgxPFIVLPGuNHWZ9cHXX/KTlkL1bY8tJkw9lSvMWlXmZOkuLeeWw35ejJ s8EosBeM2vwihGUWDfoQZVQqCgn0dPuucuKvQ+KsWwhkAuZjTJ9XS9tqeGdZzG29bwjsSA hzUxCO5I5ZMsc6cqKKHIutqxfrcPZfZxAquU03lETuVEeuNCoiDMb7Ni61CtYhTK1iiPfV sKLV4hpU1QoLR2/ckMXZNPWRS51M9nqV8KMgWxgsjwaT4QHfp8E2LOiKSw9bohsIM0L1Aq e/PRlAVJlQu8YqC7qtdWnJiUo8BocsdXWoL8yIXrZGhGrJWXDiDQgMmJ65eaxA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=disroot.org header.s=mail header.b=e7LvAN+V; 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=disroot.org ARC-Seal: i=1; s=key1; d=yhetil.org; t=1735279048; a=rsa-sha256; cv=none; b=B53Z5ZdIj2ZC6Qv8rBjRoEyBaYngOzdUa7vIo/aBbDT4ufKSRdcJjOg65JazXsAB91hEQU V7olirKeqA5FU+4rixHBzpkCYPf719zPJypD9VvCLdOS8/O76Jaqkl+ZNtfNReq6yZMdca Yp/MQdgxtVeGGBUbgMDCcwccXW+kO2leJ4cIgeRvcClGheK493rusWsEAbR65LG9VZRc7g MwbT5mX4Zk3a6OJYinEm5ILrqVnrwcay0HCx8VswgpMLUrWlmAkBrE8PE4YxQsJtmZJJwJ F9Emr1OzPjpR5ot6K5nNP72hLzb3a7I2XaOEvel1mfBZA0KSuuv3usL5dAoIGg== 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 B05179FE60 for ; Fri, 27 Dec 2024 06:57:28 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tR3L0-0007uz-Cy; Fri, 27 Dec 2024 00:56:42 -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 1tQyQG-00051d-A3 for guix-devel@gnu.org; Thu, 26 Dec 2024 19:41:48 -0500 Received: from layka.disroot.org ([178.21.23.139]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tQyQC-0003II-D7 for guix-devel@gnu.org; Thu, 26 Dec 2024 19:41:48 -0500 Received: from mail01.disroot.lan (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id 7377125C4F; Fri, 27 Dec 2024 01:41:41 +0100 (CET) X-Virus-Scanned: SPAM Filter at disroot.org Received: from layka.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id H2f2OgAq_kGH; Fri, 27 Dec 2024 01:41:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1735260096; bh=uGi3jxpl0T81bjP4Mx7Bo8PruCw7P3NOK7FhOlqFQl4=; h=Date:Subject:To:References:Cc:From:In-Reply-To; b=e7LvAN+V9qMlG1tT1MSSNUBV30oSYSFdn5z+AMRGUA5brschBnqoWch1z7JZy4VYO DqHn6JY/HOmaEBh2pPTz3zajOMEVxW9QOuYPHS3XouBSirc9on1oz48op0dhvd2iM1 4hiQypQlGJYt7dSIyvXBPGWv7cRsPqArCag5n3yO1qWYjKcVTWXIiT87ttih8fZHZB leEbjabNFqNlV2JUdVj2ZgvL1l1Bswy48f3iBLkkYp4fyI5IWItvURuC/EiwcAn2eq D3ZSAArKMWZPc9TSVoyl0rERdz9If++EAZhUTH4xwWQzuNply2Yt3HT4O47yUCVI3a /DJWvW7fGSt8Q== Message-ID: Date: Fri, 27 Dec 2024 02:41:33 +0200 MIME-Version: 1.0 Subject: Re: On a Guile-based Build-Tool complimenting Guix To: Divya Ranjan References: <87wmfvo2je.fsf@subvertising.org> Content-Language: en-US Cc: guix-devel@gnu.org From: Fi In-Reply-To: <87wmfvo2je.fsf@subvertising.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=178.21.23.139; envelope-from=lapearldot@disroot.org; helo=layka.disroot.org X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Fri, 27 Dec 2024 00:56:40 -0500 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-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -8.82 X-Spam-Score: -8.82 X-Migadu-Queue-Id: B05179FE60 X-Migadu-Scanner: mx10.migadu.com X-TUID: XNikTZ0jkEOD I was thinking this the other day!, was wondering about how useful a guile interface to meson would be. On 19. 12. 24 22:12, Divya Ranjan wrote: > Hello Guix, > > The other day, after being frustrated of build systems (auto-tools, meson, maven etc.), I wondered why doesn’t Guix which has such powerful tools 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 “dependency hell”. > > 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 use 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 things 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’t we have it such that we provide the developer with some tools to _declare_ a custom and package-specific build-system in Guile (just like our familiar gnu-build-system), but this is purely in Guile and executes whatever commands, path declarations and other interactions (such as calling gcc) directly from Guile and not by just calling `make`. I haven’t thought through this clearly, but even if this doesn’t work, the main idea I’d like to propose is to fully replace existing build-tools by making a new Guile build 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 package something upstream. This package definition can then be used in `guix build -f package.scm` to result in a fully transactional building process that focuses not on getting out of dependency hell, but just declaring your config 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 among Guix developers themselves, namely as a GSoC proposal[0]. I couldn’t find if that has progressed towards anything, nor could find anything in the mailing list. I did see Pjotr volunteering to mentor for it, I’ve CC-ed them to see if they’re still interested in such a project. Meanwhile, I’d like input from other Guix core developers on what they think of this, and if they could provide me with some leads on where to go with this. > > > [0]: https://libreplanet.org/wiki/Group:Guix/GSoC-2024 > > Regards,