This is the mail archive of the
mailing list for the GCC project.
Re: [basic-improvements] try/finally support for c/c++ - more tests
- From: Matt Austern <austern at apple dot com>
- To: Michael Matz <matz at suse dot de>
- Cc: Mark Mitchell <mark at codesourcery dot com>, Zack Weinberg <zack at codesourcery dot com>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 11 Nov 2002 10:00:31 -0800
- Subject: Re: [basic-improvements] try/finally support for c/c++ - more tests
On Monday, November 11, 2002, at 05:38 AM, Michael Matz wrote:
On Fri, 8 Nov 2002, Matt Austern wrote:
Now all that being said, do you have any concrete issues with this
I have a lot less experience as a gcc maintainer than he does, but
I already have enough experience to have felt burned by language
extensions. There have been an awful lot of cases where users
report problems with one extension or another, or worse, with some
combination of them, and I have to go through the steps of wondering:
what is this extension supposed to do? was this particular corner
case ever considered? what does the documentation say, and it is
right? has this extension gone stale? This sort of confusion is a
burden for users and implementors.
Partly the reason I lean toward conservatism is my experience on
standards bodies. (I know I'm not the only person on this
list with such experience.) I've learned that language design is
hard. I've learned also that adding a major new language feature,
and specifying it adequately, is always harder than it looks. It's
rarely good enough to give a short writeup describing the feature:
what's more common is pervasive changes throughout the specification,
as you describe, one by one, how this feature interacts with what's
particular extension than with extensions in general? Being
just for being conservative is not very usefull IMO.
Whereas my opinion is that an attitude toward extensions other than
being conservative is very dangerous.
These are general comments because they have to be. If you look at
a single extension in isolation, it'll always seem like a good idea.
The answer will always be: sure, we can get this to work, and it'll
be useful to someone or other. The reason to be scared of uncontrolled
extension isn't that any one extension is terrible, it's the overall
accumulation of one extension after another. (See Bjarne Stroustrup's
_The Design and Evolution of C++_ for a more complete discussion.)
So for me, the question isn't whether an extension might be useful
for someone, but whether it's so very useful to enough people that it
can overcome a strong bias against adding extensions. Some extensions
pass that test; I'm not yet convinced that this one does.