[bug#35082] gnu: Add kawa.

Message ID 874l7g35ur.fsf@zancanaro.id.au
State Accepted
Headers show
Series [bug#35082] gnu: Add kawa. | expand

Checks

Context Check Description
cbaines/applying patch fail Apply failed

Commit Message

Carlo Zancanaro April 2, 2019, 1:16 p.m. UTC
The attached patch adds a package definition for Kawa. The 
synopsis and description differ from what guix lint suggests, but 
I'm not convinced that the suggested synopsis and description are 
better than what I have.

The suggested synopsis is "Java framework and implementation of 
Scheme, Elisp, and more", and the suggested description is "GNU 
Kawa is an implementation of the Scheme programming language that 
is built on top of the Java platform.  It is thus conveniently 
integrated with Java and benefits from this by having a compiler, 
optional static typing, and so on.  Kawa also serves as a 
framework for implementing other programming languages on the Java 
platform.  Included in Kawa is qexo, a partial implementation of 
XQuery in Java."

Comments

Ludovic Courtès April 3, 2019, 8:30 p.m. UTC | #1
Hello,

Carlo Zancanaro <carlo@zancanaro.id.au> skribis:

> The suggested synopsis is "Java framework and implementation of
> Scheme, Elisp, and more", and the suggested description is "GNU Kawa
> is an implementation of the Scheme programming language that is built
> on top of the Java platform.  It is thus conveniently integrated with
> Java and benefits from this by having a compiler, optional static
> typing, and so on.  Kawa also serves as a framework for implementing
> other programming languages on the Java platform.  Included in Kawa is
> qexo, a partial implementation of XQuery in Java."

I actually have a slight preference for these :-), I find it more
factual than what you propose, but I’m happy either way.

>>From a528b757461e44693058515728192f9a7026f5ef Mon Sep 17 00:00:00 2001
> From: Carlo Zancanaro <carlo@zancanaro.id.au>
> Date: Mon, 25 Feb 2019 16:41:22 +1100
> Subject: [PATCH] gnu: Add kawa.
> To: guix-patches@gnu.org
>
> * gnu/packages/scheme.scm (kawa): New variable.

[...]

> +       (method url-fetch)
> +       (uri (string-append
> +             "ftp://ftp.gnu.org/pub/gnu/kawa/kawa-"

Please use mirror://gnu.

I can amend the URL you, or you can send another patch.  Let me know!

Thanks,
Ludo’.
Ludovic Courtès June 13, 2019, 11:02 a.m. UTC | #2
Hello Carlo,

I realized we had been blocking this patch for too long for no good
reason, so I pushed a variant thereof as
47f2168b6fabb105565526b2a1243eeeb13008fe.

Thanks,
Ludo’.

Patch

From a528b757461e44693058515728192f9a7026f5ef Mon Sep 17 00:00:00 2001
From: Carlo Zancanaro <carlo@zancanaro.id.au>
Date: Mon, 25 Feb 2019 16:41:22 +1100
Subject: [PATCH] gnu: Add kawa.
To: guix-patches@gnu.org

* gnu/packages/scheme.scm (kawa): New variable.
---
 gnu/packages/scheme.scm | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 9dbb3713ee..7d207804d2 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -31,7 +31,7 @@ 
   #:use-module (gnu packages)
   #:use-module ((guix licenses)
                 #:select (gpl2+ lgpl2.0+ lgpl2.1+ lgpl3+ asl2.0 bsd-3
-                          cc-by-sa4.0 non-copyleft))
+                          cc-by-sa4.0 non-copyleft expat))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -69,6 +69,7 @@ 
   #:use-module (gnu packages tls)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages libedit)
+  #:use-module (gnu packages java)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match))
 
@@ -1245,3 +1246,32 @@  multilingual support are some of the goals.  Gauche comes with a package
 manager/installer @code{gauche-package} which can download, compile, install
 and list gauche extension packages.")
     (license bsd-3)))
+
+(define-public kawa
+  (package
+    (name "kawa")
+    (version "3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "ftp://ftp.gnu.org/pub/gnu/kawa/kawa-"
+             version ".tar.gz"))
+       (sha256
+        (base32
+         "1k9qpydc64ar4aqyg3q7jmmxy503ayj85227qfhc5n6ngchqavhy"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:parallel-build? #f
+       #:parallel-tests? #f))
+    (inputs
+     `(("icedtea" ,icedtea-8 "jdk")))
+    (home-page "https://www.gnu.org/software/kawa/")
+    (synopsis "Scheme on the Java Virtual machine")
+    (description "Kawa is an implementation of Scheme for the Java Virtual
+Machine.  It combines the benefits of dynamic scripting languages (minimal
+boiler-plate, fast to start up, REPL) with the benefits of traditional
+compiled languages (fast execution, static error detection, modularity,
+zero-overhead Java integration).  Kawa also provides a framework for
+implementing other programming languages on the Java platform.")
+    (license expat)))
-- 
2.21.0