unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#57348] [PATCH] gnu: Add eisl
@ 2022-08-22 22:58 Joeke
  2022-08-27 11:07 ` Guillaume Le Vaillant
  0 siblings, 1 reply; 5+ messages in thread
From: Joeke @ 2022-08-22 22:58 UTC (permalink / raw)
  To: 57348

[-- Attachment #1: Type: text/plain, Size: 77 bytes --]

This patch adds the Easy ISLisp interpreter/compiler for ISLisp to
lisp.scm


[-- Attachment #2: gnu: Add eisl --]
[-- Type: text/x-patch, Size: 2805 bytes --]

From ba1e8d927d081de4169d188c772adb2cdc79b57c Mon Sep 17 00:00:00 2001
From: Joeke de Graaf <joeke@posteo.net>
Date: Tue, 23 Aug 2022 00:45:40 +0200
Subject: [PATCH] gnu: Add eisl

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

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 2f37b82..79fae67 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -21,6 +21,7 @@
 ;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
 ;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
 ;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2022 Joeke de Graaf <joeke@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -59,6 +60,7 @@ (define-module (gnu packages lisp)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bdw-gc)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages ed)
   #:use-module (gnu packages fontutils)
@@ -1351,3 +1353,43 @@ (define-public buildapp
      "Buildapp is an application for SBCL or CCL that configures and saves an
 executable Common Lisp image.  It is similar to cl-launch and hu.dwim.build.")
     (license license:bsd-2)))
+
+
+(define-public eisl
+  (package
+    (name "eisl")
+    (version "2.60")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/sasagawa888/eisl")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "0qrmy6myyac38q3kf26axmxpmq9srhc6qy0ykfcsng50jzcdg1mn"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list gcc ncurses cppcheck))
+    (arguments
+     `(#:modules
+       ((guix build utils)
+        (guix build gnu-build-system))
+
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             (string-append "CC=" ,(cc-for-target)))
+
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'create-store-directory
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref %outputs "out"))
+                    (bin (string-append out "/bin")))
+               (mkdir-p out)
+               (mkdir-p bin))))
+         (delete 'configure))))
+    (home-page "https://github.com/sasagawa888/eisl")
+    (synopsis "Implementation of ISLisp")
+    (description "Easy ISLISP (eisl) is an implementation of ISLisp which
+includes a compiler as well as an interpreter.")
+    (license license:bsd-2)))
-- 
2.37.2


[-- Attachment #3: Type: text/plain, Size: 31 bytes --]


Best regards,

Joeke de Graaf

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [bug#57348] [PATCH] gnu: Add eisl
  2022-08-22 22:58 [bug#57348] [PATCH] gnu: Add eisl Joeke
@ 2022-08-27 11:07 ` Guillaume Le Vaillant
  2022-08-30 19:38   ` Joeke
  0 siblings, 1 reply; 5+ messages in thread
From: Guillaume Le Vaillant @ 2022-08-27 11:07 UTC (permalink / raw)
  To: Joeke; +Cc: 57348

[-- Attachment #1: Type: text/plain, Size: 1026 bytes --]

Hi,

Joeke <joeke@posteo.net> skribis:

> This patch adds the Easy ISLisp interpreter/compiler for ISLisp to
> lisp.scm
>
> [...]
>
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     (list gcc ncurses cppcheck))

Adding gcc to 'native-inputs' is not necessary, and ncurses should
probably be in 'inputs' instead of 'native-inputs'.

> +    (arguments
> +     `(#:modules
> +       ((guix build utils)
> +        (guix build gnu-build-system))

Specifying 'modules' here is not necessary.

>
> [...]
>
> +    (home-page "https://github.com/sasagawa888/eisl")
> +    (synopsis "Implementation of ISLisp")
> +    (description "Easy ISLISP (eisl) is an implementation of ISLisp which
> +includes a compiler as well as an interpreter.")
> +    (license license:bsd-2)))

It looks like some code in "cii/" is under the expat license, and some
code in "nana/" is under bsd-3, so they should be added to the 'license'
field.

Also, it looks like the files in "library/" are not compiled/installed.
Is it on purpose?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [bug#57348] [PATCH] gnu: Add eisl
  2022-08-27 11:07 ` Guillaume Le Vaillant
@ 2022-08-30 19:38   ` Joeke
  2022-08-31 11:58     ` Guillaume Le Vaillant
  0 siblings, 1 reply; 5+ messages in thread
From: Joeke @ 2022-08-30 19:38 UTC (permalink / raw)
  To: 57348

[-- Attachment #1: Type: text/plain, Size: 1309 bytes --]

Hi,

Guillaume Le Vaillant <glv@posteo.net> writes:

>> +    (build-system gnu-build-system)
>> +    (native-inputs
>> +     (list gcc ncurses cppcheck))
>
> Adding gcc to 'native-inputs' is not necessary, and ncurses should
> probably be in 'inputs' instead of 'native-inputs'.

Right, fixed.

>> +    (arguments
>> +     `(#:modules
>> +       ((guix build utils)
>> +        (guix build gnu-build-system))
>
> Specifying 'modules' here is not necessary.

I removed this as well.

>> +    (home-page "https://github.com/sasagawa888/eisl")
>> +    (synopsis "Implementation of ISLisp")
>> +    (description "Easy ISLISP (eisl) is an implementation of ISLisp which
>> +includes a compiler as well as an interpreter.")
>> +    (license license:bsd-2)))
>
> It looks like some code in "cii/" is under the expat license, and some
> code in "nana/" is under bsd-3, so they should be added to the 'license'
> field.

You're right. I also found some gpl2+ code under nana/.


> Also, it looks like the files in "library/" are not compiled/installed.
> Is it on purpose?

This certainly was not intentional. In my new patch I somewhat hackily
copy the "library" and "bench" directories over to the output
directory. If there is a better way to do this, please let me know.


Dankon por la revizio,


Joeke de Graaf


[-- Attachment #2: patch --]
[-- Type: text/x-patch, Size: 3913 bytes --]

From 0162b638d42d02b4ed11db77b2ad46179f673f03 Mon Sep 17 00:00:00 2001
From: Joeke de Graaf <joeke@posteo.net>
Date: Tue, 30 Aug 2022 21:27:24 +0200
Subject: [PATCH] gnu: Add eisl

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

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 2f37b82..ad57d45 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -21,6 +21,7 @@
 ;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
 ;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
 ;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2022 Joeke de Graaf <joeke@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -59,6 +60,7 @@ (define-module (gnu packages lisp)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bdw-gc)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages ed)
   #:use-module (gnu packages fontutils)
@@ -1351,3 +1353,60 @@ (define-public buildapp
      "Buildapp is an application for SBCL or CCL that configures and saves an
 executable Common Lisp image.  It is similar to cl-launch and hu.dwim.build.")
     (license license:bsd-2)))
+
+
+(define-public eisl
+  (package
+    (name "eisl")
+    (version "2.60")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/sasagawa888/eisl")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "0qrmy6myyac38q3kf26axmxpmq9srhc6qy0ykfcsng50jzcdg1mn"))))
+    (build-system gnu-build-system)
+    (inputs
+     (list ncurses))
+    (native-inputs
+     (list cppcheck))
+    (arguments
+     `(#:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             (string-append "CC=" ,(cc-for-target)))
+
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'create-store-directory
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref %outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (lib (string-append out "/library"))
+                    (ben (string-append out "/bench")))
+               (map mkdir-p (list out bin lib ben)))))
+         (add-after 'install 'install-lib-and-bench
+           (lambda* (#:key build-inputs outputs #:allow-other-keys)
+             (let* ((source (assoc-ref %build-inputs "source"))
+                    (out (assoc-ref %outputs "out"))
+                    (libstring "/library/")
+                    (benchstring "/bench/"))
+               (map (lambda (subdir-name)
+                      (let ((sourcedir (opendir (string-append source subdir-name))))
+                        (do ((file (readdir sourcedir) (readdir sourcedir)))
+                            ((eof-object? file))
+                          (when (not (member file '("." "..")))
+                            (copy-file (string-append source subdir-name file)
+				        (string-append out subdir-name file))))))
+                    (list libstring benchstring)))))
+         (delete 'configure))))
+    (home-page "https://github.com/sasagawa888/eisl")
+    (synopsis "Implementation of ISLisp")
+    (description "Easy ISLISP (eisl) is an implementation of ISLisp which
+includes a compiler as well as an interpreter.")
+    (license (list license:bsd-2 ;; documents/license.txt
+                   license:expat ;; cii/LICENSE
+                   license:gpl2+ ;; nana/gdb/test.c and others under nana/
+                   license:bsd-3 ;; bench/*
+))))
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [bug#57348] [PATCH] gnu: Add eisl
  2022-08-30 19:38   ` Joeke
@ 2022-08-31 11:58     ` Guillaume Le Vaillant
  2022-09-03 14:03       ` bug#57348: " Guillaume Le Vaillant
  0 siblings, 1 reply; 5+ messages in thread
From: Guillaume Le Vaillant @ 2022-08-31 11:58 UTC (permalink / raw)
  To: Joeke; +Cc: 57348

[-- Attachment #1: Type: text/plain, Size: 534 bytes --]

Joeke <joeke@posteo.net> skribis:

>> Also, it looks like the files in "library/" are not compiled/installed.
>> Is it on purpose?
>
> This certainly was not intentional. In my new patch I somewhat hackily
> copy the "library" and "bench" directories over to the output
> directory. If there is a better way to do this, please let me know.

Apparently upstream has recently added fixes to the makefile concerning
the "library" directory, but there are still a few things to fix
(see <https://github.com/sasagawa888/eisl/issues/215>).

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#57348: [PATCH] gnu: Add eisl
  2022-08-31 11:58     ` Guillaume Le Vaillant
@ 2022-09-03 14:03       ` Guillaume Le Vaillant
  0 siblings, 0 replies; 5+ messages in thread
From: Guillaume Le Vaillant @ 2022-09-03 14:03 UTC (permalink / raw)
  To: Joeke; +Cc: 57348-done

[-- Attachment #1: Type: text/plain, Size: 263 bytes --]

I updated your patch for version 2.62 which has the fixes for the
libraries. I also added a 'wrap' phase, so calling "(compile-file ...)"
should work without having to propagate gcc-toolchain etc.
Patch pushed as 5cf9b98d1cdd25ee44224f8256ea6f719b9aa0bd.
Thanks.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-09-03 14:09 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-22 22:58 [bug#57348] [PATCH] gnu: Add eisl Joeke
2022-08-27 11:07 ` Guillaume Le Vaillant
2022-08-30 19:38   ` Joeke
2022-08-31 11:58     ` Guillaume Le Vaillant
2022-09-03 14:03       ` bug#57348: " Guillaume Le Vaillant

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).