This is the mail archive of the
mailing list for the GCC project.
Re: DR handling for C++
- From: Mark Mitchell <mark at codesourcery dot com>
- To: Matt Austern <austern at apple dot com>
- Cc: gcc at gcc dot gnu dot org, Nathan Sidwell <nathan at codesourcery dot com>, Jason Merrill <jason at redhat dot com>
- Date: Mon, 20 Sep 2004 14:26:04 -0700
- Subject: Re: DR handling for C++
- Organization: CodeSourcery, LLC
- References: <414F37E0.firstname.lastname@example.org> <461F70B0-0B49-11D9-ADB7-000A95AA5E5E@apple.com>
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++
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
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. )