summaryrefslogtreecommitdiff
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)
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 7fd658abace..29237b11387 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1279,8 +1279,6 @@ dist_patch_DATA = \
1279 %D%/packages/patches/guile-linux-syscalls.patch \ 1279 %D%/packages/patches/guile-linux-syscalls.patch \
1280 %D%/packages/patches/guile-3.0-linux-syscalls.patch \ 1280 %D%/packages/patches/guile-3.0-linux-syscalls.patch \
1281 %D%/packages/patches/guile-ac-d-bus-fix-tests.patch \ 1281 %D%/packages/patches/guile-ac-d-bus-fix-tests.patch \
1282 %D%/packages/patches/guile-continuation-stack-leak.patch \
1283 %D%/packages/patches/guile-cross-compilation.patch \
1284 %D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \ 1282 %D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \
1285 %D%/packages/patches/guile-fibers-epoll-instance-is-dead.patch \ 1283 %D%/packages/patches/guile-fibers-epoll-instance-is-dead.patch \
1286 %D%/packages/patches/guile-fibers-fd-finalizer-leak.patch \ 1284 %D%/packages/patches/guile-fibers-fd-finalizer-leak.patch \
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index b78e8b739b3..4380f327be0 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -166,13 +166,7 @@
166 ;; the inputs to add it to GUILE_LOAD_PATH. 166 ;; the inputs to add it to GUILE_LOAD_PATH.
167 guile-bytestructures 167 guile-bytestructures
168 168
169 ;; FIXME: The 'cuirass evaluate' command is multithreaded, but it 169 guix))
170 ;; uses 'open-inferior', which calls 'primitive-fork', thus
171 ;; potentially creating child processes that deadlock. To work
172 ;; around that, use the last revision of Guix where
173 ;; 'open-inferior' was using 'open-pipe*' rather than
174 ;; 'primitive-fork'. See <https://issues.guix.gnu.org/55441>.
175 guix-for-cuirass))
176 (native-inputs 170 (native-inputs
177 (list autoconf automake pkg-config texinfo ephemeralpg)) 171 (list autoconf automake pkg-config texinfo ephemeralpg))
178 (native-search-paths 172 (native-search-paths
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 5c0065279da..edf289e5743 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -391,19 +391,17 @@ without requiring the source code to be rewritten.")
391(define-public guile-3.0-latest 391(define-public guile-3.0-latest
392 (package 392 (package
393 (inherit guile-3.0) 393 (inherit guile-3.0)
394 (version "3.0.8") 394 (version "3.0.9")
395 (source (origin 395 (source (origin
396 (inherit (package-source guile-3.0)) 396 (inherit (package-source guile-3.0))
397 (uri (string-append "mirror://gnu/guile/guile-" 397 (uri (string-append "mirror://gnu/guile/guile-"
398 version ".tar.xz")) 398 version ".tar.xz"))
399 (sha256 399 (sha256
400 (base32 400 (base32
401 "04wagg0zr0sib0w9ly5jm91jplgfigzfgmy8fjdlx07jaq50d9ys")) 401 "03bm1mnfc9kkg2ls942a0js7bxrdzmcffgrgg6anwdmjfan2a9hs"))))
402 (patches (search-patches "guile-cross-compilation.patch"
403 "guile-continuation-stack-leak.patch"))))
404 (arguments 402 (arguments
405 (substitute-keyword-arguments (package-arguments guile-3.0) 403 (substitute-keyword-arguments (package-arguments guile-3.0)
406 ;; Guile 3.0.8 is bit-reproducible when built in parallel, thanks to 404 ;; Guile 3.0.9 is bit-reproducible when built in parallel, thanks to
407 ;; its multi-stage build process for cross-module inlining, except when 405 ;; its multi-stage build process for cross-module inlining, except when
408 ;; cross-compiling. 406 ;; cross-compiling.
409 ((#:parallel-build? _ #f) 407 ((#:parallel-build? _ #f)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 091febe6ac3..6ae6f58b6ba 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -510,30 +510,6 @@ the Nix package manager.")
510 510
511(export channel-source->package) 511(export channel-source->package)
512 512
513(define-public guix-for-cuirass
514 ;; Known-good revision before commit
515 ;; bd86bbd300474204878e927f6cd3f0defa1662a5, which introduced
516 ;; 'primitive-fork' in 'open-inferior'.
517 (let ((version "1.3.0")
518 (commit "a27e47f9d1e22dc32bb250cfeef88cfacb930e23")
519 (revision 23))
520 (package
521 (inherit guix)
522 (version (string-append version "-"
523 (number->string revision)
524 "." (string-take commit 7)))
525 (source (origin
526 (method git-fetch)
527 (uri (git-reference
528 (url "https://git.savannah.gnu.org/git/guix.git")
529 (commit commit)))
530 (sha256
531 (base32
532 "12jmvagbw05hmmlrb82i0qazhlv7mcfnl4dmknwx3a9hd760g9y1"))
533 (file-name (string-append "guix-" version "-checkout"))))
534 (properties `((hidden? . #t)
535 ,@(package-properties guix))))))
536
537(define-public guix-daemon 513(define-public guix-daemon
538 ;; This package is for internal consumption: it allows us to quickly build 514 ;; This package is for internal consumption: it allows us to quickly build
539 ;; the 'guix-daemon' program and use that in (guix self), used by 'guix 515 ;; 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 0e57b7bb4e3..00000000000
--- a/gnu/packages/patches/guile-continuation-stack-leak.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1This patch fixes a memory leak when capturing and resuming delimited
2continuations intensively, as is the case with the Shepherd 0.9+:
3
4 https://issues.guix.gnu.org/59021
5
6diff --git a/libguile/vm.c b/libguile/vm.c
7index 6fd5c554f..516bae773 100644
8--- a/libguile/vm.c
9+++ b/libguile/vm.c
10@@ -165,11 +165,13 @@ capture_stack (union scm_vm_stack_element *stack_top,
11 scm_t_dynstack *dynstack, uint32_t flags)
12 {
13 struct scm_vm_cont *p;
14+ size_t stack_size;
15
16- p = scm_gc_malloc (sizeof (*p), "capture_vm_cont");
17- p->stack_size = stack_top - sp;
18- p->stack_bottom = scm_gc_malloc (p->stack_size * sizeof (*p->stack_bottom),
19- "capture_vm_cont");
20+ stack_size = stack_top - sp;
21+ p = scm_gc_malloc (sizeof (*p) + stack_size * sizeof (*p->stack_bottom),
22+ "capture_vm_cont");
23+ p->stack_size = stack_size;
24+ p->stack_bottom = (void *) ((char *) p + sizeof (*p));
25 p->vra = vra;
26 p->mra = mra;
27 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 a594cb9421e..00000000000
--- a/gnu/packages/patches/guile-cross-compilation.patch
+++ /dev/null
@@ -1,55 +0,0 @@
1When cross-compiling, get type sizes of the host system, not the build system.
2
3This is Guile commit 24b30130ca75653bdbacea84ce0443608379d630, which
4fixes <https://issues.guix.gnu.org/54198>, with one difference: it uses
58 instead of SIZEOF_INTMAX_T, such that we do not need to modify
6'configure.ac' to check for the size of 'intmax_t' and to run 'autoreconf'
7(libguile/numbers.c expects SCM_SIZEOF_INTMAX_T = 8).
8
9diff --git a/libguile/gen-scmconfig.c b/libguile/gen-scmconfig.c
10index 01b14f14d..691ebd0af 100644
11--- a/libguile/gen-scmconfig.c
12+++ b/libguile/gen-scmconfig.c
13@@ -1,4 +1,4 @@
14-/* Copyright 2003-2013,2018,2020,2021
15+/* Copyright 2003-2013, 2018, 2020-2022
16 Free Software Foundation, Inc.
17
18 This file is part of Guile.
19@@ -238,21 +238,21 @@ main (int argc, char *argv[])
20 pf ("\n");
21 pf ("/* Standard types. */\n");
22
23- pf ("#define SCM_SIZEOF_CHAR %zu\n", sizeof (char));
24- pf ("#define SCM_SIZEOF_UNSIGNED_CHAR %zu\n", sizeof (unsigned char));
25- pf ("#define SCM_SIZEOF_SHORT %zu\n", sizeof (short));
26- pf ("#define SCM_SIZEOF_UNSIGNED_SHORT %zu\n", sizeof (unsigned short));
27- pf ("#define SCM_SIZEOF_LONG %zu\n", sizeof (long));
28- pf ("#define SCM_SIZEOF_UNSIGNED_LONG %zu\n", sizeof (unsigned long));
29- pf ("#define SCM_SIZEOF_INT %zu\n", sizeof (int));
30- pf ("#define SCM_SIZEOF_UNSIGNED_INT %zu\n", sizeof (unsigned int));
31- pf ("#define SCM_SIZEOF_SIZE_T %zu\n", sizeof (size_t));
32- pf ("#define SCM_SIZEOF_LONG_LONG %zu\n", sizeof (long long));
33- pf ("#define SCM_SIZEOF_UNSIGNED_LONG_LONG %zu\n", sizeof (unsigned long long));
34- pf ("#define SCM_SIZEOF_INTMAX %zu\n", sizeof (intmax_t));
35- pf ("#define SCM_SIZEOF_SCM_T_PTRDIFF %zu\n", sizeof (ptrdiff_t));
36- pf ("#define SCM_SIZEOF_INTPTR_T %zu\n", sizeof (intptr_t));
37- pf ("#define SCM_SIZEOF_UINTPTR_T %zu\n", sizeof (uintptr_t));
38+ pf ("#define SCM_SIZEOF_CHAR %d\n", SIZEOF_CHAR);
39+ pf ("#define SCM_SIZEOF_UNSIGNED_CHAR %d\n", SIZEOF_UNSIGNED_CHAR);
40+ pf ("#define SCM_SIZEOF_SHORT %d\n", SIZEOF_SHORT);
41+ pf ("#define SCM_SIZEOF_UNSIGNED_SHORT %d\n", SIZEOF_UNSIGNED_SHORT);
42+ pf ("#define SCM_SIZEOF_LONG %d\n", SIZEOF_LONG);
43+ pf ("#define SCM_SIZEOF_UNSIGNED_LONG %d\n", SIZEOF_UNSIGNED_LONG);
44+ pf ("#define SCM_SIZEOF_INT %d\n", SIZEOF_INT);
45+ pf ("#define SCM_SIZEOF_UNSIGNED_INT %d\n", SIZEOF_UNSIGNED_INT);
46+ pf ("#define SCM_SIZEOF_SIZE_T %d\n", SIZEOF_SIZE_T);
47+ pf ("#define SCM_SIZEOF_LONG_LONG %d\n", SIZEOF_LONG_LONG);
48+ pf ("#define SCM_SIZEOF_UNSIGNED_LONG_LONG %d\n", SIZEOF_UNSIGNED_LONG_LONG);
49+ pf ("#define SCM_SIZEOF_INTMAX %d\n", 8); /* like SIZEOF_INTMAX_T */
50+ pf ("#define SCM_SIZEOF_SCM_T_PTRDIFF %d\n", SIZEOF_PTRDIFF_T);
51+ pf ("#define SCM_SIZEOF_INTPTR_T %d\n", SIZEOF_INTPTR_T);
52+ pf ("#define SCM_SIZEOF_UINTPTR_T %d\n", SIZEOF_UINTPTR_T);
53
54 pf ("\n");
55 pf ("/* same as POSIX \"struct timespec\" -- always defined */\n");