[PATCH] gnu: lisp: Add lfe.

  • Open
  • quality assurance status badge
Details
One participant
  • jgart
Owner
unassigned
Submitted by
jgart
Severity
normal
J
(address . guix-patches@gnu.org)(name . jgart)(address . jgart@dismail.de)
20221228015219.16759-1-jgart@dismail.de
* gnu/packages/lisp.scm (lfe): New variable.
---
gnu/packages/lisp.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 753952152e..5919a6017e 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -66,6 +66,7 @@ (define-module (gnu packages lisp)
#:use-module (gnu packages compression)
#:use-module (gnu packages dbm)
#:use-module (gnu packages ed)
+ #:use-module (gnu packages erlang)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
@@ -1228,6 +1229,40 @@ (define-public picolisp
(inherit picolisp32)
(name "picolisp")))))
+(define-public lfe
+ (package
+ (name "lfe")
+ (version "2.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lfe/lfe")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0a5cfnk3021idvv4bv2lvnksjy9d0yyd13bnj793ks86j5f3hdv5"))))
+ (build-system gnu-build-system)
+ (propagated-inputs (list erlang))
+ (arguments
+ (list #:tests? #f
+ #:make-flags
+ #~(list (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ ;; https://github.com/lfe/lfe/pull/449
+ (add-after 'unpack 'patch-gcc
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "Makefile"
+ (("cc") #$(cc-for-target))))))))
+ (synopsis "Lisp Flavoured Erlang")
+ (description "LFE, Lisp Flavoured Erlang, is a lisp syntax front-end
+to the Erlang compiler. Code produced with LFE is compatible with normal
+Erlang code. An @code{lfe} evaluator and shell is also included.")
+ (home-page "https://lfe.io/")
+ (license license:asl2.0)))
+
(define-public janet
(package
(name "janet")
--
2.38.1
J
[PATCH v2] gnu: lisp: Add lfe.
(address . 60372@debbugs.gnu.org)(name . jgart)(address . jgart@dismail.de)
20221228040545.30885-1-jgart@dismail.de
* gnu/packages/lisp.scm (lfe): New variable.

Here's a v2 but this a WIP as the tests are disabled. Unless we can
merge this and enable the tests later after we figure out whether we
want to do that with rebar-build-system or via a custom phase?

I have an issue open here asking about running the tests:


I tried running the tests by manually calling rebar but I get a homeless-shelter write error.

For test commands that I tried see the following section in the lfe project's CI:


If anyone would like to collaborate on this patch feel free to make
changes and just list me as co-author with you.

all best,

jgart
---
gnu/packages/lisp.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 753952152e..67105a5c93 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -66,6 +66,7 @@ (define-module (gnu packages lisp)
#:use-module (gnu packages compression)
#:use-module (gnu packages dbm)
#:use-module (gnu packages ed)
+ #:use-module (gnu packages erlang)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
@@ -1228,6 +1229,40 @@ (define-public picolisp
(inherit picolisp32)
(name "picolisp")))))
+(define-public lfe
+ (package
+ (name "lfe")
+ (version "2.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lfe/lfe")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0a5cfnk3021idvv4bv2lvnksjy9d0yyd13bnj793ks86j5f3hdv5"))))
+ (build-system gnu-build-system)
+ (inputs (list erlang))
+ (arguments
+ (list #:tests? #f
+ #:make-flags
+ #~(list (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ ;; https://github.com/lfe/lfe/pull/449
+ (add-after 'unpack 'patch-gcc
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "Makefile"
+ (("cc") #$(cc-for-target))))))))
+ (synopsis "Lisp Flavoured Erlang")
+ (description "LFE, Lisp Flavoured Erlang, is a lisp syntax front-end
+to the Erlang compiler. Code produced with LFE is compatible with normal
+Erlang code. An @code{lfe} evaluator and shell is also included.")
+ (home-page "https://lfe.io/")
+ (license license:asl2.0)))
+
(define-public janet
(package
(name "janet")
--
2.38.1
?