From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:306:2d92::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id 6HjLDzutzWTlPQEASxT56A (envelope-from ) for ; Sat, 05 Aug 2023 04:00:27 +0200 Received: from aspmx1.migadu.com ([2001:41d0:306:2d92::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id IMPLDzutzWTISAEA9RJhRA (envelope-from ) for ; Sat, 05 Aug 2023 04:00:27 +0200 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 8A9FE35E7C for ; Sat, 5 Aug 2023 04:00:25 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=riseup.net header.s=squak header.b=dXc5nQ5H; 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=none) header.from=riseup.net ARC-Seal: i=1; s=key1; d=yhetil.org; t=1691200827; a=rsa-sha256; cv=none; b=FbwvTG3nFgJdLhQW/Cnf0UABPCitfCL03IzWMWJYGipS89cWar2C8WDF2IwIwql6JJ+X+8 sscmiA809yaT1sQ5067tA6osdMx+A9rmOQhag+LHPKa2cjeC+gZAXflZaRPsGfZkBS2sIP Mp26RBXinOJmr7w9dNR5IpgsRRYCCaVXFmIer2rYDO50bA9mT1tiCkzEOwiiFdp0wrc/2W kXXFzZ9Be8BKw9Ujyp39L6HwkUSsJUDb8YnGUQg8PcMTxVL+Rd558EMEKYPeKSbjfUu6DX fE/V+xmgzzdJ1p5VAAo6L2j1HBTQ0C5zpqSyAc5ubocsvR2el7NmQugUbYiAyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1691200827; 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:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=RRNVCuKel7NA5ymFv3TTZwYELGqObJHHDCicL+t0TVQ=; b=QeUgM6FCb1WGUwFCHgVu40R/t9KnBltguwnlnLH+wyubT9O7NdhVI1lUroA3BKcQtXH2fn inZw8jUtz4mxXbEk9LgMDaUgu5wNqTS7y9XrN4EVfLxnbaw/WYEG3pwN8ult2vXlBs53wX rHsw1otg7NiGDfZEIGD0jdMSgRTDPlW1gKBRQzZv+r4a+gErvja49A+OHqS2+aVEFJAofX uOo4V/RnjFjty3gLBwKAHGEH1Qsnr3lEtLiBZ17m06DdSGyzQUvSBRC4KuJoc+OmsJHdVh dSWRRaRI7e2zfPbR9CPWPRf45w9tpi+xGQ03592xydK3SwPtsGbyMzn3UvRoOA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=riseup.net header.s=squak header.b=dXc5nQ5H; 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=none) header.from=riseup.net Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qS6aC-0007sJ-Vn; Fri, 04 Aug 2023 21:59:57 -0400 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 1qS6aA-0007r8-2O for guix-devel@gnu.org; Fri, 04 Aug 2023 21:59:54 -0400 Received: from mx1.riseup.net ([198.252.153.129]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qS6a8-0000Rh-1S for guix-devel@gnu.org; Fri, 04 Aug 2023 21:59:53 -0400 Received: from fews02-sea.riseup.net (fews02-sea-pn.riseup.net [10.0.1.112]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx1.riseup.net (Postfix) with ESMTPS id 4RHm464TtYzDrFT; Sat, 5 Aug 2023 01:59:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1691200790; bh=Q1xQIJ/HdN2l38lp3eJC055e2+j06ClhRUoyQh6V2vs=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=dXc5nQ5HgmnklATtddt7L1RulpooKmtsDRm3RaivCnYMgdP2+i1HWFXz5tb2Kjk78 cFQjz+vgsUiLtWUemHBL1yJ7OF7HAvQjAZH3Mx1Bhqo/RsZ4ifNS5Apr1dsqZOCmA1 LnzBVpH8BPHSfVT489lB+MEtjDSPh9EV/l3EJ4mo= X-Riseup-User-ID: 0DCFB298E3D7B12731C7C89013B7FCAE732F64CE86C52137167F99F4F561B855 Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews02-sea.riseup.net (Postfix) with ESMTPSA id 4RHm456WSxzFq38; Sat, 5 Aug 2023 01:59:49 +0000 (UTC) References: <875y662lmg.fsf@riseup.net> <874jlk2yeq.fsf@disroot.org> From: Distopico To: "(" Cc: guix-devel@gnu.org Subject: Re: Guix and the developer ecosystem Date: Fri, 04 Aug 2023 20:49:30 -0500 In-reply-to: <874jlk2yeq.fsf@disroot.org> Message-ID: <87h6pemep8.fsf@riseup.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Received-SPF: pass client-ip=198.252.153.129; envelope-from=distopico@riseup.net; helo=mx1.riseup.net 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_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=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-Spam-Score: -11.78 X-Migadu-Scanner: mx2.migadu.com X-Migadu-Queue-Id: 8A9FE35E7C X-Spam-Score: -11.78 X-TUID: LZCi/35mmLo5 --=-=-= Content-Type: text/plain On 2023-07-31, "(" wrote: > Hi, > > Distopico writes: >> In terms of programming languages, I have found almost all the ones I >> needed, with the exception of Kotlin. > > The build sequence for Kotlin is some sort of hellish double > nightmare-loop of doooooooooooooom. As far as I'm aware, this is how > the main dependencies of Kotlin relate to each other: > > .---------------------. > | | > .-------------> gradle ------. V > | ^ | kotlin ------. > openjdk '----------' ^ ^ | > | | '-------' > '-------------------------------------' > > Fun! > Nice graphs, sound pretty complicate to solve that :/ >> In some languages like Haskell and GoLang, the language server depends a >> lot on the version it was compiled with. For example, I tried gopls, >> which is available in Guix, but it was built with Go 17 and is not >> compatible it. > > Ah, that'll be because Guix uses Go 17 for building Go programs, unless > you override the ``#:go'' keyword, but the latest version of Go it > provides is Go 20. I suppose it couldn't hurt to change it to be built > with the latest version. (We can't just make the default build Go be > 20, as that would require the CI to rebuild all Go packages.) > And that can be another problem, or it is indeed a real problem, going to a project that uses Go 1.7, but all the tools are built around Go 1.20. That's why I imagine something like having tools relative to their versions, so we can install gopls@0.11 and go@1.17 together because they are compatible. And if I switch to another project, I could install Go@1.15 and gopls@0.9.5. Currently, that is not possible, at least I haven't seen it in Go/Rust/Haskell in Guix. >> I have started contributing to packages that I believe could be useful, >> and I like to contributing to teams such as Haskell or Rust. However, >> there are other topics, such as compiler and tools compatibility, where >> I'm not entirely clear about the direction that has been planned. > > The problem with Haskell, Rust, and Elm is mainly, as lilyp has > said/implied, that while the dependency trees of C applications and such > typically resemble the following: > > O <-- O > O <-- O <-- O > O <-- O > > dependency trees for Rust, Haskell, and Elm look like this: > > / O > / O <-- O > | \ O > | > | / O > / O <-- O <-- O > | | \ O > | | > | | / O > | \ O <-- O > | \ O > | > | / O > | / O <-- O > | | \ O > | | > | | / O > O <-- O <-- O <-- O <-- O > | | \ O > | | > | | / O > | \ O <-- O > | \ O > | > | / O > | / O <-- O > | | \ O > | | > | | / O > \ O <-- O <-- O > | \ O > | > | / O > \ O <-- O > \ O > > Except in reality it's much much much much much worse. > > So it's not because that's not something we'd like to have, it's largely > because packaging such things is a royal pain and there aren't all that > many people with the motivation to do that. > And this is the current reality, and it will become more and more common, whether for better or for worse. Package managers make it so convenient to install dependencies, but it leads to an abuse in that regard. I could name many of the most widely used programming languages today that have the same problem: JavaScript, Python, Haskell, Rust, just to name a few. So, here is my question: Is there a future vision for this situation? Because it will become more and more common over time. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQFJBAEBCAAzFiEEvYwofabWO6y953lVmAk6gHJUa/MFAmTNrRMVHGRpc3RvcGlj b0ByaXNldXAubmV0AAoJEJgJOoByVGvzARQH/itGBCoZlDoAXprtfFiRLyaHRYGm hqWpGusyYfQTQUw9CTx9qU6diLt4gJ3Zr8iJ2mD09BgJFf6+kANF223GXYwcZA7s jsykZWw7f+hkCN7S1yX7VCVDtKVLxXX2gh1/nkbY6ndpiDKrxRqGwlz+cXEwOiVP kvmotoZfQ0NDS/4/6fVUn8A2i7vJ5mAefiVom0S3O7fpRlpqCXQxRV4ag/BhigIJ cl0kf3TLbOjmVqul9tBk53LFpYhvw6H+xCfFWfZGnU7ejBGgtGfZjYCUmqjKTr+3 CtYBGH2cwXAn0Pl/T4yXHuNZO091cB9Xug46FcJliKEtSdEnLdWWapxb/EY= =WC7o -----END PGP SIGNATURE----- --=-=-=--