On Wed, Aug 19, 2026 at 10:24:57 +0200, Kamila Szewczyk wrote:
> In order to stop myself from reconfiguring often, which is admittedly
> very slow, I add `build-*' to my gitignore and have a handful of
> directories (i.e. `build-b64', `build-ubsan', so on and so forth) for
> different builds.

Similar here, though I use sibling directories rather than children:

    project/src             # main repo
    project/src-related     # a related repo (or worktree)
    project/build           # main build for /src
    project/build-related   # a specific build tree (either variant or for a 
different source tree

> autoconf does cache a handful of things, but the environment could
> change across runs and thus render the cache stale without a clear way
> to invalidate it. The key question to answer is also what such cache
> would be keyed on in the first place.

Building the cache key will indeed be the difficult part. Even for a
single project, using different toolchains or targets will definitely
have different results.

> I think that one promising avenue to speeding up autoconf is
> parallelisation of its conftests and fast-paths engineered for modern
> systems. Another option would be more diligent recording inside
> config.status to then coalesce tests. For example, if we know that
> stdio.h, stdlib.h, and string.h are present, they could be all used at
> once in a unit to create a fast path for probing, with granular checks
> if this fast path fails.

Coalescing tests is also the approach taken by this proposal to CMake:

    https://gitlab.kitware.com/cmake/cmake/-/work_items/27945

I've also been considering async/await for such things so that
independent tests can at least be run concurrently.

--Ben

Reply via email to