commit 7c3440953ce0d2ac3d834eec5121c0245249dd55
parent c7a013839dca08536e00ec91aaef19ca48568c25
Author: KΓ©vin Le Gouguec <kevin.legouguec@gmail.com>
Date: Sat, 18 Jan 2025 12:51:25 +0100
Bow out of native-compilation
Write an essay about it.
Diffstat:
1 file changed, 23 insertions(+), 0 deletions(-)
diff --git a/.local/bin/emacs-build b/.local/bin/emacs-build
@@ -10,6 +10,29 @@ make="make -j$(nproc --all)"
configure_flags=(
--prefix=${HOME}/apps/.emacs.$(date +%F)
--with-cairo
+ # Disable native compilation. trunk is my daily driver, and I
+ # update it regularly, so eln-cache grows a new subdir with every
+ # update.
+ #
+ # I have tried it out unwittingly because as distros start
+ # enabling it, libgccjit becomes part of Emacs build dependencies;
+ # hence package managers install libgccjit when I ask for these
+ # build dependencies, and 'configure' defaults to enabling native
+ # compilation if libgccjit is available.
+ #
+ # I am happy to report that on this workstation, native-comp seems
+ # to Just Workβ’: I remember seeing a grand total of one (1)
+ # compilation-warning popup over the couple of months I have been
+ # using it. So congrats to the devs for a smooth UX π
+ #
+ # Vibes-wise, I have not noticed performance improvements though.
+ # The situations where Emacs feels "slow" to me come from the
+ # stalls from synchronous jobs that make the UI completely
+ # unresponsive (e.g. Gnus IMAP refresh, fontconfig matching,
+ # project-wide regexp search).
+ #
+ # So I bow out of native-comp, to avoid the eln-cache spill.
+ --with-native-compilation=no
--with-sqlite3
--with-xinput2
)