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 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.
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.
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.
Greetings, Maxime.
OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key
OpenPGP_signature
Description: OpenPGP digital signature