From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id yKPpGJUd/WI/zwAAbAwnHQ (envelope-from ) for ; Wed, 17 Aug 2022 18:55:49 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id qJO7F5Ud/WJxcwAAG6o9tA (envelope-from ) for ; Wed, 17 Aug 2022 18:55:49 +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 1A106A2EB for ; Wed, 17 Aug 2022 18:55:49 +0200 (CEST) Received: from localhost ([::1]:32904 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oOMKa-0007tb-BA for larch@yhetil.org; Wed, 17 Aug 2022 12:55:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50228) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oOLoe-000217-Up for guix-devel@gnu.org; Wed, 17 Aug 2022 12:22:48 -0400 Received: from mail-vs1-xe34.google.com ([2607:f8b0:4864:20::e34]:38556) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oOLod-0006PB-3Q for guix-devel@gnu.org; Wed, 17 Aug 2022 12:22:48 -0400 Received: by mail-vs1-xe34.google.com with SMTP id n125so7380110vsc.5 for ; Wed, 17 Aug 2022 09:22:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc; bh=6k5l9e1nQ9KMq7wH9SUyyc42iwfieOqs4L18CO88t+U=; b=Su4cpC5+AdYO/4NPYTfju/BF4PWCjFl1LQVhe8wGucgMYXhsiys8H+oZKNbg58U30z nl7I3xDhmPZSCI0ZvrgrnWbEgRl1pStfCKCjz6DiTRhbv8Ry7FX0BHzfQbON3qVR8tmB e0M2+jJRnvMkUz5BYp/DDMWTE4eFQ+2E6xeg1Oq0H4TqxGam0ruUXcVXCDjk9qlTLExb qzqBWfLif0LSwyu6d/5V7MV9BDIEPzIJSRP4Rfv02hSQvldQJoma6WVAphKM/SqWCZow x1L6n2RBV7nnBQ10A777fVRZzyX8vn+yWiBlWhAcUFtoMeK0nB95euPdwQG3Lf1+zDkV YqMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc; bh=6k5l9e1nQ9KMq7wH9SUyyc42iwfieOqs4L18CO88t+U=; b=HohBmqRaO/UJgxL7YBiTAseDc9LnAgEHMw+gLvGPxG2jTUvQKfgVz1yBkSOomJ8+Yu kF9uPREkXB7T6ep4rnD/XQvmRc9+bzDhSF1CtVBb59Q8WHuHbKRoP8LvvUZrJYPwPewy EjLUFV6VLtGgiUlYOQKW2LeKUQp/KCiGmbf2MqP/4ibhTKitP/A1s9FtXVq8tbzGcwXy ckqjkkr3+QF3SEk/KTxTddNUyT4J/bxmTHCxaUyVOlydvCoCRnOtQcSB0KzsnuxAcg2W 4BWGEIcb2KXlIGYWeEnQaV+/q6K8vekeDtBsMKGfzpIud4RMHZDMmaN9/Cdr5g7MQ3FR 6etA== X-Gm-Message-State: ACgBeo2ASP20AGesp0S+qdfKNwUDS1kLILYjiPE2H7cUroEM4pwaar1I 55w4LR5zLDU8NgxMeTRufqkgTjkSHG6aBHeVlKPtGZcp X-Google-Smtp-Source: AA6agR4N5XqKiriqHf8h+ZQAr3T5JV77aIRm1zt5dbVFLbVqu0N2WQiO8YHl3QvMLE6KZQ8I3poDcRNto1eIVKDbQRk= X-Received: by 2002:a05:6102:2409:b0:38a:d474:301e with SMTP id j9-20020a056102240900b0038ad474301emr6945054vsi.11.1660753365316; Wed, 17 Aug 2022 09:22:45 -0700 (PDT) MIME-Version: 1.0 References: <33556713-c85b-ab0f-554e-94a40f9d418e@telenet.be> In-Reply-To: From: =?UTF-8?Q?Aleix_Conchillo_Flaqu=C3=A9?= Date: Wed, 17 Aug 2022 09:22:34 -0700 Message-ID: Subject: Re: (ice-9 base64)? To: Guix-devel Content-Type: multipart/alternative; boundary="0000000000006639f805e6724672" Received-SPF: pass client-ip=2607:f8b0:4864:20::e34; envelope-from=aconchillo@gmail.com; helo=mail-vs1-xe34.google.com 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Wed, 17 Aug 2022 12:54:56 -0400 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" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1660755349; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=6k5l9e1nQ9KMq7wH9SUyyc42iwfieOqs4L18CO88t+U=; b=SQXDcSD7/bgvQ0g7SVCIQt5LjrYfw9ubrTF1GBH2UPRx01L/eRlJugufXaTKBWGeIinS1J nAV/oCtKNPRF4IyQs3nu/twSi7LAeBGXfuIFhz9aMPE8F++7I/AdyYZoYYblPcUnPwcxj5 G/yBa+RYW8AdrUQIIITa4wVcrgsQ/9nE/NVmrAn8Z1Eqmx+QYoM3nvHx7bjN6d809BpPf4 TdVFFZvSs2f7cgCU31QHcLIaGO29EsC3t7tJ0C3+YWf21aFwBR4aei5ZLN5CNc3Wng2tbe nMyTMkufxyq/PbfFJokou4W0AIsRUgj1JB+LmfFHXJTlttW+C5R1U9EDfYEqnQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1660755349; a=rsa-sha256; cv=none; b=WO/AbRlmSQ4TDPyvMQMll9DLsvvzifGGvaW65xUbFSzDRvNysfSuyKrpy44cOonztKNYPv rHCiParRrfFhGrxA6l0+xzrwJAqqVPLkvx372fldg04LZF6pwuYwjqfkB6C7h73sbwm2QH JKn6ysOZUz/3hRSunsX6/fumITdrBU/SVDMbehEQWt/SBsLP0Z1v0tDSclIn2/DzoVWEB2 B/4pubJE1lVWwiDqZlIQ93F0d74RI7L0emS3mABfCIsSZpHSa/LpRac3xRNA6Sr/B8A9F6 mfKMG8X3e6onox9yLUSLNNVjRYhWdyBikHp6kaU+lEyTb5519Ph1bNbKA7vOkg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=Su4cpC5+; dmarc=pass (policy=none) header.from=gmail.com; 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" X-Migadu-Spam-Score: -1.36 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=Su4cpC5+; dmarc=pass (policy=none) header.from=gmail.com; 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" X-Migadu-Queue-Id: 1A106A2EB X-Spam-Score: -1.36 X-Migadu-Scanner: scn0.migadu.com X-TUID: /74ZPtnbgcVi --0000000000006639f805e6724672 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Maxime! On Tue, Aug 16, 2022 at 12:04 PM Maxime Devos wrote: > > On 16-08-2022 19:21, Aleix Conchillo Flaqu=C3=A9 wrote: > > > > On Tue, Aug 16, 2022 at 9:59 AM Maxime Devos > wrote: > >> >> On 16-08-2022 18:10, Aleix Conchillo Flaqu=C3=A9 wrote: >> >> Hi, >> >> In many projects I've been copying G=C3=B6ran Weinholt's base64 >> implementation and I've also seen it in other projects, would it make se= nse >> to include it in Guile's standard library? [...] >> >> If we do this, we should contact the various other projects to make them >> use (ice-9 base64). >> > > I think they could switch whenever they want (i.e. whenever this was adde= d > to Guile) or even not switch at all. > > Sure, but they can't switch if they don't know about it. And if they don'= t > know about it and hence don't switch, the proposal fails at its purpose o= f > unbundling base64. Besides, we need them to switch (see Guix no-bundling > policy and the reasons behind it) -- if upstream refuses to unbundle, the= n > in our locally modified version for Guix. > Forgive my ignorance, but what do you mean by unbundling? I'm not familiar with Guix at all, well, just conceptually and for trying a few commands years ago. > > But you are right that this would cause a backward compatible problem, bu= t > I guess that would depend on each project. Can we do conditional module > loading? I've done this in the past with Python... if we are in Python 2 > load this module, otherwise load this other one. So projects could do tha= t. > > Yes, using resolve-module with #:ensure #f & module-ref. Or with syntax > tricks and (version), to decide things at compile-time. Still, if you do= a > conditional module loading, you still need a fallback, and the fallback > would still be bundling. > Cool, thanks! Again, I need a description for unbundling :-(. > Whether we simply replace (guix base64) by (gcrypt base64) depends on how >> old (gcrypt base64) is compared to the earliest 'supported' Guix for >> pull/time-travel, but even if it is not present in the old gcrypt, we ca= n >> work-around that (we have a 'fake-gcrypt-hash' in build-aux/build-self.s= cm, >> so we can easily have a (define gcrypt-base64 [some copy])). Or simply >> update the local guile-gcrypt in buid-aux/build-self.scm. >> > guile-gcrypt base64 is pretty new with the patch above (but no release > after that), I have no idea if Guix has added anything else. > > base64 is available in at least 0.3.0, which is packaged in Debian > bullseye (which is considered "stable"), so not too new, though we might > need to change build-aux/build-self.scm if 0.1.0 doesn't have base64. Gu= ix > appears to have the pre-quoted-patch version, without changes of its own > except for a different module name. > One more time, forgive me, but what is build-aux/build-self.scm? > OTOH a similar replacement can be done for (ice-9 base64), but >> transitioning to (ice-9 base64) would take much longer, at least until t= he >> various distributions are updated to a Guile that has (ice-9 base64), >> whereas (gcrypt base64) could be switched to immediately. >> > Maybe this could be handled by each project independently. > > They wouldn't have to if the base64 module is put in (guile gcrypt). > > > And the last forgiveness... (guile gcrypt)? Aleix --0000000000006639f805e6724672 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Maxime!

On Tue, Aug 1= 6, 2022 at 12:04 PM Maxime Devos <maximedevos@telenet.be> wrote:
=20 =20 =20


On 16-08-2022 19:21, Aleix Conchillo Flaqu=C3=A9 wrote:
=20


On Tue, Aug 16, 2022 at 9:5= 9 AM Maxime Devos <maximedevos@telenet.be> wrote:


On 16-08-2022 18:10, Aleix Conchillo Flaqu=C3=A9 wrote:<= br>
Hi,

In many projects I've been copying G=C3=B6ran Weinholt's base64 implementation and I've also se= en it in other projects, would it make sense to include it in Guile's standard library? [...]

If we do this, we should contact the various other projects to make them use (ice-9 base64).


I think they could switch whenever they want (i.e. whenever this was added to Guile) or even not switch at all.

Sure, but they can't switch if they don't know about it. And= if they don't know about it and hence don't switch, the proposal fails at its purpose of unbundling base64. Besides, we need them to switch (see Guix no-bundling policy and the reasons behind it) -- if upstream refuses to unbundle, then in our locally modified version for Guix.


Forgive= my ignorance, but what do you mean by unbundling? I'm not familiar wit= h Guix at all, well, just conceptually and for trying a few commands years = ago.

But you are right that this would cause a backward compatible problem, but I guess that would depend on each project. Can we do conditional module loading? I've done this in the past with Python... if we are in Python 2 load this module, otherwise load this other one. So projects could do that.
Yes, using resolve-module with #:ensure #f & module-ref. Or with syntax tricks and (version), to decide things at compile-time.=C2=A0 Still, if you do a conditional module loading, you still need a fallback, and the fallback would still be bundling.

Cool, thanks! Again, I need a description for unbundli= ng :-(.

Whether we simply replace (guix base64) by (gcrypt base64) depends on how old (gcrypt base64) is compared to the earliest 'supported' Guix for pull/time-trav= el, but even if it is not present in the old gcrypt, we can work-around that (we have a 'fake-gcrypt-hash' in build-aux/build-self.scm, so we can easily have a (define gcrypt-base64 [some copy])).=C2=A0 Or simply update the local guile-gcrypt in buid-aux/build-self.scm.

guile-gcr= ypt base64 is pretty new with the patch above (but no release after that), I have no idea if Guix has added anything else.

base64 is available in at least 0.3.0, which is packaged in Debian bullseye (which is considered "stable"), so not too = new, though we might need to change build-aux/build-self.scm if 0.1.0 doesn't have base64.=C2=A0 Guix appears to have the pre-quoted-pa= tch version, without changes of its own except for a different module name.


One more time, forg= ive me, but what is build-aux/build-self.scm?

OTOH a similar replacement can be done for (ice-9 base64), but transitioning to (ice-9 base64) would take much longer, at least until the various distributions are updated to a Guile that has (ice-9 base64), whereas (gcrypt base64) could be switched to immediately.

Maybe this could be handled by each project independently.

They wouldn't have to if the base64 module is put in (guile gcrypt).


And the last forgiveness... (gu= ile gcrypt)?


Aleix
--0000000000006639f805e6724672--