Merge branch 'lisp-team'
commit
4f35ff1275
|
@ -1946,7 +1946,6 @@ dist_patch_DATA = \
|
||||||
%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-png-fix-sbcl-compatibility.patch \
|
%D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \
|
||||||
%D%/packages/patches/sbcl-riscv-Make-contribs-build-again.patch \
|
|
||||||
%D%/packages/patches/scalapack-gcc-10-compilation.patch \
|
%D%/packages/patches/scalapack-gcc-10-compilation.patch \
|
||||||
%D%/packages/patches/scheme48-tests.patch \
|
%D%/packages/patches/scheme48-tests.patch \
|
||||||
%D%/packages/patches/scons-test-environment.patch \
|
%D%/packages/patches/scons-test-environment.patch \
|
||||||
|
|
|
@ -1281,27 +1281,40 @@ timeouts.")
|
||||||
(define-public sbcl-bordeaux-threads
|
(define-public sbcl-bordeaux-threads
|
||||||
(package
|
(package
|
||||||
(name "sbcl-bordeaux-threads")
|
(name "sbcl-bordeaux-threads")
|
||||||
(version "0.8.8")
|
(version "0.9.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/sionescu/bordeaux-threads")
|
(url "https://github.com/sionescu/bordeaux-threads")
|
||||||
(commit (string-append "v" version))))
|
(commit (string-append "v" version))))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "19i443fz3488v1pbbr9x24y8h8vlyhny9vj6c9jk5prm702awrp6"))
|
(base32 "0d9sd7pm91yhln95z8nclhn6n4l5b2cp3pxpggpmpv7rsq84ssmh"))
|
||||||
(file-name
|
(file-name (git-file-name "cl-bordeaux-threads" version))))
|
||||||
(git-file-name "bordeaux-threads" version))))
|
(inputs (list sbcl-alexandria
|
||||||
(inputs (list sbcl-alexandria))
|
sbcl-global-vars
|
||||||
|
sbcl-trivial-features
|
||||||
|
sbcl-trivial-garbage))
|
||||||
(native-inputs (list sbcl-fiveam))
|
(native-inputs (list sbcl-fiveam))
|
||||||
(build-system asdf-build-system/sbcl)
|
(build-system asdf-build-system/sbcl)
|
||||||
(arguments
|
(arguments
|
||||||
(list
|
(list
|
||||||
#:phases
|
#:phases
|
||||||
#~(modify-phases %standard-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
|
(add-after 'unpack 'adjust-test-sleep
|
||||||
(lambda _
|
(lambda _
|
||||||
;; 0.001 is too short for some slower machines.
|
;; 0.001 is too short for some slower machines.
|
||||||
(substitute* "test/bordeaux-threads-test.lisp"
|
(substitute* '("test/tests-v1.lisp"
|
||||||
|
"test/tests-v2.lisp")
|
||||||
(("sleep 0\\.001") "sleep 0.002")))))))
|
(("sleep 0\\.001") "sleep 0.002")))))))
|
||||||
(synopsis "Portable shared-state concurrency library for Common Lisp")
|
(synopsis "Portable shared-state concurrency library for Common Lisp")
|
||||||
(description "BORDEAUX-THREADS is a proposed standard for a minimal
|
(description "BORDEAUX-THREADS is a proposed standard for a minimal
|
||||||
|
@ -22181,58 +22194,67 @@ fit together as required by any particular game.")
|
||||||
(sbcl-package->cl-source-package sbcl-trial))
|
(sbcl-package->cl-source-package sbcl-trial))
|
||||||
|
|
||||||
(define-public sbcl-virality
|
(define-public sbcl-virality
|
||||||
(package
|
(let ((commit "cdc19cca9b028f0c30d14ed8b3e51359dd46069a")
|
||||||
(name "sbcl-virality")
|
(revision "1"))
|
||||||
(version "0.3.0")
|
(package
|
||||||
(source
|
(name "sbcl-virality")
|
||||||
(origin
|
(version (git-version "0.3.0" revision commit))
|
||||||
(method git-fetch)
|
(source
|
||||||
(uri (git-reference
|
(origin
|
||||||
(url "https://github.com/bufferswap/ViralityEngine")
|
(method git-fetch)
|
||||||
(commit (string-append "v" version))))
|
(uri (git-reference
|
||||||
(file-name (git-file-name "cl-virality" version))
|
(url "https://github.com/bufferswap/ViralityEngine")
|
||||||
(sha256
|
(commit commit)))
|
||||||
(base32 "0hvjcvyd628jh4if6swk1wrfb9qdlnpk9ax1y3jarr8ms7ghfcdb"))))
|
(file-name (git-file-name "cl-virality" version))
|
||||||
(build-system asdf-build-system/sbcl)
|
(sha256
|
||||||
(arguments
|
(base32 "1s25aapkqcr8fxi0i9wjw0n4jax7r4a9d9wflpr3sqz2vgrg2lz6"))))
|
||||||
`(#:asd-systems '("virality"
|
(build-system asdf-build-system/sbcl)
|
||||||
"vorigin"
|
(arguments
|
||||||
"vorigin.test"
|
`(#:asd-systems '("virality"
|
||||||
"vshadow"
|
"vorigin"
|
||||||
"vumbra"
|
"vorigin.test"
|
||||||
"vutils")
|
"vshadow"
|
||||||
#:phases (modify-phases %standard-phases
|
"vumbra"
|
||||||
(add-after 'unpack 'delete-examples
|
"vutils")
|
||||||
(lambda _
|
#:phases (modify-phases %standard-phases
|
||||||
;; Don't install the big "examples" directory.
|
(add-after 'unpack 'delete-examples
|
||||||
(delete-file-recursively "examples"))))))
|
(lambda _
|
||||||
(inputs
|
;; Don't install the big "examples" directory.
|
||||||
(list sbcl-3b-bmfont
|
(delete-file-recursively "examples")
|
||||||
sbcl-babel
|
;; Remove example asd files that cause issues during
|
||||||
sbcl-cl-cpus
|
;; the 'copy-source' phase because they have the same
|
||||||
sbcl-cl-graph
|
;; names.
|
||||||
sbcl-cl-opengl
|
(for-each
|
||||||
sbcl-cl-ppcre
|
delete-file
|
||||||
sbcl-cl-slug
|
(find-files "."
|
||||||
sbcl-closer-mop
|
"^xXx-SYSTEM-NAME-xXx\\.asd$")))))))
|
||||||
sbcl-fast-io
|
(inputs
|
||||||
sbcl-global-vars
|
(list sbcl-3b-bmfont
|
||||||
sbcl-glsl-packing
|
sbcl-babel
|
||||||
sbcl-jsown
|
sbcl-cl-cpus
|
||||||
sbcl-lparallel
|
sbcl-cl-graph
|
||||||
sbcl-pngload
|
sbcl-cl-opengl
|
||||||
sbcl-printv
|
sbcl-cl-ppcre
|
||||||
sbcl-queues
|
sbcl-cl-slug
|
||||||
sbcl-sdl2
|
sbcl-closer-mop
|
||||||
sbcl-serapeum
|
sbcl-fast-io
|
||||||
sbcl-split-sequence
|
sbcl-global-vars
|
||||||
sbcl-static-vectors
|
sbcl-glsl-packing
|
||||||
sbcl-trivial-features
|
sbcl-jsown
|
||||||
sbcl-varjo))
|
sbcl-lparallel
|
||||||
(home-page "https://github.com/bufferswap/ViralityEngine")
|
sbcl-pngload
|
||||||
(synopsis "Component-based game engine written in Common Lisp")
|
sbcl-printv
|
||||||
(description
|
sbcl-queues
|
||||||
"Virality Engine provides a system and workflow that helps describe the
|
sbcl-sdl2
|
||||||
|
sbcl-serapeum
|
||||||
|
sbcl-split-sequence
|
||||||
|
sbcl-static-vectors
|
||||||
|
sbcl-trivial-features
|
||||||
|
sbcl-varjo))
|
||||||
|
(home-page "https://github.com/bufferswap/ViralityEngine")
|
||||||
|
(synopsis "Component-based game engine written in Common Lisp")
|
||||||
|
(description
|
||||||
|
"Virality Engine provides a system and workflow that helps describe the
|
||||||
elements needed to write 2D or 3D games. It was designed with several domain
|
elements needed to write 2D or 3D games. It was designed with several domain
|
||||||
specific languages that make it easier to describe, manipulate, and use assets
|
specific languages that make it easier to describe, manipulate, and use assets
|
||||||
commonly found in game making. Such assets include (but are not limited to)
|
commonly found in game making. Such assets include (but are not limited to)
|
||||||
|
@ -22246,7 +22268,7 @@ can be used with them. Components are added to Actors which represent game
|
||||||
concepts like players, scenery, effects, etc. We define a component protocol
|
concepts like players, scenery, effects, etc. We define a component protocol
|
||||||
invoked by Virality Engine to move your components to the next state and
|
invoked by Virality Engine to move your components to the next state and
|
||||||
render them each frame.")
|
render them each frame.")
|
||||||
(license license:expat)))
|
(license license:expat))))
|
||||||
|
|
||||||
(define-public cl-virality
|
(define-public cl-virality
|
||||||
(sbcl-package->cl-source-package sbcl-virality))
|
(sbcl-package->cl-source-package sbcl-virality))
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
;;; Copyright © 2019-2023 Guillaume Le Vaillant <glv@posteo.net>
|
;;; Copyright © 2019-2023 Guillaume Le Vaillant <glv@posteo.net>
|
||||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
|
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
|
||||||
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
|
;;; Copyright © 2021, 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
|
||||||
;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
|
;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
|
||||||
;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
|
;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
|
||||||
;;; Copyright © 2022 Joeke de Graaf <joeke@posteo.net>
|
;;; Copyright © 2022 Joeke de Graaf <joeke@posteo.net>
|
||||||
|
@ -25,6 +25,7 @@
|
||||||
;;; Copyright © 2022 ( <paren@disroot.org>
|
;;; Copyright © 2022 ( <paren@disroot.org>
|
||||||
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
|
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
|
||||||
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
|
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
|
||||||
|
;;; Copyright © 2023 Andrew Kravchuk <awkravchuk@gmail.com.
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -266,7 +267,7 @@ interface to the Tk widget system.")
|
||||||
(define-public ecl
|
(define-public ecl
|
||||||
(package
|
(package
|
||||||
(name "ecl")
|
(name "ecl")
|
||||||
(version "21.2.1")
|
(version "23.9.9")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -274,7 +275,7 @@ interface to the Tk widget system.")
|
||||||
"https://ecl.common-lisp.dev/static/files/release/"
|
"https://ecl.common-lisp.dev/static/files/release/"
|
||||||
name "-" version ".tgz"))
|
name "-" version ".tgz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "000906nnq25177bgsfndiw3iqqgrjc9spk10hzk653sbz3f7anmi"))))
|
(base32 "107q6gmxlsya4yv38r1x1axrgyyfgdrfkkz97zfp64bcrasdl6y5"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
;; src/configure uses 'which' to confirm the existence of 'gzip'.
|
;; src/configure uses 'which' to confirm the existence of 'gzip'.
|
||||||
(native-inputs
|
(native-inputs
|
||||||
|
@ -381,6 +382,10 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
|
||||||
(%current-target-system)))
|
(%current-target-system)))
|
||||||
'("CFLAGS=-falign-functions=4")
|
'("CFLAGS=-falign-functions=4")
|
||||||
'())
|
'())
|
||||||
|
,@(if (target-x86-64?)
|
||||||
|
'("--enable-portability"
|
||||||
|
"--with-threads=POSIX_THREADS")
|
||||||
|
'())
|
||||||
"--with-dynamic-ffi"
|
"--with-dynamic-ffi"
|
||||||
"--with-dynamic-modules"
|
"--with-dynamic-modules"
|
||||||
"--with-ffcall"
|
"--with-ffcall"
|
||||||
|
@ -434,17 +439,15 @@ an interpreter, a compiler, a debugger, and much more.")
|
||||||
(define-public sbcl
|
(define-public sbcl
|
||||||
(package
|
(package
|
||||||
(name "sbcl")
|
(name "sbcl")
|
||||||
(version "2.3.5")
|
(version "2.3.7")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
|
(uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
|
||||||
version "-source.tar.bz2"))
|
version "-source.tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "11ji5n65l31249r0v7hm0wc0yk2ila0y746nj36xn1cxrwh0gjc9"))
|
(base32 "1xwr1pnwd3xj375ainlad7mm479rk2mrks8dc6d92cash3xl90b9"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
;; backport from upstream.
|
|
||||||
(patches (search-patches "sbcl-riscv-Make-contribs-build-again.patch"))
|
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
;; Don't force ARMv5.
|
;; Don't force ARMv5.
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
;;; Copyright © 2021, 2022 Paul A. Patience <paul@apatience.com>
|
;;; Copyright © 2021, 2022 Paul A. Patience <paul@apatience.com>
|
||||||
;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
|
;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
|
||||||
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
|
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
|
||||||
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
|
;;; Copyright © 2021, 2023 Guillaume Le Vaillant <glv@posteo.net>
|
||||||
;;; Copyright © 2021 Pierre-Antoine Bouttier <pierre-antoine.bouttier@univ-grenoble-alpes.fr>
|
;;; Copyright © 2021 Pierre-Antoine Bouttier <pierre-antoine.bouttier@univ-grenoble-alpes.fr>
|
||||||
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
|
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
|
||||||
;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
|
;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
|
||||||
|
@ -4312,102 +4312,99 @@ to BMP, JPEG or PNG image formats.")
|
||||||
(define-public maxima
|
(define-public maxima
|
||||||
(package
|
(package
|
||||||
(name "maxima")
|
(name "maxima")
|
||||||
(version "5.46.0")
|
(version "5.47.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://sourceforge/maxima/Maxima-source/"
|
(uri (string-append "mirror://sourceforge/maxima/Maxima-source/"
|
||||||
version "-source/" name "-" version ".tar.gz"))
|
version "-source/" name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32 "0yhgsi7s22bpblrmrj60x0jsjdz98b5hjdcq7b0fhlzx4hdh414i"))
|
||||||
"01wbm8jj43p7gpdj4h55aij0b44bjydn4bwb7q1wjrfs91mz143k"))
|
|
||||||
(patches (search-patches "maxima-defsystem-mkdir.patch"))))
|
(patches (search-patches "maxima-defsystem-mkdir.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("bash" ,bash-minimal)
|
(list bash-minimal
|
||||||
("gnuplot" ,gnuplot) ;for plots
|
gnuplot ;for plots
|
||||||
("sbcl" ,sbcl)
|
sbcl
|
||||||
("sed" ,sed)
|
sed
|
||||||
("tk" ,tk))) ;Tcl/Tk is used by 'xmaxima'
|
tk)) ;Tcl/Tk is used by 'xmaxima'
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(list texinfo perl python))
|
(list texinfo perl python))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags
|
(list
|
||||||
,#~(list "--enable-sbcl"
|
#:configure-flags
|
||||||
(string-append "--with-sbcl=" #$sbcl "/bin/sbcl")
|
#~(list "--enable-sbcl"
|
||||||
(string-append "--with-posix-shell=" #$bash-minimal "/bin/sh")
|
(string-append "--with-sbcl=" #$sbcl "/bin/sbcl")
|
||||||
(string-append "--with-wish=" #$tk "/bin/wish"
|
(string-append "--with-posix-shell=" #$bash-minimal "/bin/sh")
|
||||||
#$(version-major+minor (package-version tk))))
|
(string-append "--with-wish=" #$tk "/bin/wish"
|
||||||
;; By default Maxima attempts to write temporary files to
|
#$(version-major+minor (package-version tk))))
|
||||||
;; '/tmp/nix-build-maxima-*', which won't exist at run time.
|
;; By default Maxima attempts to write temporary files to
|
||||||
;; Work around that.
|
;; '/tmp/nix-build-maxima-*', which won't exist at run time.
|
||||||
#:make-flags (list "TMPDIR=/tmp")
|
;; Work around that.
|
||||||
#:phases
|
#:make-flags #~(list "TMPDIR=/tmp")
|
||||||
(modify-phases %standard-phases
|
#:phases
|
||||||
(add-after 'unpack 'patch-paths
|
#~(modify-phases %standard-phases
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(add-after 'unpack 'patch-paths
|
||||||
(let* ((sed (search-input-file inputs "/bin/sed"))
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
(coreutils (assoc-ref inputs "coreutils"))
|
(let* ((sed (search-input-file inputs "/bin/sed"))
|
||||||
(dirname (string-append coreutils "/bin/dirname"))
|
(coreutils (assoc-ref inputs "coreutils"))
|
||||||
(head (string-append coreutils "/bin/head"))
|
(dirname (string-append coreutils "/bin/dirname"))
|
||||||
(perl (search-input-file inputs "/bin/perl"))
|
(head (string-append coreutils "/bin/head"))
|
||||||
(python (search-input-file inputs "/bin/python3")))
|
(perl (search-input-file inputs "/bin/perl"))
|
||||||
(substitute* "src/maxima.in"
|
(python (search-input-file inputs "/bin/python3")))
|
||||||
(("sed ") (string-append sed " "))
|
(substitute* "src/maxima.in"
|
||||||
(("dirname") dirname)
|
(("sed ") (string-append sed " "))
|
||||||
(("head") head))
|
(("dirname") dirname)
|
||||||
(substitute* "doc/info/Makefile.in"
|
(("head") head))
|
||||||
(("/usr/bin/env perl") perl))
|
(substitute* "doc/info/Makefile.in"
|
||||||
(substitute* "doc/info/build_html.sh.in"
|
(("/usr/bin/env perl") perl))
|
||||||
(("python") python))
|
(substitute* "doc/info/build_html.sh.in"
|
||||||
#t)))
|
(("python") python)))))
|
||||||
(add-before 'check 'pre-check
|
(add-before 'check 'pre-check
|
||||||
(lambda _
|
(lambda _
|
||||||
(chmod "src/maxima" #o555)
|
(chmod "src/maxima" #o555)))
|
||||||
#t))
|
(replace 'check
|
||||||
(replace 'check
|
(lambda _
|
||||||
(lambda _
|
;; This is derived from the testing code in the "debian/rules" file
|
||||||
;; This is derived from the testing code in the "debian/rules" file
|
;; of Debian's Maxima package.
|
||||||
;; of Debian's Maxima package.
|
;; If Maxima can successfully run this, the binary to be installed
|
||||||
;; If Maxima can successfully run this, the binary to be installed
|
;; should be fine.
|
||||||
;; should be fine.
|
(invoke "sh" "-c"
|
||||||
(invoke "sh" "-c"
|
(string-append
|
||||||
(string-append
|
"./maxima-local "
|
||||||
"./maxima-local "
|
"--lisp=sbcl "
|
||||||
"--lisp=sbcl "
|
"--batch-string=\"run_testsuite();\" "
|
||||||
"--batch-string=\"run_testsuite();\" "
|
"| grep -q \"No unexpected errors found\""))))
|
||||||
"| grep -q \"No unexpected errors found\""))))
|
;; Make sure the doc and emacs files are found in the
|
||||||
;; Make sure the doc and emacs files are found in the
|
;; standard location. Also configure maxima to find gnuplot
|
||||||
;; standard location. Also configure maxima to find gnuplot
|
;; without having it on the PATH.
|
||||||
;; without having it on the PATH.
|
(add-after 'install 'post-install
|
||||||
(add-after 'install 'post-install
|
(lambda* (#:key outputs inputs #:allow-other-keys)
|
||||||
(lambda* (#:key outputs inputs #:allow-other-keys)
|
(let* ((gnuplot (assoc-ref inputs "gnuplot"))
|
||||||
(let* ((gnuplot (assoc-ref inputs "gnuplot"))
|
(out (assoc-ref outputs "out"))
|
||||||
(out (assoc-ref outputs "out"))
|
(datadir (string-append out "/share/maxima/" #$version))
|
||||||
(datadir (string-append out "/share/maxima/" ,version))
|
(binutils (dirname (search-input-file inputs "/bin/as"))))
|
||||||
(binutils (dirname (search-input-file inputs "/bin/as"))))
|
(with-directory-excursion out
|
||||||
(with-directory-excursion out
|
(mkdir-p "share/emacs")
|
||||||
(mkdir-p "share/emacs")
|
(mkdir-p "share/doc")
|
||||||
(mkdir-p "share/doc")
|
(symlink
|
||||||
(symlink
|
(string-append datadir "/doc/")
|
||||||
(string-append datadir "/doc/")
|
(string-append out "/share/doc/maxima"))
|
||||||
(string-append out "/share/doc/maxima"))
|
(with-atomic-file-replacement
|
||||||
(with-atomic-file-replacement
|
(string-append datadir "/share/maxima-init.lisp")
|
||||||
(string-append datadir "/share/maxima-init.lisp")
|
(lambda (in out)
|
||||||
(lambda (in out)
|
(format out "~a ~s~a~%"
|
||||||
(format out "~a ~s~a~%"
|
"(setf $gnuplot_command "
|
||||||
"(setf $gnuplot_command "
|
(string-append gnuplot "/bin/gnuplot") ")")
|
||||||
(string-append gnuplot "/bin/gnuplot") ")")
|
(dump-port in out))))
|
||||||
(dump-port in out))))
|
;; Ensure that Maxima will have access to the GNU binutils
|
||||||
;; Ensure that Maxima will have access to the GNU binutils
|
;; components at runtime.
|
||||||
;; components at runtime.
|
(wrap-program (string-append out "/bin/maxima")
|
||||||
(wrap-program (string-append out "/bin/maxima")
|
`("PATH" prefix (#$binutils))))))
|
||||||
`("PATH" prefix (,binutils))))
|
;; The Maxima command ‘describe’ allows picking the relevant portions
|
||||||
#t))
|
;; from Maxima’s Texinfo docs. However it does not support reading
|
||||||
;; The Maxima command ‘describe’ allows picking the relevant portions
|
;; gzipped info files.
|
||||||
;; from Maxima’s Texinfo docs. However it does not support reading
|
(delete 'compress-documentation))))
|
||||||
;; gzipped info files.
|
|
||||||
(delete 'compress-documentation))))
|
|
||||||
(home-page "https://maxima.sourceforge.io")
|
(home-page "https://maxima.sourceforge.io")
|
||||||
(synopsis "Numeric and symbolic expression manipulation")
|
(synopsis "Numeric and symbolic expression manipulation")
|
||||||
(description "Maxima is a system for the manipulation of symbolic and
|
(description "Maxima is a system for the manipulation of symbolic and
|
||||||
|
|
|
@ -1,71 +0,0 @@
|
||||||
From 8704f528f227f587d0e06dfd2f807aeca7a69a71 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Charles Zhang <charleszhang99@yahoo.com>
|
|
||||||
Date: Thu, 1 Jun 2023 16:39:26 +0200
|
|
||||||
Subject: [PATCH] riscv: Make contribs build again.
|
|
||||||
|
|
||||||
The issue was that the LINKAGE_TEMP_REG being NL3 was a C argument
|
|
||||||
register, so of course that caused clashing on C call-out, causing
|
|
||||||
problems with run-program. Going back to NL7 didn't work either
|
|
||||||
because it wasn't getting saved before entry into the trampoline. The
|
|
||||||
code here used to have NL7 before the trampoline code was gutted and
|
|
||||||
then restored, so I'm wondering how this ever worked before, because
|
|
||||||
it definitely did. Pick LIP as the TEMP_REG now because not only does
|
|
||||||
it get saved, it's also the least likely thing to get disturbed by
|
|
||||||
clobbering.
|
|
||||||
|
|
||||||
Fixes #lp2002930.
|
|
||||||
|
|
||||||
Also remove assembly routine printing because it doesn't need to be
|
|
||||||
part of the build script (unlike the other files in output/ which
|
|
||||||
can't trivially be recovered from a built image), and because not all
|
|
||||||
disassembler printers have been written on riscv yet.
|
|
||||||
---
|
|
||||||
NEWS | 3 +++
|
|
||||||
make-target-2-load.lisp | 4 ----
|
|
||||||
src/runtime/riscv-arch.c | 2 +-
|
|
||||||
3 files changed, 4 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/NEWS b/NEWS
|
|
||||||
index 17537ff92..5c0f7777b 100644
|
|
||||||
--- a/NEWS
|
|
||||||
+++ b/NEWS
|
|
||||||
@@ -1,5 +1,8 @@
|
|
||||||
;;;; -*- coding: utf-8; fill-column: 78 -*-
|
|
||||||
|
|
||||||
+changes relative to sbcl-2.3.5:
|
|
||||||
+ * bug fix: riscv can build contribs again.
|
|
||||||
+
|
|
||||||
changes in sbcl-2.3.5 relative to sbcl-2.3.4:
|
|
||||||
* enhancement: Unicode support has been updated to support version 15.0.0 of
|
|
||||||
the Unicode standard, including addition of characters and their collation
|
|
||||||
diff --git a/make-target-2-load.lisp b/make-target-2-load.lisp
|
|
||||||
index 885ebda74..b9a1a1e36 100644
|
|
||||||
--- a/make-target-2-load.lisp
|
|
||||||
+++ b/make-target-2-load.lisp
|
|
||||||
@@ -6,10 +6,6 @@
|
|
||||||
(defvar *compile-files-p* nil)
|
|
||||||
(load (merge-pathnames "src/cold/warm.lisp" *load-pathname*))
|
|
||||||
|
|
||||||
-(with-open-file (stream "output/asm-routines.txt" :direction :output
|
|
||||||
- :if-does-not-exist :create :if-exists :supersede)
|
|
||||||
- (sb-c:dis sb-fasl:*assembler-routines* stream))
|
|
||||||
-
|
|
||||||
;; sb-xref-for-internals is actively harmful to tree-shaking.
|
|
||||||
;; Remove some symbols to make the hide-packages test pass.
|
|
||||||
#+sb-xref-for-internals
|
|
||||||
diff --git a/src/runtime/riscv-arch.c b/src/runtime/riscv-arch.c
|
|
||||||
index 6c1994829..062623899 100644
|
|
||||||
--- a/src/runtime/riscv-arch.c
|
|
||||||
+++ b/src/runtime/riscv-arch.c
|
|
||||||
@@ -159,7 +159,7 @@ arch_install_interrupt_handlers(void)
|
|
||||||
* Linkage entry size is 8 or 20, because we need 2 instructions for the 32-bit case and we need 3 instructions and an 8 byte address in the 64-bit case.
|
|
||||||
*/
|
|
||||||
|
|
||||||
-#define LINKAGE_TEMP_REG reg_NL3
|
|
||||||
+#define LINKAGE_TEMP_REG reg_LIP // Lisp needs to save before entry.
|
|
||||||
|
|
||||||
void arch_write_linkage_table_entry(int index, void *target_addr, int datap)
|
|
||||||
{
|
|
||||||
--
|
|
||||||
2.40.1
|
|
||||||
|
|
Reference in New Issue