diff --git a/gnu/local.mk b/gnu/local.mk index ad5494fe95..7b8f295566 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2081,6 +2081,7 @@ dist_patch_DATA = \ %D%/packages/patches/sbcl-eazy-gnuplot-skip-path-check.patch \ %D%/packages/patches/sbcl-fast-generic-functions-fix-sbcl-2.4.patch \ %D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \ + %D%/packages/patches/sbcl-s-sysdeps-bt2.patch \ %D%/packages/patches/scalapack-gcc-10-compilation.patch \ %D%/packages/patches/scheme48-tests.patch \ %D%/packages/patches/scilab-better-compiler-detection.patch \ diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 1b684c61bd..1e7825fdb7 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -25144,10 +25144,12 @@ Rucksack with some enhancements.") (uri (git-reference (url home-page) (commit commit))) - (file-name (git-file-name name version)) + (file-name (git-file-name "cl-s-sysdeps" version)) (sha256 (base32 - "0rp81iq0rgl48qdwbmfy89glga81hmry2lp8adjbr5h5ybr92b4n")))) + "0rp81iq0rgl48qdwbmfy89glga81hmry2lp8adjbr5h5ybr92b4n")) + (patches + (search-patches "sbcl-s-sysdeps-bt2.patch")))) (inputs (list sbcl-bordeaux-threads sbcl-usocket)) (synopsis "Common Lisp abstraction layer over platform dependent functionality") diff --git a/gnu/packages/patches/sbcl-s-sysdeps-bt2.patch b/gnu/packages/patches/sbcl-s-sysdeps-bt2.patch new file mode 100644 index 0000000000..60749c6e62 --- /dev/null +++ b/gnu/packages/patches/sbcl-s-sysdeps-bt2.patch @@ -0,0 +1,61 @@ +From 800ca497282f6fb61e41ea151038d3baa05cdaeb Mon Sep 17 00:00:00 2001 +From: kilianmh +Date: Sun, 9 Jun 2024 09:02:00 +0200 +Subject: [PATCH] Chore: Update to bordeaux-threads-2 + +--- + src/sysdeps.lisp | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/src/sysdeps.lisp b/src/sysdeps.lisp +index 638e88c..f3a9f19 100644 +--- a/src/sysdeps.lisp ++++ b/src/sysdeps.lisp +@@ -21,19 +21,19 @@ + + (defun current-process () + "Return the object representing the current process" +- (bt:current-thread)) ++ (bt2:current-thread)) + + (defun kill-process (process) + "Kill the process represented by the object process" +- (bt:destroy-thread process)) ++ (bt2:destroy-thread process)) + + (defun run-process (name function &rest arguments) + "Create and run a new process with name, executing function on arguments" +- (bt:make-thread #'(lambda () (apply function arguments)) :name name)) ++ (bt2:make-thread #'(lambda () (apply function arguments)) :name name)) + + (defun all-processes () + "Return a list of all processes currently running" +- (bt:all-threads)) ++ (bt2:all-threads)) + + ;; opening a client TCP/IP socket stream + +@@ -75,19 +75,19 @@ + + (defun stop-process (name) + "Stop a named process by destroying it" +- (let ((thread (find name (bt:all-threads) :key #'bt:thread-name :test #'equal))) ++ (let ((thread (find name (bt2:all-threads) :key #'bt2:thread-name :test #'equal))) + (when thread +- (bt:destroy-thread thread) ++ (bt2:destroy-thread thread) + name))) + + ;; working with process locks + + (defun make-process-lock (name) + "Create a named process lock object" +- (bt:make-recursive-lock name)) ++ (bt2:make-recursive-lock :name name)) + + (defmacro with-process-lock ((lock) &body body) + "Execute body wih the process lock grabbed, wait otherwise" +- `(bt:with-recursive-lock-held (,lock) ,@body)) ++ `(bt2:with-recursive-lock-held (,lock) ,@body)) + + ;;;; eof