diff mbox series

[bug#39375] gnu: emacs-utils: Port to emacs-next.

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

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job

Commit Message

Leo Prikler Jan. 31, 2020, 8:02 p.m. UTC
* 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(-)

Comments

Pierre Neidhardt Feb. 27, 2020, 10:38 a.m. UTC | #1
Looks good to me.  Anything blocking this?
Leo Prikler Feb. 27, 2020, 10:54 a.m. UTC | #2
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.
Pierre Neidhardt Feb. 27, 2020, 1:20 p.m. UTC | #3
So push to staging?
Leo Prikler Feb. 28, 2020, 9:55 a.m. UTC | #4
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
Pierre Neidhardt Feb. 28, 2020, 10:05 a.m. UTC | #5
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.
Maxim Cournoyer Feb. 28, 2020, 2:50 p.m. UTC | #6
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 Feb. 28, 2020, 3:26 p.m. UTC | #7
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
Maxim Cournoyer Aug. 30, 2021, 8:16 p.m. UTC | #8
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
Leo Prikler Aug. 30, 2021, 9:33 p.m. UTC | #9
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
Maxim Cournoyer Aug. 31, 2021, 2:44 a.m. UTC | #10
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 mbox series

Patch

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."