diff options
Diffstat (limited to 'gnu/packages/lisp.scm')
-rw-r--r-- | gnu/packages/lisp.scm | 77 |
1 files changed, 45 insertions, 32 deletions
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 22f542ccc5..5c0df4e1ff 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> +;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca> ;;; ;;; This file is part of GNU Guix. ;;; @@ -102,15 +103,15 @@ interface to the Tk widget system.") (define-public ecl (package (name "ecl") - (version "15.2.21") + (version "16.1.2") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/ecls/ecls/" - (version-major+minor version) - "/ecl-" version ".tgz")) + (uri (string-append + "https://common-lisp.net/project/ecl/static/files/release/" + name "-" version ".tgz")) (sha256 - (base32 "05di23v977byf67rq5bdshw8lqbby1ycbscdcl1vca0z6r1s204j")))) + (base32 "16ab8qs3awvdxy8xs8jy82v8r04x4wr70l9l2j45vgag18d2nj1d")))) (build-system gnu-build-system) ;; src/configure uses 'which' to confirm the existence of 'gzip'. (native-inputs `(("which" ,which))) @@ -119,30 +120,38 @@ interface to the Tk widget system.") ("libgc" ,libgc) ("libffi" ,libffi))) (arguments - '(;; During 'make check', ECL fails to initialize with "protocol not - ;; supported", presumably because /etc/protocols is missing in the - ;; build environment. See <http://sourceforge.net/p/ecls/bugs/300/>. - ;; - ;; Should the test suite be re-enabled, it might be necessary to add - ;; '#:parallel-tests #f'. See the same bug report as above. - ;; - ;; The following might also be necessary, due to 'make check' assuming - ;; ECL is installed. See <http://sourceforge.net/p/ecls/bugs/299/>. - ;; - ;; #:phases - ;; (let* ((check-phase (assq-ref %standard-phases 'check)) - ;; (rearranged-phases - ;; (alist-cons-after 'install 'check check-phase - ;; (alist-delete 'check %standard-phases)))) - ;; (alist-cons-before - ;; 'check 'pre-check - ;; (lambda* (#:key outputs #:allow-other-keys) - ;; (substitute* '("build/tests/Makefile") - ;; (("ECL=ecl") - ;; (string-append - ;; "ECL=" (assoc-ref outputs "out") "/bin/ecl")))) - ;; rearranged-phases)) - #:tests? #f)) + '(#:tests? #t + #:make-flags `(,(string-append "ECL=" + (assoc-ref %outputs "out") + "/bin/ecl")) + #:parallel-tests? #f + #:phases + (modify-phases %standard-phases + (delete 'check) + (add-after 'install 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((ecl (assoc-ref outputs "out")) + (input-path (lambda (lib path) + (string-append + (assoc-ref inputs lib) path))) + (libraries '("gmp" "libatomic-ops" "libgc" "libffi" "libc")) + (binaries '("gcc" "ld-wrapper" "binutils")) + (library-directories + (map (lambda (lib) (input-path lib "/lib")) + libraries))) + + (wrap-program (string-append ecl "/bin/ecl") + `("PATH" prefix + ,(map (lambda (binary) + (input-path binary "/bin")) + binaries)) + `("CPATH" suffix + ,(map (lambda (lib) + (input-path lib "/include")) + `("linux-headers" ,@libraries))) + `("LIBRARY_PATH" suffix ,library-directories) + `("LD_LIBRARY_PATH" suffix ,library-directories))))) + (add-after 'wrap 'check (assoc-ref %standard-phases 'check))))) (home-page "http://ecls.sourceforge.net/") (synopsis "Embeddable Common Lisp") (description "ECL is an implementation of the Common Lisp language as @@ -209,14 +218,14 @@ an interpreter, a compiler, a debugger, and much more.") (define-public sbcl (package (name "sbcl") - (version "1.2.8") + (version "1.3.7") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-" version "-source.tar.bz2")) (sha256 - (base32 "0ab9lw056yf6y0rjmx3iirn5n59pmssqxf00fbmpyl6qsnpaja1d")))) + (base32 "0fjdqnb2rsm2vi9794ywp27jr239ddvzc4xfr0dk49jd4v7p2kc5")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;; Bootstrap with CLISP. @@ -243,7 +252,11 @@ an interpreter, a compiler, a debugger, and much more.") ;; occurs in some .sh files too (which contain Lisp code). Use ;; ISO-8859-1 because some of the files are ISO-8859-1 encoded. (with-fluids ((%default-port-encoding #f)) - (substitute* (find-files "." "\\.(lisp|sh)$") + ;; The removed file is utf-16-be encoded, which gives substitute* + ;; trouble. It does not contain references to the listed programs. + (substitute* (delete + "./tests/data/compile-file-pos-utf16be.lisp" + (find-files "." "\\.(lisp|sh)$")) (("\"/bin/sh\"") (quoted-path bash "/bin/sh")) (("\"/usr/bin/env\"") (quoted-path coreutils "/usr/bin/env")) (("\"/bin/cat\"") (quoted-path coreutils "/bin/cat")) |