Merge branch 'lisp-team'
Change-Id: Ia9a07fff02b01b3470f7abe28bc05a0fd8737416
This commit is contained in:
		
						commit
						2d5a7bfed5
					
				
					 6 changed files with 1168 additions and 1097 deletions
				
			
		| 
						 | 
				
			
			@ -2067,8 +2067,7 @@ dist_patch_DATA =						\
 | 
			
		|||
  %D%/packages/patches/sbcl-burgled-batteries3-fix-signals.patch	\
 | 
			
		||||
  %D%/packages/patches/sbcl-clml-fix-types.patch		\
 | 
			
		||||
  %D%/packages/patches/sbcl-eazy-gnuplot-skip-path-check.patch	\
 | 
			
		||||
  %D%/packages/patches/sbcl-fix-ppc64-build.patch		\
 | 
			
		||||
  %D%/packages/patches/sbcl-fix-riscv-build.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/scalapack-gcc-10-compilation.patch	\
 | 
			
		||||
  %D%/packages/patches/scheme48-tests.patch			\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5625,8 +5625,8 @@ Common Lisp via Gobject Introspection.")
 | 
			
		|||
;;   (sbcl-package->ecl-package sbcl-cl-gltf))
 | 
			
		||||
 | 
			
		||||
(define-public sbcl-cl-gobject-introspection
 | 
			
		||||
  (let ((commit "83beec4492948b52aae4d4152200de5d5c7ac3e9")
 | 
			
		||||
        (revision "3"))
 | 
			
		||||
  (let ((commit "4908a84c16349929b309c50409815ff81fb9b3c4")
 | 
			
		||||
        (revision "4"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "sbcl-cl-gobject-introspection")
 | 
			
		||||
      (version (git-version "0.3" revision commit))
 | 
			
		||||
| 
						 | 
				
			
			@ -5639,7 +5639,7 @@ Common Lisp via Gobject Introspection.")
 | 
			
		|||
               (commit commit)))
 | 
			
		||||
         (file-name (git-file-name "cl-gobject-introspection" version))
 | 
			
		||||
         (sha256
 | 
			
		||||
          (base32 "0xwmj4b3whz12i474g54krp1v6h0fpvsx8lgwpk6rkli9xc71wc3"))))
 | 
			
		||||
          (base32 "0iw8fciydh9bi2svq30hi029df16arpspk0mjzh0cm1c6kjm9dcj"))))
 | 
			
		||||
      (build-system asdf-build-system/sbcl)
 | 
			
		||||
      (inputs
 | 
			
		||||
       (list glib
 | 
			
		||||
| 
						 | 
				
			
			@ -14701,7 +14701,9 @@ basic everyday functions and macros.")
 | 
			
		|||
               (commit commit)))
 | 
			
		||||
         (file-name (git-file-name "cl-fast-generic-functions" version))
 | 
			
		||||
         (sha256
 | 
			
		||||
          (base32 "16hf9bi2p5s77p3m3aqsihcd9iicqjhhxxpsarjv93c41qs54yad"))))
 | 
			
		||||
          (base32 "16hf9bi2p5s77p3m3aqsihcd9iicqjhhxxpsarjv93c41qs54yad"))
 | 
			
		||||
         (patches
 | 
			
		||||
          (search-patches "sbcl-fast-generic-functions-fix-sbcl-2.4.patch"))))
 | 
			
		||||
      (build-system asdf-build-system/sbcl)
 | 
			
		||||
      (inputs
 | 
			
		||||
       (list sbcl-closer-mop
 | 
			
		||||
| 
						 | 
				
			
			@ -15652,28 +15654,35 @@ of the files and the line numbers where they were found.")
 | 
			
		|||
  (sbcl-package->ecl-package sbcl-formgrep))
 | 
			
		||||
 | 
			
		||||
(define-public sbcl-fset
 | 
			
		||||
  (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
 | 
			
		||||
  (let ((commit "a75a4ec713277780d9e15bfaa486b56949142d35")
 | 
			
		||||
        (revision "1"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "sbcl-fset")
 | 
			
		||||
      (version (git-version "1.3.2" revision commit))
 | 
			
		||||
      (version (git-version "1.3.3" revision commit))
 | 
			
		||||
      (source
 | 
			
		||||
       (origin
 | 
			
		||||
         (method git-fetch)
 | 
			
		||||
         (uri (git-reference
 | 
			
		||||
               (url "https://github.com/slburson/fset")
 | 
			
		||||
               (commit commit)))
 | 
			
		||||
         (file-name (git-file-name name version))
 | 
			
		||||
         (file-name (git-file-name "cl-fset" version))
 | 
			
		||||
         (sha256
 | 
			
		||||
          (base32
 | 
			
		||||
           "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
 | 
			
		||||
          (base32 "0bah0z8zrcykvnbi2wcdlbx902r818xg5dvd3384wf75kr2ccxvv"))
 | 
			
		||||
         (snippet '(begin
 | 
			
		||||
                     ;; Remove obsolete copy of system definition.
 | 
			
		||||
                     (delete-file "Code/fset.asd")
 | 
			
		||||
                     #t))))
 | 
			
		||||
                     (delete-file "Code/fset.asd")))))
 | 
			
		||||
      (build-system asdf-build-system/sbcl)
 | 
			
		||||
      (inputs
 | 
			
		||||
       (list sbcl-misc-extensions sbcl-mt19937 sbcl-named-readtables))
 | 
			
		||||
      (arguments
 | 
			
		||||
       (list #:phases
 | 
			
		||||
             #~(modify-phases %standard-phases
 | 
			
		||||
                 (add-after 'unpack 'fix-build
 | 
			
		||||
                   (lambda _
 | 
			
		||||
                     ;; Fix for SBCL > 2.4.4
 | 
			
		||||
                     (substitute* "Code/port.lisp"
 | 
			
		||||
                       (("sb-ext::once-only")
 | 
			
		||||
                        "sb-int:once-only")))))))
 | 
			
		||||
      (synopsis "Functional set-theoretic collections library")
 | 
			
		||||
      (description
 | 
			
		||||
       "FSet is a functional set-theoretic collections library for Common Lisp.
 | 
			
		||||
| 
						 | 
				
			
			@ -19987,6 +19996,14 @@ can be useful for games, 3D, and GL in general.")
 | 
			
		|||
         (sha256
 | 
			
		||||
          (base32 "15wrjbr2js6j67c1dd4p2qxj49q9iqv1lhb7cwdcwpn79crr39gf"))))
 | 
			
		||||
      (build-system asdf-build-system/sbcl)
 | 
			
		||||
      (arguments
 | 
			
		||||
       ;; FIXME: A test fails with:
 | 
			
		||||
       ;;   The assertion
 | 
			
		||||
       ;;   (EQUAL (MULTIPLE-VALUE-LIST (MAXPC:GET-INPUT-POSITION))
 | 
			
		||||
       ;;          '(7 2 2))
 | 
			
		||||
       ;;   failed with
 | 
			
		||||
       ;;   (MULTIPLE-VALUE-LIST (MAXPC:GET-INPUT-POSITION)) = (7).
 | 
			
		||||
       (list #:tests? #f))
 | 
			
		||||
      (home-page "https://mr.gy/software/maxpc/api.html")
 | 
			
		||||
      (synopsis
 | 
			
		||||
       "Library for writing parsers and lexers based on combinatory parsing")
 | 
			
		||||
| 
						 | 
				
			
			@ -25331,8 +25348,8 @@ only.")
 | 
			
		|||
  (sbcl-package->ecl-package sbcl-sb-cga))
 | 
			
		||||
 | 
			
		||||
(define-public sbcl-schemeish
 | 
			
		||||
  (let ((commit "dff57bafae5d0cffa104c8fdc4146502f32d7f85")
 | 
			
		||||
        (revision "1"))
 | 
			
		||||
  (let ((commit "872ea3dc3f2ea8438388b5e7660acd9446c49948")
 | 
			
		||||
        (revision "2"))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "sbcl-schemeish")
 | 
			
		||||
      (version (git-version "0.0.1" revision commit))
 | 
			
		||||
| 
						 | 
				
			
			@ -25342,12 +25359,22 @@ only.")
 | 
			
		|||
         (uri (git-reference
 | 
			
		||||
               (url "https://github.com/chebert/schemeish")
 | 
			
		||||
               (commit commit)))
 | 
			
		||||
         (file-name (git-file-name name version))
 | 
			
		||||
         (file-name (git-file-name "cl-schemeish" version))
 | 
			
		||||
         (sha256
 | 
			
		||||
          (base32 "0q9b07spmhg1b576cnnacvkf7zr3mab2rdydfylbn92y9mms9vyj"))))
 | 
			
		||||
          (base32 "08lbrmsamfpva83l1ap33gp8ff99v0l2dyyidjgwdchmbdgq3gqf"))))
 | 
			
		||||
      (build-system asdf-build-system/sbcl)
 | 
			
		||||
      (inputs
 | 
			
		||||
       (list sbcl-trivial-arguments))
 | 
			
		||||
       (list sbcl-trivial-arguments sbcl-trivial-cltl2))
 | 
			
		||||
      (arguments
 | 
			
		||||
       (list #:phases
 | 
			
		||||
             #~(modify-phases %standard-phases
 | 
			
		||||
                 (add-after 'unpack 'fix-build
 | 
			
		||||
                   (lambda _
 | 
			
		||||
                     ;; To fix the warning:
 | 
			
		||||
                     ;; Argument of type (INTEGER 1 1) cannot be used as a keyword.
 | 
			
		||||
                     (substitute* "src/arities.lisp"
 | 
			
		||||
                       (("1 2 3 4 5 6 7 8")
 | 
			
		||||
                        ":a1 :a2 :a3 :a4 :a5 :a6 :a7 :a8")))))))
 | 
			
		||||
      (synopsis "Scheme style syntax/macros/functions for Common Lisp")
 | 
			
		||||
      (description
 | 
			
		||||
       "Schemeish implements several useful Scheme constructs for Common Lisp.
 | 
			
		||||
| 
						 | 
				
			
			@ -26801,6 +26828,10 @@ using the latest algorithms.")
 | 
			
		|||
       (list sbcl-fiveam))
 | 
			
		||||
      (inputs
 | 
			
		||||
       (list sbcl-alexandria sbcl-introspect-environment))
 | 
			
		||||
      (arguments
 | 
			
		||||
       ;; FIXME: Tests fail with:
 | 
			
		||||
       ;;   Unable to compile test syntax-layer-test define-specialization/name.
 | 
			
		||||
       (list #:tests? #f))
 | 
			
		||||
      (home-page "https://github.com/markcox80/specialization-store")
 | 
			
		||||
      (synopsis "Different type of generic function for Common Lisp")
 | 
			
		||||
      (description
 | 
			
		||||
| 
						 | 
				
			
			@ -26813,11 +26844,7 @@ function.")
 | 
			
		|||
  (sbcl-package->cl-source-package sbcl-specialization-store))
 | 
			
		||||
 | 
			
		||||
(define-public ecl-specialization-store
 | 
			
		||||
  (package
 | 
			
		||||
    (inherit (sbcl-package->ecl-package sbcl-specialization-store))
 | 
			
		||||
    (arguments
 | 
			
		||||
     ;; TODO: Find why the tests get stuck forever; disable them for now.
 | 
			
		||||
     `(#:tests? #f))))
 | 
			
		||||
  (sbcl-package->ecl-package sbcl-specialization-store))
 | 
			
		||||
 | 
			
		||||
(define-public sbcl-specialized-function
 | 
			
		||||
  (let ((commit "5e2b04432bdf728496e6ff7227f210f845af7247")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,99 @@
 | 
			
		|||
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))))))))
 | 
			
		||||
| 
						 | 
				
			
			@ -1,27 +0,0 @@
 | 
			
		|||
commit 255f3ead060129aa097b62f10d054cdc4997a431
 | 
			
		||||
Author: Douglas Katzman <dougk@google.com>
 | 
			
		||||
Date:   Mon Jan 1 23:59:50 2024 -0500
 | 
			
		||||
 | 
			
		||||
    Fix ppc64 failure-to-build (from a few weeks ago)
 | 
			
		||||
    
 | 
			
		||||
    Git rev 7354472bb5 caused NIL to get a bogus widetag.
 | 
			
		||||
 | 
			
		||||
diff --git a/make-target-2-load.lisp b/make-target-2-load.lisp
 | 
			
		||||
index 6571ec27d..daef942ea 100644
 | 
			
		||||
--- a/make-target-2-load.lisp
 | 
			
		||||
+++ b/make-target-2-load.lisp
 | 
			
		||||
@@ -339,7 +339,13 @@ Please check that all strings which were not recognizable to the compiler
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
   (do-all-symbols (symbol)
 | 
			
		||||
-    (sb-kernel:logior-header-bits symbol sb-vm::+symbol-initial-core+)
 | 
			
		||||
+    ;; Don't futz with the header of static symbols.
 | 
			
		||||
+    ;; Technically LOGIOR-HEADER-BITS can only be used on an OTHER-POINTER-LOWTAG
 | 
			
		||||
+    ;; objects, so modifying NIL should not ever work, but it's especially wrong
 | 
			
		||||
+    ;; on ppc64 where OTHER- and LIST- pointer lowtags are 10 bytes apart instead
 | 
			
		||||
+    ;; of 8, so this was making a random alteration to the header.
 | 
			
		||||
+    (unless (eq (heap-allocated-p symbol) :static)
 | 
			
		||||
+      (sb-kernel:logior-header-bits symbol sb-vm::+symbol-initial-core+))
 | 
			
		||||
 
 | 
			
		||||
     ;; A symbol whose INFO slot underwent any kind of manipulation
 | 
			
		||||
     ;; such that it now has neither properties nor globaldb info,
 | 
			
		||||
| 
						 | 
				
			
			@ -1,19 +0,0 @@
 | 
			
		|||
commit b286d92af7468164c155c70d38213211b296fdfe
 | 
			
		||||
Author: Douglas Katzman <dougk@google.com>
 | 
			
		||||
Date:   Wed Jan 10 11:46:55 2024 -0500
 | 
			
		||||
 | 
			
		||||
    Fix riscv build
 | 
			
		||||
 | 
			
		||||
diff --git a/src/compiler/riscv/float.lisp b/src/compiler/riscv/float.lisp
 | 
			
		||||
index ce46d24ac..a16380293 100644
 | 
			
		||||
--- a/src/compiler/riscv/float.lisp
 | 
			
		||||
+++ b/src/compiler/riscv/float.lisp
 | 
			
		||||
@@ -578,7 +578,7 @@
 | 
			
		||||
   (:results (res :scs (double-reg)))
 | 
			
		||||
   (:arg-types signed-num)
 | 
			
		||||
   (:result-types double-float)
 | 
			
		||||
-  (:translate make-double-float)
 | 
			
		||||
+  (:translate %make-double-float)
 | 
			
		||||
   (:policy :fast-safe)
 | 
			
		||||
   (:generator 2
 | 
			
		||||
     (inst fmvx-> :double res bits)))
 | 
			
		||||
		Reference in a new issue