On 2023-12-06 We 01:18, Peter Eisentraut wrote:
On 04.12.23 21:11, Andrew Dunstan wrote:
I just had a look at shifting bowerbird to use meson, and it got
stymied at the c99 test, which apparently doesn't compile with
anything less than VS2019.
If that is the case, then wouldn't that invalidate the documented
claim that you can build with VS2015 or newer?
Indeed it would.
Here's what the Microsoft site says at
<https://learn.microsoft.com/en-us/cpp/build/reference/std-specify-language-standard-version?view=msvc-170>:
You can invoke the Microsoft C compiler by using the /TC or /Tc
compiler option. It's used by default for code that has a .c file
extension, unless overridden by a /TP or /Tp option. The default C
compiler (that is, the compiler when /std:c11 or /std:c17 isn't
specified) implements ANSI C89, but includes several Microsoft
extensions, some of which are part of ISO C99. Some Microsoft
extensions to C89 can be disabled by using the /Za compiler option,
but others remain in effect. It isn't possible to specify strict C89
conformance. The compiler doesn't implement several required features
of C99, so it isn't possible to specify C99 conformance, either.
But the VS2019 compiler implements enough of C99 to pass our meson test,
unlike VS2017. Maybe the test is too strict. After all, we know we can
in fact build with the earlier versions.
cheers
andrew
--
Andrew Dunstan
EDB: https://www.enterprisedb.com