aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/scheme.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/scheme.scm')
-rw-r--r--gnu/packages/scheme.scm210
1 files changed, 12 insertions, 198 deletions
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index d9b0b4d03a..f04aeb86a4 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -15,6 +15,7 @@
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
+;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -226,29 +227,34 @@ features an integrated Emacs-like editor and a large runtime library.")
(define-public bigloo
;; Upstream modifies source tarballs in place, making significant changes
;; long after the initial publication: <https://bugs.gnu.org/33525>.
- (let ((upstream-version "4.3f"))
+ (let ((upstream-version "4.3g"))
(package
(name "bigloo")
- (version "4.3f")
+ (version "4.3g")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo"
upstream-version ".tar.gz"))
(sha256
(base32
- "09whj8z91qbihk59dw2yb2ccbx9nk1c4l65j62pfs1pz822cpyh9"))
+ "07305c134v7s1nz44igwsyqpb9qqia5zyng1q2qj60sskw3nbd67"))
;; Remove bundled libraries.
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file-recursively
- '("gc" "gmp" "libuv"))
+ '("gc" "gmp" "libuv" "libunistring" "pcre"))
#t))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'fix-gmp-detection
+ (lambda _
+ (substitute* "configure"
+ (("gmpversion=`\\$autoconf gmp --lib=\\$gmplib`")
+ "gmpversion=`\\$autoconf gmp --lib=\"\\$gmplib\"`"))))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
@@ -271,6 +277,8 @@ features an integrated Emacs-like editor and a large runtime library.")
(string-append "--prefix=" out)
; use system libraries
"--customgc=no"
+ "--enable-gmp"
+ "--customgmp=no"
"--customunistring=no"
"--customlibuv=no"
(string-append"--mv=" (which "mv"))
@@ -393,200 +401,6 @@ implementation techniques and as an expository tool.")
;; Most files are BSD-3; see COPYING for the few exceptions.
(license bsd-3)))
-(define-public racket
- (package
- (name "racket")
- (version "8.0") ; note: remember to also update racket-minimal!
- (source (origin
- (method url-fetch)
- (uri (list (string-append "https://mirror.racket-lang.org/installers/"
- version "/racket-src.tgz")
- ;; this mirror seems to have broken HTTPS:
- (string-append
- "http://mirror.informatik.uni-tuebingen.de/mirror/racket/"
- version "/racket-src.tgz")))
- (sha256
- (base32
- "047wpjblfzmf1msz7snrp2c2h0zxyzlmbsqr9bwsyvz3frcg0888"))
- (patches (search-patches
- "racket-sh-via-rktio.patch"
- ;; TODO: If we're no longer patching Racket source
- ;; files with store paths, we may also fix the
- ;; issue that necessitated the following patch:
- "racket-store-checksum-override.patch"))))
- (build-system gnu-build-system)
- (arguments
- `(#:configure-flags
- `(,(string-append "CPPFLAGS=-DGUIX_RKTIO_PATCH_BIN_SH="
- (assoc-ref %build-inputs "sh")
- "/bin/sh")
- "--enable-libz"
- "--enable-liblz4")
- #:modules
- ((guix build gnu-build-system)
- (guix build utils)
- (srfi srfi-1))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-chez-configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (substitute* "src/cs/c/Makefile.in"
- (("/bin/sh") (which "sh")))
- ;; TODO: Racket CS uses a fork of Chez Scheme.
- ;; Most of this is copy-pasted from the "chez.scm",
- ;; but maybe there's a way to reuse more directly.
- (with-directory-excursion "src/ChezScheme"
- (substitute* (find-files "mats" "Mf-.*")
- (("^[[:space:]]+(cc ) *") "\tgcc "))
- (substitute*
- (find-files "." (string-append
- "("
- "Mf-[a-zA-Z0-9.]+"
- "|Makefile[a-zA-Z0-9.]*"
- "|checkin"
- "|stex\\.stex"
- "|newrelease"
- "|workarea"
- "|unix\\.ms"
- "|^6\\.ms"
- ;;"|[a-zA-Z0-9.]+\\.ms" ; guile can't read
- ")"))
- (("/bin/rm") (which "rm"))
- (("/bin/ln") (which "ln"))
- (("/bin/cp") (which "cp"))
- (("/bin/echo") (which "echo")))
- (substitute* "makefiles/installsh"
- (("/bin/true") (which "true"))))
- #t))
- (add-before 'configure 'pre-configure-minimal
- (lambda* (#:key inputs #:allow-other-keys)
- (chdir "src")
- #t))
- (add-after 'build 'patch-config.rktd-lib-search-dirs
- (lambda* (#:key inputs outputs #:allow-other-keys)
- ;; We do this between the `build` and `install` phases
- ;; so that we have racket to read and write the hash table,
- ;; but it comes before `raco setup`, when foreign libraries
- ;; are needed to build the documentation.
- (define out (assoc-ref outputs "out"))
- (apply invoke
- "./cs/c/racketcs"
- "-e"
- ,(format #f
- "~s"
- '(let* ((args
- (vector->list
- (current-command-line-arguments)))
- (file (car args))
- (extra-lib-search-dirs (cdr args)))
- (write-to-file
- (hash-update
- (file->value file)
- 'lib-search-dirs
- (lambda (dirs)
- (append dirs extra-lib-search-dirs))
- null)
- #:exists 'truncate/replace
- file)))
- "--"
- "../etc/config.rktd"
- (filter-map (lambda (lib)
- (cond
- ((assoc-ref inputs lib)
- => (lambda (pth)
- (string-append pth "/lib")))
- (else
- #f)))
- '("cairo"
- "fontconfig"
- "glib"
- "glu"
- "gmp"
- "gtk+"
- "libjpeg"
- "libpng"
- "libx11"
- "mesa"
- "mpfr"
- "openssl"
- "pango"
- "sqlite"
- "unixodbc"
- "libedit")))
- #t)))
- ;; XXX: how to run them?
- #:tests? #f))
- (inputs
- `(;; sqlite and libraries for `racket/draw' are needed to build the doc.
- ("sh" ,bash-minimal)
- ("zlib" ,zlib)
- ("zlib:static" ,zlib "static")
- ("lz4" ,lz4)
- ("lz4:static" ,lz4 "static")
- ("cairo" ,cairo)
- ("fontconfig" ,fontconfig)
- ("glib" ,glib)
- ("glu" ,glu)
- ("gmp" ,gmp)
- ("gtk+" ,gtk+) ; propagates gdk-pixbuf+svg
- ("libjpeg" ,libjpeg-turbo)
- ("libpng" ,libpng)
- ("libx11" ,libx11)
- ("mesa" ,mesa)
- ("mpfr" ,mpfr)
- ("openssl" ,openssl)
- ("pango" ,pango)
- ("sqlite" ,sqlite)
- ("unixodbc" ,unixodbc)
- ("libedit" ,libedit)))
- (home-page "https://racket-lang.org")
- (synopsis "Implementation of Scheme and related languages")
- (description
- "Racket is a general-purpose programming language in the Scheme family,
-with a large set of libraries and a compiler based on Chez Scheme. Racket is
-also a platform for language-oriented programming, from small domain-specific
-languages to complete language implementations.
-
-The main Racket distribution comes with many bundled packages, including
-the DrRacket IDE, libraries for GUI and web programming, and implementations
-of languages such as Typed Racket, R5RS and R6RS Scheme, and Datalog.")
- ;; https://download.racket-lang.org/license.html
- (license (list lgpl3+ asl2.0 expat))))
-
-(define-public racket-minimal
- (package
- (inherit racket)
- (name "racket-minimal")
- (version (package-version racket))
- (source
- (origin
- (inherit (package-source racket))
- (uri (list (string-append "https://mirror.racket-lang.org/installers/"
- version "/racket-minimal-src.tgz")
- ;; this mirror seems to have broken HTTPS:
- (string-append
- "http://mirror.informatik.uni-tuebingen.de/mirror/racket/"
- version "/racket-minimal-src.tgz")))
- (sha256 "0mwyffw4gcci8wmzxa3j28h03h0gsz55aard8qrk3lri8r2xyg21")))
- (synopsis "Racket without bundled packages such as Dr. Racket")
- (inputs
- `(("openssl" ,openssl)
- ("sqlite" ,sqlite)
- ("sh" ,bash-minimal)
- ("zlib" ,zlib)
- ("zlib:static" ,zlib "static")
- ("lz4" ,lz4)
- ("lz4:static" ,lz4 "static")))
- (description
- "Racket is a general-purpose programming language in the Scheme family,
-with a large set of libraries and a compiler based on Chez Scheme. Racket is
-also a platform for language-oriented programming, from small domain-specific
-languages to complete language implementations.
-
-The ``minimal Racket'' distribution includes just enough of Racket for you to
-use @command{raco pkg} to install more. Bundled packages, such as the
-Dr. Racket IDE, are not included.")))
-
(define-public gambit-c
(package
(name "gambit-c")