gnu: sbcl: Update to 2.4.5.

* gnu/packages/lisp.scm (sbcl): Update to 2.4.5.
  [source]: Remove obsolete patches.
  [inputs]: Add bash-minimal.
  [arguments]: Remove trailing booleans.
* gnu/local.mk (dist_patch_DATA): Remove obsolete patches.
* gnu/packages/patches/sbcl-fix-ppc64-build.patch: Remove file.
* gnu/packages/patches/sbcl-fix-riscv-build.patch: Remove file.

Change-Id: Id918ee31aec016b987b0831680847b502c88fb5c
This commit is contained in:
Guillaume Le Vaillant 2024-03-29 21:16:07 +01:00
parent 1718d2ebd2
commit d03fcff19d
No known key found for this signature in database
GPG key ID: 6BE8208ADF21FE3F
4 changed files with 14 additions and 69 deletions

View file

@ -2065,8 +2065,6 @@ 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-png-fix-sbcl-compatibility.patch \
%D%/packages/patches/scalapack-gcc-10-compilation.patch \
%D%/packages/patches/scheme48-tests.patch \

View file

@ -444,17 +444,14 @@ (define-public clisp
(define-public sbcl
(package
(name "sbcl")
(version "2.4.0")
(version "2.4.5")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
version "-source.tar.bz2"))
(sha256
(base32 "0xhpdnsg8idzxkn20iw8gd2rk470d7vc22vrp5clq9fj117vgn43"))
;; TODO: Remove these patches when updating to sbcl > 2.4.0.
(patches (search-patches "sbcl-fix-ppc64-build.patch"
"sbcl-fix-riscv-build.patch"))
(base32 "1lbvb9rzlkl3h8s75i2js4dnmgxmvs41jxjb5dj0f603r688xxjd"))
(modules '((guix build utils)))
(snippet
'(begin
@ -497,7 +494,8 @@ (define-public sbcl
(texlive-updmap.cfg (list texlive-texinfo))
which))
(inputs
(list gmp ; for sb-gmp
(list bash-minimal
gmp ; for sb-gmp
mpfr ; for sb-mpfr
(list zstd "lib")))
(arguments
@ -532,8 +530,7 @@ (define-public sbcl
cl-asdf
"/share/common-lisp/source/asdf/asdf.lisp"))
(contrib-asdf "contrib/asdf/asdf.lisp"))
(copy-file guix-asdf contrib-asdf))
#t))
(copy-file guix-asdf contrib-asdf))))
(add-before 'build 'patch-unix-tool-paths
(lambda* (#:key outputs inputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
@ -579,17 +576,17 @@ (define (quoted-path input path)
(("\\(deftest pwent\\.[12]" all)
(string-append "#+nil ;disabled by Guix\n" all))
(("\\(deftest grent\\.[12]" all)
(string-append "#+nil ;disabled by Guix\n" all))))
#t))
(string-append "#+nil ;disabled by Guix\n" all))))))
(add-before 'build 'fix-contrib-library-path
(lambda* (#:key inputs #:allow-other-keys)
(let ((gmp (assoc-ref inputs "gmp"))
(mpfr (assoc-ref inputs "mpfr")))
(substitute* '("contrib/sb-gmp/gmp.lisp")
(("\"libgmp\\.so") (string-append "\"" gmp "/lib/libgmp.so")))
(("\"libgmp\\.so")
(string-append "\"" gmp "/lib/libgmp.so")))
(substitute* '("contrib/sb-mpfr/mpfr.lisp")
(("\"libmpfr\\.so") (string-append "\"" mpfr "/lib/libmpfr.so"))))
#t))
(("\"libmpfr\\.so")
(string-append "\"" mpfr "/lib/libmpfr.so"))))))
(replace 'build
(lambda* (#:key outputs #:allow-other-keys)
(setenv "CC" "gcc")
@ -635,8 +632,7 @@ (define (quoted-path input path)
(lambda ()
(display
(string-append "(sb-ext:set-sbcl-source-location \""
source-dir "\")") )))
#t)))
source-dir "\")") ))))))
(add-after 'install 'remove-coreutils-references
;; They are only useful on non-Linux, non-SBCL.
(lambda* (#:key outputs #:allow-other-keys)
@ -650,14 +646,12 @@ (define (quoted-path input path)
"(\"/usr/bin/env\""))
(substitute* (string-append share-dir "contrib/asdf/uiop.lisp")
(("\\(\".*/usr/bin/env\"")
"(\"/usr/bin/env\""))
#t)))
"(\"/usr/bin/env\"")))))
(add-after 'install 'install-shared-library
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib-dir (string-append out "/lib")))
(install-file "src/runtime/libsbcl.so" lib-dir)
#t)))
(install-file "src/runtime/libsbcl.so" lib-dir))))
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -668,8 +662,7 @@ (define (quoted-path input path)
(mkdir-p new-doc/sbcl-dir)
(copy-recursively (string-append old-doc-dir "/sbcl")
new-doc/sbcl-dir)
(delete-file-recursively old-doc-dir)
#t))))
(delete-file-recursively old-doc-dir)))))
;; No 'check' target, though "make.sh" (build phase) runs tests.
#:tests? #f))
(native-search-paths

View file

@ -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,

View file

@ -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)))