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 OLmoFejStWBu/QAAgWs5BA (envelope-from ) for ; Tue, 01 Jun 2021 08:25:44 +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 0IDuEOjStWCCCQAA1q6Kng (envelope-from ) for ; Tue, 01 Jun 2021 06:25:44 +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 EB389152E3 for ; Tue, 1 Jun 2021 08:25:43 +0200 (CEST) Received: from localhost ([::1]:45194 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lnxqQ-00035H-LK for larch@yhetil.org; Tue, 01 Jun 2021 02:25:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35414) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lnxqG-000355-Mx for guix-devel@gnu.org; Tue, 01 Jun 2021 02:25:32 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:23857) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lnxqA-0006s0-EH for guix-devel@gnu.org; Tue, 01 Jun 2021 02:25:31 -0400 Received: from [10.0.0.4] (62-116-34-49.adsl.highway.telekom.at [62.116.34.49]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4FvMbL01vqz3wYT; Tue, 1 Jun 2021 08:25:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1622528718; bh=Frf6gRIVAHEzg3skTaYcsp0M++Fd6cEoqzq4P52omTw=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=kmLUK71pTl330YP6wu6V04jhgBk18BN693pJzRvWwo2RbAfFgN5DCLMZLWsc5BtXG rBo10F0m9TYbAV1/XRkMshJKt9x68bk3OVl8hkD2ki9roqG2NSL3guKRrhHCloF1tI H07RJYd9puKLAhmfvKnt6F9oJiUnmnvYgi/5/hqU= Message-ID: Subject: Re: Idea: a meta language for (language) build systems - npm, Racket, Rust cargo From: Leo Prikler To: Pjotr Prins , Konrad Hinsen Date: Tue, 01 Jun 2021 08:24:51 +0200 In-Reply-To: <20210531174748.mhaelcqwmo7degfc@thebird.nl> References: <20210530083847.o5ej63obqnzpwnbd@thebird.nl> <20210531174748.mhaelcqwmo7degfc@thebird.nl> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 Received-SPF: pass client-ip=129.27.2.202; envelope-from=leo.prikler@student.tugraz.at; helo=mailrelay.tugraz.at X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.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=1622528744; 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=Frf6gRIVAHEzg3skTaYcsp0M++Fd6cEoqzq4P52omTw=; b=fYEk+C/V92Eb8UpCGI8UscfbA8QYxeCWlH7MBP15B9YhQq8TkQwyOoqJ43ac/dC/RY1vkK Ls04sC5+donuTlaiQ0lT6Y699R8cdpnEg+9x6EbmKooUIM0NnewNhy1cNElHamfqET8/s7 f+jt9B1M5zNANVV5Oc+TXoqH2oaxaVgk8wTgkzAj3+zJ/3jzOBkckgWtolvfL+yszZ3kle vCqcPPvQslafyjen3AOCrhUWshj5FwNh25RbinreA69UOzvvRFufo9inTlBi9MWe16jATW KuEJidehbHWm6mlAfH/y4PwP91s3ZMw7f2UEO+xS83nenbi1y3QqYZSp+SU6FA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1622528744; a=rsa-sha256; cv=none; b=j8aID4wxjGwGWiX3uI0IdcQuMeWyz+ZHyDBj/xUWKOeJtVHofJ5K/m9GhvGHDY2r3vnLXw Q97SMvG4dLeclsS9wHiAp8omGaXAivMlCiq9Sj3eswFhzJHlBS3Y6XLBZbsPgalWo++9Mf OdnpyZ36ZKla63xfTOq8lUfWT0n01FFrScI86qwhUkXJkVckItXc3p9Q3LU8fNkAgyIC/j lEc8Ob8fheqvX4sDTNMcblnlmF240dw5m2oEGx9koRqYEdrZ+fGNzZ7Q9JwnkvT50h7S0L nHlO1AlgJ3c0IgUOO/wFdhvXHiZXZweC1wxJUuN68HoDqrH044rYJZf+Kdmc7Q== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=tugraz.at header.s=mailrelay header.b=kmLUK71p; dmarc=pass (policy=none) header.from=student.tugraz.at; 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: -3.13 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=tugraz.at header.s=mailrelay header.b=kmLUK71p; dmarc=pass (policy=none) header.from=student.tugraz.at; 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: EB389152E3 X-Spam-Score: -3.13 X-Migadu-Scanner: scn0.migadu.com X-TUID: h6AbBaDdHBvj Am Montag, den 31.05.2021, 19:47 +0200 schrieb Pjotr Prins: > On Sun, May 30, 2021 at 09:17:20PM +0200, Konrad Hinsen wrote: > > How about pushing all the other package manager towards producing > > sexp-packs, and helping them to get there? > > I have a feeling they won't be that interested ;). I do think some of them are interested, but you're right in that the industry as a whole is not. > My thoughts are that every software package simply consists of files > that need to be compiled (if not interpreted) and be copied in place. That is the case, but surely you aren't suggesting to implement all build systems in terms of copy-build-system, right? :P > As Guix takes care of the first and the last - the issue centers > around building. The idea is to dress down these language specific > builders, such as cargo, so you don't have all the included > complexity. The thing with complex systems is that you will still have complexity no matter how you look at them and cargo is such a system. The only way to not see that complexity is to ignore it because your build succeeds, and I'm sure Rust, npm, etc. users (read: victims) are physically trained to clear their mind from such heathen thought. > A sexp-pack would represent the most simple build instructions to > build a package on its own. Now, of course the current guix-builders > solve that too. But, what I am proposing is to split out the actual > build step into a package definition, so as to present something > simpler to Guix. I don't think this would be simpler to Guix, you'd just create even more packages, that actually aren't usable. > I found a cargo -> ninja converter. It is that kind of idea. Guix > would use ninja with rustc instead of cargo. A stripped down cargo > could potentially work too - but cargo is a complex beast. The problem with rust+cargo is not just that cargo isn't make or ninja (although that is certainly a part of it), it is also that any make/ninja port would have to somehow take care of all the other things that cargo does. It doesn't shake the ginormous dependency trees for example. This is not to say, that rustc+ninja is not worth pursuing. If the output of rustc+ninja had some nice property, e.g. it was a shared library, that could be reused, we might still want to rewrite rust- build-system in terms of it. In a similar manner, Guix people are currently looking towards Rome to perhaps simplify node-build-system or erect a new build system next to it. Small rant w.r.t. #:skip-build?, this flag is a hack and everyone involved knows it and we ought to find a way to actually build rust crates in a manner that doesn't require complete source closure for the next rust-thingy to use it. > A simplified build step would make it easier to troubleshoot these > packages. I think I'd personally rather deal with the output of make or ninja over that provided by rust/cargo 9 times out of 10 if that is what you're going for, but different strokes for different folks. We don't want to alienate all the people actually using Rust on Guix by taking away their favourite error message :P Regards, Leo