Front page | perl.perl5.porters |
Postings from May 2021
From: Nicholas Clark
May 19, 2021 13:30
Message ID: 20210519133025.GW16703@etla.org
On Tue, May 18, 2021 at 09:44:58AM -0600, Karl Williamson wrote:
> On 5/18/21 6:01 AM, Nicholas Clark wrote:
> > What are we trying to achieve:
> Some of this was hashed out 6 months ago:
Thanks. I'd forgotten that thread, even though I participated in it.
I guess it work got overwhelming again midway, before I read this:
I've incorporated those answers from VMS into my list.
I have put the current version at https://github.com/Perl/perl5/wiki/C99
One can clone this as git clone https://github.com/libav/c99-to-c89
I'd be happy if folks edit it directly, if they have useful stuff to add.
Sadly the VMS test system at 188.8.131.52 on which I once had an account
is no longer live, so I can't directly test things on VMS.
Merijn has kindly set me up accounts on HP-UX and AIX machines - an older
AIX version than the GCC compiler farm has.
The GCC compiler farm has Solaris 10 (and 11) with SunCC
(I believe dating from Sun).
All of the attached test cases build cleanly with the vendor compilers on
the AIX, HP-UX and Solaris systems I have access to.
That's *without* needing "C99" enabled.
(and curiously, only the HP-UX compiler spotted one bug that the others all
gcc 4.7 (and earlier) need --std=c99 for the for test.
As noted in the previous message, I *think* that any gcc back to 3.1
(ie 2002 era) is good enough, but it seems that some might need flags.
xlc claims to add "C99" support back in 2002.
I don't know when HP-UX added it, but I see -AC99 referenced in a document
that seems to be from 2004.
The real elephant in the room is MSVC. I'm surprised that no-one has
mentioned it yet.
I know that Microsoft had an epiphany *relatively* recently and decided to
start supporting C99, but
* I don't know when that was
* I don't know which version first supports enough
* I don't know if previous versions support any individual C99 features at all
my understanding is that "before Vista" several APIs that we would like to
use don't exist. Specifically to do with locales and what is needed to
emulate stat (or similar).
Hence, if for those reasons we decide to drop support for XP and earlier,
does doing *that* remove a constraint on minimum MSVC version, such that
*it* is not the blocker on all things post C89?