This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: C++ PATCH: PR 20599 (1/3)
- From: Mark Mitchell <mark at codesourcery dot com>
- To: Paolo Carlini <pcarlini at suse dot de>
- Cc: Doug Gregor <doug dot gregor at gmail dot com>, gcc-patches at gcc dot gnu dot org, libstdc++ <libstdc++ at gcc dot gnu dot org>
- Date: Mon, 18 Sep 2006 13:32:12 -0700
- Subject: Re: C++ PATCH: PR 20599 (1/3)
- References: <FEC59D4C-899B-417C-BC01-193397613C05@cs.indiana.edu> <24b520d20609141104y562fa3eft966df4d370cf0e78@mail.gmail.com> <450A658C.7050109@suse.de>
At the same time, I (still) believe we badly need a global strategy for
the C++0x features, for those features adding keywords,
incompatibilities, and all the others
We definitely need such a strategy. I think that this is a big enough
deal that we should try to get a meeting of the minds here, and then get
explicit buy-in from the Steering Committee. I would imagine the SC
would sign off on our plan -- but I thin we should run it by them, since
the decisions we'll make could have a pretty wide-reaching effect on GCC
users.
In particular, while it seems reasonable to add a c++0x mode, and
document it is an explicitly unstable and possibly varying in future,
experience tells us that people will build code relying on whatever the
current implementation is and that those people will be unhappy when the
implementation changes. The problem of source incompatibility from
version to version, in both C and C++, was something that was raised at
the GCC Summit, and is also something that has been expressed to me as a
concern by many of CodeSourcery's customers.
It's easy to say "well, we warned the users, it's their problem" -- but
I don't think that's necessarily how we best convince people to prefer
G++ to competing alternatives.
Also, without casting any aspersions whatsoever on Doug or his patches,
previous substantial changes to the C++ front end have sometimes
unintentionally resulted in oscillations in what is or is not accepted.
(I am personally responsible for much of the damage, including bugs
that I still need t fix for the upcoming 4.2 release, so I'm in no way
criticizing anybody.)
So, I'm somewhat hesitant to incorporate changes before the standard is
sufficiently final. At the same time, I of course think that providing
support for the latest and greatest form of the C++ language in G++
would be a very good thing.
I'm not sure how to balance these two things. One approach would be to
put 0x code on a branch, and merge it wholesale at some point in the
future. Another would be to explicitly disable the 0x code, unless
enabled with a configure option. Another would be to print a warning on
every compilation when the enable-0x option was used. All of these
options are bad, either because they are ineffective, inconvenience
users, or inconvenience developers -- or all of the above.
Thoughts?
--
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713