diff options
author | Christopher Baines <mail@cbaines.net> | 2021-03-05 22:56:40 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2021-03-06 00:18:30 +0000 |
commit | a8448da0f4a090818104e64dd79f90b0e50d5e77 (patch) | |
tree | 494c58b4724f12cd9de0db9b0a7096de2b922c0f /gnu/packages/scheme.scm | |
parent | 4f4b749e75b38b8c08b4f67ef51c2c8740999e28 (diff) | |
parent | a714af38d5d1046081524d859cde4cd8fd12a923 (diff) | |
download | guix-a8448da0f4a090818104e64dd79f90b0e50d5e77.tar.gz |
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/scheme.scm')
-rw-r--r-- | gnu/packages/scheme.scm | 98 |
1 files changed, 71 insertions, 27 deletions
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index e16f4dc1b9..48099ac10e 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -394,22 +394,26 @@ implementation techniques and as an expository tool.") (define-public racket (package (name "racket") - (version "7.9") ; note: remember to also update racket-minimal! + (version "8.0") ; note: remember to also update racket-minimal! (source (origin (method url-fetch) - (uri (list (string-append "http://mirror.racket-lang.org/installers/" - version "/racket-" version "-src.tgz") + (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-" version "-src.tgz"))) + version "/racket-src.tgz"))) (sha256 (base32 - "0gmp2ahmfd97nn9bwpfx9lznjmjkd042slnrrbdmyh59cqh98y2m")) + "047wpjblfzmf1msz7snrp2c2h0zxyzlmbsqr9bwsyvz3frcg0888")) (patches (search-patches "racket-store-checksum-override.patch")))) (build-system gnu-build-system) (arguments - '(#:phases + '(#:configure-flags + '("--enable-libz" + "--enable-liblz4") + #:phases (modify-phases %standard-phases (add-before 'configure 'pre-configure-minimal (lambda* (#:key inputs #:allow-other-keys) @@ -489,13 +493,45 @@ implementation techniques and as an expository tool.") (lambda _ (substitute* "collects/racket/system.rkt" (("/bin/sh") (which "sh"))) - #t))) + #t)) + (add-after 'patch-/bin/sh '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"))))))) ;; XXX: how to run them? #:tests? #f)) (inputs - `(("libffi" ,libffi) - ;; Hardcode dynamically loaded libraries for better functionality. + `(;; Hardcode dynamically loaded libraries for better functionality. ;; sqlite and libraries for `racket/draw' are needed to build the doc. + ("zlib" ,zlib) + ("zlib:static" ,zlib "static") + ("lz4" ,lz4) + ("lz4:static" ,lz4 "static") ("cairo" ,cairo) ("fontconfig" ,fontconfig) ("glib" ,glib) @@ -515,10 +551,14 @@ implementation techniques and as an expository tool.") (home-page "https://racket-lang.org") (synopsis "Implementation of Scheme and related languages") (description - "Racket is an implementation of the Scheme programming language (R5RS and -R6RS) and related languages, such as Typed Racket. It features a compiler and -a virtual machine with just-in-time native compilation, as well as a large set -of libraries.") + "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)))) @@ -529,14 +569,15 @@ of libraries.") (version (package-version racket)) (source (origin (method url-fetch) - (uri (list (string-append "http://mirror.racket-lang.org/installers/" - version "/racket-minimal-" version "-src.tgz") + (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-" version "-src.tgz"))) + version "/racket-minimal-src.tgz"))) (sha256 (base32 - "0yc5zkpq1bavj64h67pllw6mfjhmdp65fgdpyqcaan3syy6b5cia")) + "0mwyffw4gcci8wmzxa3j28h03h0gsz55aard8qrk3lri8r2xyg21")) (patches (search-patches "racket-store-checksum-override.patch")))) (synopsis "Racket without bundled packages such as Dr. Racket") @@ -547,18 +588,21 @@ of libraries.") ;; Delete fix that applies to files not included in the minimal package. (delete 'pre-configure))))) (inputs - `(("libffi" ,libffi) - ("openssl" ,openssl) - ("sqlite" ,sqlite))) + `(("openssl" ,openssl) + ("sqlite" ,sqlite) + ("zlib" ,zlib) + ("zlib:static" ,zlib "static") + ("lz4" ,lz4) + ("lz4:static" ,lz4 "static"))) (description - "Racket is an implementation of the Scheme programming language (R5RS and -R6RS) and related languages, such as Typed Racket. It features a compiler and -a virtual machine with just-in-time native compilation, as well as a large set -of libraries. + "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. -In this minimal package, the essential package racket-libs is included, as -well as libraries that live in collections. In particular, @command{raco} and -the @code{pkg} library are still bundled."))) +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 |