Subject: Re: [bug#39804] [PATCH] gnu: add emacs-exwm-next package (i.e. exwm for emacs-next)

From: Maxim Cournoyer <[email-masked]>
Date: Fri, 28 Feb 2020 09:45:06 -0500

Hi Leo,

Leo Prikler <[email-masked]> writes:

> Am Freitag, den 28.02.2020, 09:32 +0100 schrieb Pierre Neidhardt:
>> The `#:emacs` field tells the build system which Emacs package to use
>> to
>> build this package.  There may be something that not compatible
>> between
>> our current build system and emacs-next.
>> 
>> I've CC'ed Maxim and Leo, they might know more than me.
> This issue should be addressed by #39375, which is currently waiting to
> be pushed to master or staging.  I took the liberty to rewrite this
> patch with that one in mind – the build succeeds now, but I'm not sure
> how to run it.  Perhaps I'm missing a few bits.

I'd rather understand why this is so -- there is no reason it should
have changed between Emacs 26 and Emacs 27.

The autoloads.elc file is loaded when doing:

--8<---------------cut here---------------start------------->8---
strace emacs --quick --batch --eval "(progn
 ;(require 'autoload)
 (let ((backup-inhibited t)
       (generated-autoload-file \"/tmp/toto\"))
   (update-directory-autoloads \"/tmp\")))" |& less

--8<---------------cut here---------------end--------------->8---

Noticed that I commented out the (require 'autoload) sexp.

The file is found:

--8<---------------cut here---------------start------------->8---
openat(AT_FDCWD, "/gnu/store/zpmsyn471y4hpgsbz652h4szyskzc2bm-profile/share/emacs/27.0.50/lisp/emacs-lisp/autoload.elc", O_RDONLY|O_CLOEXEC) = 5
--8<---------------cut here---------------end--------------->8---

And the autoload.elc contains:

--8<---------------cut here---------------start------------->8---
(fn &rest DIRS)
(defalias 'update-directory-autoloads #[128 "\306\307 \211\203\211@\310\311\"\204\211B\262A\266\202\202\210\312\313\314\"\315Q\262\316\317\320\321\322\323\324\325!\326\"\327\330%\"\"\306\211\211\211\211\331\332!\203K\333\334!\202L	\335	!\205[\336	!\3278\262r\337 q\210\212\340\341\n!\320\341	\"\"\262eb\210\342\306\314#\2034\343 \3448\211:\203\321\211@;\203\321\345\346\224!\210\3478\262\314\fD\235\203\235\262\211\211\203\315\211@\336!\3278\262\211\203\305\350\"\204\305B\262\340\f\"\262\210A\266\202\202\236\210\202\"\211;\203\"\335!\203\343\211\235\203\356\314\262\345\346\224!\210\202\"\350\3478\211\314\fD\235\203\376\202\377\211\262\336!\3278\262\"\203\"\314\262\345\346\224!\210\351p\n#\203\"\211B\262\211B\262\340	\"\262\266\202p)\206:\352\353\354\355\341	!P!\346	G\306\356%\346\306	\211\203\227\211@T\211\262\306\247\203f@Y\203l\357#\210\266\351\306\n#\211\262\203\215\211B\262\350\"\203\220\262\202\220\314\262\nA\266\202\202M\210\360!\210\203\306\361\362\"\262db\210\363\364\306\314#\210\365p\306\211	\203\277\202\300\f%\2109c\210\266\204\323\366\306!\210\202\326\367 \210\370 +\207" [autoload-modified-buffers generated-autoload-file buffer-file-name generate-autoload-section-header autoload--non-timestamp autoload-timestamps nil get-load-suffixes string-match "\\.\\(elc\\|so\\|dll\\)" "^[^=.].*" regexp-opt t "\\'" apply nconc mapcar make-byte-code 257 "\301\302!\303\300#\207" vconcat vector [directory-files expand-file-name t] 5 "\n\n(fn DIR)" called-interactively-p interactive read-file-name "Write autoload definitions to file: " file-exists-p file-attributes autoload-find-generated-file delete file-relative-name search-forward autoload-read-section-header 3 autoload-remove-section 0 4 time-less-p autoload-generate-file-autoloads (0 0 0 0) make-progress-reporter byte-compile-info-string "Scraping files for " 10 progress-reporter-do-update progress-reporter-done sort string< search-backward "\f" autoload-insert-section-header set-buffer-modified-p autoload--save-buffer autoload-save-buffers generate-autoload-section-trailer] 21 (#$ . 25075) "DUpdate autoloads from directory: "])
#@191 Update loaddefs.el autoloads in batch mode.
Calls `update-directory-autoloads' on the command line arguments.
Definitions are written to `generated-autoload-file' (which
should be non-nil).
--8<---------------cut here---------------end--------------->8---

Perhaps the byte compiled version has a bug that causes it to fail with

--8<---------------cut here---------------start------------->8---
Wrong type argument: stringp, nil
--8<---------------cut here---------------end--------------->8---

I'd rather this be understood (and fixed at its root) before continuing.

Maxim