Bill Allombert on Sun, 28 Jun 2009 14:53:12 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Pari svn on MSVC


On Sun, Jun 28, 2009 at 01:25:39AM +0100, Jason Moxham wrote:
> On Saturday 27 June 2009 15:39:09 Bill Allombert wrote:
> > On Sat, Jun 27, 2009 at 01:07:15AM +0100, Jason Moxham wrote:
> > >> Does that cause a compiler failure ? Even gcc 2.95 handles that.
> > >
> > > yes
> > > eg  jay.c is
> > > ----------
> > > int     main(void)
> > > {
> > > const int n=10;
> > > long a[n];
> > > return 0;}
> > > ------------
> > >
> > > cl jay.c
> > > Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for
> > > 80x86
> > > Copyright (C) Microsoft Corporation.  All rights reserved.
> > >
> > > jay.c
> > > jay.c(4) : error C2057: expected constant expression
> > > jay.c(4) : error C2466: cannot allocate an array of constant size 0
> > > jay.c(4) : error C2133: 'a' : unknown size
> >
> > OK, what is the C standard supported by this compiler ?
> > Can it be switched to C99 mode ?
> >
> > (I do not know whether this code is C89 compliant. It is certainly
> > C99 compliant since C99 allows array size to be computed at run-time)
> >
> > Cheers,
> > Bill.
> 
> MSVC is apparently a C89 for plain C , and a C99 for C++ , so we could pretend 
> that the files are c++ files to compile them under C99 , a bit risky perhaps.
> I expect const int a , is not classed as a compile time constant in C89. MSVC 

OK I fixed that in revision 11794

> does support a few thing not in C89 such as // comments , long long .

PARI is supposed to compile correctly with a C++ compiler. Of course this
opens new possibility of failure.

> Being MSVC , there is nothing we can do about it ;)

Well, you can just use something else ;)

Cheers,
Bill.