guix-devel
[Top][All Lists]
Advanced

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

Re: Guile 3 migration plan


From: Ludovic Courtès
Subject: Re: Guile 3 migration plan
Date: Fri, 17 Jan 2020 22:48:58 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hello Guix!

Ludovic Courtès <address@hidden> skribis:

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

Good news everyone!  It builds and all the tests pass since
7b2a47a702b7393cd968640079f8703c932d1405, and commit
da7651806102d637253cb9f5677b96d6a178fc05 adds a “guile3.0-guix” package!

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

The attached patch does that, I tested it with “make as-derivation”.
I’ll do some more testing but unless I’m overlooking something, we can
apply it anytime now.

Ludo’.

diff --git a/guix/self.scm b/guix/self.scm
index 207e80d842..f883f14a2c 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -49,13 +49,13 @@
   (let ((ref (lambda (module variable)
                (module-ref (resolve-interface module) variable))))
     (match-lambda
-      ("guile"      (ref '(gnu packages commencement) 'guile-final))
-      ("guile-json" (ref '(gnu packages guile) 'guile-json-3))
-      ("guile-ssh"  (ref '(gnu packages ssh)   'guile-ssh))
-      ("guile-git"  (ref '(gnu packages guile) 'guile-git))
-      ("guile-sqlite3" (ref '(gnu packages guile) 'guile-sqlite3))
-      ("guile-gcrypt"  (ref '(gnu packages gnupg) 'guile-gcrypt))
-      ("gnutls"     (ref '(gnu packages tls) 'gnutls))
+      ("guile"      (ref '(gnu packages guile) 'guile-3.0))
+      ("guile-json" (ref '(gnu packages guile) 'guile3.0-json))
+      ("guile-ssh"  (ref '(gnu packages ssh)   'guile3.0-ssh))
+      ("guile-git"  (ref '(gnu packages guile) 'guile3.0-git))
+      ("guile-sqlite3" (ref '(gnu packages guile) 'guile3.0-sqlite3))
+      ("guile-gcrypt"  (ref '(gnu packages gnupg) 'guile3.0-gcrypt))
+      ("gnutls"     (ref '(gnu packages tls) 'guile3.0-gnutls))
       ("zlib"       (ref '(gnu packages compression) 'zlib))
       ("lzlib"      (ref '(gnu packages compression) 'lzlib))
       ("gzip"       (ref '(gnu packages compression) 'gzip))
@@ -1121,9 +1121,9 @@ is not supported."
         version))
 
   (define guile
-    ;; When PULL-VERSION >= 1, produce a self-contained Guix and use Guile 2.2
-    ;; unconditionally.
-    (default-guile))
+    ;; When PULL-VERSION >= 1, produce a self-contained Guix and use the
+    ;; current Guile unconditionally.
+    (specification->package "guile"))
 
   (when (and (< pull-version 1)
              (not (string=? (package-version guile) guile-version)))
@@ -1142,7 +1142,7 @@ is not supported."
                                                      (shorten version))
                                #:pull-version pull-version
                                #:guile-version (if (>= pull-version 1)
-                                                   "2.2" guile-version)
+                                                   "3.0" guile-version)
                                #:guile-for-build guile)))
       (if guix
           (lower-object guix)

reply via email to

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