Message ID | 20200131200222.23792-1-leo.prikler@student.tugraz.at |
---|---|
State | Accepted |
Headers | show |
Series | [bug#39375] gnu: emacs-utils: Port to emacs-next. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
Looks good to me. Anything blocking this?
Am Donnerstag, den 27.02.2020, 11:38 +0100 schrieb Pierre Neidhardt:
> Looks good to me. Anything blocking this?
AFAIK the change should be backwards-compatible, so it's just the
rebuilds of all emacs libraries.
So push to staging?
Am Donnerstag, den 27.02.2020, 14:20 +0100 schrieb Pierre Neidhardt:
> So push to staging?
Staging should be safe, but previous updates to emacs-build-system have
been pushed to master before with the reasoning, that the rebuilds are
all very small. I'm not sure who has the authority over this.
Regards,
Leo
Cc-ing to Maxim: Leo Prikler <leo.prikler@student.tugraz.at> writes: > Am Donnerstag, den 27.02.2020, 14:20 +0100 schrieb Pierre Neidhardt: >> So push to staging? > Staging should be safe, but previous updates to emacs-build-system have > been pushed to master before with the reasoning, that the rebuilds are > all very small. I'm not sure who has the authority over this.
Hi Leo, Leo Prikler <leo.prikler@student.tugraz.at> writes: > * guix/build/emacs-utils.scm (emacs-batch-eval*): New variable. > (emacs-generate-autoloads): Redefine in terms of emacs-batch-eval*. > Require autoload (needed with emacs-next). > --- > guix/build/emacs-utils.scm | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm > index 885fd0a217..1462f9d0af 100644 > --- a/guix/build/emacs-utils.scm > +++ b/guix/build/emacs-utils.scm > @@ -23,6 +23,7 @@ > #:use-module (guix build utils) > #:export (%emacs > emacs-batch-eval > + emacs-batch-eval* > emacs-batch-edit-file > emacs-batch-disable-compilation > emacs-generate-autoloads > @@ -46,6 +47,14 @@ > (invoke (%emacs) "--quick" "--batch" > (format #f "--eval=~S" expr))) > > +(define (emacs-batch-eval* . exprs) > + "Run Emacs in batch mode, and execute all of the elisp expressions EXPRS." > + (apply invoke (%emacs) "--quick" "--batch" > + (map > + (lambda (expr) > + (format #f "--eval=~S" expr)) > + exprs))) > + > (define (emacs-batch-edit-file file expr) > "Load FILE in Emacs using batch mode, and execute the elisp code EXPR." > (invoke (%emacs) "--quick" "--batch" > @@ -64,7 +73,7 @@ > (expr `(let ((backup-inhibited t) > (generated-autoload-file ,file)) > (update-directory-autoloads ,directory)))) > - (emacs-batch-eval expr))) > + (emacs-batch-eval* '(require 'autoload) expr))) > > (define* (emacs-byte-compile-directory dir) > "Byte compile all files in DIR and its sub-directories." As I wrote here <https://bugs.gnu.org/39804>, I think we have something fundamentally flawed in our Emacs 27 build, which I'd like to have addressed at its core. Thanks, Maxim
Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: [...] > As I wrote here <https://bugs.gnu.org/39804>, I think we have something > fundamentally flawed in our Emacs 27 build, which I'd like to have > addressed at its core. For the record, I've opened an issue with Emacs here: <https://bugs.gnu.org/39823>. Maxim
Hi Leo, Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: > Hi Leo, > > Leo Prikler <leo.prikler@student.tugraz.at> writes: > >> * guix/build/emacs-utils.scm (emacs-batch-eval*): New variable. >> (emacs-generate-autoloads): Redefine in terms of emacs-batch-eval*. >> Require autoload (needed with emacs-next). >> --- >> guix/build/emacs-utils.scm | 11 ++++++++++- >> 1 file changed, 10 insertions(+), 1 deletion(-) >> >> diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm >> index 885fd0a217..1462f9d0af 100644 >> --- a/guix/build/emacs-utils.scm >> +++ b/guix/build/emacs-utils.scm >> @@ -23,6 +23,7 @@ >> #:use-module (guix build utils) >> #:export (%emacs >> emacs-batch-eval >> + emacs-batch-eval* >> emacs-batch-edit-file >> emacs-batch-disable-compilation >> emacs-generate-autoloads >> @@ -46,6 +47,14 @@ >> (invoke (%emacs) "--quick" "--batch" >> (format #f "--eval=~S" expr))) >> >> +(define (emacs-batch-eval* . exprs) >> + "Run Emacs in batch mode, and execute all of the elisp expressions EXPRS." >> + (apply invoke (%emacs) "--quick" "--batch" >> + (map >> + (lambda (expr) >> + (format #f "--eval=~S" expr)) >> + exprs))) >> + >> (define (emacs-batch-edit-file file expr) >> "Load FILE in Emacs using batch mode, and execute the elisp code EXPR." >> (invoke (%emacs) "--quick" "--batch" >> @@ -64,7 +73,7 @@ >> (expr `(let ((backup-inhibited t) >> (generated-autoload-file ,file)) >> (update-directory-autoloads ,directory)))) >> - (emacs-batch-eval expr))) >> + (emacs-batch-eval* '(require 'autoload) expr))) >> >> (define* (emacs-byte-compile-directory dir) >> "Byte compile all files in DIR and its sub-directories." > > As I wrote here <https://bugs.gnu.org/39804>, I think we have something > fundamentally flawed in our Emacs 27 build, which I'd like to have > addressed at its core. Correct me if I'm wrong, but I think we ended up addressing the issue differently at the time, right? If you confirm that this is no longer needed, let's close it! Thanks, Maxim
Hi Maxim, Am Montag, den 30.08.2021, 16:16 -0400 schrieb Maxim Cournoyer: > Hi Leo, > > Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: > > > Hi Leo, > > > > Leo Prikler <leo.prikler@student.tugraz.at> writes: > > > > > * guix/build/emacs-utils.scm (emacs-batch-eval*): New variable. > > > (emacs-generate-autoloads): Redefine in terms of emacs-batch- > > > eval*. > > > Require autoload (needed with emacs-next). > > > --- > > > guix/build/emacs-utils.scm | 11 ++++++++++- > > > 1 file changed, 10 insertions(+), 1 deletion(-) > > > > > > diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs- > > > utils.scm > > > index 885fd0a217..1462f9d0af 100644 > > > --- a/guix/build/emacs-utils.scm > > > +++ b/guix/build/emacs-utils.scm > > > @@ -23,6 +23,7 @@ > > > #:use-module (guix build utils) > > > #:export (%emacs > > > emacs-batch-eval > > > + emacs-batch-eval* > > > emacs-batch-edit-file > > > emacs-batch-disable-compilation > > > emacs-generate-autoloads > > > @@ -46,6 +47,14 @@ > > > (invoke (%emacs) "--quick" "--batch" > > > (format #f "--eval=~S" expr))) > > > > > > +(define (emacs-batch-eval* . exprs) > > > + "Run Emacs in batch mode, and execute all of the elisp > > > expressions EXPRS." > > > + (apply invoke (%emacs) "--quick" "--batch" > > > + (map > > > + (lambda (expr) > > > + (format #f "--eval=~S" expr)) > > > + exprs))) > > > + > > > (define (emacs-batch-edit-file file expr) > > > "Load FILE in Emacs using batch mode, and execute the elisp > > > code EXPR." > > > (invoke (%emacs) "--quick" "--batch" > > > @@ -64,7 +73,7 @@ > > > (expr `(let ((backup-inhibited t) > > > (generated-autoload-file ,file)) > > > (update-directory-autoloads ,directory)))) > > > - (emacs-batch-eval expr))) > > > + (emacs-batch-eval* '(require 'autoload) expr))) > > > > > > (define* (emacs-byte-compile-directory dir) > > > "Byte compile all files in DIR and its sub-directories." > > > > As I wrote here <https://bugs.gnu.org/39804>;, I think we have > > something > > fundamentally flawed in our Emacs 27 build, which I'd like to have > > addressed at its core. > > Correct me if I'm wrong, but I think we ended up addressing the issue > differently at the time, right? If you confirm that this is no > longer > needed, let's close it! On the top of my head I can't think of any use for multiple --eval lines when you can switch between lexical and dynamic scoping at will. Perhaps in the future we might find one, but if you want to close this bug in the meantime, go ahead. Thanks
Hi Leo, Leo Prikler <leo.prikler@student.tugraz.at> writes: > Hi Maxim, > > Am Montag, den 30.08.2021, 16:16 -0400 schrieb Maxim Cournoyer: >> Hi Leo, >> >> Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: >> >> > Hi Leo, >> > >> > Leo Prikler <leo.prikler@student.tugraz.at> writes: >> > >> > > * guix/build/emacs-utils.scm (emacs-batch-eval*): New variable. >> > > (emacs-generate-autoloads): Redefine in terms of emacs-batch- >> > > eval*. >> > > Require autoload (needed with emacs-next). >> > > --- >> > > guix/build/emacs-utils.scm | 11 ++++++++++- >> > > 1 file changed, 10 insertions(+), 1 deletion(-) >> > > >> > > diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs- >> > > utils.scm >> > > index 885fd0a217..1462f9d0af 100644 >> > > --- a/guix/build/emacs-utils.scm >> > > +++ b/guix/build/emacs-utils.scm >> > > @@ -23,6 +23,7 @@ >> > > #:use-module (guix build utils) >> > > #:export (%emacs >> > > emacs-batch-eval >> > > + emacs-batch-eval* >> > > emacs-batch-edit-file >> > > emacs-batch-disable-compilation >> > > emacs-generate-autoloads >> > > @@ -46,6 +47,14 @@ >> > > (invoke (%emacs) "--quick" "--batch" >> > > (format #f "--eval=~S" expr))) >> > > >> > > +(define (emacs-batch-eval* . exprs) >> > > + "Run Emacs in batch mode, and execute all of the elisp >> > > expressions EXPRS." >> > > + (apply invoke (%emacs) "--quick" "--batch" >> > > + (map >> > > + (lambda (expr) >> > > + (format #f "--eval=~S" expr)) >> > > + exprs))) >> > > + >> > > (define (emacs-batch-edit-file file expr) >> > > "Load FILE in Emacs using batch mode, and execute the elisp >> > > code EXPR." >> > > (invoke (%emacs) "--quick" "--batch" >> > > @@ -64,7 +73,7 @@ >> > > (expr `(let ((backup-inhibited t) >> > > (generated-autoload-file ,file)) >> > > (update-directory-autoloads ,directory)))) >> > > - (emacs-batch-eval expr))) >> > > + (emacs-batch-eval* '(require 'autoload) expr))) >> > > >> > > (define* (emacs-byte-compile-directory dir) >> > > "Byte compile all files in DIR and its sub-directories." >> > >> > As I wrote here <https://bugs.gnu.org/39804>;, I think we have >> > something >> > fundamentally flawed in our Emacs 27 build, which I'd like to have >> > addressed at its core. >> >> Correct me if I'm wrong, but I think we ended up addressing the issue >> differently at the time, right? If you confirm that this is no >> longer >> needed, let's close it! > On the top of my head I can't think of any use for multiple --eval > lines when you can switch between lexical and dynamic scoping at will. > Perhaps in the future we might find one, but if you want to close this > bug in the meantime, go ahead. Yeah, the main value this patch was bringing was fixing an error on Emacs 27 that was caused by going to lexical scope even when using --eval (your fix was to require autoload in (emacs-batch-eval* '(require 'autoload) expr)). The fixed that ended up being pushed was this: --8<---------------cut here---------------start------------->8--- (define* (emacs-batch-eval expr #:key dynamic?) "Run Emacs in batch mode, and execute the Elisp code EXPR. If DYNAMIC? is true, evaluate using dynamic scoping." (invoke (%emacs) "--quick" "--batch" (format #f "--eval=(eval '~a ~:[t~;nil~])" (expr->string expr) dynamic?))) --8<---------------cut here---------------end--------------->8--- Which allows requesting dynamic scope. Closing. Thank you! Maxim
diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm index 885fd0a217..1462f9d0af 100644 --- a/guix/build/emacs-utils.scm +++ b/guix/build/emacs-utils.scm @@ -23,6 +23,7 @@ #:use-module (guix build utils) #:export (%emacs emacs-batch-eval + emacs-batch-eval* emacs-batch-edit-file emacs-batch-disable-compilation emacs-generate-autoloads @@ -46,6 +47,14 @@ (invoke (%emacs) "--quick" "--batch" (format #f "--eval=~S" expr))) +(define (emacs-batch-eval* . exprs) + "Run Emacs in batch mode, and execute all of the elisp expressions EXPRS." + (apply invoke (%emacs) "--quick" "--batch" + (map + (lambda (expr) + (format #f "--eval=~S" expr)) + exprs))) + (define (emacs-batch-edit-file file expr) "Load FILE in Emacs using batch mode, and execute the elisp code EXPR." (invoke (%emacs) "--quick" "--batch" @@ -64,7 +73,7 @@ (expr `(let ((backup-inhibited t) (generated-autoload-file ,file)) (update-directory-autoloads ,directory)))) - (emacs-batch-eval expr))) + (emacs-batch-eval* '(require 'autoload) expr))) (define* (emacs-byte-compile-directory dir) "Byte compile all files in DIR and its sub-directories."