From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nils Gillmann Subject: Re: [PATCH] gnu: add lispf4 Date: Sun, 07 Feb 2016 01:01:21 +0100 Message-ID: <87io21bd7y.fsf@grrlz.net> References: <87y4ax3cf2.fsf@grrlz.net> <20160206221446.GB6912@jasmine> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:51454) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aSCnA-0005uQ-Qm for guix-devel@gnu.org; Sat, 06 Feb 2016 19:01:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aSCn7-0001dF-IM for guix-devel@gnu.org; Sat, 06 Feb 2016 19:01:28 -0500 Received: from perdizione.investici.org ([2001:41d0:2:33d0::19]:43102) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aSCn7-0001dB-1P for guix-devel@gnu.org; Sat, 06 Feb 2016 19:01:25 -0500 In-Reply-To: <20160206221446.GB6912@jasmine> (Leo Famulari's message of "Sat, 6 Feb 2016 17:14:46 -0500") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Leo Famulari Cc: guix-devel@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Thanks for your review, the patch number 2 based on 1 should fix all the problems you noted. Leo Famulari writes: > On Sat, Feb 06, 2016 at 07:45:53PM +0100, Nils Gillmann wrote: > > [...] > >> * gnu/packages/lisp.scm (lispf4): New variable. > > [...] > >> +(define-public lispf4 >> + (let* ((commit "174d8764d2f9764e8f4794c2e3feada9f9c1f1ba")) > > I believe you can use "let" instead of "let*". > true. fixed. >> + (package > ^ > Can you alter the indentation so that this ( is underneath the e in let? > This will help with line length issues. (I usually refer to the package > definition for fxtract when fetching from git repos.) > > [...] > >> + #: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 > > We have a function install-file (guix/build/utils.scm) that combines > mkdir-p and copy-file. It reduces the boilerplate a bit. Could you use > that? Also we probably don't need comments such as "copy file". removed most comments, used install-file and copy-recursively. > >> + (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/lisp= f4"))) >> + ;; Make directory >> + (mkdir-p doc-dir) >> + (copy-file "Documentation/DevelopmentProcess.txt" >> + (string-append doc-dir "/DevelopmentPr= ocess.txt")) >> + (copy-file "Documentation/Haraldson-LISP_details.= pdf" >> + (string-append doc-dir "/Haraldson-LIS= P_details.pdf")) > > For some reason the linter doesn't complain about this line (and others) > being too long. I guess it measures from the beginning of 'package' > rather than the first column. Can you make sure they are all =E2=89=A4 80 > characters after changing the indentation as requested above? okay, I did not notice the intendation was off. I need to find some visual help for that. > >> + (copy-file "Documentation/ImplementationGuide.txt" >> + (string-append doc-dir "/Implementatio= nGuide.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.p= df")) >> + (copy-file "Documentation/README.txt" >> + (string-append doc-dir "/README.txt")) >> + (copy-file "Documentation/UsersGuide.txt" >> + (string-append doc-dir "/UsersGuide.tx= t"))) >> + #t)))))) >> + (synopsis "InterLisp interpreter") >> + (description >> + "LISPF4 is an InterLisp interpreter written in FORTRAN by Ma= ts Nordstrom >> + (Uppsala, Sweden) in the early 80's. It was converted to C by Blake M= cBride. > ^ > We probably don't need to provide this level of historical > detail. noted, and removed most unnecessary details. > >> +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 argume= nts. >> + Macros are supported as well. The original user manual, implementors= manual >> +and the documentation can be obtained through 'guix -i lispf4:doc'.") > > I don't think it's necessary to provide usage tips in the description. > >> + (home-page "https://github.com/blakemcbride/LISPF4.git") >> + (license license:expat)))) >> --=20 >> 2.6.3 >>=20 >> (is there a prefered way btw? .patch file attached or just file inserted= /pasted?) > > When using `git send-email`, the patches are automatically sent in their > own messages, which makes it trivial to apply them with `git am`. Any > other method introduces some friction. > > I typically do all my work on branches, so this works for me: > $ git send-email --to guix-devel@gnu.org --cover-letter --annotate -n --t= hread=3Dshallow master I am still new to more regular patch creating with git, so the 2nd patch has no annotations of what changed, but it's technically still the first commit. This will change in the near future, but currently I can only do it this way. --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0001-gnu-Add-lispf4.patch Content-Transfer-Encoding: quoted-printable >From 611a064435be994874cdbaa19512f61682f55003 Mon Sep 17 00:00:00 2001 From: Nils Gillmann Date: Sat, 6 Feb 2016 19:31:20 +0100 Subject: [PATCH 1/2] 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 =C2=A9 2014 John Darrington ;;; Copyright =C2=A9 2015 Taylan Ulrich Bay=C4=B1rl=C4=B1/Kammer ;;; Copyright =C2=A9 2015 Mark H Weaver +;;; Copyright =C2=A9 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 + "18k8kfn30za637y4bfbm9x3vv4psa3q8f7bi9h4h0qlb8rz8m92= c")))) + (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=3Dgcc") + ;; 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 "/DevelopmentProce= ss.txt")) + (copy-file "Documentation/Haraldson-LISP_details.pdf" + (string-append doc-dir "/Haraldson-LISP_d= etails.pdf")) + (copy-file "Documentation/ImplementationGuide.txt" + (string-append doc-dir "/ImplementationGu= ide.txt")) + (copy-file "Documentation/Interlisp-Oct_1978.pdf" + (string-append doc-dir "/Interlisp-Oct_19= 78.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 McBr= ide. +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 ma= nual +and the documentation can be obtained through 'guix -i lispf4:doc'.") + (home-page "https://github.com/blakemcbride/LISPF4.git") + (license license:expat)))) --=20 2.6.3 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0002-gnu-Add-lispf4.patch >From df1d87481177f3b46efc9cde6704763397f665c4 Mon Sep 17 00:00:00 2001 From: Nils Gillmann Date: Sun, 7 Feb 2016 00:44:21 +0100 Subject: [PATCH 2/2] gnu: Add lispf4 * gnu/packages/lisp.scm (lispf4): New variable. --- gnu/packages/lisp.scm | 113 ++++++++++++++++++++------------------------------ 1 file changed, 45 insertions(+), 68 deletions(-) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 5374483..cb8d923 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -412,71 +412,48 @@ interface.") 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)))) + (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 + (outputs '("out" "doc")) + (arguments + `(#:make-flags + '("-f" "Makefile.unx" "CC=gcc") + ;; no check phase + #: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 (string-append out "/bin"))) + (install-file "lispf4" bin) + (install-file "SYSATOMS" bin) + (install-file "BASIC.IMG" bin) + (let* ((doc (assoc-ref outputs "doc")) + (doc (string-append doc "/share/doc/lispf4"))) + (copy-recursively "Documentation" doc))) + #t))))) + (synopsis "InterLisp interpreter") + (description + "LISPF4 is an InterLisp interpreter written in FORTRAN by Mats Nordstrom +in the early 80's. It was converted to C by Blake McBride and supports much of +the InterLisp Standard. 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 --=-=-= Content-Type: text/plain -- ng/ni* vcard: http://krosos.sdf.org --=-=-=--