This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: DR handling for C++

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]