Hello Tom,

They should be fully independent anyway, so the order should
not matter?

On what grounds do you claim that's true anywhere, let alone
everywhere?

I mean that the intersection of Postgres realm, a database written in C, and LLVM realm, a compiler written in C++, should not interfere much one with the other, bar the jit compilation stuff which mixes both, so having one set of realm-specific includes before/after the other *should* not matter.

Obviously the Min macro is a counter example of that, but that is indeed the problem to solve, and it is really accidental. It would be very unlucky if there was an issue the other way around. But maybe not.

Anyway, I'm just trying to suggest a minimum fuss solution. One point of "seawasp" and "jellyfish" is to have early warning of compilation issues with future compilers, and it is serving this purpose beautifully. Another point is to detect compiler bugs early when compiling a significant project, and I have reported issues about both clang & gcc in the past, so it works there too.

If reordering includes is not an option, too bad. Then "#undef Min" which I find disputable, allthough I've done much worse... it might or might not work depending on what is done afterwards. Or rename the macro, as I suggested first, but there are many instances. Or convince LLVM people that they should change their stuff. Or document that pg jit will cannot use the latest LLVM, as a feature. Or find another solution:-)

--
Fabien.


Reply via email to