On 2025-Nov-28, Peter Eisentraut wrote:
> Here is another patch set. I have made some tweaks to address the issue you
> raise, and I took some code and inspiration from Thomas Munro's patch. The
> solution I chose is to create a temporary subdirectory in the build
> directory, and create the test files in there. That way the trap can just
> blow away the directory, as before.
I tried with all patches applied, and it seems to work okay -- the
header compiles are all cached after the first pass, according to
ccache --show-stats.
> Another approach I had in mind for some time is to just write out a makefile
> with the test compile commands, and run that with make -j. Demo patch
> attached. (I'm not seriously proposing this. For one thing, we probably
> wouldn't want to introduce a dependency on make. But you could probably
> write an equivalent ninja.build file.)
>
> But this doesn't seem to buy very much. The overhead of the shell script to
> write out the test files appears to become significant compared the the
> actual compile commands.
Really? I tried editing the make line to have -j8 (your patch doesn't
have a -j switch at all there) and it runs in 4s instead of 12s on my
laptop, which I would call a significant win.
--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
#error "Operator lives in the wrong universe"
("Use of cookies in real-time system development", M. Gleixner, M. Mc Guire)