all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ricardo Wurmus <rekado@elephly.net>
To: ng0 <ng0@we.make.ritual.n0.is>
Cc: guix-devel@gnu.org
Subject: Re: [PATCH 1/2] gnu: Add femtolisp.
Date: Tue, 13 Sep 2016 21:30:07 +0200	[thread overview]
Message-ID: <87mvjbegxs.fsf@elephly.net> (raw)
In-Reply-To: <20160913190416.1462-1-ng0@we.make.ritual.n0.is>


ng0 <ng0@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

  parent reply	other threads:[~2016-09-13 19:30 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-13 19:04 [PATCH 1/2] gnu: Add femtolisp ng0
2016-09-13 19:04 ` [PATCH 2/2] gnu: lispf4: Remove unused inputs key ng0
2016-09-13 19:30 ` Ricardo Wurmus [this message]
2016-09-13 19:45   ` [PATCH 1/2] gnu: Add femtolisp ng0
2016-09-13 20:32   ` ng0
2016-09-14  9:00     ` Ricardo Wurmus
2016-09-14  9:31       ` ng0
2016-09-14  9:48         ` ng0
2016-09-14 10:03           ` Ricardo Wurmus
2016-09-14 10:15             ` ng0
2016-09-14 11:05               ` Ricardo Wurmus
2016-09-14 11:17                 ` ng0
2016-09-14 12:03                   ` ng0
2016-09-18 10:02                     ` Andreas Enge
2016-09-20  6:14                       ` Ludovic Courtès
2016-09-21 10:37                         ` ng0
2016-09-21 15:33                           ` Ludovic Courtès
2016-09-21 19:30                             ` Ricardo Wurmus
2016-09-22  9:11                         ` [PATCH] gnu: femtolisp: Remove support for mips and armhf ng0
2016-09-26 10:38                           ` Ludovic Courtès
2016-09-27  8:13                             ` ng0
2016-09-27 16:30                               ` Leo Famulari
2016-09-18 12:20                     ` [PATCH 1/2] gnu: Add femtolisp ng0
2016-09-18 12:25                     ` ng0
  -- strict thread matches above, loose matches on Subject: below --
2016-09-12 13:57 ng0
2016-09-13 19:40 ` Leo Famulari

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87mvjbegxs.fsf@elephly.net \
    --to=rekado@elephly.net \
    --cc=guix-devel@gnu.org \
    --cc=ng0@we.make.ritual.n0.is \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.