aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/scheme.scm
diff options
context:
space:
mode:
authorPierre Neidhardt <mail@ambrevar.xyz>2018-11-24 15:11:37 +0100
committerPierre Neidhardt <mail@ambrevar.xyz>2018-11-24 15:11:37 +0100
commite83c7d1abaf4fc56165e8307c8b49327b98327f8 (patch)
tree4278b0f0cf39b1578a01d58eca89ffeac3538450 /gnu/packages/scheme.scm
parent083ce0ad5ecd10c6033bbdef5ddfcc2f58a7b800 (diff)
downloadpatches-e83c7d1abaf4fc56165e8307c8b49327b98327f8.tar
patches-e83c7d1abaf4fc56165e8307c8b49327b98327f8.tar.gz
gnu: femtolisp: Move to scheme.scm.
* gnu/packages/lisp.scm (femtolisp): Remove. * gnu/packages/scheme.scm (femtolisp): Add.
Diffstat (limited to 'gnu/packages/scheme.scm')
-rw-r--r--gnu/packages/scheme.scm51
1 files changed, 51 insertions, 0 deletions
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 9654fe36f5..c03c53b91f 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -66,6 +66,7 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages gl)
#:use-module (gnu packages libedit)
+ #:use-module (srfi srfi-1)
#:use-module (ice-9 match))
(define (mit-scheme-source-directory system version)
@@ -1095,3 +1096,53 @@ in-lining, unboxing, and flow-directed program-specific and
program-point-specific low-level representation selection and code
generation.")
(license gpl2+))))
+
+(define-public femtolisp
+ (let ((commit "68c5b1225572ecf2c52baf62f928063e5a30511b")
+ (revision "1"))
+ (package
+ (name "femtolisp")
+ (version (string-append "0.0.0-" revision "." (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JeffBezanson/femtolisp.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "04rnwllxnl86zw8c6pwxznn49bvkvh0f1lfliy085vjzvlq3rgja"))))
+ ;; See "utils.h" for supported systems. Upstream bug:
+ ;; https://github.com/JeffBezanson/femtolisp/issues/25
+ (supported-systems
+ (fold delete %supported-systems
+ '("armhf-linux" "mips64el-linux" "aarch64-linux")))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags '("CC=gcc" "release")
+ #:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; No configure script
+ (replace 'install ; Makefile has no 'install phase
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (install-file "flisp" bin)
+ #t)))
+ ;; The flisp binary is now available, run bootstrap to
+ ;; generate flisp.boot and afterwards runs make test.
+ (add-after 'install 'bootstrap-gen-and-test
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (and
+ (zero? (system* "./bootstrap.sh"))
+ (install-file "flisp.boot" bin))))))))
+ (synopsis "Scheme-like lisp implementation")
+ (description
+ "@code{femtolisp} is a scheme-like lisp implementation with a
+simple, elegant Scheme dialect. It is a lisp-1 with lexical scope.
+The core is 12 builtin special forms and 33 builtin functions.")
+ (home-page "https://github.com/JeffBezanson/femtolisp")
+ (license bsd-3))))