From 611a064435be994874cdbaa19512f61682f55003 Mon Sep 17 00:00:00 2001 From: Nils Gillmann Date: Sat, 6 Feb 2016 19:31:20 +0100 Subject: [PATCH] gnu: Add lispf4. * gnu/packages/lisp.scm (lispf4): New variable. --- gnu/packages/lisp.scm | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 726cfcd..5374483 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014 John Darrington ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2016 Nils Gillmann ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +28,7 @@ #:use-module (gnu packages texlive) #:use-module (gnu packages m4) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (gnu packages base) @@ -408,3 +410,73 @@ interface.") ;; applies to Lisp code according to them. (license (list license:lgpl2.1 license:clarified-artistic)))) ;TRIVIAL-LDAP package + +(define-public lispf4 + (let* ((commit "174d8764d2f9764e8f4794c2e3feada9f9c1f1ba")) + (package + (name "lispf4") + (version (string-append "0.0.0-1" "-" + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/blakemcbride/LISPF4.git") + (commit commit))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "18k8kfn30za637y4bfbm9x3vv4psa3q8f7bi9h4h0qlb8rz8m92c")))) + (build-system gnu-build-system) + ;; 80 MB appended Documentation -> output:doc + ;; upstream provides no `make install` + (outputs '("out" "doc")) + (arguments + `(#:make-flags + '("-f" "Makefile.unx" "CC=gcc") + ;; no check phase, disable it: + #:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace + 'install + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin-dir (string-append out "/bin"))) + ;; Make directories + (mkdir-p bin-dir) + ;; copy files + (copy-file "lispf4" + (string-append bin-dir "/lispf4")) + (copy-file "SYSATOMS" + (string-append bin-dir "/SYSATOMS")) + (let* ((doc (assoc-ref outputs "doc")) + (doc-dir (string-append doc "/share/doc/lispf4"))) + ;; Make directory + (mkdir-p doc-dir) + (copy-file "Documentation/DevelopmentProcess.txt" + (string-append doc-dir "/DevelopmentProcess.txt")) + (copy-file "Documentation/Haraldson-LISP_details.pdf" + (string-append doc-dir "/Haraldson-LISP_details.pdf")) + (copy-file "Documentation/ImplementationGuide.txt" + (string-append doc-dir "/ImplementationGuide.txt")) + (copy-file "Documentation/Interlisp-Oct_1978.pdf" + (string-append doc-dir "/Interlisp-Oct_1978.pdf")) + (copy-file "Documentation/p501-schorr.pdf" + (string-append doc-dir "/p501-schorr.pdf")) + (copy-file "Documentation/README.txt" + (string-append doc-dir "/README.txt")) + (copy-file "Documentation/UsersGuide.txt" + (string-append doc-dir "/UsersGuide.txt"))) + #t)))))) + (synopsis "InterLisp interpreter") + (description + "LISPF4 is an InterLisp interpreter written in FORTRAN by Mats Nordstrom + (Uppsala, Sweden) in the early 80's. It was converted to C by Blake McBride. +It supports much of the InterLisp Standard. Interlisp is a dynamically +scoped lisp system. It supports LAMBDA (evaluates function arguments), +NLAMBDA (doesn't evaluate its arguments), and variable number of arguments. + Macros are supported as well. The original user manual, implementors manual +and the documentation can be obtained through 'guix -i lispf4:doc'.") + (home-page "https://github.com/blakemcbride/LISPF4.git") + (license license:expat)))) -- 2.6.3