summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-01-26 15:16:54 +0100
committerLudovic Courtès <ludo@gnu.org>2023-01-26 15:16:54 +0100
commit0e480ca7b60428a62fc4681d7aca6c7c067add42 (patch)
tree146c8f2449e1f75a4fb0091b21e57528fe583461
parent230de2e94b0041c5b6212449334f7c2d6254768a (diff)
downloadguix-0e480ca7b60428a62fc4681d7aca6c7c067add42.tar.gz
gnu: guile: Update to 3.0.9.
* gnu/packages/guile.scm (guile-3.0-latest): Update to 3.0.9.
* gnu/packages/package-management.scm (guix-for-cuirass): Remove.
* gnu/packages/ci.scm (cuirass)[inputs]: Replace 'guix-for-cuirass' with
'guix'.
* gnu/packages/patches/guile-continuation-stack-leak.patch,
gnu/packages/patches/guile-cross-compilation.patch: Remove.
* gnu/local.mk (dist_patch_DATA): Remove them.
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/ci.scm8
-rw-r--r--gnu/packages/guile.scm8
-rw-r--r--gnu/packages/package-management.scm24
-rw-r--r--gnu/packages/patches/guile-continuation-stack-leak.patch27
-rw-r--r--gnu/packages/patches/guile-cross-compilation.patch55
6 files changed, 4 insertions, 120 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 7fd658abac..29237b1138 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1279,8 +1279,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/guile-linux-syscalls.patch		\
   %D%/packages/patches/guile-3.0-linux-syscalls.patch		\
   %D%/packages/patches/guile-ac-d-bus-fix-tests.patch		\
-  %D%/packages/patches/guile-continuation-stack-leak.patch	\
-  %D%/packages/patches/guile-cross-compilation.patch		\
   %D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \
   %D%/packages/patches/guile-fibers-epoll-instance-is-dead.patch \
   %D%/packages/patches/guile-fibers-fd-finalizer-leak.patch	\
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index b78e8b739b..4380f327be 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -166,13 +166,7 @@
              ;; the inputs to add it to GUILE_LOAD_PATH.
              guile-bytestructures
 
-             ;; FIXME: The 'cuirass evaluate' command is multithreaded, but it
-             ;; uses 'open-inferior', which calls 'primitive-fork', thus
-             ;; potentially creating child processes that deadlock.  To work
-             ;; around that, use the last revision of Guix where
-             ;; 'open-inferior' was using 'open-pipe*' rather than
-             ;; 'primitive-fork'.  See <https://issues.guix.gnu.org/55441>.
-             guix-for-cuirass))
+             guix))
       (native-inputs
        (list autoconf automake pkg-config texinfo ephemeralpg))
       (native-search-paths
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 5c0065279d..edf289e574 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -391,19 +391,17 @@ without requiring the source code to be rewritten.")
 (define-public guile-3.0-latest
   (package
     (inherit guile-3.0)
-    (version "3.0.8")
+    (version "3.0.9")
     (source (origin
               (inherit (package-source guile-3.0))
               (uri (string-append "mirror://gnu/guile/guile-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "04wagg0zr0sib0w9ly5jm91jplgfigzfgmy8fjdlx07jaq50d9ys"))
-              (patches (search-patches "guile-cross-compilation.patch"
-                                       "guile-continuation-stack-leak.patch"))))
+                "03bm1mnfc9kkg2ls942a0js7bxrdzmcffgrgg6anwdmjfan2a9hs"))))
     (arguments
      (substitute-keyword-arguments (package-arguments guile-3.0)
-       ;; Guile 3.0.8 is bit-reproducible when built in parallel, thanks to
+       ;; Guile 3.0.9 is bit-reproducible when built in parallel, thanks to
        ;; its multi-stage build process for cross-module inlining, except when
        ;; cross-compiling.
        ((#:parallel-build? _ #f)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 091febe6ac..6ae6f58b6b 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -510,30 +510,6 @@ the Nix package manager.")
 
 (export channel-source->package)
 
-(define-public guix-for-cuirass
-  ;; Known-good revision before commit
-  ;; bd86bbd300474204878e927f6cd3f0defa1662a5, which introduced
-  ;; 'primitive-fork' in 'open-inferior'.
-  (let ((version "1.3.0")
-        (commit "a27e47f9d1e22dc32bb250cfeef88cfacb930e23")
-        (revision 23))
-    (package
-      (inherit guix)
-      (version (string-append version "-"
-                              (number->string revision)
-                              "." (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://git.savannah.gnu.org/git/guix.git")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "12jmvagbw05hmmlrb82i0qazhlv7mcfnl4dmknwx3a9hd760g9y1"))
-                (file-name (string-append "guix-" version "-checkout"))))
-      (properties `((hidden? . #t)
-                    ,@(package-properties guix))))))
-
 (define-public guix-daemon
   ;; This package is for internal consumption: it allows us to quickly build
   ;; the 'guix-daemon' program and use that in (guix self), used by 'guix
diff --git a/gnu/packages/patches/guile-continuation-stack-leak.patch b/gnu/packages/patches/guile-continuation-stack-leak.patch
deleted file mode 100644
index 0e57b7bb4e..0000000000
--- a/gnu/packages/patches/guile-continuation-stack-leak.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-This patch fixes a memory leak when capturing and resuming delimited
-continuations intensively, as is the case with the Shepherd 0.9+:
-
-  https://issues.guix.gnu.org/59021
-
-diff --git a/libguile/vm.c b/libguile/vm.c
-index 6fd5c554f..516bae773 100644
---- a/libguile/vm.c
-+++ b/libguile/vm.c
-@@ -165,11 +165,13 @@ capture_stack (union scm_vm_stack_element *stack_top,
-                scm_t_dynstack *dynstack, uint32_t flags)
- {
-   struct scm_vm_cont *p;
-+  size_t stack_size;
- 
--  p = scm_gc_malloc (sizeof (*p), "capture_vm_cont");
--  p->stack_size = stack_top - sp;
--  p->stack_bottom = scm_gc_malloc (p->stack_size * sizeof (*p->stack_bottom),
--                                   "capture_vm_cont");
-+  stack_size = stack_top - sp;
-+  p = scm_gc_malloc (sizeof (*p) + stack_size * sizeof (*p->stack_bottom),
-+                     "capture_vm_cont");
-+  p->stack_size = stack_size;
-+  p->stack_bottom = (void *) ((char *) p + sizeof (*p));
-   p->vra = vra;
-   p->mra = mra;
-   p->fp_offset = stack_top - fp;
diff --git a/gnu/packages/patches/guile-cross-compilation.patch b/gnu/packages/patches/guile-cross-compilation.patch
deleted file mode 100644
index a594cb9421..0000000000
--- a/gnu/packages/patches/guile-cross-compilation.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-When cross-compiling, get type sizes of the host system, not the build system.
-
-This is Guile commit 24b30130ca75653bdbacea84ce0443608379d630, which
-fixes <https://issues.guix.gnu.org/54198>, with one difference: it uses
-8 instead of SIZEOF_INTMAX_T, such that we do not need to modify
-'configure.ac' to check for the size of 'intmax_t' and to run 'autoreconf'
-(libguile/numbers.c expects SCM_SIZEOF_INTMAX_T = 8).
-
-diff --git a/libguile/gen-scmconfig.c b/libguile/gen-scmconfig.c
-index 01b14f14d..691ebd0af 100644
---- a/libguile/gen-scmconfig.c
-+++ b/libguile/gen-scmconfig.c
-@@ -1,4 +1,4 @@
--/* Copyright 2003-2013,2018,2020,2021
-+/* Copyright 2003-2013, 2018, 2020-2022
-      Free Software Foundation, Inc.
- 
-    This file is part of Guile.
-@@ -238,21 +238,21 @@ main (int argc, char *argv[])
-   pf ("\n");
-   pf ("/* Standard types. */\n");
- 
--  pf ("#define SCM_SIZEOF_CHAR %zu\n", sizeof (char));
--  pf ("#define SCM_SIZEOF_UNSIGNED_CHAR %zu\n", sizeof (unsigned char));
--  pf ("#define SCM_SIZEOF_SHORT %zu\n", sizeof (short));
--  pf ("#define SCM_SIZEOF_UNSIGNED_SHORT %zu\n", sizeof (unsigned short));
--  pf ("#define SCM_SIZEOF_LONG %zu\n", sizeof (long));
--  pf ("#define SCM_SIZEOF_UNSIGNED_LONG %zu\n", sizeof (unsigned long));
--  pf ("#define SCM_SIZEOF_INT %zu\n", sizeof (int));
--  pf ("#define SCM_SIZEOF_UNSIGNED_INT %zu\n", sizeof (unsigned int));
--  pf ("#define SCM_SIZEOF_SIZE_T %zu\n", sizeof (size_t));
--  pf ("#define SCM_SIZEOF_LONG_LONG %zu\n", sizeof (long long));
--  pf ("#define SCM_SIZEOF_UNSIGNED_LONG_LONG %zu\n", sizeof (unsigned long long));
--  pf ("#define SCM_SIZEOF_INTMAX %zu\n", sizeof (intmax_t));
--  pf ("#define SCM_SIZEOF_SCM_T_PTRDIFF %zu\n", sizeof (ptrdiff_t));
--  pf ("#define SCM_SIZEOF_INTPTR_T %zu\n", sizeof (intptr_t));
--  pf ("#define SCM_SIZEOF_UINTPTR_T %zu\n", sizeof (uintptr_t));
-+  pf ("#define SCM_SIZEOF_CHAR %d\n", SIZEOF_CHAR);
-+  pf ("#define SCM_SIZEOF_UNSIGNED_CHAR %d\n", SIZEOF_UNSIGNED_CHAR);
-+  pf ("#define SCM_SIZEOF_SHORT %d\n", SIZEOF_SHORT);
-+  pf ("#define SCM_SIZEOF_UNSIGNED_SHORT %d\n", SIZEOF_UNSIGNED_SHORT);
-+  pf ("#define SCM_SIZEOF_LONG %d\n", SIZEOF_LONG);
-+  pf ("#define SCM_SIZEOF_UNSIGNED_LONG %d\n", SIZEOF_UNSIGNED_LONG);
-+  pf ("#define SCM_SIZEOF_INT %d\n", SIZEOF_INT);
-+  pf ("#define SCM_SIZEOF_UNSIGNED_INT %d\n", SIZEOF_UNSIGNED_INT);
-+  pf ("#define SCM_SIZEOF_SIZE_T %d\n", SIZEOF_SIZE_T);
-+  pf ("#define SCM_SIZEOF_LONG_LONG %d\n", SIZEOF_LONG_LONG);
-+  pf ("#define SCM_SIZEOF_UNSIGNED_LONG_LONG %d\n", SIZEOF_UNSIGNED_LONG_LONG);
-+  pf ("#define SCM_SIZEOF_INTMAX %d\n", 8); /* like SIZEOF_INTMAX_T */
-+  pf ("#define SCM_SIZEOF_SCM_T_PTRDIFF %d\n", SIZEOF_PTRDIFF_T);
-+  pf ("#define SCM_SIZEOF_INTPTR_T %d\n", SIZEOF_INTPTR_T);
-+  pf ("#define SCM_SIZEOF_UINTPTR_T %d\n", SIZEOF_UINTPTR_T);
- 
-   pf ("\n");
-   pf ("/* same as POSIX \"struct timespec\" -- always defined */\n");