FS#74433 - [emacs-nativecomp] Needs 'make bootstrap' to make NATIVE_FULL_AOT=1 effective

Attached to Project: Arch Linux
Opened by Thomas Eberhardt (ed209) - Sunday, 10 April 2022, 11:56 GMT
Last edited by freswa (frederik) - Wednesday, 20 April 2022, 17:11 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jürgen Hötzel (juergen)
freswa (frederik)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Since the emacs .tar.xz distribution file contains all the byte-compiled .elc files
"make NATIVE_FULL_AOT=1" doesn't have the intended effect of pre-compiling
all .el files natively.

You need to do a full bootstrap, and since zlib is always available (at a minimum,
cairo sucks it in) "--without-compress-install" is also not needed.

See attached PKGBUILD diff.
This task depends upon

Closed by  freswa (frederik)
Wednesday, 20 April 2022, 17:11 GMT
Reason for closing:  Implemented
Additional comments about closing:  emacs-28.1-4 in [testing]
Comment by freswa (frederik) - Sunday, 10 April 2022, 16:36 GMT
I do see that the bootstrap option is a good idea especially for better reproducibility.
Though, why should we remove `--without-compress-install`? I do agree with the arguments of the last thread, that compression should be done on the filesystem level. These files are usually frequently read and performance depends on the system. So setting a global standard seems inconvinient to me.
Comment by Thomas Eberhardt (ed209) - Sunday, 10 April 2022, 18:04 GMT
Shouldn't "--without-compress-install" than also be set for the non-nativecomp emacs package?

When you do build with "make NATIVE_FULL_AOT=1 bootstrap" there is an .eln & .elc file built for every
.el file, so I think there aren't ever going to be accessed by emacs, and are there just for reference,
which is probably the reason there are by default installed as compressed files.

I don't what to open a can of worms :-), but if one goes down the road that compression should be done
by the filesystem, shouldn't than all man-pages and info files and other compressed stuff under
/usr/share be installed uncompressed by all packages?

Arggh... what have I done :-) Just forget the stuff about "--without-compress-install"...

Comment by freswa (frederik) - Sunday, 10 April 2022, 19:22 GMT
> shouldn't than all man-pages and info files and other compressed stuff under /usr/share be installed uncompressed by all packages?

Even by people who RTFM, these files are accessed once to be loaded into memory. So the access times don't really matter opposed to code that needs to be loaded at runtime.

> so I think there aren't ever going to be accessed by emacs, and are there just for reference

I have to investigate that. A link to documentation regarding these files would be helpful.
If it's true, compression is a no-brainer for sure :)
Comment by Thomas Eberhardt (ed209) - Sunday, 10 April 2022, 20:38 GMT
I just looked and found this:

$ info elisp "how programs do loading"

.elc < .eln > .el

Loading...