emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Project out of sources compilation


From: Konstantin Kharlamov
Subject: Re: [PATCH] Project out of sources compilation
Date: Wed, 03 Apr 2024 16:31:30 +0300
User-agent: Evolution 3.52.0

On Wed, 2024-04-03 at 14:45 +0300, Eli Zaretskii wrote:
> > From: Konstantin Kharlamov <Hi-Angel@yandex.ru>
> > Cc: dmitry@gutov.dev, emacs-devel@gnu.org
> > Date: Wed, 03 Apr 2024 13:40:59 +0300
> > 
> > 1: Emacs does not fully support it though, because while object
> > files
> > and configs do end up inside `build`, however `*.elc` files are
> > still
> > scattered all over the repo. But I hope you get the idea.
> 
> The *.elc files are considered part of the source tree (they are in
> the release tarball, and are portable, so no need to rebuild them
> when
> changing some configuration options).  

They are generated during compilation and are not commited into git. 
That makes them build artifacts.  The fact they're distributed in
release tarballs does not make it less true.  Distributing them in
tarballs is not strictly necessary, exactly because they can be
generated by anyone.

Having .elc files in the source tree results in problems when a user
created a dir `build-feature1` for one feature branch, and a dir
`build-feature2` for another; and then `build-feature1` somehow ends up
having "feature2".  Which is because it's using build artifacts that
are outside `build-feature1`.

In fact, I myself has experienced some problems due to that while
researching `61960` bug and then later making a separate build dir for
something else.  I don't remember details, but it has been something
with the fact that elc files are outside build dir, and then for some
reason Emacs hasn't been regenerating them or something like that (Idk
exactly what was up with them, I didn't dig into it).

Thus, Emacs certainly does not fully support "out of tree" builds.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]