summaryrefslogtreecommitdiff
path: root/gnu/packages/scheme.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/scheme.scm')
-rw-r--r--gnu/packages/scheme.scm151
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 <[email protected]>
+;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2020, 2021 Ludovic Courtès <[email protected]>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <[email protected]>
;;; Copyright © 2015, 2016 Federico Beffa <[email protected]>
;;; Copyright © 2016 Ricardo Wurmus <[email protected]>
@@ -16,6 +16,8 @@
;;; Copyright © 2020 Edouard Klein <[email protected]>
;;; Copyright © 2021 Philip McGrath <[email protected]>
;;; Copyright © 2021 Guillaume Le Vaillant <[email protected]>
+;;; Copyright © 2021 Foo Chuan Wei <[email protected]>
+;;; Copyright © 2022 Morgan Smith <[email protected]>
;;;
;;; 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