diff options
author | Sharlatan Hellseher <sharlatanus@gmail.com> | 2025-05-27 10:38:47 +0100 |
---|---|---|
committer | Sharlatan Hellseher <sharlatanus@gmail.com> | 2025-05-27 10:41:58 +0100 |
commit | 6b8b8e3b858485bcbf4f67051591ee643bc04e75 (patch) | |
tree | 2a83c8c37529922a36935e6ed7b24362ecdcabd9 | |
parent | 1f9a0911707c3cbb225ba6b5e7d71b050a111720 (diff) |
gnu: sbcl-fast-generic-functions: Update to 0.0.0-2.6e9d690.
Closes <https://issues.guix.gnu.org/69585> as upstream applied fixes as.
* gnu/packages/lisp-xyz.scm (sbcl-fast-generic-functions): Update to
0.0.0-2.6e9d690.
[source]: Remove patch.
* gnu/packages/patches/sbcl-fast-generic-functions-fix-sbcl-2.4.patch:
Delete file.
* gnu/local.mk (dist_patch_DATA): Deregister patch.
Change-Id: I09eb5f296afa9529d5ceee2fbd33fedcd59ad199
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/lisp-xyz.scm | 9 | ||||
-rw-r--r-- | gnu/packages/patches/sbcl-fast-generic-functions-fix-sbcl-2.4.patch | 99 |
3 files changed, 4 insertions, 105 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index cb2630381c..c8726ce83e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2244,7 +2244,6 @@ dist_patch_DATA = \ %D%/packages/patches/sbcl-ciel-repl.patch \ %D%/packages/patches/sbcl-clml-fix-types.patch \ %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-lack-fix-tests.patch \ %D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \ %D%/packages/patches/sbcl-s-sysdeps-bt2.patch \ diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 10018c4b78..9b5acf9982 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -15593,10 +15593,11 @@ basic everyday functions and macros.") (sbcl-package->ecl-package sbcl-fare-utils)) (define-public sbcl-fast-generic-functions - (let ((commit "9c307cd28af6453e45038ac3510de3123ff23743")) + (let ((commit "6e9d690ec08dacf9ab4e14aa39a084ef7c7edabb") + (revision "2")) (package (name "sbcl-fast-generic-functions") - (version (git-version "0.0.0" "1" commit)) + (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) @@ -15605,9 +15606,7 @@ basic everyday functions and macros.") (commit commit))) (file-name (git-file-name "cl-fast-generic-functions" version)) (sha256 - (base32 "16hf9bi2p5s77p3m3aqsihcd9iicqjhhxxpsarjv93c41qs54yad")) - (patches - (search-patches "sbcl-fast-generic-functions-fix-sbcl-2.4.patch")))) + (base32 "1v2pwmhnyfvhx8hrl1zk2lm4k1a3kqglf696hnfx7zrpz9kwk15m")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-closer-mop diff --git a/gnu/packages/patches/sbcl-fast-generic-functions-fix-sbcl-2.4.patch b/gnu/packages/patches/sbcl-fast-generic-functions-fix-sbcl-2.4.patch deleted file mode 100644 index d8b30f24a3..0000000000 --- a/gnu/packages/patches/sbcl-fast-generic-functions-fix-sbcl-2.4.patch +++ /dev/null @@ -1,99 +0,0 @@ -From f8bfa4d8ce6b831058935c793e9d9180a46e4171 Mon Sep 17 00:00:00 2001 -From: ajberkley <ajberkley@gmail.com> -Date: Mon, 27 May 2024 14:21:22 -0700 -Subject: [PATCH 1/2] Fix to work with SBCL 2.4.0 and later - ---- - code/expand-effective-method-body.lisp | 54 +++++++++++++------------- - 1 file changed, 28 insertions(+), 26 deletions(-) - -diff --git a/code/expand-effective-method-body.lisp b/code/expand-effective-method-body.lisp -index c00c1b0..68c0b08 100644 ---- a/code/expand-effective-method-body.lisp -+++ b/code/expand-effective-method-body.lisp -@@ -2,35 +2,37 @@ - - (defun expand-effective-method-body - (effective-method generic-function lambda-list) -- (trivial-macroexpand-all:macroexpand-all -- `(let ((.gf. #',(generic-function-name generic-function))) -- (declare (ignorable .gf.)) -- #+sbcl(declare (sb-ext:disable-package-locks common-lisp:call-method)) -- #+sbcl(declare (sb-ext:disable-package-locks common-lisp:make-method)) -- #+sbcl(declare (sb-ext:disable-package-locks sb-pcl::check-applicable-keywords)) -- #+sbcl(declare (sb-ext:disable-package-locks sb-pcl::%no-primary-method)) -- (macrolet -- (;; SBCL introduces explicit keyword argument checking into -- ;; the effective method. Since we do our own checking, we -- ;; can safely disable it. However, we touch the relevant -- ;; variables to prevent unused variable warnings. -- #+sbcl -- (sb-pcl::check-applicable-keywords (&rest args) -- (declare (ignore args)) -- `(progn sb-pcl::.valid-keys. sb-pcl::.keyargs-start. (values))) -- ;; SBCL introduces a magic form to report when there are no -- ;; primary methods. The problem is that this form contains a -- ;; reference to the literal generic function, which is not an -- ;; externalizable object. Our solution is to replace it with -- ;; something portable. -- #+sbcl -- (sb-pcl::%no-primary-method (&rest args) -- (declare (ignore args)) -- `(apply #'no-primary-method .gf. ,@',(lambda-list-apply-arguments lambda-list)))) -+ (let ((%no-primary-method (find-symbol "%NO-PRIMARY-METHOD" :sb-pcl))) -+ (trivial-macroexpand-all:macroexpand-all -+ `(let ((.gf. #',(generic-function-name generic-function))) -+ (declare (ignorable .gf.)) -+ #+sbcl(declare (sb-ext:disable-package-locks common-lisp:call-method)) -+ #+sbcl(declare (sb-ext:disable-package-locks common-lisp:make-method)) -+ #+sbcl(declare (sb-ext:disable-package-locks sb-pcl::check-applicable-keywords)) -+ #+sbcl(declare (sb-ext:disable-package-locks ,%no-primary-method)) -+ (macrolet -+ (;; SBCL introduces explicit keyword argument checking into -+ ;; the effective method. Since we do our own checking, we -+ ;; can safely disable it. However, we touch the relevant -+ ;; variables to prevent unused variable warnings. -+ #+sbcl -+ (sb-pcl::check-applicable-keywords (&rest args) -+ (declare (ignore args)) -+ `(progn sb-pcl::.valid-keys. sb-pcl::.keyargs-start. (values))) -+ ;; SBCL introduces a magic form to report when there are no -+ ;; primary methods. The problem is that this form contains a -+ ;; reference to the literal generic function, which is not an -+ ;; externalizable object. Our solution is to replace it with -+ ;; something portable. -+ #+sbcl -+ ,(when %no-primary-method -+ `(,%no-primary-method (&rest args) -+ (declare (ignore args)) -+ `(apply #'no-primary-method .gf. ,@',(lambda-list-apply-arguments lambda-list))))) - ,(wrap-in-call-method-macrolet - effective-method - generic-function -- lambda-list))))) -+ lambda-list)))))) - - (defun wrap-in-call-method-macrolet (form generic-function lambda-list) - `(macrolet ((call-method (method &optional next-methods) - -From 01baf2bc9157762029de11ab64429999fa7a58da Mon Sep 17 00:00:00 2001 -From: ajberkley <ajberkley@gmail.com> -Date: Mon, 27 May 2024 14:37:58 -0700 -Subject: [PATCH 2/2] Fix for SBCL - ---- - code/sbcl.lisp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/code/sbcl.lisp b/code/sbcl.lisp -index 9e206a8..b97c00a 100644 ---- a/code/sbcl.lisp -+++ b/code/sbcl.lisp -@@ -13,6 +13,6 @@ - (prototypes static-call-signature-prototypes)) - static-call-signature - (eval -- `(sb-c:deftransform ,name ((&rest args) (,@types &rest *)) -+ `(sb-c:deftransform ,name ((&rest args) (,@types &rest t)) - (or (optimize-function-call #',name ',static-call-signature) - (sb-c::give-up-ir1-transform)))))))) |