From 2c6a9ad2f0318a23e79bee96f28a56ea66aad359 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Thu, 30 Jun 2022 13:51:50 +0200 Subject: gnu: sbcl: Update to 2.2.6. * gnu/packages/lisp.scm (sbcl): Update to 2.2.6. [native-inputs]: Remove zlib. Remove labels. [inputs]: Add zstd:lib. --- gnu/packages/lisp.scm | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 3c43f8fa4c..715ba14201 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -413,14 +413,14 @@ (define-public clisp (define-public sbcl (package (name "sbcl") - (version "2.2.2") + (version "2.2.6") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-" version "-source.tar.bz2")) (sha256 - (base32 "1xjhg473ibfiplvvyg1grxrh0nqqbg72acc2pcacw7bijyzdp447")))) + (base32 "18044dqx37mkipnrzs7jrp0cbnwp6snb5gi06a8zn9m8iy6088ry")))) (build-system gnu-build-system) (outputs '("out" "doc")) (native-inputs @@ -445,18 +445,19 @@ (define-public sbcl ;; to make it easier to change the host compiler for various ;; architectures. Consider switching to ECL if it gets faster than CLISP ;; (maybe post 2020 release). - `(,@(match (%current-system) - ((or "x86_64-linux" "i686-linux") - `(("clisp" ,clisp))) - (_ - `(("clisp" ,clisp)))) - ("cl-asdf" ,cl-asdf) - ("ed" ,ed) - ("inetutils" ,inetutils) ;for hostname(1) - ("texinfo" ,texinfo) - ("texlive" ,(texlive-updmap.cfg (list texlive-tex-texinfo))) - ("which" ,which) - ("zlib" ,zlib))) + (list (match (%current-system) + ((or "x86_64-linux" "i686-linux") + clisp) + (_ + clisp)) + cl-asdf + ed + inetutils ;for hostname(1) + texinfo + (texlive-updmap.cfg (list texlive-tex-texinfo)) + which)) + (inputs + (list (list zstd "lib"))) (arguments `(#:modules ((guix build gnu-build-system) (guix build utils) -- cgit v1.2.3 From 9829f53a3f88884e245e962073528be46918ad2e Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Thu, 30 Jun 2022 16:57:13 +0200 Subject: gnu: sbcl: Fix build on some architectures. * gnu/packages/lisp.scm (sbcl)[arguments]: Update 'build-doc' phase to build the doc for SB-SIMD only on x86_64-linux. --- gnu/packages/lisp.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 715ba14201..d59f11865b 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -557,7 +557,15 @@ (define (quoted-path input path) (invoke "sh" "install.sh"))) (add-after 'build 'build-doc (lambda _ - ;; TODO: Doc is not deterministic, maybe there is a timespamp? + ;; Building the documentation for SB-SIMD only works when SB-SIMD + ;; is enabled, so far only on x86_64-linux. + ,@(match (%current-system) + ("x86_64-linux" + '()) + (_ + '((substitute* "doc/manual/generate-texinfo.lisp" + (("exclude '\\(\"asdf\"\\)") + "exclude '(\"asdf\" \"sb-simd\")"))))) (with-directory-excursion "doc/manual" (and (invoke "make" "info") (invoke "make" "dist"))))) -- cgit v1.2.3 From 0eac11139a770703399751ea092419909203a8a8 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Thu, 30 Jun 2022 18:58:25 +0200 Subject: gnu: sbcl: Enable sb-gmp, sb-mpfr and install shared library. * gnu/packages/lisp.scm (sbcl)[inputs]: Add gmp, mpfr. [arguments]: Fix shared library makefile. Fix contrib references to gmp and mpfr. Add phase to build shared library. Add phase to install shared library. --- gnu/packages/lisp.scm | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index d59f11865b..af65d9327f 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -457,7 +457,9 @@ (define-public sbcl (texlive-updmap.cfg (list texlive-tex-texinfo)) which)) (inputs - (list (list zstd "lib"))) + (list gmp ; for sb-gmp + mpfr ; for sb-mpfr + (list zstd "lib"))) (arguments `(#:modules ((guix build gnu-build-system) (guix build utils) @@ -539,6 +541,20 @@ (define (quoted-path input path) (("\\(deftest grent\\.[12]" all) (string-append "#+nil ;disabled by Guix\n" all)))) #t)) + (add-before 'build 'fix-shared-library-makefile + (lambda _ + (substitute* '("src/runtime/GNUmakefile") + ((" cc") " $(CC)")) + #t)) + (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"))) + (substitute* '("contrib/sb-mpfr/mpfr.lisp") + (("\"libmpfr\\.so") (string-append "\"" mpfr "/lib/libmpfr.so")))) + #t)) (replace 'build (lambda* (#:key outputs #:allow-other-keys) (setenv "CC" "gcc") @@ -552,6 +568,10 @@ (define (quoted-path input path) "--dynamic-space-size=3072" "--with-sb-core-compression" "--with-sb-xref-for-internals"))) + (add-after 'build 'build-shared-library + (lambda* (#:key outputs #:allow-other-keys) + (setenv "CC" "gcc") + (invoke "sh" "make-shared-library.sh"))) (replace 'install (lambda _ (invoke "sh" "install.sh"))) @@ -584,6 +604,12 @@ (define (quoted-path input path) (string-append "(sb-ext:set-sbcl-source-location \"" source-dir "\")") ))) #t))) + (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))) (add-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) -- cgit v1.2.3 From e0d2f8164e6a1c15fdcae6f7dadb05c0c9e25352 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Sun, 3 Jul 2022 10:08:47 +0200 Subject: gnu: sbcl: Disable SB-SIMD module. SB-SIMD gets enabled only on x86_64 CPUs supporting AVX2 instructions, and some x86_64 CPUs don't. Fixes . Reported by Wensheng Xie . * gnu/packages/lisp.scm (sbcl)[arguments]: Disable SB-SIMD in the 'build' and 'build-doc' phases. --- gnu/packages/lisp.scm | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index af65d9327f..72b6accc29 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -567,7 +567,12 @@ (define (quoted-path input path) (assoc-ref outputs "out")) "--dynamic-space-size=3072" "--with-sb-core-compression" - "--with-sb-xref-for-internals"))) + "--with-sb-xref-for-internals" + ;; SB-SIMD will only be built on x86_64 CPUs supporting + ;; AVX2 instructions. Some x86_64 CPUs don't, so for reproducibility + ;; we disable it and we don't build its documentation (see the + ;; 'build-doc' phase). + "--without-sb-simd"))) (add-after 'build 'build-shared-library (lambda* (#:key outputs #:allow-other-keys) (setenv "CC" "gcc") @@ -577,15 +582,11 @@ (define (quoted-path input path) (invoke "sh" "install.sh"))) (add-after 'build 'build-doc (lambda _ - ;; Building the documentation for SB-SIMD only works when SB-SIMD - ;; is enabled, so far only on x86_64-linux. - ,@(match (%current-system) - ("x86_64-linux" - '()) - (_ - '((substitute* "doc/manual/generate-texinfo.lisp" - (("exclude '\\(\"asdf\"\\)") - "exclude '(\"asdf\" \"sb-simd\")"))))) + ;; Don't build the documentation for SB-SIMD as it is disabled in + ;; the 'build' phase. + (substitute* "doc/manual/generate-texinfo.lisp" + (("exclude '\\(\"asdf\"\\)") + "exclude '(\"asdf\" \"sb-simd\")")) (with-directory-excursion "doc/manual" (and (invoke "make" "info") (invoke "make" "dist"))))) -- cgit v1.2.3 From c2fe78db73401a67306a5119ea9ca8de1d240a21 Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Mon, 4 Jul 2022 04:23:14 +0000 Subject: gnu: txr: Update to 278. * gnu/packages/lisp.scm (txr): Update to 278. [source]: Use 'https' in url. Signed-off-by: Efraim Flashner --- gnu/packages/lisp.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 72b6accc29..0bb10e4efd 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -959,16 +959,16 @@ (define man-for-txr (define-public txr (package (name "txr") - (version "277") + (version "278") (source (origin (method git-fetch) (uri (git-reference - (url "http://www.kylheku.com/git/txr/") + (url "https://www.kylheku.com/git/txr/") (commit (string-append "txr-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1w6q5inydz0cf4g3y8954msxfb2clf4nj4aqiiayp0z2y96b7bhk")))) + (base32 "08jmqv245vnvl4xx6x5a5hxlnhdcipfdbja54dvsi6wkiks2fif7")))) (build-system gnu-build-system) (arguments `(#:configure-flags -- cgit v1.2.3 From bf22d0d03843a8a40cff012b08204958aedab0e9 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 6 Jul 2022 12:05:52 +0300 Subject: gnu: txr: Install vim syntax files. * gnu/packages/lisp.scm (txr)[arguments]: Add phase to install vim syntax files. --- gnu/packages/lisp.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 0bb10e4efd..02abdd1e37 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016, 2017 Nikita ;;; Copyright © 2016, 2017 Andy Patterson ;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus -;;; Copyright © 2017, 2018, 2019 Efraim Flashner +;;; Copyright © 2017-2019, 2022 Efraim Flashner ;;; Copyright © 2017, 2019–2022 Tobias Geerinckx-Rice ;;; Copyright © 2018 Benjamin Slade ;;; Copyright © 2018 Alex Vong @@ -1019,7 +1019,13 @@ (define-public txr (let ((doc (string-append (assoc-ref outputs "out") "/share/doc/" ,name "-" ,version))) (for-each (lambda (f) (install-file f doc)) - '("txr-manpage.html" "txr-manpage.pdf")))))))) + '("txr-manpage.html" "txr-manpage.pdf"))))) + (add-after 'install 'install-vim-files + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (syntax (string-append out "/share/vim/vimfiles/syntax"))) + (install-file "tl.vim" syntax) + (install-file "txr.vim" syntax))))))) (native-inputs ;; Required to build the documentation. (list ghostscript -- cgit v1.2.3 From d14070bd29de2edd25a57c4618cb3fae6445b47d Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Thu, 7 Jul 2022 09:58:49 +0200 Subject: gnu: sbcl: Remove Coreutils reference from closure. * gnu/packages/lisp.scm (sbcl)[arguments]: Add phase to do it. This shrinks SBCL from 167MiB to 150MiB. Most importantly, this propagates to all sbcl-* packages. --- gnu/packages/lisp.scm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 02abdd1e37..636221af35 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -605,6 +605,21 @@ (define (quoted-path input path) (string-append "(sb-ext:set-sbcl-source-location \"" source-dir "\")") ))) #t))) + (add-after 'install 'remove-coreutils-references + ;; They are only useful on non-Linux, non-SBCL. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share-dir (string-append out "/share/sbcl/"))) + (substitute* (string-append share-dir "src/code/run-program.lisp") + (("\\(run-program \".*uname\"") + "(run-program \"uname\"")) + (substitute* (string-append share-dir "contrib/asdf/asdf.lisp") + (("\\(\".*/usr/bin/env\"") + "(\"/usr/bin/env\"")) + (substitute* (string-append share-dir "contrib/asdf/uiop.lisp") + (("\\(\".*/usr/bin/env\"") + "(\"/usr/bin/env\"")) + #t))) (add-after 'install 'install-shared-library (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) -- cgit v1.2.3 From 0d6d7b3efc8888f4cf6a5b785eb072e30bd91712 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 12 Jul 2022 13:46:26 +0300 Subject: gnu: sbcl: Fix building on armhf-linux. * gnu/packages/lisp.scm (sbcl)[arguments]: When building for armhf-linux add a phase to remove build optimizations targeting armv5. --- gnu/packages/lisp.scm | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 636221af35..2906c50646 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -466,6 +466,13 @@ (define-public sbcl (srfi srfi-1)) #:phases (modify-phases %standard-phases + ,@(if (target-arm32?) + ;; TODO: Move to snippet in staging. + `((add-after 'unpack 'dont-force-armv5 + (lambda _ + (substitute* "src/runtime/Config.arm-linux" + (("-march=armv5") ""))))) + '()) (delete 'configure) (add-after 'unpack 'fix-build-id ;; One of the build scripts makes a build id using the current date. -- cgit v1.2.3 From 40095549f4ee69b6c3314dc03ae4464c5f0b44f3 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 12 Jul 2022 20:07:34 +0300 Subject: gnu: sbcl: Fix building on powerpc-linux. * gnu/packages/lisp.scm (sbcl)[native-inputs]: Remove clisp, add ecl. [arguments]: In custom 'build phase replace 'clisp' with 'ecl' for powerpc-linux and adjust the dynamic-space-size to closer to the maximum RAM for the architecture. --- gnu/packages/lisp.scm | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 2906c50646..8e59ec956b 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -441,13 +441,13 @@ (define-public sbcl ;; ECL too. As of 2020-07-01, ECL was last updated in 2020 while CLISP ;; was last updated in 2010, and both take about the same time to build SBCL. ;; - ;; For now we stick to CLISP for all systems. We keep the `match' here - ;; to make it easier to change the host compiler for various + ;; For now we stick to CLISP as the default for all systems. In any event, keep + ;; the `match' here to make it easier to change the host compiler for various ;; architectures. Consider switching to ECL if it gets faster than CLISP ;; (maybe post 2020 release). (list (match (%current-system) - ((or "x86_64-linux" "i686-linux") - clisp) + ("powerpc-linux" ; CLISP fails to build, needs investigating. + ecl) (_ clisp)) cl-asdf @@ -566,13 +566,16 @@ (define (quoted-path input path) (lambda* (#:key outputs #:allow-other-keys) (setenv "CC" "gcc") (invoke "sh" "make.sh" ,@(match (%current-system) - ((or "x86_64-linux" "i686-linux") - `("clisp")) + ("powerpc-linux" + `("ecl")) (_ `("clisp"))) (string-append "--prefix=" (assoc-ref outputs "out")) - "--dynamic-space-size=3072" + ,@(if (target-ppc32?) + ;; 3072 is too much for this architecture. + `("--dynamic-space-size=2048") + `("--dynamic-space-size=3072")) "--with-sb-core-compression" "--with-sb-xref-for-internals" ;; SB-SIMD will only be built on x86_64 CPUs supporting -- cgit v1.2.3