DR handling for C++

Mark Mitchell mark@codesourcery.com
Mon Sep 20 22:59:00 GMT 2004


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.

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. )

-- 
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com



More information about the Gcc mailing list