I hope the appended patch still applies. Ricardo Wurmus <rek...@elephly.net> writes:
> ng0 <n...@we.make.ritual.n0.is> writes: > >> * gnu/packages/lisp.scm (femtolisp): New variable. >> --- >> gnu/packages/lisp.scm | 53 >> +++++++++++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 53 insertions(+) >> >> diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm >> index 8ee249d..4e2ecdb 100644 >> --- a/gnu/packages/lisp.scm >> +++ b/gnu/packages/lisp.scm >> @@ -487,3 +487,56 @@ in the early 80's. It was converted to C by Blake >> McBride and supports much of >> the InterLisp Standard.") >> (home-page "https://github.com/blakemcbride/LISPF4.git") >> (license license:expat)))) >> + >> +(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")))) >> + (build-system gnu-build-system) >> + (arguments >> + `(#:make-flags '("CC=gcc") >> + #:tests? #f ; No make check > > But it does have a “test” target, no? How about “#:test-target "test"” > instead of disabling the tests? > >> + #:phases >> + (modify-phases %standard-phases >> + (delete 'configure) ; No configure script >> + ;; We have to remove the 'test phase because it requires >> + ;; the flisp binary to be present. Instead we run >> + ;; bootstrap.sh after the 'install phase. > > I find this strange. More about this below. > >> + (add-before 'build 'patch-makefile >> + (lambda _ >> + (substitute* "Makefile" >> + (("default: release test") "default: release")) >> + #t)) > > This may not be necessary when you pass “release” as one of the > “#:make-flags”. > >> + (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)))))))) > > “install-file” has an unspecified return value. I’m a little surprised > to see “bootstrap.sh” to be used *after* installation. That’s very odd. > Could the tests not be fixed in another way, e.g. by overriding the > location of the binary? > >> + (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.") > > > “Scheme-like”. I think the sentence on “lisp-1” can be removed, because > if it’s Scheme-like it’s unlikely to be a lisp-2. > >> + (home-page "https://github.com/JeffBezanson/femtolisp") >> + (license license:bsd-3)))) > > ~~ Ricardo > >
From d4190191c58c454a4bcd626bf8009bcea896f2ae Mon Sep 17 00:00:00 2001 From: ng0 <n...@we.make.ritual.n0.is> Date: Tue, 13 Sep 2016 20:19:57 +0000 Subject: [PATCH] gnu: femtolisp: Adjust description. * gnu/packages/lisp.scm (femtolisp)[description]: Adjust to remove unnecessary sentence. [arguments](patch-makefile): Remove it and ... (make-flags): Add "release" to make-flags. (arguments)[tests]: Enable them as test-target "test". --- gnu/packages/lisp.scm | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 3461de4..2816315 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -503,25 +503,16 @@ the InterLisp Standard.") "04rnwllxnl86zw8c6pwxznn49bvkvh0f1lfliy085vjzvlq3rgja")))) (build-system gnu-build-system) (arguments - `(#:make-flags '("CC=gcc") - #:tests? #f ; No make check + `(#:make-flags '("CC=gcc" "release") + #:test-target "test" #:phases (modify-phases %standard-phases (delete 'configure) ; No configure script - ;; We have to remove the 'test phase because it requires - ;; the flisp binary to be present. Instead we run - ;; bootstrap.sh after the 'install phase. - (add-before 'build 'patch-makefile - (lambda _ - (substitute* "Makefile" - (("default: release test") "default: release")) - #t)) (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))) + (install-file "flisp" bin)))) ;; The flisp binary is now available, run bootstrap to ;; generate flisp.boot and afterwards runs make test. (add-after 'install 'bootstrap-gen-and-test @@ -533,8 +524,8 @@ the InterLisp Standard.") (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.") + "@code{femtolisp} is a Scheme-like lisp implementation with a +simple, elegant Scheme dialect. The core is 12 builtin special forms +and 33 builtin functions.") (home-page "https://github.com/JeffBezanson/femtolisp") (license license:bsd-3)))) -- 2.10.0
-- ng0
signature.asc
Description: PGP signature