diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2020-09-14 16:17:19 -0400 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2020-09-14 16:17:19 -0400 |
commit | fa8fe90edb4efaf7d52f71516c4dcabb13d56418 (patch) | |
tree | 8d69a1132e95845d8a3d90f1fe4d0ef04039e2f4 /gnu/packages/loko.scm | |
parent | 1bec03df9b60f156c657a64a323ef27f4ed14b44 (diff) | |
parent | d60739dff2e2f5eb74173b73a5fd207ef7cd110a (diff) | |
download | guix-fa8fe90edb4efaf7d52f71516c4dcabb13d56418.tar.gz |
Merge remote-tracking branch 'origin/master' into core-updates
Diffstat (limited to 'gnu/packages/loko.scm')
-rw-r--r-- | gnu/packages/loko.scm | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/gnu/packages/loko.scm b/gnu/packages/loko.scm new file mode 100644 index 0000000000..f6699877f7 --- /dev/null +++ b/gnu/packages/loko.scm @@ -0,0 +1,86 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages loko) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages package-management) + #:use-module (gnu packages guile) + #:use-module (gnu packages guile-xyz) + #:use-module (gnu packages chez)) + +(define-public loko-scheme + (package + (name "loko-scheme") + (version "0.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/weinholt/loko") + (commit (string-append "v" version)))) + (sha256 + (base32 "019jlh3lywy912cfz689c9fxgf4bi5700i9k04g7sl5w5gchj36m")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + `(;; r7rs tests are still failing as of 0.6.0. + #:tests? #f + #:strip-binaries? #f + #:make-flags + (let ((out (assoc-ref %outputs "out"))) + (list + (string-append "PREFIX=" out) + (string-append "GDB_AUTOLOAD_PATH=" out "/share/gdb/auto-load"))) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'akku-fixes + (lambda* (#:key inputs #:allow-other-keys) + (delete-file "Akku.lock") + (substitute* "Akku.manifest" + (("\\(depends.*") "(depends)")) + (invoke "akku" "install") + (let ((dest "./.akku/lib/") + (source "/share/guile/site/3.0/")) + (for-each + (lambda (name) + ;; Symlink the scheme libraries so that Akku can find them + (symlink (string-append (assoc-ref inputs name) source name) + (string-append dest name))) + '("struct" "laesare" "pfds" "machine-code"))) + (substitute* ".akku/env" + (("/bin/sh") (which "sh"))) + #t))))) + (native-inputs + `(("akku" ,akku) + ("chez-scheme" ,chez-scheme) + ("struct" ,guile-struct-pack) + ("laesare" ,guile-laesare) + ("pfds" ,guile-pfds) + ("machine-code" ,guile-machine-code))) + (home-page "https://scheme.fail") + (synopsis "Implementation of the algorithmic language Scheme") + (description + "Loko Scheme is intended to be a platform for application and operating +system development. It is written purely in Scheme and some assembler +(i.e. no C code at the bottom). Both the R6RS and the R7RS standards are +supported.") + (license license:agpl3+))) |