DR handling for C++

Matt Austern austern@apple.com
Mon Sep 20 23:12:00 GMT 2004


On Sep 20, 2004, at 2:26 PM, Mark Mitchell wrote:

> Matt Austern wrote:
>
>> On Sep 20, 2004, at 1:04 PM, Mark Mitchell wrote:
>>
>>> I've been asked to provide my input on the handling of DRs in the 
>>> C++ front end.
>>>
>>> Unfortunately, I don't have the messages from the original thread, 
>>> so I'm off starting a new thread.
>>>
>>> I certainly agree with Matt and Nathan that there's no point in 
>>> supporting C++98 separately from C++03.  I also agree that new 
>>> features in future revisions of C++ should be supported only under a 
>>> flag.  I think that fixes for existing features, however, should be 
>>> incorporated into the C++03 mode, even if they don't show up in 
>>> C++03 itself.  (A "defect repot", after all, is supposed to refer to 
>>> a bug in the standard.)  I think the threshold for incorporating 
>>> such fixes should be that the fixes are in WP status, in general, 
>>> although I'd consider other fixes if it seems clear that the 
>>> commitee is going to accept the change and the change seems 
>>> important.
>>
>>
>> I'd be unhappy about taking all "WP" changes unconditionally, either 
>> CWG or LWG.
>
> ...
>
>> My concern is that if we implement all issues in "WP" status we'll be 
>> back in the bad place we were in the late 90s: tracking an unstable 
>> document, and claiming to implement a "standard" that hasn't actually 
>> been standardized.
>>
>> There are some committee issues that ought to be implemented, because 
>> there are some cases where the standard really is unimplementable, 
>> vague, meaningless, or contradictory.  But at this point there is 
>> only only official C++ standard, and where that standard is clear and 
>> consistent our users have a right to expect that we'll follow it.
>
> Aren't we basically in agreement?  I think we both agree that we 
> needn't bother with C++98 separate from C++03.  I said above that new 
> features should require a flag, which I think is what you want too.  
> If there's a disagreement, it's probably around exactly which 
> non-feature modifications we should incorporate by default.  (For 
> example, should the enum thing you mentioned be incorporated by 
> default in our C++03 mode?)  I think I'd take those on a case-by-case 
> basis, incorporating those that looked like they were really fixing 
> silly things in C++03, and deferring those that are not.

We are in agreement, yes.  I misread you; I thought you were suggesting 
that our default mode should conform to "C++03 + all issues in WP 
status", and I was arguing that it should conform to "C++03 + a few 
issues in WP that we've selected on a case-by-case basis because we 
believe they are clear bug fixes."

> In this particular case, I'd think we should accept it with a warning 
> in C++03 mode.  (I think the intent of C++03 was to make that case 
> invalid, but the standard failed to actually say that. )

In this particular case there is no issue in WP status that changes 
what the C++03 standard says.  The only fully resolved issue on this 
subject is CWG 132, which reaffirms the strict reading of the C++98 
standard.

I expect that CWG issue 389 will be voted to WP status at the Redmond 
meeting.  If that's correct, then in early 2005 we will have a clear 
example where the committee will have made one deliberate choice for 
C++03 and a different choice for C++0x.  That's a good example of a 
place where we'll want our compiler's behavior to depend on a flag that 
selects which standard we're conforming to.

			--Matt



More information about the Gcc mailing list