C99 IDE for windows

R

Ron Ford

I'm looking for a freeware c99 compiler for windows. I had intended to use
MS's Visual C++ Express and use its C capability. In the past with my MS
products, I've simply needed to make .c the filetype to invoke the C
compiler. Here's a link

http://www.microsoft.com/express/download/#webInstall

The download is 2.6 megs, which is near a reasonable size for a compiler,
but then setup.exe wants to download 87 megs of dot net framework hoggs
that I don't want on my machine.

In the past I've gone with Bloodshed, but I find myself unable to get the
shell to stay open so I can see some output.

The development environment for gcc is austere.

Anyone have another suggestion?
 
U

user923005

I'm looking for a freeware c99 compiler for windows.  I had intended to use
MS's Visual C++ Express and use its C capability.  In the past with my MS
products, I've simply needed to make .c the filetype to invoke the C
compiler.  Here's a link

http://www.microsoft.com/express/download/#webInstall

The download is 2.6 megs, which is near a reasonable size for a compiler,
but then setup.exe wants to download 87 megs of dot net framework hoggs
that I don't want on my machine.

In the past I've gone with Bloodshed, but I find myself unable to get the
shell to stay open so I can see some output.

The development environment for gcc is austere.

Anyone have another suggestion?

http://www.thefreecountry.com/compilers/cpp.shtml
http://www.compilers.net/Dir/Free/Compilers/CCpp.htm
http://www.freeprogrammingresources.com/cppcomp.html
http://www.freebyte.com/programming/cpp/
 
R

Ron Ford


Thanks Dann, there seems to be many to choose from. I gave Cmega a try,
http://www.micro-ide.com/custom1.html ,but I don't think it's right for me,
until I know more about embedded systems. Their hello world program
compiles but does not build:

http://i33.tinypic.com/mra7ic.jpg

I'll give it another a try when I get more time.
 
J

jacob navia

Ron said:
I'm looking for a freeware c99 compiler for windows. I had intended to use
MS's Visual C++ Express and use its C capability. In the past with my MS
products, I've simply needed to make .c the filetype to invoke the C
compiler. Here's a link

http://www.microsoft.com/express/download/#webInstall

The download is 2.6 megs, which is near a reasonable size for a compiler,
but then setup.exe wants to download 87 megs of dot net framework hoggs
that I don't want on my machine.

In the past I've gone with Bloodshed, but I find myself unable to get the
shell to stay open so I can see some output.

The development environment for gcc is austere.

Anyone have another suggestion?

Yes, use my compiler system lcc-win

The URL is below in my .sig.

Download 6MB.

o IDE
o C compiler (almost all C99)
o Extras like operator overloading and generic functions
o 105 digits precision floating point.
o bignums
o 128 bit integers
o Libraries: zip, perl regexp, matrix operations, and many others
 
J

Joachim Schmitz

Ron said:
I'm looking for a freeware c99 compiler for windows. I had intended
to use MS's Visual C++ Express and use its C capability. In the past

It is not (and doesn't claim to be) a C99 compiler. It does (claim to)
comply to C89, as far as I know.
with my MS products, I've simply needed to make .c the filetype to
invoke the C compiler. Here's a link

some additional switches are needed to make it standard compliant.
http://www.microsoft.com/express/download/#webInstall

The download is 2.6 megs, which is near a reasonable size for a
compiler, but then setup.exe wants to download 87 megs of dot net
framework hoggs that I don't want on my machine.

In the past I've gone with Bloodshed, but I find myself unable to get
the shell to stay open so I can see some output.

The development environment for gcc is austere.

gcc is not C99 compliant either.
Anyone have another suggestion?

Bye, Jojo
 
C

CBFalconer

jacob said:
Yes, use my compiler system lcc-win

The URL is below in my .sig.

Download 6MB.

If you (Ron Ford) do that be VERY cautious about portability. It
appears that lcc-win does not detect various forbidden constructs
under C99, besides omitting several required things. It will
probably improve, but the author tends to resist suggestions. I
believe it also lacks version numbers, making it hard to keep track
of revisions.
 
F

Flash Gordon

Ron Ford wrote, On 19/07/08 02:38:
Thanks Dann, there seems to be many to choose from.

You should be aware that most compilers do not fully support C99. Some
important ones (e.g. MSVC) only support C90 and have made no noticable
progress towards C99. You might find the following useful:
http://clc-wiki.net/wiki/C_resources
I gave Cmega a try,
http://www.micro-ide.com/custom1.html ,but I don't think it's right for me,
until I know more about embedded systems. Their hello world program
compiles but does not build:

http://i33.tinypic.com/mra7ic.jpg

I'll give it another a try when I get more time.

For problems with a specific set of tools you will have to ask in
whatever groups/mailing-list/forums support it.
 
R

Ron Ford

Ron Ford wrote, On 19/07/08 02:38:

You should be aware that most compilers do not fully support C99. Some
important ones (e.g. MSVC) only support C90 and have made no noticable
progress towards C99. You might find the following useful:
http://clc-wiki.net/wiki/C_resources

I thought I read Jack Klein claiming that MS something Express was viable
as a C99 option. Oh well. I tried to fill the gap by installing Sun
Studio 12, but that doesn't work on OpenSolaris.:-(

The above link is helpful. From Dann's link yesterday, I found Visual
MingW, which is an IDE for windows. I think that information might be
newer than the information on C's wiki page.

For problems with a specific set of tools you will have to ask in
whatever groups/mailing-list/forums support it.

Thanks for saying that. It made me join their mailing list. I find
mailing lists to be hugely helpful for things like linmodems. One thing I
didn't get was the ability to debug from a pulldown menu. This screenshot
shows the attempt:

http://i34.tinypic.com/2q9x6jd.jpg

Also, the help menu is completely unpopulated, probably indicating that it
is a new project. If I can't get a debugging capability from this suite, I
will still be in the market for a new IDE.
 
R

Ron Ford

Ron Ford wrote:

gcc is not C99 compliant either.

How close is it?

Gfortran, which is gcc's compiler for fortran, is ahead of a lot of other
implementors as far as getting compliance to the next standard. So it is
that I can use ISO_C_BINDING with gfortran--new with F2003--but not my
other windows compiler with a sexy IDE.

I wonder how closely the situation for compliance with F2003 compares to
C99. There seems to be one issue that has everyone stumped: parameterized
derived types. Of course, C won't have PDT's, but is there a single issue
that seems to have implementors pulling their hair out?
 
C

Chris Torek

I wonder how closely the situation for compliance with F2003 compares to
C99. There seems to be one issue that has everyone stumped: parameterized
derived types. Of course, C won't have PDT's, but is there a single issue
that seems to have implementors pulling their hair out?

It seems to me that the answer to this question is "no". Different
"C99--" implementations (if I may call them that) are have different
parts that are "missing" or "broken" and there seems to be little if
any commonality.

GCC's set of missing/broken items is getting smaller, and for a
long time, the worst of them were due to C99 making slightly
*different* requirements from those for GNUC. (GNUC is the language
that GCC implemented; it was a lot like C99, only different. For
instance, the rules for VLAs and flexible array members were
different from those in C99.) That meant that changing the compiler
to do things the "C99 way" would break any code that depended on
GCC doing things the "GNUC way".

Other compilers had not implemented anything resembling those parts
of C99, and thus did not have "self-backwards-compatibility" problems
in the way.
 
F

Flash Gordon

Ron Ford wrote, On 20/07/08 04:10:
On Sat, 19 Jul 2008 14:19:12 +0100, Flash Gordon posted:


I thought I read Jack Klein claiming that MS something Express was viable
as a C99 option.

It has a C89 (the old standard) option but not, as far as I am aware, a
C99 option.
Oh well. I tried to fill the gap by installing Sun
Studio 12, but that doesn't work on OpenSolaris.:-(

The above link is helpful. From Dann's link yesterday, I found Visual
MingW, which is an IDE for windows. I think that information might be
newer than the information on C's wiki page.

<snip>

Please create an account and update anything that needs updating. It's a
Wiki and will only be as accurate and up to date as the last edit.
 
B

Ben Bacarisse

Ron Ford said:
How close is it?

Closer than even their own status pages suggests:

http://gcc.gnu.org/gcc-4.3/c99status.html

That reports wide character support as "missing" but as far as I can
tell, the only thing missing is format checking for the w* family
(i.e. you don't get a compile-time warning for wprintf(L"%d"); but you
do for printf("%d);).

VLAs are reported as broken, but I can't find an example of how. All
the obscure cases I have tried work -- no doubt I am not being devious
enough. Can anyone else find one?
 
W

Willem

Ben Bacarisse wrote:
) VLAs are reported as broken, but I can't find an example of how. All
) the obscure cases I have tried work -- no doubt I am not being devious
) enough. Can anyone else find one?

Make a loop where you define a VLA at the beginning, of differing size.
Also, in the same loop, alloca() some memory, (and store the pointer in
an array.)

Of course, mixing VLA's and alloca() calls is nasty.
Is alloca() even part of C99 ?


SaSW, Willem
--
Disclaimer: I am in no way responsible for any of the statements
made in the above text. For all I know I might be
drugged or something..
No I'm not paranoid. You all think I'm paranoid, don't you !
#EOT
 
F

Flash Gordon

Willem wrote, On 20/07/08 10:30:
Ben Bacarisse wrote:
) VLAs are reported as broken, but I can't find an example of how. All
) the obscure cases I have tried work -- no doubt I am not being devious
) enough. Can anyone else find one?

Make a loop where you define a VLA at the beginning, of differing size.
Also, in the same loop, alloca() some memory, (and store the pointer in
an array.)

Of course, mixing VLA's and alloca() calls is nasty.
Is alloca() even part of C99 ?

No, alloca() is not part of any C standard, so using it does not really
prove that there is a problem.
 
B

Ben Bacarisse

Willem said:
Ben Bacarisse wrote:
) VLAs are reported as broken, but I can't find an example of how. All
) the obscure cases I have tried work -- no doubt I am not being devious
) enough. Can anyone else find one?

Make a loop where you define a VLA at the beginning, of differing size.
Also, in the same loop, alloca() some memory, (and store the pointer in
an array.)

Once a program uses alloca its behaviour is not governed by the C
standard alone. I could break VLAs with all sorts of stack-whacking
functions!
Of course, mixing VLA's and alloca() calls is nasty.
Is alloca() even part of C99 ?

No.
 
H

Harald van Dijk

Closer than even their own status pages suggests:

http://gcc.gnu.org/gcc-4.3/c99status.html

That reports wide character support as "missing" but as far as I can
tell, the only thing missing is format checking for the w* family

#if __STDC_ISO_10646__
#define WE_HAVE_UNICODE 1
#else
#define WE_DO_NOT_HAVE_UNICODE 1
#endif

#include <wchar.h>

#if __STDC_ISO_10646__
#define WE_HAVE_UNICODE 1
#else
#define WE_DO_NOT_HAVE_UNICODE 1
#endif

#if WE_HAVE_UNICODE && WE_DO_NOT_HAVE_UNICODE
#error Your compiler is broken.
#endif

int main() {}

I cannot get this to compile with GCC. Can you?

And yes, this matters, because you may very well want to do:

#if __STDC_ISO_10646__
#include <wchar.h>
#endif

which just doesn't work right now.
 
B

Ben Bacarisse

Harald van Dijk said:
#if __STDC_ISO_10646__
#define WE_HAVE_UNICODE 1
#else
#define WE_DO_NOT_HAVE_UNICODE 1
#endif

#include <wchar.h>

#if __STDC_ISO_10646__
#define WE_HAVE_UNICODE 1
#else
#define WE_DO_NOT_HAVE_UNICODE 1
#endif

#if WE_HAVE_UNICODE && WE_DO_NOT_HAVE_UNICODE
#error Your compiler is broken.
#endif

int main() {}

I cannot get this to compile with GCC. Can you?

Well... you /can/ do this:

gcc -std=c99 -pedantic -include features.h

As far as I can see that does not break any conforming programs and
does make gcc closer to C99. It certainly then compiler the above
correctly.
And yes, this matters, because you may very well want to do:

#if __STDC_ISO_10646__
#include <wchar.h>
#endif

Agreed. It is a problem -- the above is the academic answer (and may
well break other areas of conformance). The macro should be defined
by -std=c99 alone.
 
L

lawrence.jones

Ron Ford said:
I wonder how closely the situation for compliance with F2003 compares to
C99. There seems to be one issue that has everyone stumped: parameterized
derived types. Of course, C won't have PDT's, but is there a single issue
that seems to have implementors pulling their hair out?

No, all of the major new features in C99 had already been implemented at
least once before the standard was approved. C99's problems are many:
lack of competition in the C compiler marketplace, lack of consumer
demand for full compliance, lack of resources (they're all busy trying
to implement C++), and incompatibility with existing extensions, just to
name a few big ones.
 
R

Ron Ford

#if __STDC_ISO_10646__
#define WE_HAVE_UNICODE 1
#else
#define WE_DO_NOT_HAVE_UNICODE 1
#endif

#include <wchar.h>

#if __STDC_ISO_10646__
#define WE_HAVE_UNICODE 1
#else
#define WE_DO_NOT_HAVE_UNICODE 1
#endif

#if WE_HAVE_UNICODE && WE_DO_NOT_HAVE_UNICODE
#error Your compiler is broken.
#endif

int main() {}

I cannot get this to compile with GCC. Can you?

I just fired this up in my new mingw IDE and got it to compile. I'm less
than surprised that it did, as it is my understanding that this is
equivalent to a hello world program, less the hello world:

http://i33.tinypic.com/wbxl54.jpg
And yes, this matters, because you may very well want to do:

#if __STDC_ISO_10646__
#include <wchar.h>
#endif

which just doesn't work right now.

Don't know about this.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,954
Messages
2,570,116
Members
46,704
Latest member
BernadineF

Latest Threads

Top