From e9d632640beb03706b281cc2dbb1d46776d6a17d Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Mon, 5 Jan 2026 17:29:48 +0100 Subject: [PATCH] gnu: Remove guile-fibers-1.0. * gnu/packages/guile-xyz.scm (guile-fibers-1.0): Delete variable. * gnu/packages/patches/guile-fibers-destroy-peer-schedulers.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Unregister patch. Change-Id: If2a85f8f2c19dc038691ffd6435dd60068b2898d --- gnu/local.mk | 1 - gnu/packages/guile-xyz.scm | 53 ------------------- ...guile-fibers-destroy-peer-schedulers.patch | 24 --------- 3 files changed, 78 deletions(-) delete mode 100644 gnu/packages/patches/guile-fibers-destroy-peer-schedulers.patch diff --git a/gnu/local.mk b/gnu/local.mk index a21a735d9eb5bd7954e9534d6d0a6d7fc4418532..686672057564c4603371e8448f7c0f05890b990d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1542,7 +1542,6 @@ dist_patch_DATA = \ %D%/packages/patches/guile-ac-d-bus-fix-tests.patch \ %D%/packages/patches/guile-lib-fix-tests-for-guile2.2.patch \ %D%/packages/patches/guile-fibers-cross-build-fix.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 \ %D%/packages/patches/guile-fibers-wait-for-io-readiness.patch \ diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 186f61970829b2c876698965b73d3730cff13426..afd25cbc13d2a9a8300990579fd77c24f015aaad 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -1248,59 +1248,6 @@ is not available for Guile 2.0.") ;; . (filter (cut string-suffix? "-linux" <>) %supported-systems)))) -(define-public guile-fibers-1.0 - (package - (inherit guile-fibers-1.1) - (version "1.0.0") - (source (origin - (method url-fetch) - (uri (string-append "https://wingolog.org/pub/fibers/fibers-" - version ".tar.gz")) - (sha256 - (base32 - "0vjkg72ghgdgphzbjz9ig8al8271rq8974viknb2r1rg4lz92ld0")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Allow builds with Guile 3.0. - (substitute* "configure" - (("search=\"2\\.2\"") - "search=\"3.0 2.2\"")) - - ;; Explicitly include system headers rather than relying on - ;; to do it for us. - (substitute* "epoll.c" - (("#include.*libguile\\.h.*$" all) - (string-append "#include \n" - "#include \n" - all "\n"))) - - ;; Import (ice-9 threads) for 'current-processor-count'. - (substitute* "tests/channels.scm" - (("#:use-module \\(fibers\\)") - (string-append "#:use-module (fibers)\n" - "#:use-module (ice-9 threads)\n"))) - #t)) - (patches - ;; fixes a resource leak that causes crashes in the tests - (search-patches "guile-fibers-destroy-peer-schedulers.patch")))) - (arguments - '(;; The code uses 'scm_t_uint64' et al., which are deprecated in 3.0. - #:configure-flags '("CFLAGS=-Wno-error=deprecated-declarations") - #:phases (modify-phases %standard-phases - (add-after 'install 'mode-guile-objects - (lambda* (#:key outputs #:allow-other-keys) - ;; .go files are installed to "lib/guile/X.Y/cache". - ;; This phase moves them to "…/site-ccache". - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib/guile")) - (old (car (find-files lib "^ccache$" - #:directories? #t))) - (new (string-append (dirname old) - "/site-ccache"))) - (rename-file old new) - #t)))))))) - (define-public guile2.2-fibers (package (inherit guile-fibers) diff --git a/gnu/packages/patches/guile-fibers-destroy-peer-schedulers.patch b/gnu/packages/patches/guile-fibers-destroy-peer-schedulers.patch deleted file mode 100644 index 8bb7153153f67db73e710d8fc1268ffe2a2e4d6a..0000000000000000000000000000000000000000 --- a/gnu/packages/patches/guile-fibers-destroy-peer-schedulers.patch +++ /dev/null @@ -1,24 +0,0 @@ -Fibers 1.0.0 has a bug in run-fibers in which peer schedulers aren't destroyed - -so if you had 4 cores, 1 would be destroyed when run-fibers returned, but the -other 3 would stay around. Each scheduler uses 3 file descriptors, so for -machines with many cores, this resource leak adds up quickly - quickly enough -that the test suite can even fail because of it. - -See https://github.com/wingo/fibers/issues/36. - -This fixes that. It should be safe to destroy the peer schedulers at the given -point because the threads that could be running them are all either dead or the -current thread. - -As of May 21, 2020, this bug still existed in the 1.0.0 (latest) release and in -git master. ---- a/fibers.scm 2020-05-21 18:38:06.890690154 -0500 -+++ b/fibers.scm 2020-05-21 18:38:56.395686693 -0500 -@@ -137,5 +137,6 @@ - (%run-fibers scheduler hz finished? affinity)) - (lambda () - (stop-auxiliary-threads scheduler))))) -+ (for-each destroy-scheduler (scheduler-remote-peers scheduler)) - (destroy-scheduler scheduler) - (apply values (atomic-box-ref ret)))))) -