gnustep-dev
[Top][All Lists]
Advanced

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

Re: [Gnustep-cvs] r32376 - in /libs/base/trunk/Source: GNUmakefile GSBlo


From: Richard Frith-Macdonald
Subject: Re: [Gnustep-cvs] r32376 - in /libs/base/trunk/Source: GNUmakefile GSBlocks.m
Date: Sun, 27 Feb 2011 17:39:44 +0000

On 27 Feb 2011, at 08:35, Fred Kiefer wrote:

> 
> -------- Original-Nachricht --------
>> Datum: Sun, 27 Feb 2011 01:20:58 +0000
>> Von: David Chisnall <address@hidden>
>> An: Fred Kiefer <address@hidden>
>> CC: GNUstep Developer <address@hidden>
>> Betreff: Re: [Gnustep-cvs] r32376 - in /libs/base/trunk/Source: GNUmakefile  
>> GSBlocks.m
> 
>> On 26 Feb 2011, at 20:40, Fred Kiefer wrote:
>> 
>>> Now you did the fixes that I listed as the easy ones. You still didn't
>>> add a proper heading for the file. Nor did you write a solution for
>>> stupid linkers. Your idea of using #if __has_feature(blocks) should
>>> work, but somebody has to put it in there.
>> 
>> Ah, I see what you mean.  The issue is not the compiler having blocks
>> support, it's the blocks runtime existing.  That shouldn't be a problem,
>> because we provide a blocks runtime as part of the ObjectiveC2 framework, so
>> there shouldn't be any cases when those functions don't exist - they will
>> either be provided by libobjc2, or by -base.

That's not really the case ... since the ObjectiveC2 framework is only built 
for older compilers.  I guess this file needs to implement the blocks stuff 
itsself when required.

> Great, I did not know that. Sorry for this mail than.

The point about the file header still remains.

There was also an issue of other coding standards ... but I did a quick edit to 
make the indentation/whitespace usage more readable.

But ... another issue is breaking things ... at a bare minimum we should try 
not to have commits stop the libraries from compiling or break existing code.  
And by that I mean that the major platforms should not be broken.

That means primarily that changes should compile and not break the testsuite 
when tested with a mature version of gcc and the gnu runtime on a gnu/linux 
platform.

It is NOT sufficient to test changes with an unusual compiler (eg clang or very 
recent gcc) or to test them with an unusual runtime, or to test them on an 
unusual operating system... if you use some unusual combination it's all too 
easy to break things for the vast majority of people.

Ideally, we would test things on multiple systems before committing, but that's 
hard to manage.  I find it generally works best to test and commit on a 
mainstream platform, then immediately checkout  the changes on to a couple of 
other platforms and build/test there so that, if a change is OK for most people 
we also find out very quickly if it's not OK on less common systems.

So, my recommendation (which I confess I haven't always followed) is that you 
have a single mainstream system where gnustep is checked out with write 
permission, and for the less common platforms you check out a read-only copy of 
the code.  That way it's much harder to accidentally commit changes which you 
tested on the wrong platform.








reply via email to

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