diff options
Diffstat (limited to 'gnu/packages/scheme.scm')
-rw-r--r-- | gnu/packages/scheme.scm | 151 |
1 files changed, 87 insertions, 64 deletions
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index c43d17219e..378a5b4959 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015, 2016 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> @@ -16,6 +16,8 @@ ;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com> ;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> +;;; Copyright © 2022 Morgan Smith <Morgan.J.Smith@outlook.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,7 +38,7 @@ #:use-module (gnu packages) #:use-module ((guix licenses) #:select (gpl2+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ asl2.0 bsd-3 - cc-by-sa4.0 non-copyleft expat)) + cc-by-sa4.0 non-copyleft expat public-domain)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -126,10 +128,6 @@ (("\\./configure") (string-append (which "sh") " configure"))) #t)) - ;; FIXME: the texlive-union insists on regenerating fonts. It stores - ;; them in HOME, so it needs to be writeable. - (add-before 'build 'set-HOME - (lambda _ (setenv "HOME" "/tmp") #t)) (replace 'build (lambda* (#:key system outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -177,8 +175,8 @@ ("autoconf" ,autoconf) ("automake" ,automake) ("libtool" ,libtool) - ("texlive" ,(texlive-union (list texlive-tex-texinfo - texlive-epsf))) + ("texlive" ,(texlive-updmap.cfg (list texlive-tex-texinfo + texlive-epsf))) ("texinfo" ,texinfo) ("ghostscript" ,ghostscript) ("m4" ,m4))) @@ -223,7 +221,7 @@ (supported-systems '("x86_64-linux" "i686-linux")) (home-page "https://www.gnu.org/software/mit-scheme/") - (synopsis "A Scheme implementation with integrated editor and debugger") + (synopsis "Scheme implementation with integrated editor and debugger") (description "GNU/MIT Scheme is an implementation of the Scheme programming language. It provides an interpreter, a compiler and a debugger. It also @@ -307,21 +305,20 @@ features an integrated Emacs-like editor and a large runtime library.") (string-append "EMACSBRAND=emacs25") (string-append "EMACSDIR=" dir)))))))) (inputs - `(("emacs" ,emacs) ;UDE needs the X version of Emacs - ("libgc" ,libgc) - ("libunistring" ,libunistring) - ("libuv" ,libuv) - ("openssl" ,openssl) - ("sqlite" ,sqlite) - - ;; Optional APIs for which Bigloo has bindings. - ("avahi" ,avahi) - ("libphidget" ,libphidget) - ("pcre" ,pcre))) + (list emacs ;UDE needs the X version of Emacs + libgc + libunistring + libuv + openssl + sqlite + ;; Optional APIs for which Bigloo has bindings. + avahi + libphidget + pcre)) (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config)) (propagated-inputs - `(("gmp" ,gmp))) ; bigloo.h refers to gmp.h + (list gmp)) ; bigloo.h refers to gmp.h (home-page "https://www-sop.inria.fr/indes/fp/Bigloo/") (synopsis "Efficient Scheme compiler") (description @@ -367,14 +364,14 @@ and between Scheme and Java programs.") "-copt \\$(CPICFLAGS) " "-L \\$(BUILDLIBDIR) " "-ldopt -Wl,-rpath," out "/lib")))))))) - (inputs `(("avahi" ,avahi) - ("bigloo" ,bigloo) - ("libgc" ,libgc) - ("libunistring" ,libunistring) - ("libuv" ,libuv) - ("pcre" ,pcre) - ("sqlite" ,sqlite) - ("which" ,which))) + (inputs (list avahi + bigloo + libgc + libunistring + libuv + pcre + sqlite + which)) (home-page "http://hop.inria.fr/") (synopsis "Multi-tier programming language for the Web 2.0") (description @@ -444,7 +441,7 @@ mixed.") (define-public chibi-scheme (package (name "chibi-scheme") - (version "0.9") + (version "0.10") (home-page "https://github.com/ashinn/chibi-scheme") (source (origin @@ -452,17 +449,15 @@ mixed.") (uri (git-reference (url home-page) (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "1lnap41gl9vg82h557f4rlr69jgmd2gh0iqs6cxm77d39kv1scb8")))) + (base32 "0yhmj0lws3r3bl4ivs31dhlzxqc7f0dinixi904mraz1fmrg3w7f")))) (build-system gnu-build-system) (arguments - `(#:phases (modify-phases %standard-phases - (delete 'configure) - (add-before 'build 'set-cc - (lambda _ - (setenv "CC" "gcc")))) + `(#:phases + (modify-phases %standard-phases + (delete 'configure)) ; no configure script #:make-flags (let ((out (assoc-ref %outputs "out"))) (list (string-append "PREFIX=" out) + (string-append "CC=" ,(cc-for-target)) (string-append "LDFLAGS=-Wl,-rpath=" out "/lib"))) #:test-target "test")) (synopsis "Small embeddable Scheme implementation") @@ -566,14 +561,14 @@ regular-expression notation.") (define-public slib (package (name "slib") - (version "3b5") + (version "3b6") (source (origin (method url-fetch) (uri (string-append "http://groups.csail.mit.edu/mac/ftpdir/scm/slib-" version ".zip")) (sha256 (base32 - "0q0p2d53p8qw2592yknzgy2y1p5a9k7ppjx0cfrbvk6242c4mdpq")))) + "137dn2wwwwg0qbifgxfckjhzj4m4820crpg9kziv402l7f2b931f")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There is no check target. @@ -589,8 +584,7 @@ regular-expression notation.") (invoke "./configure" (string-append "--prefix=" (assoc-ref outputs "out")))))))) - (native-inputs `(("unzip" ,unzip) - ("texinfo" ,texinfo))) + (native-inputs (list unzip texinfo)) (home-page "https://people.csail.mit.edu/jaffer/SLIB.html") (synopsis "Compatibility and utility library for Scheme") (description "SLIB is a portable Scheme library providing compatibility and @@ -628,8 +622,7 @@ utility functions for all standard Scheme implementations.") (replace 'build (lambda* (#:key inputs outputs #:allow-other-keys) (setenv "SCHEME_LIBRARY_PATH" - (string-append (assoc-ref inputs "slib") - "/lib/slib/")) + (search-input-directory inputs "lib/slib/")) (invoke "make" "scmlit" "CC=gcc") (invoke "make" "all"))) (add-after 'install 'post-install @@ -639,15 +632,13 @@ utility functions for all standard Scheme implementations.") (delete-file req) (format (open req (logior O_WRONLY O_CREAT)) "(define (library-vicinity) ~s)\n" - (string-append (assoc-ref inputs "slib") - "/lib/slib/")) + (search-input-directory inputs "lib/slib/")) ;; We must generate the slibcat file. (invoke (string-append out "/bin/scm") "-br" "new-catalog"))))))) - (inputs `(("slib" ,slib))) - (native-inputs `(("unzip" ,unzip) - ("texinfo" ,texinfo))) + (inputs (list slib)) + (native-inputs (list unzip texinfo)) (home-page "https://people.csail.mit.edu/jaffer/SCM") (synopsis "Scheme implementation conforming to R5RS and IEEE P1178") (description "GNU SCM is an implementation of Scheme. This @@ -669,7 +660,7 @@ linked with a SCM executable.") "0rik3qnxqd8wjlazx8rw996pfzkjjg60v6hcbpcqzi7rgml8q4n8")))) (build-system gnu-build-system) (native-inputs - `(("unzip" ,unzip))) + (list unzip)) (arguments `(#:phases (modify-phases %standard-phases @@ -783,9 +774,9 @@ small program, it is easy to comprehend, get to grips with, and use.") (string-append out "/bin")) #t)))))) (inputs - `(("libx11" ,libx11))) + (list libx11)) (propagated-inputs - `(("libgc" ,libgc))) + (list libgc)) (supported-systems '("x86_64-linux")) (home-page "https://engineering.purdue.edu/~qobi/papers/fdlcc.pdf") (synopsis "Brutally efficient Scheme compiler") @@ -800,6 +791,45 @@ program-point-specific low-level representation selection and code generation.") (license gpl2+)))) +(define-public s9fes + (package + (name "s9fes") + (version "20181205") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.t3x.org/s9fes/s9fes-" version ".tgz")) + (sha256 + (base32 "0ynpl707bc9drwkdpdgvw14bz9zmwd3wffl1k02sxppjl28xm7rf")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (list (string-append "CC=" ,(cc-for-target)) + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (replace 'install + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "install-all" make-flags)))) + #:tests? #f)) ; No check target. + (inputs + (list ncurses)) + (home-page "https://www.t3x.org/s9fes/") + (synopsis "Interpreter for R4RS Scheme") + (description + "Scheme 9 from Empty Space (S9fES) is a mature, portable, and +comprehensible public-domain interpreter for R4RS Scheme offering: +@itemize +@item bignum arithmetics +@item decimal-based real number arithmetics +@item support for low-level Unix programming +@item cursor addressing with Curses +@item basic networking procedures +@item an integrated online help system +@item loads of useful library functions +@end itemize") + (license public-domain))) + (define-public femtolisp (let ((commit "ec7601076a976f845bc05ad6bd3ed5b8cde58a97") (revision "2")) @@ -871,13 +901,10 @@ The core is 12 builtin special forms and 33 builtin functions.") #t)))) (build-system gnu-build-system) (inputs - `(("libatomic-ops" ,libatomic-ops) - ("slib" ,slib) - ("zlib" ,zlib))) + (list libatomic-ops slib zlib)) (native-inputs - `(("texinfo" ,texinfo) - ("openssl" ,openssl) ; needed for tests - ("pkg-config" ,pkg-config))) ; needed to find external libatomic-ops + (list texinfo openssl ; needed for tests + pkg-config)) ; needed to find external libatomic-ops (arguments `(#:configure-flags (list (string-append "--with-slib=" @@ -1004,13 +1031,9 @@ and list gauche extension packages.") (copy-recursively "../bin" bin) (copy-recursively "../lib" lib))))))) (native-inputs - `(("coreutils" ,coreutils) - ("util-linux" ,util-linux))) + (list coreutils util-linux)) (propagated-inputs - `(("gambit-c" ,gambit-c) - ("zlib" ,zlib) - ("openssl" ,openssl) - ("sqlite" ,sqlite))) + (list gambit-c zlib openssl sqlite)) (build-system gnu-build-system) (synopsis "Meta-dialect of Scheme with post-modern features") (description "Gerbil is an opinionated dialect of Scheme designed for Systems |