mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
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
This commit is contained in:
parent
1f9a091170
commit
6b8b8e3b85
3 changed files with 4 additions and 105 deletions
|
@ -2244,7 +2244,6 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/sbcl-ciel-repl.patch \
|
%D%/packages/patches/sbcl-ciel-repl.patch \
|
||||||
%D%/packages/patches/sbcl-clml-fix-types.patch \
|
%D%/packages/patches/sbcl-clml-fix-types.patch \
|
||||||
%D%/packages/patches/sbcl-eazy-gnuplot-skip-path-check.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-lack-fix-tests.patch \
|
||||||
%D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \
|
%D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \
|
||||||
%D%/packages/patches/sbcl-s-sysdeps-bt2.patch \
|
%D%/packages/patches/sbcl-s-sysdeps-bt2.patch \
|
||||||
|
|
|
@ -15593,10 +15593,11 @@ basic everyday functions and macros.")
|
||||||
(sbcl-package->ecl-package sbcl-fare-utils))
|
(sbcl-package->ecl-package sbcl-fare-utils))
|
||||||
|
|
||||||
(define-public sbcl-fast-generic-functions
|
(define-public sbcl-fast-generic-functions
|
||||||
(let ((commit "9c307cd28af6453e45038ac3510de3123ff23743"))
|
(let ((commit "6e9d690ec08dacf9ab4e14aa39a084ef7c7edabb")
|
||||||
|
(revision "2"))
|
||||||
(package
|
(package
|
||||||
(name "sbcl-fast-generic-functions")
|
(name "sbcl-fast-generic-functions")
|
||||||
(version (git-version "0.0.0" "1" commit))
|
(version (git-version "0.0.0" revision commit))
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -15605,9 +15606,7 @@ basic everyday functions and macros.")
|
||||||
(commit commit)))
|
(commit commit)))
|
||||||
(file-name (git-file-name "cl-fast-generic-functions" version))
|
(file-name (git-file-name "cl-fast-generic-functions" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "16hf9bi2p5s77p3m3aqsihcd9iicqjhhxxpsarjv93c41qs54yad"))
|
(base32 "1v2pwmhnyfvhx8hrl1zk2lm4k1a3kqglf696hnfx7zrpz9kwk15m"))))
|
||||||
(patches
|
|
||||||
(search-patches "sbcl-fast-generic-functions-fix-sbcl-2.4.patch"))))
|
|
||||||
(build-system asdf-build-system/sbcl)
|
(build-system asdf-build-system/sbcl)
|
||||||
(inputs
|
(inputs
|
||||||
(list sbcl-closer-mop
|
(list sbcl-closer-mop
|
||||||
|
|
|
@ -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))))))))
|
|
Loading…
Add table
Add a link
Reference in a new issue