On Tue, Aug 16, 2022 at 9:59 AM Maxime Devos <maximede...@telenet.be> wrote:

>
> On 16-08-2022 18:10, Aleix Conchillo Flaqué wrote:
>
> Hi,
>
> In many projects I've been copying Göran Weinholt's base64 implementation
> and I've also seen 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.


> I think it would be simpler though to consider the base64 in guile-gcrypt
> to be 'canonical', it would avoid problems with old versions of Guile not
> having the base64 module and newer version having it, which would prevent
> using the proposed (ice-9 base64) in Guile because it would break
> build-aux/build-self.scm when pulling or time-machining from old Guix that
> have an old Guile.
>
>
I've been waiting on a guile-gcrypt release for a while now (Ludo,
Chrisitine... any help here? :-) ).  I ported guile-jwt to use guile-gcrypt
but I need a release to have latest base64 changes:

https://notabug.org/cwebber/guile-gcrypt/commit/f8934ec94df5868ee8baf1fb0f8ed0f24e7e91eb

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.

> 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 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])).  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.


> 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.

Best,

Aleix

Reply via email to