GNU bug report logs -
#59692
29.0.60; Reduce installation size by disabling byte-compilation for some lisp files that won't benefit
Previous Next
Reported by: daanturo <daanturo <at> gmail.com>
Date: Tue, 29 Nov 2022 20:09:01 UTC
Severity: wishlist
Tags: wontfix
Found in version 29.0.60
Done: Stefan Kangas <stefankangas <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#59692: 29.0.60; Reduce installation size by disabling byte-compilation for some lisp files that won't benefit
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 59692 <at> debbugs.gnu.org.
--
59692: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59692
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes:
> FWIW, I consider this to be a waste of our resources and a long-term
> maintenance burden that I cannot justify, even if I accept your conclusions
> (and I'm not at all convinced that they are completely correct, especially
> since you didn't show any measurements of code speed with and without
> byte-compilation). 50 MiB of disk space is too small to justify keeping
> track of all the files, making decisions which will and will not be
> compiled, etc. Disk space is cheap these days.
>
> So I don't think we should do this.
I agree, so I'm closing this as wontfix.
[Message part 3 (message/rfc822, inline)]
[Message part 4 (text/plain, inline)]
Recently, after each rebuild, I noticed that Emacs' total installation
size has become bigger overtime. That's understandably unavoidable but
there's room for improvement. By analyzing disk usage I discovered
that:
"lisp/leim/"'s compiled elisp files are taking the most significant disk
storage.
By inspecting some of those, I don't think we are able to gain any
practical benefit by compiling them, they don't contain (~)any
function/macro definitions at all.
So I try to disable byte-compilation (by either dir-local vars or
file-local vars) in:
- lisp/leim/ : I disable for the whole directory
And some more .el(s) that I don't find so essential to compile:
- lisp/play/ : not so serious or critical to workflows
- lisp/cedet/{ede,semantic,srecode}/ : we now have LSP/eglot!
- lisp/cedet/{ede.el,semantic.el} : same as above, also a big file by
itself
(I wished pulse.el, mode-local.el, data-debug.el were moved out of this
lisp/cedet/, then putting a single .dir-local.el there would be the
simplest)
- lisp/obsolete/ : already obsolete anyway, but some packages may still
depend on them so no-native-compile only
Then build Emacs again.
The final size of my Emacs installation, compared to before applying
those no-compile local variables:
298.79 MiB -> 253.09 MiB
That's 45.7 MiB disk saved. About 15.3% of total shaved!
Please consider at least "lisp/leim/"'s gigantic files such as
"ZIRANMA.el", "ARRAY30.el", "ja-dic.el" ,etc. as I find those the most
disk-expensive when compiled, yet questionable benefit and waste of time
spending to build.
In GNU Emacs 29.0.60 (build 2, x86_64-pc-linux-gnu, GTK+ Version
3.24.35, cairo version 1.17.6) of 2022-11-30 built on dan-laptop
Repository revision: ec7908204e3d1d415a17813a1fac1a8de334d3b1
Repository branch: makepkg
System Description: Arch Linux
Configured using:
'configure --sysconfdir=/etc --prefix=/usr --libexecdir=/usr/lib
--localstatedir=/var
'--program-transform-name='\''s/\(ctags\)/\1.emacs/'\''' --with-json
--with-libsystemd --with-mailutils --with-modules
--with-native-compilation --with-pgtk --without-xaw3d --with-sound=alsa
--with-tree-sitter --with-xinput2 --with-xwidgets
--with-native-compilation=aot --without-compress-install
'CFLAGS=-march=native -O2 -pipe -fno-plt -fexceptions
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
-fstack-clash-protection -fcf-protection'
LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY
PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM XWIDGETS GTK3 ZLIB
--
Daanturo.
[0001-No-compile-for-some-lisp-directories-and-files.patch (text/x-patch, attachment)]
This bug report was last modified 2 years and 162 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.