guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] gnu: add lispf4


From: Nils Gillmann
Subject: [PATCH] gnu: add lispf4
Date: Sat, 06 Feb 2016 19:45:53 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Thanks for all the input in the last days, here's a blast from the past
with LISPF4 ported from FORTRAN to C for whoever wants InterLisp.

I'll inform the author of this port as soon as this patch is merged.

>From 611a064435be994874cdbaa19512f61682f55003 Mon Sep 17 00:00:00 2001
From: Nils Gillmann <address@hidden>
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 <address@hidden>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <address@hidden>
 ;;; Copyright © 2015 Mark H Weaver <address@hidden>
+;;; Copyright © 2016 Nils Gillmann <address@hidden>
 ;;;
 ;;; 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

also attached as .patch file
>From 611a064435be994874cdbaa19512f61682f55003 Mon Sep 17 00:00:00 2001
From: Nils Gillmann <address@hidden>
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 <address@hidden>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <address@hidden>
 ;;; Copyright © 2015 Mark H Weaver <address@hidden>
+;;; Copyright © 2016 Nils Gillmann <address@hidden>
 ;;;
 ;;; 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


(is there a prefered way btw? .patch file attached or just file 
inserted/pasted?)
Thanks,
-- 
ng/ni*
vcard: http://krosos.sdf.org

reply via email to

[Prev in Thread] Current Thread [Next in Thread]