GNU bug report logs - #74382
`compile-first` Make rule is no longer using `load-prefer-newer`

Previous Next

Package: emacs;

Reported by: Konstantin Kharlamov <Hi-Angel <at> yandex.ru>

Date: Sat, 16 Nov 2024 15:12:02 UTC

Severity: normal

Tags: notabug

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Konstantin Kharlamov <Hi-Angel <at> yandex.ru>
Cc: acm <at> muc.de, 74382 <at> debbugs.gnu.org
Subject: bug#74382: `compile-first` Make rule is no longer using `load-prefer-newer`
Date: Sat, 16 Nov 2024 22:00:56 +0200
> Cc: acm <at> muc.de, 74382 <at> debbugs.gnu.org
> From: Konstantin Kharlamov <Hi-Angel <at> yandex.ru>
> Date: Sat, 16 Nov 2024 21:43:41 +0300
> 
> > I don't think this is related to what lisp/Makefile does.  When
> > macroexp.el is updated, builds are known to fail until you remove
> > macroexp.elc (or bootstrap).
> 
> Okay, but why you need to remove macroexp.elc

Because macroexp.el contains macros, which might have been already
expanded in the .elc file(s).

> isn't it the build system job to rebuild it when it's changed?

It's impractical, because we have many files with macros.  Tracking
all of those dependencies would mean that changes in any file will
trigger unnecessary recompilation of many other files.  If you don't
mind spending that time waiting for the build, just "make bootstrap"
every time you update from Git, and you will have that.

> I think so, and the
> macroexp.el is among the `COMPILE_FIRST` files in lisp/Makefile.in.

Yes, because it is needed to bootstrap the native-compilation stuff,
and using the .el file makes that extremely slow.

There's no bug here.




This bug report was last modified 217 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.