Hi, On 2023-06-12 11:54:42 -0500, Tristan Partin wrote: > On Fri Jun 9, 2023 at 1:36 PM CDT, Andres Freund wrote: > > The biggest change to make them more usable would be to properly reconfigure > > when the contents of machine file change. IIRC configure is rerun, but the > > changes aren't taken into account. > > I could not reproduce this. Perhaps you were testing with an older Meson > where that was the case > > # meson.build > project('mytest') > > myprog = find_program('myprog') > message(myprog.full_path()) > > test('dummy', find_program('echo'), args: [myprog.full_path()]) > > # file.ini > [binaries] > myprog = '/usr/bin/python3' > > # CLI > meson setup build > meson test -C build > sed -i 's/python3/python2/' file.ini > meson test -C build
It's possible that it doesn't happen in all contexts. I just reproduced the problem I had, changing [binaries] llvm-config = '/usr/bin/llvm-config-13' to [binaries] llvm-config = '/usr/bin/llvm-config-14' does not change which version is used in an existing build tree, but does change what's used in a new build tree. Same with e.g. changing the C compiler version in a machine file. That also only takes effect in a new tree. This is with meson HEAD, updated earlier today. > > In the end, I also just don't see a meaningful benefit in forcing the use of > > machine files. > > I think it is best to use patterns tools want you to use. Sometimes. I'd perhaps have a different view if we weren't migrating from autoconf, where overwriting binaries was trivially possible... Greetings, Andres Freund