gnustep-dev
[Top][All Lists]
Advanced

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

Re: sync.m


From: Riccardo Mottola
Subject: Re: sync.m
Date: Mon, 01 Mar 2010 23:28:42 +0100
User-agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.9.1.6) Gecko/20100109 SeaMonkey/2.0.1

Hi,

Nicola Pero wrote:

As GCC 2.95.3 was released in March 16, 2001, it may make sense to no longer support it.
Or maybe it does.  I vote for supporting it.
Me obviously too!

Anyway the question really is - what is the oldest GCC that we support if it's not 2.95.3 ?

3.0.4 (released February 20, 2002) ?
Actually I think I find it more useful to support gcc 2.95 than 3.0.4 if any oddity will arise. From a personal experience in porting to non-gnu and non-BSD platforms, gcc 2.95 is a big milestone. THe next one is gcc 3.2, which was the last reasonable gcc compiler (with that I mean that if you can run 3.0, chances are high that 3.2 will be a no brainer). From that point on things get hairier with every release, depending more and more on gnu binary utilities, gnu assembler and with gcc 4 on other libraries. This makes it really a pain to bootstrap the compiler. I never got a reliable gcc > 3.2 on my AIX 4.x boxen at my old workplace and although IRIX was difficult, I do't think I got anything past gcc 3.4 to work. OFten C does work, but C++ does not and usually people like to have one compiler for C, C++ and Obj-C!
Not that we support those platforms, I just used those as examples.

Just mentioning c99 doesn't seem to help that much since IIRC no version of GCC actually implements all of c99 anyway. I actually am not really sure what C99 features,
added after 2.95, we really need.

This is correct, since from my knowledge we only support gcc and more recently clang. There aren't many other obj-c compilers around and AFAIk we don't support them.


We can use -Wdeclaration-after-statement to get a post-2.95 GCC warn you when you locally declare variables without starting a { } block. Really not a problem - it's easy enough to add it to gnustep-base and gnustep-gui.
We can do that, but fixing those is relatively trivial and personally I like to have all declarations on top, it is much more readable. Variadic Macros where an initial hurdle, but now I learned how to cope with them, Easy it is just ugly to #ifdef the code.

These are the two recurrent things which I usually fix.

Then there is instead a nasty compiler bug, which is that forward declarations of protocols is broken, but core avoids that cleanly up to now.

Riccardo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]