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

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 30 Aug 2021 16:16:38 -0400

Hi Leo,

Maxim Cournoyer <[email-masked]> writes:

> Hi Leo,
>
> Leo Prikler <[email-masked]> 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