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.
This commit is contained in:
Ludovic Courtès 2023-01-26 15:16:54 +01:00
parent 230de2e94b
commit 0e480ca7b6
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
6 changed files with 4 additions and 120 deletions

View file

@ -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 \

View file

@ -166,13 +166,7 @@ (define-public cuirass
;; 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

View file

@ -391,19 +391,17 @@ (define-public guile-3.0
(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)

View file

@ -510,30 +510,6 @@ (define* (channel-source->package source #:key commit)
(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

View file

@ -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;

View file

@ -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");