From: | Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, David Steele <david(at)pgmasters(dot)net>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: C99 compliance for src/port/snprintf.c |
Date: | 2018-08-16 00:24:47 |
Message-ID: | CAEepm=0cJ5RqJAprEmfTm+2Fz4WQNS8acT=41S3dBLThRJP32A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-www |
On Thu, Aug 16, 2018 at 11:06 AM, Andres Freund <andres(at)anarazel(dot)de> wrote:
> On 2018-08-16 10:54:01 +1200, Thomas Munro wrote:
>> Really? I am not an MSVC user but I had the impression that their C
>> mode (/TC or files named .c) was stuck on C89/C90 as a matter of
>> policy, as Herb Sutter explained here (though maybe the situation has
>> changed since then):
>
> They revised their position gradually, starting soon after. They claim
> full C99 "language" (vs library, which is also pretty complete)
> compliance now. I've not yet bothered to fully figure out which version
> supports what however. Nor am I really sure about the whole flag thing,
> it appears there's a gui element to choose, which we might need to mirror on
> the xml level.
Hah, I see. Thanks apparently due to FFmpeg for helping them change
their minds. That seems like a bit of a catch-22 for projects that
care about portability. (Maybe if we start writing C11 they'll change
the compiler to keep up? Actually I already did that once, with an
anonymous union that turned the build farm slightly red...)
https://stackoverflow.com/questions/27826409/what-is-the-official-status-of-c99-support-in-vs2013
> ...
> which I think is what we roughly would want. So it looks like msvc 2013
> might be the relevant requirement.
FWIW cfbot is using Visual Studio 2010 right now. Appveyor provides
2008, 2010, 2012, 2013 (AKA 12.0), 2015, 2017, and to test with a
different toolchain you can take the example patch from
https://wiki.postgresql.org/wiki/Continuous_Integration and add a line
like this to the end of the install section (worked for me; for 2015+
you probably also need to request a different image):
- 'call "C:\Program Files (x86)\Microsoft Visual Studio
12.0\VC\vcvarsall.bat" x86_amd64'
I'll make that change to cfbot if we decree that it is the new
baseline for PostgreSQL on Windows. Or I could do it sooner if anyone
wants to be able to post test C99 patches in the Commitfest before we
decide.
--
Thomas Munro
http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2018-08-16 00:27:02 | Re: Improve behavior of concurrent TRUNCATE |
Previous Message | Tom Lane | 2018-08-16 00:15:58 | Re: C99 compliance for src/port/snprintf.c |
From | Date | Subject | |
---|---|---|---|
Next Message | Nico Williams | 2018-08-16 02:57:46 | Re: C99 compliance for src/port/snprintf.c |
Previous Message | Tom Lane | 2018-08-16 00:15:58 | Re: C99 compliance for src/port/snprintf.c |