GNU bug report logs - #59930
[PATCH] gnu: Add emacs-islisp-mode

Previous Next

Package: guix-patches;

Reported by: Joeke de Graaf <joeke <at> posteo.net>

Date: Fri, 9 Dec 2022 21:02:02 UTC

Severity: normal

Tags: patch

Done: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 59930 in the body.
You can then email your comments to 59930 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#59930; Package guix-patches. (Fri, 09 Dec 2022 21:02:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Joeke de Graaf <joeke <at> posteo.net>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Fri, 09 Dec 2022 21:02:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Joeke de Graaf <joeke <at> posteo.net>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: Add emacs-islisp-mode
Date: Fri, 09 Dec 2022 21:01:47 +0000
[Message part 1 (text/plain, inline)]
This patch adds emacs-islisp-mode to emacs-xyz.scm

Best regards,

Joeke de Graaf

[0001-gnu-Add-emacs-islisp-mode.patch (text/x-patch, inline)]
From fc661dcc856de74034964fd0734cabce5cef4eaa Mon Sep 17 00:00:00 2001
From: Joeke <joeke <at> posteo.net>
Date: Fri, 9 Dec 2022 21:52:40 +0100
Subject: [PATCH] gnu: Add emacs-islisp-mode

---
 gnu/packages/emacs-xyz.scm | 41 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 0d11c59b48..4170787ca1 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -118,6 +118,7 @@
 ;;; Copyright © 2022 Hilton Chain <hako <at> ultrarare.space>
 ;;; Copyright © 2022 Nicolas Graves <ngraves <at> ngraves.fr>
 ;;; Copyright © 2022 Thiago Jung Bauermann <bauermann <at> kolabnow.com>
+;;; Copyright © 2022 Joeke de Graaf <joeke <at> posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -13125,6 +13126,46 @@ (define-public emacs-helm-make
 target will call @code{compile} on it.")
       (license license:gpl3+))))
 
+(define-public emacs-islisp-mode
+  (package
+    (name "emacs-islisp-mode")
+    (version "0.3.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/sasanidas/islisp-mode")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1s6alrv1hfi1plj5lh826j0h71xvm2v092kglj3yvy34g73dgrna"))))
+    (build-system emacs-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+			;; Install Emacs Lisp files from the "advance"
+			;; and "implementations" directories
+                        (add-after 'install 'install-additional-directories
+                          (lambda _
+                            (let ((site-lisp-dir (string-append #$output
+                                                  "/share/emacs/site-lisp/islisp-mode-"
+                                                  #$version)))
+                              (map (lambda (dir)
+                                     (with-directory-excursion dir
+                                       (for-each (lambda (file)
+                                                   (install-file file
+                                                    site-lisp-dir))
+                                                 (find-files "." "\\.el$"))))
+                                   '("advance" "implementations"))))))))
+    (home-page "https://gitlab.com/sasanidas/islisp-mode")
+    (synopsis "ISLisp support for Emacs")
+    (description
+     "This package provides support for programming with ISLisp in
+Emacs.  It features a major mode with syntax highlighting, symbol autocompletion
+and documentation search, among other features.  It also includes an inferior
+mode with REPL integration.  Currently it only supports the Easy ISLisp (eisl)
+implementation.")
+    (license license:gpl3+)))
+
 (define-public emacs-cider
   (package
     (name "emacs-cider")
-- 
2.37.2


Information forwarded to guix-patches <at> gnu.org:
bug#59930; Package guix-patches. (Wed, 14 Dec 2022 16:37:02 GMT) Full text and rfc822 format available.

Message #8 received at 59930 <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: Joeke de Graaf <joeke <at> posteo.net>
Cc: 59930 <at> debbugs.gnu.org
Subject: Re: [bug#59930] [PATCH] gnu: Add emacs-islisp-mode
Date: Wed, 14 Dec 2022 17:36:33 +0100
Hello,

Joeke de Graaf <joeke <at> posteo.net> writes:

> This patch adds emacs-islisp-mode to emacs-xyz.scm

Thank you. Some comments follow.

> +    (build-system emacs-build-system)
> +    (arguments
> +     (list #:phases #~(modify-phases %standard-phases
> +			;; Install Emacs Lisp files from the "advance"
> +			;; and "implementations" directories
> +                        (add-after 'install 'install-additional-directories
> +                          (lambda _
> +                            (let ((site-lisp-dir (string-append #$output
> +                                                  "/share/emacs/site-lisp/islisp-mode-"
> +                                                  #$version)))

You can use (elpa-directory #$output) instead of (string-append ...)

> +                              (map (lambda (dir)
> +                                     (with-directory-excursion dir
> +                                       (for-each (lambda (file)
> +                                                   (install-file file
> +                                                    site-lisp-dir))
> +                                                 (find-files "." "\\.el$"))))
> +                                   '("advance" "implementations"))))))))

You can use for-each instead of map since you don't need the return
value. Moreover, `copy-recursively' is probably shorter.

However, this will catch neither the ".el" file nor the ".lsp" file in
"implementations/easy-islisp" directory. What should we do about the
latter ?

You also need to add `eisl' as an input, and patch "easy-islisp.el"
accordingly (see `easy-islisp-executable').

Could you send an updated patch?

Regards,
-- 
Nicolas Goaziou




Information forwarded to guix-patches <at> gnu.org:
bug#59930; Package guix-patches. (Fri, 16 Dec 2022 13:15:02 GMT) Full text and rfc822 format available.

Message #11 received at 59930 <at> debbugs.gnu.org (full text, mbox):

From: Joeke de Graaf <joeke <at> posteo.net>
To: 59930 <at> debbugs.gnu.org
Subject: Re: [bug#59930] [PATCH] gnu: Add emacs-islisp-mode
Date: Fri, 16 Dec 2022 13:14:47 +0000
[Message part 1 (text/plain, inline)]
  > You can use (elpa-directory #$output) instead of (string-append ...)

  Thanks, I did not know about elpa-directory.

  > You can use for-each instead of map since you don't need the return
  > value. Moreover, `copy-recursively' is probably shorter.
  >
  > However, this will catch neither the ".el" file nor the ".lsp" file 
in
  > "implementations/easy-islisp" directory. What should we do about the
  > latter ?

  It seems Emacs has a hard time finding easy-islisp.el when using
  copy-recursively, since it's put inside a directory. The easy solution
  would be to 'expand' the regex in find-files like this:

  (lambda _
    (let ((site-lisp-dir (elpa-directory #$output)))
      (for-each (lambda (dir)
		  (copy-recursively dir elpa-directory)
		  (with-directory-excursion dir
		    (for-each (lambda (file)
				(install-file file
					      site-lisp-dir))
			      (find-files "." "\\.(lsp|el)$"))))
		'("advance" "implementations"))))

  Are there any objections to doing it this way? (Other than it being a
  lot less pretty than a call to copy-recursively 😄)

  > You also need to add `eisl' as an input,
  > and patch "easy-islisp.el"
  > accordingly (see `easy-islisp-executable').

  I incorporated this in the new patch.

  I have attached an updated version below.

  Thanks for reviewing!
[0001-gnu-Add-emacs-islisp-mode.patch (text/x-patch, attachment)]

Reply sent to Nicolas Goaziou <mail <at> nicolasgoaziou.fr>:
You have taken responsibility. (Fri, 16 Dec 2022 17:55:02 GMT) Full text and rfc822 format available.

Notification sent to Joeke de Graaf <joeke <at> posteo.net>:
bug acknowledged by developer. (Fri, 16 Dec 2022 17:55:02 GMT) Full text and rfc822 format available.

Message #16 received at 59930-done <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: Joeke de Graaf <joeke <at> posteo.net>
Cc: 59930-done <at> debbugs.gnu.org
Subject: Re: [bug#59930] [PATCH] gnu: Add emacs-islisp-mode
Date: Fri, 16 Dec 2022 18:54:19 +0100
Hello,

Joeke de Graaf <joeke <at> posteo.net> writes:

>   I have attached an updated version below.

Thank you. I applied it with a small refactoring.

Regards,
-- 
Nicolas Goaziou




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 14 Jan 2023 12:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 213 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.