* bug#41732: issue with emacs-lua-mode and emacs-next @ 2020-06-06 3:14 Fredrik Salomonsson 2020-06-06 3:17 ` Fredrik Salomonsson via web 2020-06-06 8:10 ` Nicolas Goaziou 0 siblings, 2 replies; 16+ messages in thread From: Fredrik Salomonsson @ 2020-06-06 3:14 UTC (permalink / raw) To: 41732 [-- Attachment #1.1: Type: text/plain, Size: 794 bytes --] Hi, When I launch emacs (emacs-next) with the emacs-lua-mode package, I'm getting this error "Error (use-package): lua-mode/:catch: Unknown rx form ‘symbol’" It works when I let emacs download it from melpa. I tried updating emacs-lua-mode to 20200508, which is the same version as on melpa. Still the same issue. Could this be an issue that it's using emacs-minimal-26.3 to byte compile the files? Where I'm using emacs-next aka emasc-27.0. Judging by this issue [1] the rx package has gone through some changes in 27.0. My emacs config is here: https://github.com/plattfot/dotemacs/tree/emacs27 I've attached the backtrace and the patch for the latest emacs-lua-mode. Thanks [1] https://github.com/immerrr/lua-mode/issues/153 -- s/Fred[re]+i[ck]+/Fredrik/g [-- Attachment #1.2: Type: text/html, Size: 1284 bytes --] [-- Attachment #2: emacs-lua-mode.backtrace --] [-- Type: application/octet-stream, Size: 2354 bytes --] Debugger entered--Lisp error: (error "Unknown rx form ‘symbol’") signal(error ("Unknown rx form ‘symbol’")) error("Unknown rx form `%s'" symbol) rx--translate-form((symbol "local")) rx--translate((symbol "local")) mapcar(rx--translate ((symbol "local") ws+)) rx--translate-seq(((symbol "local") ws+)) rx--translate-rep("?" t ((symbol "local") ws+)) rx--translate-form((32 (symbol "local") ws+)) rx--translate((32 (symbol "local") ws+)) mapcar(rx--translate (bol (32 (symbol "local") ws+) lua-funcheader)) rx--translate-seq((bol (32 (symbol "local") ws+) lua-funcheader)) rx--translate-form((: bol (32 (symbol "local") ws+) lua-funcheader)) rx--translate((: bol (32 (symbol "local") ws+) lua-funcheader)) rx-to-string((: bol (32 (symbol "local") ws+) lua-funcheader) nil) lua-rx-to-string((: bol (32 (symbol "local") ws+) lua-funcheader)) (defvar lua--beginning-of-defun-re (lua-rx-to-string '(: bol (32 (symbol "local") ws+) lua-funcheader)) ("/home/plattfot/.guix-profile/share/emacs/site-lisp..." . 43496)) require(lua-mode nil t) (not (require 'lua-mode nil t)) (if (not (require 'lua-mode nil t)) (display-warning 'use-package (format "Cannot load %s" 'lua-mode) :error)) (condition-case err (if (not (require 'lua-mode nil t)) (display-warning 'use-package (format "Cannot load %s" 'lua-mode) :error)) ((debug error) (funcall use-package--warning28 :catch err))) eval-buffer(#<buffer *load*-564058> nil "/home/plattfot/.config/emacs/init.d/configuration...." nil t) ; Reading at buffer position 13216 load-with-code-conversion("/home/plattfot/.config/emacs/init.d/configuration...." "/home/plattfot/.config/emacs/init.d/configuration...." nil nil) load("/home/plattfot/.config/emacs/init.d/configuration...." nil nil t) load-file("~/.config/emacs/init.d/configuration.el") org-babel-load-file("~/.config/emacs/init.d/configuration.org") eval-buffer(#<buffer *load*> nil "/home/plattfot/.config/emacs/init.el" nil t) ; Reading at buffer position 81 load-with-code-conversion("/home/plattfot/.config/emacs/init.el" "/home/plattfot/.config/emacs/init.el" t t) load("/home/plattfot/.config/emacs/init" noerror nomessage) startup--load-user-init-file(#f(compiled-function () #<bytecode 0x97d559>) #f(compiled-function () #<bytecode 0x984959>) t) command-line() normal-top-level() [-- Attachment #3: 0001-gnu-emacs-lua-mode-Update-to-20200508-0.35b6e4c.patch --] [-- Type: text/x-patch, Size: 1921 bytes --] From 1ef949ea0a9bdec2bdf42c0314b8e8e01acff72d Mon Sep 17 00:00:00 2001 From: Fredrik Salomonsson <plattfot@gmail.com> Date: Fri, 5 Jun 2020 19:39:37 -0700 Subject: [PATCH] gnu: emacs-lua-mode: Update to 20200508-0.35b6e4c. * gnu/packages/emacs-xyz.scm (emacs-lua-mode): Update to 20200508-0.35b6e4c. --- gnu/packages/emacs-xyz.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 6110374281..e2d91918e8 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -8292,11 +8292,11 @@ using package inferred style.") (license license:gpl3+)))) (define-public emacs-lua-mode - (let ((commit "1f596a93b3f1caadd7bba01030f8c179b029600b") - (revision "1")) + (let ((commit "35b6e4c20b8b4eaf783ccc8e613d0dd06dbd165c") + (revision "0")) (package (name "emacs-lua-mode") - (version (git-version "20191204" revision commit)) + (version (git-version "20200508" revision commit)) (home-page "https://github.com/immerrr/lua-mode/") (source (origin (method git-fetch) @@ -8306,14 +8306,14 @@ using package inferred style.") (file-name (git-file-name name version)) (sha256 (base32 - "0i4adlaik3qjx1wkb7rwk2clvj7ci2g8pm0siyb3yk90r6z5mspi")))) + "1hai6rqjm5py0bp57nhggmj9qigwdj3a46ngacpnjc1qmy9kkgfk")))) (build-system emacs-build-system) (arguments `(#:tests? #t - #:test-command '("buttercup" "-l" "lua-mode.el"))) + #:test-command '("buttercup" "-l" "lua-mode.el"))) (native-inputs `(("emacs-buttercup" ,emacs-buttercup) - ("lua" ,lua))) + ("lua" ,lua))) (synopsis "Major mode for lua") (description "This Emacs package provides a mode for @uref{https://www.lua.org/, -- 2.26.2 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* bug#41732: issue with emacs-lua-mode and emacs-next 2020-06-06 3:14 bug#41732: issue with emacs-lua-mode and emacs-next Fredrik Salomonsson @ 2020-06-06 3:17 ` Fredrik Salomonsson via web 2020-06-06 8:10 ` Nicolas Goaziou 1 sibling, 0 replies; 16+ messages in thread From: Fredrik Salomonsson via web @ 2020-06-06 3:17 UTC (permalink / raw) To: 41732 Forgot to say which guix version I'm using: guix (GNU Guix) ba6d3612550f5d978c4b5b1df122444f8fb29377 ^ permalink raw reply [flat|nested] 16+ messages in thread
* bug#41732: issue with emacs-lua-mode and emacs-next 2020-06-06 3:14 bug#41732: issue with emacs-lua-mode and emacs-next Fredrik Salomonsson 2020-06-06 3:17 ` Fredrik Salomonsson via web @ 2020-06-06 8:10 ` Nicolas Goaziou 2020-06-06 10:26 ` zimoun 1 sibling, 1 reply; 16+ messages in thread From: Nicolas Goaziou @ 2020-06-06 8:10 UTC (permalink / raw) To: Fredrik Salomonsson; +Cc: 41732 Hello, Fredrik Salomonsson <plattfot@gmail.com> writes: > When I launch emacs (emacs-next) with the emacs-lua-mode package, I'm > getting this error > "Error (use-package): lua-mode/:catch: Unknown rx form ‘symbol’" > > It works when I let emacs download it from melpa. I tried updating > emacs-lua-mode to 20200508, which is the same version as on melpa. > > Still the same issue. > > Could this be an issue that it's using emacs-minimal-26.3 to byte compile > the files? Where I'm using emacs-next aka emasc-27.0. Judging by this issue > [1] the rx package has gone through some changes in 27.0. This seems to be reported upstream as https://github.com/immerrr/lua-mode/issues/155 You may be right. Files byte-compiled with Emacs 26 may not be compatible with Emacs 27. I don't know what can be done on Guix's side, tho. > I've attached the backtrace and the patch for the latest > emacs-lua-mode. Could you send another bug report for the package update? Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 16+ messages in thread
* bug#41732: issue with emacs-lua-mode and emacs-next 2020-06-06 8:10 ` Nicolas Goaziou @ 2020-06-06 10:26 ` zimoun 2020-06-06 14:13 ` Nicolas Goaziou 0 siblings, 1 reply; 16+ messages in thread From: zimoun @ 2020-06-06 10:26 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: 41732, Fredrik Salomonsson Dear Nicolas, On Sat, 6 Jun 2020 at 10:11, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > You may be right. Files byte-compiled with Emacs 26 may not be > compatible with Emacs 27. > > I don't know what can be done on Guix's side, tho. Somehow, one needs to change the Emacs version used by the Emacs toolchain to bytecompile, right? I do not know if it makes sense, but we could add something like 'package-with-emacs-next' similar to 'package-with-python2' or 'package-with-ocam4.07'. WDYT? All the best, simon ^ permalink raw reply [flat|nested] 16+ messages in thread
* bug#41732: issue with emacs-lua-mode and emacs-next 2020-06-06 10:26 ` zimoun @ 2020-06-06 14:13 ` Nicolas Goaziou 2020-06-06 15:30 ` zimoun 0 siblings, 1 reply; 16+ messages in thread From: Nicolas Goaziou @ 2020-06-06 14:13 UTC (permalink / raw) To: zimoun; +Cc: 41732, Fredrik Salomonsson Hello, zimoun <zimon.toutoune@gmail.com> writes: > Somehow, one needs to change the Emacs version used by the Emacs > toolchain to bytecompile, right? > I do not know if it makes sense, but we could add something like > 'package-with-emacs-next' similar to 'package-with-python2' or > 'package-with-ocam4.07'. > WDYT? This sounds like serious overhead for a single package. Maybe we could try to prevent byte-compilation for the package and see what happens? Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 16+ messages in thread
* bug#41732: issue with emacs-lua-mode and emacs-next 2020-06-06 14:13 ` Nicolas Goaziou @ 2020-06-06 15:30 ` zimoun 2020-06-07 4:39 ` Maxim Cournoyer 0 siblings, 1 reply; 16+ messages in thread From: zimoun @ 2020-06-06 15:30 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: 41732, Fredrik Salomonsson Dear Nicolas, On Sat, 6 Jun 2020 at 16:13, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > zimoun <zimon.toutoune@gmail.com> writes: > > Somehow, one needs to change the Emacs version used by the Emacs > > toolchain to bytecompile, right? > > I do not know if it makes sense, but we could add something like > > 'package-with-emacs-next' similar to 'package-with-python2' or > > 'package-with-ocam4.07'. > > WDYT? > > This sounds like serious overhead for a single package. Maybe we could > try to prevent byte-compilation for the package and see what happens? Maybe I miss the issue. From my understanding, all the Emacs packages are byte-compiled with the current Emacs. Therefore, "guix install emacs-next emacs-foo" and then "M-x foo" works by luck -- well because the Emacs VM is stable. :-) And I do not know how to rebuild all my Emacs packages using 'emacs-next' instead of the current Emacs. Maybe I miss something. Well, I am not suggesting to duplicate all the Emacs packages with something like 'emacs-next-<package>' because it is too much. I am suggesting to provide 'package-with-emacs-next' and then for example in my manifest file I would use this new procedure to generate on-the-fly these next packages; as an expert Emacs mode. I do not know if this proposal makes sense. Probably not. :-) (My regular Emacs is the current version and I very rarely use emacs-next because I started Emacs with 23 therefore 24 was already a so-nice improvement. :-)) All the best, simon ^ permalink raw reply [flat|nested] 16+ messages in thread
* bug#41732: issue with emacs-lua-mode and emacs-next 2020-06-06 15:30 ` zimoun @ 2020-06-07 4:39 ` Maxim Cournoyer 2020-06-07 9:31 ` zimoun 0 siblings, 1 reply; 16+ messages in thread From: Maxim Cournoyer @ 2020-06-07 4:39 UTC (permalink / raw) To: zimoun; +Cc: 41732, Fredrik Salomonsson, Nicolas Goaziou Hello, zimoun <zimon.toutoune@gmail.com> writes: > Dear Nicolas, > > On Sat, 6 Jun 2020 at 16:13, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: >> zimoun <zimon.toutoune@gmail.com> writes: > >> > Somehow, one needs to change the Emacs version used by the Emacs >> > toolchain to bytecompile, right? >> > I do not know if it makes sense, but we could add something like >> > 'package-with-emacs-next' similar to 'package-with-python2' or >> > 'package-with-ocam4.07'. >> > WDYT? >> >> This sounds like serious overhead for a single package. Maybe we could >> try to prevent byte-compilation for the package and see what happens? > > Maybe I miss the issue. From my understanding, all the Emacs packages > are byte-compiled with the current Emacs. Therefore, "guix install > emacs-next emacs-foo" and then "M-x foo" works by luck -- well because > the Emacs VM is stable. :-) That's a good description of the situation. There's no warranty that emacs-something works with emacs-next unless it was packaged to be compiled specifically with emacs-next instead of the default emacs package (currently 26.3). > And I do not know how to rebuild all my Emacs packages using > 'emacs-next' instead of the current Emacs. Maybe I miss something. Some people have been adding emacs-next-something packages (IIRC); I think it's OK for the big, complicated packages that need effort to port, but otherwise I wouldn't like seeing this happening for all packages. > Well, I am not suggesting to duplicate all the Emacs packages with > something like 'emacs-next-<package>' because it is too much. I am > suggesting to provide 'package-with-emacs-next' and then for example > in my manifest file I would use this new procedure to generate > on-the-fly these next packages; as an expert Emacs mode. That sounds like a good idea; provide a way for users to rewrite their package at the level of their manifest file (which is already possible IIUC). > I do not know if this proposal makes sense. Probably not. :-) > (My regular Emacs is the current version and I very rarely use > emacs-next because I started Emacs with 23 therefore 24 was already a > so-nice improvement. :-)) It does make sense. For those who would like to see our base Emacs package be updated to emacs-next, we need to iron out all the packages currently failing to build with it. It is easy to try, by modifying slightly a local Guix checkout: --8<---------------cut here---------------start------------->8--- 1 file changed, 1 insertion(+), 1 deletion(-) guix/build-system/emacs.scm | 2 +- modified guix/build-system/emacs.scm @@ -52,7 +52,7 @@ "Return the default Emacs package." ;; Lazily resolve the binding to avoid a circular dependency. (let ((emacs-mod (resolve-interface '(gnu packages emacs)))) - (module-ref emacs-mod 'emacs-minimal))) + (module-ref emacs-mod 'emacs-next))) (define* (lower name #:key source inputs native-inputs outputs system target --8<---------------cut here---------------end--------------->8--- Maxim ^ permalink raw reply [flat|nested] 16+ messages in thread
* bug#41732: issue with emacs-lua-mode and emacs-next 2020-06-07 4:39 ` Maxim Cournoyer @ 2020-06-07 9:31 ` zimoun 2020-06-17 4:34 ` Maxim Cournoyer 0 siblings, 1 reply; 16+ messages in thread From: zimoun @ 2020-06-07 9:31 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: 41732, Fredrik Salomonsson, Nicolas Goaziou [-- Attachment #1: Type: text/plain, Size: 3320 bytes --] Dear Maxim, On Sun, 7 Jun 2020 at 06:39, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > Some people have been adding emacs-next-something packages (IIRC); I > think it's OK for the big, complicated packages that need effort to > port, but otherwise I wouldn't like seeing this happening for all > packages. I agree. I am not suggesting to duplicate all the packages with 'emacs-next-something'. There is already enough to do with the current ones. :-) > > Well, I am not suggesting to duplicate all the Emacs packages with > > something like 'emacs-next-<package>' because it is too much. I am > > suggesting to provide 'package-with-emacs-next' and then for example > > in my manifest file I would use this new procedure to generate > > on-the-fly these next packages; as an expert Emacs mode. > > That sounds like a good idea; provide a way for users to rewrite their > package at the level of their manifest file (which is already possible > IIUC). I propose to provide 'package-with-emacs-next' for the people in the experimental mood. :-) For example, the manifest looks like: --8<---------------cut here---------------start------------->8--- (use-modules (guix build-system emacs) (gnu packages emacs) (gnu packages emacs-xyz)) (packages->manifest (cons emacs-next (map package-with-emacs-next (list emacs-lua-mode emacs-magit)))) --8<---------------cut here---------------end--------------->8--- Then the expert uses it with: guix package -m manifest.scm Well, the attached patch does that. And maybe, an entry to the Cookbook could be worth. > > I do not know if this proposal makes sense. Probably not. :-) > > (My regular Emacs is the current version and I very rarely use > > emacs-next because I started Emacs with 23 therefore 24 was already a > > so-nice improvement. :-)) > > It does make sense. For those who would like to see our base Emacs > package be updated to emacs-next, we need to iron out all the packages > currently failing to build with it. It is easy to try, by modifying > slightly a local Guix checkout: > > --8<---------------cut here---------------start------------->8--- > 1 file changed, 1 insertion(+), 1 deletion(-) > guix/build-system/emacs.scm | 2 +- > > modified guix/build-system/emacs.scm > @@ -52,7 +52,7 @@ > "Return the default Emacs package." > ;; Lazily resolve the binding to avoid a circular dependency. > (let ((emacs-mod (resolve-interface '(gnu packages emacs)))) > - (module-ref emacs-mod 'emacs-minimal))) > + (module-ref emacs-mod 'emacs-next))) > > (define* (lower name > #:key source inputs native-inputs outputs system target > > --8<---------------cut here---------------end--------------->8--- What I propose simplifies because it avoids to recompile all Guix and to use ./pre-inst-env. Well, I do not know. It is an half-cooked proposal. :-) And the added 'package-with-explicit-emacs' procedure allows to use any Emacs as the VM, so for example, it could be cool to see what happens with REmacs (which is not packaged but that's another story :-)). Or for example with Gccemacs. All the best, simon ps: Note that 'package-with-explicite-emacs' and 'package-with-explicit-python' should be refactored, another story. :-) [-- Attachment #2: 0001-DRAFT-build-system-emacs-Add-new-package-with-emacs-.patch --] [-- Type: text/x-patch, Size: 4162 bytes --] From 4038b0c53d5066facceea3c159a6510fa8a625d6 Mon Sep 17 00:00:00 2001 From: zimoun <zimon.toutoune@gmail.com> Date: Sun, 7 Jun 2020 11:07:08 +0200 Subject: [PATCH] DRAFT: build-system: emacs: Add new 'package-with-emacs-next'procedure. * guix/build-system/emacs.scm: Add 'default-emacs-next'. * guix/build-system/emacs.scm: Add 'package-with-emacs-next'. --- guix/build-system/emacs.scm | 66 +++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm index ef6d1b3397..8732678dca 100644 --- a/guix/build-system/emacs.scm +++ b/guix/build-system/emacs.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> +;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +30,7 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-26) #:export (%emacs-build-system-modules + package-with-emacs-next emacs-build emacs-build-system) #:re-export (%default-include ;for convenience @@ -54,6 +56,70 @@ (let ((emacs-mod (resolve-interface '(gnu packages emacs)))) (module-ref emacs-mod 'emacs-minimal))) +(define (default-emacs-next) + "Return the default Emacs-next package." + (let ((emacs-mod (resolve-interface '(gnu packages emacs)))) + (module-ref emacs-mod 'emacs-next))) + +(define* (package-with-explicit-emacs emacs old-prefix new-prefix + #:key variant-property) + "Return a procedure of one argument, P. The procedure creates a package with +the same fields as P, which is assumed to use EMACS-BUILD-SYSTEM, such that +it is compiled with EMACS instead. The inputs are changed recursively +accordingly. If the name of P starts with OLD-PREFIX, this is replaced by +NEW-PREFIX; otherwise, NEW-PREFIX is prepended to the name. + +When VARIANT-PROPERTY is present, it is used as a key to search for +pre-defined variants of this transformation recorded in the 'properties' field +of packages. The property value must be the promise of a package. This is a +convenient way for package writers to force the transformation to use +pre-defined variants." + (define package-variant + (if variant-property + (lambda (package) + (assq-ref (package-properties package) + variant-property)) + (const #f))) + + (define (transform p) + (cond + ;; If VARIANT-PROPERTY is present, use that. + ((package-variant p) + => force) + + ;; Otherwise build the new package object graph. + ((eq? (package-build-system p) emacs-build-system) + (package + (inherit p) + (location (package-location p)) + (name (let ((name (package-name p))) + (string-append new-prefix + (if (string-prefix? old-prefix name) + (substring name + (string-length old-prefix)) + name)))) + (arguments + (let ((emacs (if (promise? emacs) + (force emacs) + emacs))) + (ensure-keyword-arguments (package-arguments p) + `(#:emacs ,emacs)))))) + (else p))) + + (define (cut? p) + (or (not (eq? (package-build-system p) emacs-build-system)) + (package-variant p))) + + (package-mapping transform cut?)) + +(define package-with-emacs-next + ;; Note: delay call to 'default-emacs-next' until after the 'arguments' field + ;; of packages is accessed to avoid a circular dependency when evaluating + ;; the top-level of (gnu packages emacs). + (package-with-explicit-emacs (delay (default-emacs-next)) + "emacs-" "emacs-next-" + #:variant-property 'emacs-next-variant)) + (define* (lower name #:key source inputs native-inputs outputs system target (emacs (default-emacs)) -- 2.26.2 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* bug#41732: issue with emacs-lua-mode and emacs-next 2020-06-07 9:31 ` zimoun @ 2020-06-17 4:34 ` Maxim Cournoyer 2020-09-16 14:51 ` bug#41732: New ’package-with-emacs-next’ procedure zimoun 0 siblings, 1 reply; 16+ messages in thread From: Maxim Cournoyer @ 2020-06-17 4:34 UTC (permalink / raw) To: zimoun; +Cc: 41732, Fredrik Salomonsson, Nicolas Goaziou Hello Simon! Sorry for my delayed answer. zimoun <zimon.toutoune@gmail.com> writes: > Dear Maxim, > > On Sun, 7 Jun 2020 at 06:39, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > >> Some people have been adding emacs-next-something packages (IIRC); I >> think it's OK for the big, complicated packages that need effort to >> port, but otherwise I wouldn't like seeing this happening for all >> packages. > > I agree. I am not suggesting to duplicate all the packages with > 'emacs-next-something'. There is already enough to do with the > current ones. :-) > > >> > Well, I am not suggesting to duplicate all the Emacs packages with >> > something like 'emacs-next-<package>' because it is too much. I am >> > suggesting to provide 'package-with-emacs-next' and then for example >> > in my manifest file I would use this new procedure to generate >> > on-the-fly these next packages; as an expert Emacs mode. >> >> That sounds like a good idea; provide a way for users to rewrite their >> package at the level of their manifest file (which is already possible >> IIUC). > > I propose to provide 'package-with-emacs-next' for the people in the > experimental mood. :-) For example, the manifest looks like: > > (use-modules (guix build-system emacs) > (gnu packages emacs) > (gnu packages emacs-xyz)) > > (packages->manifest > (cons emacs-next > (map > package-with-emacs-next > (list > emacs-lua-mode > emacs-magit)))) > > Then the expert uses it with: > > guix package -m manifest.scm > > Well, the attached patch does that. And maybe, an entry to the > Cookbook could be worth. That's really nice! Thank you for providing it. I've tried it in my manifest, by stitching a couple manifests objects together `concatenate-manifests' like so: --8<---------------cut here---------------start------------->8--- (concatenate-manifests (list ;;; Emacs packages. (packages->manifest (cons emacs-next (map package-with-emacs-next (map specification->package '("emacs-auctex" "emacs-bash-completion" [...] "emacs-yasnippet" "emacs-yasnippet-snippets"))))) ;; Other software. (specifications->manifest '("adb" [...] "arc-icon-theme" "arc-theme" ...)))) --8<---------------cut here---------------end--------------->8--- And after a couple fixes on master, I was able to build my profile with my Emacs packages collection built against Emacs 27! I'm now having some issues due to the apparent renaming of the generated autoload files. I haven't had the time to look for a fix yet. It breaks at least Helm (and probably others), as it cannot find its own autoload file. next-helm-autoloads.el -> /gnu/store/fnwalhxi94fhr8h2dfg602zd9plarwx0-emacs-next-helm-3.6.2/share/emacs/site-lisp/next-helm-autoloads.el (instead of helm-autoloads.el) > Note that 'package-with-explicite-emacs' and > 'package-with-explicit-python' should be refactored, another story. > :-) I wholly agree! It seems these have much in common. Perhaps (guix packages) could be a new home for the factored out bits. To be continued! Maxim ^ permalink raw reply [flat|nested] 16+ messages in thread
* bug#41732: New ’package-with-emacs-next’ procedure 2020-06-17 4:34 ` Maxim Cournoyer @ 2020-09-16 14:51 ` zimoun 2020-09-26 16:12 ` zimoun 0 siblings, 1 reply; 16+ messages in thread From: zimoun @ 2020-09-16 14:51 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: 41732, Fredrik Salomonsson, Nicolas Goaziou Dear Maxim, On Wed, 17 Jun 2020 at 00:34, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > zimoun <zimon.toutoune@gmail.com> writes: > Sorry for my delayed answer. Sorry, I have missed your answer. >> I propose to provide 'package-with-emacs-next' for the people in the >> experimental mood. :-) For example, the manifest looks like: >> >> (use-modules (guix build-system emacs) >> (gnu packages emacs) >> (gnu packages emacs-xyz)) >> >> (packages->manifest >> (cons emacs-next >> (map >> package-with-emacs-next >> (list >> emacs-lua-mode >> emacs-magit)))) >> >> Then the expert uses it with: >> >> guix package -m manifest.scm >> >> Well, the attached patch does that. And maybe, an entry to the >> Cookbook could be worth. > > That's really nice! Thank you for providing it. I've tried it in my > manifest, by stitching a couple manifests objects together > `concatenate-manifests' like so: > > (concatenate-manifests > (list > ;;; Emacs packages. > (packages->manifest > (cons emacs-next > (map package-with-emacs-next > (map specification->package > '("emacs-auctex" > "emacs-bash-completion" > [...] > "emacs-yasnippet" > "emacs-yasnippet-snippets"))))) > > ;; Other software. > (specifications->manifest > '("adb" > [...] > "arc-icon-theme" > "arc-theme" > ...)))) > > And after a couple fixes on master, I was able to build my profile with > my Emacs packages collection built against Emacs 27! I'm now having > some issues due to the apparent renaming of the generated autoload > files. I haven't had the time to look for a fix yet. It breaks at > least Helm (and probably others), as it cannot find its own autoload > file. > > next-helm-autoloads.el -> > /gnu/store/fnwalhxi94fhr8h2dfg602zd9plarwx0-emacs-next-helm-3.6.2/share/emacs/site-lisp/next-helm-autoloads.el > > (instead of helm-autoloads.el) What do you think to add this ’package-with-emacs-next’? It should help when upgrading Emacs: detect which packages break, report upstream or fix, etc. Helm is a good example. Couple of days before emacs-next becomes the new emacs, an announcement of the coming soon switch on guix-devel and a call for testing and report issues. If it appears to you a good idea, I can rebase the patch and resubmit it, and add an example to the Cooking book. >> Note that 'package-with-explicite-emacs' and >> 'package-with-explicit-python' should be refactored, another story. >> :-) > > I wholly agree! It seems these have much in common. Perhaps (guix > packages) could be a new home for the factored out bits. The story is long. :-) There is ’package-with-explicit-python’ and also ’package-with-explicit-ocaml’, I would like to have ’package-with-explicit-c-compiler’ too to rebuild C packages with any version of GCC or even Clang. One way to achieve is “package parameter” but the consensus on the topic has not been reached. Therefore ’package-with-explicit-<name-it>’ seems a working short term workaround waiting something more “elegant“. But yeah, maybe the 3 ’package-with-explicit-{python,ocaml,emacs}’ could be refactored; I do not know. All the best, simon ^ permalink raw reply [flat|nested] 16+ messages in thread
* bug#41732: New ’package-with-emacs-next’ procedure 2020-09-16 14:51 ` bug#41732: New ’package-with-emacs-next’ procedure zimoun @ 2020-09-26 16:12 ` zimoun 2020-09-26 16:53 ` Nicolas Goaziou 0 siblings, 1 reply; 16+ messages in thread From: zimoun @ 2020-09-26 16:12 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: 41732, Fredrik Salomonsson, Nicolas Goaziou Dear, On Wed, 16 Sep 2020 at 16:51, zimoun <zimon.toutoune@gmail.com> wrote: >>> I propose to provide 'package-with-emacs-next' for the people in the >>> experimental mood. :-) For example, the manifest looks like: >>> >>> (use-modules (guix build-system emacs) >>> (gnu packages emacs) >>> (gnu packages emacs-xyz)) >>> >>> (packages->manifest >>> (cons emacs-next >>> (map >>> package-with-emacs-next >>> (list >>> emacs-lua-mode >>> emacs-magit)))) >>> >>> Then the expert uses it with: >>> >>> guix package -m manifest.scm >>> >>> Well, the attached patch does that. And maybe, an entry to the >>> Cookbook could be worth. I withdraw the patch proposal since the patch set #43578 [1] fulfills the request. Now, for recompiling all the Emacs packages of one manifest.scm file with the emacs-next package (changing the Emacs VM), it is as easy as: --8<---------------cut here---------------start------------->8--- guix build -m manifest.scm --with-input=emacs-minimal=emacs-next --8<---------------cut here---------------end--------------->8--- Before closing, what do you think adding something in the manual or the cookbook will be worth? It could be useful when switching the Emacs version –– for example the last 26 to 27. [1] <http://issues.guix.gnu.org/issue/43578> All the best, simon ^ permalink raw reply [flat|nested] 16+ messages in thread
* bug#41732: New ’package-with-emacs-next’ procedure 2020-09-26 16:12 ` zimoun @ 2020-09-26 16:53 ` Nicolas Goaziou 2020-09-27 3:45 ` Maxim Cournoyer 0 siblings, 1 reply; 16+ messages in thread From: Nicolas Goaziou @ 2020-09-26 16:53 UTC (permalink / raw) To: zimoun; +Cc: 41732, Fredrik Salomonsson, Maxim Cournoyer Hello, zimoun <zimon.toutoune@gmail.com> writes: > I withdraw the patch proposal since the patch set #43578 [1] fulfills > the request. Now, for recompiling all the Emacs packages of one > manifest.scm file with the emacs-next package (changing the Emacs VM), > it is as easy as: > > --8<---------------cut here---------------start------------->8--- > guix build -m manifest.scm --with-input=emacs-minimal=emacs-next > --8<---------------cut here---------------end--------------->8--- Some Emacs packages rely on emacs package, not on emacs-minimal. IIUC, the command above could give surprising results in this case. Maybe the documentation/cookbook could warn about this caveat. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 16+ messages in thread
* bug#41732: New ’package-with-emacs-next’ procedure 2020-09-26 16:53 ` Nicolas Goaziou @ 2020-09-27 3:45 ` Maxim Cournoyer 2020-09-27 9:00 ` Nicolas Goaziou 0 siblings, 1 reply; 16+ messages in thread From: Maxim Cournoyer @ 2020-09-27 3:45 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: 41732, Fredrik Salomonsson Hi Nicolas, Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Hello, > > zimoun <zimon.toutoune@gmail.com> writes: > >> I withdraw the patch proposal since the patch set #43578 [1] fulfills >> the request. Now, for recompiling all the Emacs packages of one >> manifest.scm file with the emacs-next package (changing the Emacs VM), >> it is as easy as: >> >> --8<---------------cut here---------------start------------->8--- >> guix build -m manifest.scm --with-input=emacs-minimal=emacs-next >> --8<---------------cut here---------------end--------------->8--- > > Some Emacs packages rely on emacs package, not on emacs-minimal. IIUC, > the command above could give surprising results in this case. Maybe the > documentation/cookbook could warn about this caveat. Perhaps then, --8<---------------cut here---------------start------------->8--- guix build -m manifest.scm --with-input=emacs-minimal=emacs-next \ --with-input=emacs=emacs-next --8<---------------cut here---------------end--------------->8--- I haven't tried myself. Maxim ^ permalink raw reply [flat|nested] 16+ messages in thread
* bug#41732: New ’package-with-emacs-next’ procedure 2020-09-27 3:45 ` Maxim Cournoyer @ 2020-09-27 9:00 ` Nicolas Goaziou 2020-09-28 3:03 ` Maxim Cournoyer 2020-09-28 8:29 ` zimoun 0 siblings, 2 replies; 16+ messages in thread From: Nicolas Goaziou @ 2020-09-27 9:00 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: 41732, Fredrik Salomonsson Hello, Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: > Perhaps then, > > --8<---------------cut here---------------start------------->8--- > guix build -m manifest.scm --with-input=emacs-minimal=emacs-next \ > --with-input=emacs=emacs-next > --8<---------------cut here---------------end--------------->8--- Possibly. And then Magit uses emacs-no-x as an input, so we may need to also add --with-input=emacs-no-x=emacs-next to the command. I'm just pointing out that the process is not as straightforward as it might seem. So, it doesn't sound right to simply suggest guix build -m manifest.scm --with-input=emacs-minimal=emacs-next in the manual/cookbook without caution. Or maybe `package-with-emacs-next' could be more high-level, and handle all of these cases. I don't know. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 16+ messages in thread
* bug#41732: New ’package-with-emacs-next’ procedure 2020-09-27 9:00 ` Nicolas Goaziou @ 2020-09-28 3:03 ` Maxim Cournoyer 2020-09-28 8:29 ` zimoun 1 sibling, 0 replies; 16+ messages in thread From: Maxim Cournoyer @ 2020-09-28 3:03 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: 41732, Fredrik Salomonsson Hello, Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Possibly. And then Magit uses emacs-no-x as an input, so we may need to > also add --with-input=emacs-no-x=emacs-next to the command. > > I'm just pointing out that the process is not as straightforward as it > might seem. So, it doesn't sound right to simply suggest > > guix build -m manifest.scm --with-input=emacs-minimal=emacs-next > > in the manual/cookbook without caution. > > Or maybe `package-with-emacs-next' could be more high-level, and handle > all of these cases. I don't know. Yeah, that would probably me more convenient/robust to use, if it was covering for all the weird cases one might forget. I'd still be in favor of having such a helper procedure. Maxim ^ permalink raw reply [flat|nested] 16+ messages in thread
* bug#41732: New ’package-with-emacs-next’ procedure 2020-09-27 9:00 ` Nicolas Goaziou 2020-09-28 3:03 ` Maxim Cournoyer @ 2020-09-28 8:29 ` zimoun 1 sibling, 0 replies; 16+ messages in thread From: zimoun @ 2020-09-28 8:29 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: 41732, Fredrik Salomonsson, Maxim Cournoyer Hi, Thank you for your insights. On Sun, 27 Sep 2020 at 15:12, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > > --8<---------------cut here---------------start------------->8--- > > guix build -m manifest.scm --with-input=emacs-minimal=emacs-next \ > > --with-input=emacs=emacs-next > > --8<---------------cut here---------------end--------------->8--- > > Possibly. And then Magit uses emacs-no-x as an input, so we may need to > also add --with-input=emacs-no-x=emacs-next to the command. [...] > Or maybe `package-with-emacs-next' could be more high-level, and handle > all of these cases. I don't know. I am not familiar with the Emacs build system. Do the packages need different flavors of the Emacs VM to be byte-compiled? For example, the package emacs-magit drags emacs-no-x because of emacs-libgit, why is emacs-minimal not enough here? Well, the emacs-build-system depends (implicitly) on emacs-minimal, only. And the initial patch `package-with-emacs-next' was changing this, only. However, the package emacs-libgit is cmake-build-system and the package emacs-no-x is an explicit dependency; which is another story. :-) Therefore, the `package-with-emacs-next' could replace the Emacs used by the build system (emacs-minimal -> emacs-next-minimal) and also traverse all the graph of dependencies and replace all the Emacs variants (emacs-{minimal,xwidgets,no-x,no-x-toolkit,wide-int}) in gnu/packages/emacs.scm by the package emacs-next. I am not sure it will work. Maybe the Emacs variants should also be rebuilt inheriting from emacs-next instead of emacs. WDYT? Does it make sense? All the best, simon ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2020-09-28 8:30 UTC | newest] Thread overview: 16+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-06-06 3:14 bug#41732: issue with emacs-lua-mode and emacs-next Fredrik Salomonsson 2020-06-06 3:17 ` Fredrik Salomonsson via web 2020-06-06 8:10 ` Nicolas Goaziou 2020-06-06 10:26 ` zimoun 2020-06-06 14:13 ` Nicolas Goaziou 2020-06-06 15:30 ` zimoun 2020-06-07 4:39 ` Maxim Cournoyer 2020-06-07 9:31 ` zimoun 2020-06-17 4:34 ` Maxim Cournoyer 2020-09-16 14:51 ` bug#41732: New ’package-with-emacs-next’ procedure zimoun 2020-09-26 16:12 ` zimoun 2020-09-26 16:53 ` Nicolas Goaziou 2020-09-27 3:45 ` Maxim Cournoyer 2020-09-27 9:00 ` Nicolas Goaziou 2020-09-28 3:03 ` Maxim Cournoyer 2020-09-28 8:29 ` zimoun
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).