Merge branch 'lisp-team'

Change-Id: I4ec6ad695392c76c389224255477819fa686eecb
This commit is contained in:
Guillaume Le Vaillant 2024-01-11 16:49:24 +01:00
commit 24f000a49a
No known key found for this signature in database
GPG key ID: 6BE8208ADF21FE3F
5 changed files with 167 additions and 124 deletions

View file

@ -20,7 +20,7 @@
# Copyright © 2018, 2019, 2020, 2021, 2022 Oleg Pykhalov <go.wigust@gmail.com>
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
# Copyright © 2018, 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
# Copyright © 2019, 2020, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
# Copyright © 2019, 2020, 2021, 2022, 2044 Guillaume Le Vaillant <glv@posteo.net>
# Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
# Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
# Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
@ -2007,6 +2007,8 @@ 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

@ -14,7 +14,7 @@
;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
;;; Copyright © 2019-2023 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019-2024 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech>
@ -168,29 +168,30 @@ (define-public ecl-alexandria-plus
(sbcl-package->ecl-package sbcl-alexandria-plus))
(define-public sbcl-alexandria
(package
(name "sbcl-alexandria")
(version "1.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
(commit (string-append "v" version))))
(sha256
(base32
"0r1adhvf98h0104vq14q7y99h0hsa8wqwqw92h7ghrjxmsvz2z6l"))
(file-name (git-file-name name version))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-rt))
(synopsis "Collection of portable utilities for Common Lisp")
(description
"Alexandria is a collection of portable utilities. It does not contain
(let ((commit "009b7e532071d9777bdbd63b82d776555da95916")
(revision "0"))
(package
(name "sbcl-alexandria")
(version (git-version "1.4" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
(commit commit)))
(file-name (git-file-name "cl-alexandria" version))
(sha256
(base32 "0pdj779j3nwzn8f1661vf00rrjrbks1xgiq0rvwjw6qyxsfqfnl9"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-rt))
(synopsis "Collection of portable utilities for Common Lisp")
(description
"Alexandria is a collection of portable utilities. It does not contain
conceptual extensions to Common Lisp. It is conservative in scope, and
portable between implementations.")
(home-page "https://common-lisp.net/project/alexandria/")
(license license:public-domain)))
(home-page "https://common-lisp.net/project/alexandria/")
(license license:public-domain))))
(define-public cl-alexandria
(sbcl-package->cl-source-package sbcl-alexandria))
@ -1280,14 +1281,14 @@ (define-public cl-trivial-timeout
(define-public sbcl-bordeaux-threads
(package
(name "sbcl-bordeaux-threads")
(version "0.9.2")
(version "0.9.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sionescu/bordeaux-threads")
(commit (string-append "v" version))))
(sha256
(base32 "0d9sd7pm91yhln95z8nclhn6n4l5b2cp3pxpggpmpv7rsq84ssmh"))
(base32 "0pp3w5hsph47sqagr4j2pbg3ddb29jx93zg8kvxsp2c4flp0qz0f"))
(file-name (git-file-name "cl-bordeaux-threads" version))))
(inputs (list sbcl-alexandria
sbcl-global-vars
@ -1299,16 +1300,6 @@ (define-public sbcl-bordeaux-threads
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'silence-deprecation-warning
(lambda _
;; The deprecation warning for APIv1 makes the build of some
;; of the dependents of bordeaux-threads fail because they
;; interpret it as an error instead of a simple indication.
;; Let's silence this warning for now.
(substitute* (cons* "apiv1/default-implementations.lisp"
(find-files "apiv1" "impl-.*\\.lisp"))
(("\\(warn \"Bordeaux-Threads APIv1 is deprecated\\. Please migrate to APIv2\\.\"\\)")
""))))
(add-after 'unpack 'adjust-test-sleep
(lambda _
;; 0.001 is too short for some slower machines.
@ -1360,35 +1351,37 @@ (define-public ecl-trivial-gray-streams
(sbcl-package->ecl-package sbcl-trivial-gray-streams))
(define-public sbcl-flexi-streams
(package
(name "sbcl-flexi-streams")
(version "1.0.19")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/edicl/flexi-streams")
(commit (string-append "v" version))))
(file-name (git-file-name "flexi-streams" version))
(sha256
(base32 "0v7lh4nrldzczd4mwylvmxfdxk7wfsli24iv1axd6mkb833llr70"))))
(build-system asdf-build-system/sbcl)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files "."))
#t)))))
(inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
(synopsis "Implementation of virtual bivalent streams for Common Lisp")
(description "Flexi-streams is an implementation of \"virtual\" bivalent
(let ((commit "74a1027311371a57258eba1bc908e050f5702277")
(revision "0"))
(package
(name "sbcl-flexi-streams")
(version (git-version "1.0.19" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/edicl/flexi-streams")
(commit commit)))
(file-name (git-file-name "cl-flexi-streams" version))
(sha256
(base32 "04azqvz11s8dngy49bjl19hrfn0ip1b7m0szm4hlppq364msil7b"))))
(build-system asdf-build-system/sbcl)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files ".")))))))
(inputs
(list sbcl-trivial-gray-streams))
(synopsis "Implementation of virtual bivalent streams for Common Lisp")
(description "Flexi-streams is an implementation of \"virtual\" bivalent
streams that can be layered atop real binary or bivalent streams and that can
be used to read and write character data in various single- or multi-octet
encodings which can be changed on the fly. It also supplies in-memory binary
streams which are similar to string streams.")
(home-page "http://weitz.de/flexi-streams/")
(license license:bsd-3)))
(home-page "http://weitz.de/flexi-streams/")
(license license:bsd-3))))
(define-public cl-flexi-streams
(sbcl-package->cl-source-package sbcl-flexi-streams))
@ -4843,27 +4836,29 @@ (define-public ecl-unix-opts
(sbcl-package->ecl-package sbcl-unix-opts))
(define-public sbcl-trivial-garbage
(package
(name "sbcl-trivial-garbage")
(version "0.21")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/trivial-garbage/trivial-garbage")
(commit (string-append "v" version))))
(file-name (git-file-name "trivial-garbage" version))
(sha256
(base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-rt))
(home-page "https://common-lisp.net/project/trivial-garbage/")
(synopsis "Portable GC-related APIs for Common Lisp")
(description "@command{trivial-garbage} provides a portable API to
(let ((commit "3474f6414b73d4e3aa2d5c53080f4247a34f6380")
(revision "0"))
(package
(name "sbcl-trivial-garbage")
(version (git-version "0.21" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/trivial-garbage/trivial-garbage")
(commit commit)))
(file-name (git-file-name "cl-trivial-garbage" version))
(sha256
(base32 "0rfwxvwg0kpcaa0hsi035yrkfdfks4bq8d9azmrww2f0rmv9g6sd"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-rt))
(home-page "https://common-lisp.net/project/trivial-garbage/")
(synopsis "Portable GC-related APIs for Common Lisp")
(description "@command{trivial-garbage} provides a portable API to
finalizers, weak hash-tables and weak pointers on all major implementations of
the Common Lisp programming language.")
(license license:public-domain)))
(license license:public-domain))))
(define-public cl-trivial-garbage
(sbcl-package->cl-source-package sbcl-trivial-garbage))
@ -5108,39 +5103,40 @@ (define-public ecl-cl-webkit
(sbcl-package->ecl-package sbcl-cl-webkit))
(define-public sbcl-lparallel
(package
(name "sbcl-lparallel")
(version "2.8.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/lmj/lparallel/")
(commit (string-append "lparallel-" version))))
(file-name (git-file-name "lparallel" version))
(sha256
(base32
"0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
(build-system asdf-build-system/sbcl)
(inputs
`(("alexandria" ,sbcl-alexandria)
("bordeaux-threads" ,sbcl-bordeaux-threads)
("trivial-garbage" ,sbcl-trivial-garbage)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-dependency
;; lparallel loads a SBCL specific system in its asd file. This is
;; not carried over into the fasl which is generated. In order for
;; it to be carried over, it needs to be listed as a dependency.
(lambda _
(substitute* "lparallel.asd"
((":depends-on \\(:alexandria" all)
(string-append all " #+sbcl :sb-cltl2"))))))))
(home-page "https://lparallel.org/")
(synopsis "Parallelism for Common Lisp")
(description
"@command{lparallel} is a library for parallel programming in Common
(let ((commit "80fc2952a074776abd343d6b5d3ab157f0e1df7a")
(revision "1"))
(package
(name "sbcl-lparallel")
(version (git-version "2.8.4" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sharplispers/lparallel/")
(commit commit)))
(file-name (git-file-name "cl-lparallel" version))
(sha256
(base32 "0nv2dx8cl25g68icqhw95yr5mygm86lcjzmzijql51na1p60g6y9"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-alexandria
sbcl-bordeaux-threads
sbcl-trivial-garbage))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-dependency
;; lparallel loads a SBCL specific system in its asd file. This is
;; not carried over into the fasl which is generated. In order for
;; it to be carried over, it needs to be listed as a dependency.
(lambda _
(substitute* "lparallel.asd"
((":depends-on \\(:alexandria" all)
(string-append all " #+sbcl :sb-cltl2"))))))))
(home-page "https://lparallel.org/")
(synopsis "Parallelism for Common Lisp")
(description
"@command{lparallel} is a library for parallel programming in Common
Lisp, featuring:
@itemize
@ -5155,17 +5151,13 @@ (define-public sbcl-lparallel
@item task killing by category,
@item integrated timeouts.
@end itemize\n")
(license license:expat)))
(license license:expat))))
(define-public cl-lparallel
(sbcl-package->cl-source-package sbcl-lparallel))
(define-public ecl-lparallel
(package
(inherit (sbcl-package->ecl-package sbcl-lparallel))
(arguments
;; TODO: Find why the tests get stuck forever; disable them for now.
`(#:tests? #f))))
(sbcl-package->ecl-package sbcl-lparallel))
(define-public sbcl-cl-markup
(let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
@ -16368,8 +16360,8 @@ (define-public ecl-custom-hash-table
(sbcl-package->ecl-package sbcl-custom-hash-table))
(define-public sbcl-concurrent-hash-tables
(let ((commit "1b9f0b5da54fece4f42296e1bdacfcec0c370a5a")
(revision "0"))
(let ((commit "6ad539b8970ff94b1e1369b59065ed7d0660904c")
(revision "1"))
(package
(name "sbcl-concurrent-hash-tables")
(version (git-version "0.0.0" revision commit))
@ -16381,7 +16373,7 @@ (define-public sbcl-concurrent-hash-tables
(commit commit)))
(file-name (git-file-name "cl-concurrent-hash-tables" version))
(sha256
(base32 "03g24ycr1ngzg8bv10iwp1bmnldz5bxbfdqrzhfxhicpibh49r96"))))
(base32 "0wgbv3wl33rlfbywmjag0gk7igzfksmib30r8cbnd5n47ic09iip"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-atomics sbcl-bordeaux-threads))

View file

@ -14,7 +14,7 @@
;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
;;; Copyright © 2019-2023 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019-2024 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2021, 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
@ -439,14 +439,17 @@ (define-public clisp
(define-public sbcl
(package
(name "sbcl")
(version "2.3.7")
(version "2.4.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
version "-source.tar.bz2"))
(sha256
(base32 "1xwr1pnwd3xj375ainlad7mm479rk2mrks8dc6d92cash3xl90b9"))
(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"))
(modules '((guix build utils)))
(snippet
'(begin

View file

@ -0,0 +1,27 @@
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

@ -0,0 +1,19 @@
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)))