guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Guile 3 migration plan


From: Ludovic Courtès
Subject: Guile 3 migration plan
Date: Thu, 16 Jan 2020 11:08:15 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hello Guix!

Today is Guile 3 day, a day to celebrate, woohoo!  \o/

How will Guix migrate to Guile 3?  That’s a threefold process:

  1. We must first migrate packages.  I propose to rename “guile-next”
     to “guile” today, such that “guix install guile” will now install
     Guile 3 (no mass rebuild involved: the “default” Guile remains
     2.2.)

     The downside is that if you run “guix install guile guile-json”,
     you’ll get Guile 3 with Guile-JSON for 2.2; instead, you have to
     explicitly select “guile3.0-json”.

     I propose renaming all the “guile3.0-” packages to “guile-”, and
     all the “guile-” packages to “guile2.2-” as a second step, which
     will address this issue.  This could be done within a few days or
     weeks.

  2. We must be able to run Guix itself on Guile 3.  This is already
     possible if you add “3.0” to the ‘GUILE_PKG’ invocation in
     ‘configure.ac’, but there are still a few test failures that I’ve
     been working on.  Almost all of them relate to the use of ‘@@’ and
     ‘mock’, which do not work with Guile 3 “declarative modules”.

     In many cases, it’s an opportunity to clean up our tests; see for
     example 4aea90b1876179aab8d603a42533a6bdf97ccd3c and the preceding
     commit.  It should be possible to be done real soon!

     Once we’re done, we can change (guix self) so that ‘guix pull’
     pulls Guix on Guile 3.

  3. Change ‘default-guile’ to point to Guile 3 in ‘core-updates’, and
     switch all the packages that consume .go files coming from
     ‘with-imported-modules’ to Guile 3, in particular ‘shepherd’ and
     ‘mcron’.

Thoughts?

You can celebrate Guile 3 day by helping out any of these!  Let’s
synchronize here and on IRC!  :-)

Ludo.’



reply via email to

[Prev in Thread] Current Thread [Next in Thread]