public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: llewelly@dbritsch.dsl.xmission.com
To: Stan Shebs <shebs@apple.com>
Cc: Mark Mitchell <mark@codesourcery.com>,
	kenner@vlsi1.ultra.nyu.edu, meissner@cygnus.com, gcc@gcc.gnu.org
Subject: Re: GCC's statement expression extension
Date: Fri, 28 Jul 2000 17:49:00 -0000	[thread overview]
Message-ID: <m1snstizkq.fsf@dbritsch.dsl.xmission.com> (raw)
In-Reply-To: <3981F647.2FBFFD19@apple.com>

Stan Shebs <shebs@apple.com> writes:

> Mark Mitchell wrote:
> >
[snip]
> > There are already other C extensions that
> > don't work in C++.  C++ is (still) a changing language.  If we can
> > deliver better conformance at the price of a rarely used extension, I
> > bet our user-base will thank us.

As a C++ programmer and user of gcc, I mostly agree with that; if
  glibc's use of statement experesions can be resolved, I will be
  content to see them go the way of nested functions and signatures. I
  would be happy to see computed gotos removed from C++ (can they at
  least be disallowed in blocks that contain calls to non-trivial
  constructors or destructors?) as well.

However, as soon as I said that, I immediately thought of a g++
  extension I do *not* want removed: allowing templates with default
  arguments to be used as template template parameters when the formal
  template template parameter has fewer arguments than the actual
  parameter, and the excess arguments of the actual all have defaults.

This is not even a documented extension (at least, I cannot find it in
  gcc/extend.texi).

And then I thought of another one: The extra containers and algorithms
  that libstdc++-v3 inherits from the sgi stl (<hash_map>, etc). Not
  exactly a g++ issue, but still an example of an extension I do not
  want removed.

If it came down to chosing between less ICEs on legal code, and one of
  these extensions, I would probably choose in favor of the former,
  but I would like to see a request for comment posted in a more
  widely read forum before hand.

> 
> *If* it's rarely-used!  In the absence of a survey or widely-broadcast
> announcement, you can't really know.  Apple quietly dropped Objective-C++
> from OS X prereleases because we didn't think anybody used it, and
> found out otherwise when we started getting messages "why can't we
> compile our ObjC++ code any more?".

Yuck. Sounds like a maintenance nightmare to me.

[snip]
> 
> If I understand right, there's not been an official FSF release
> since they were removed - at least my 2.95 manual still describes
> them.  A lot of users (such as Apple) prefer to adopt only the
> official releases rather than snapshots, so they won't even know
> that anything has happened to signatures until the next release comes
> out.

Sort of. gcc 2.95.x will reject signatures unless -fhandle-signatures
  is passed on the command line, and even with the flag it will give a
  warning. One would hope that users of signatures seeing the warning
  would either complain or fix their code.

[snip]
> 
> I get the sense that you wish this wasn't a discussion topic, but
> that's wrong thinking; if you're contemplating changing the language
> accepted by the compiler, particularly by removing constructs, you
> want to let as many people as possible know about it.  Get a note up
> on Slashdot for instance.  Users will accept a lot of change, as long
> as they know that it's coming.

Yes, please, before you remove any extensions - or add any new
  extensions - make announcements in widely read forums, and ask for
  user input.

Anyway, I had thought: how hard would it be to grab source tarballs of
  a few large C++ projects (like KDE), and scan them for uses of
  extensions (statement expressions, for example) that are under
  consideration for removal?

  reply	other threads:[~2000-07-28 17:49 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-07-27 18:24 Richard Kenner
2000-07-27 18:38 ` Mark Mitchell
2000-07-27 19:21   ` Michael Meissner
2000-07-27 21:15     ` Jim Wilson
2000-07-28  7:31       ` Michael Meissner
2000-07-28  9:08         ` Nick Ing-Simmons
2000-07-28  9:19           ` Gabriel Dos Reis
2000-07-28  9:37             ` Nick Ing-Simmons
2000-07-27 23:53   ` Gabriel Dos Reis
2000-07-28 12:08   ` Stan Shebs
2000-07-28 12:16     ` Gabriel Dos Reis
2000-07-28 13:07       ` Stan Shebs
2000-07-28 12:28     ` Mark Mitchell
2000-07-28 14:08       ` Stan Shebs
2000-07-28 17:49         ` llewelly [this message]
2000-07-28 22:54           ` Mark Mitchell
2000-07-28 22:40         ` Mark Mitchell
2000-07-29 10:28           ` Per Bothner
2000-07-29 10:43             ` Mark Mitchell
2000-07-29 11:48               ` Alexandre Oliva
2000-07-29 12:09                 ` Mark Mitchell
2000-07-29 12:30                   ` Alexandre Oliva
2000-07-29 12:52                     ` Mark Mitchell
2000-07-29 14:07                       ` Alexandre Oliva
2000-07-30 10:06                         ` Mark Mitchell
2000-07-30  9:29                   ` Per Bothner
2000-07-30 11:23                 ` Linus Torvalds
2000-07-29 18:00               ` Per Bothner
2000-07-29 16:20         ` Marc Espie
2000-07-31 17:04           ` Reporting GCC issues (was Re: GCC's statement expression extension) Stan Shebs
  -- strict thread matches above, loose matches on Subject: below --
2000-08-04  5:39 GCC's statement expression extension Mark Kettenis
2000-08-04  9:06 ` Mark Mitchell
2000-08-03 16:48 John Marshall
2000-08-03 16:55 ` Mark Mitchell
2000-08-03 14:32 Mike Stump
2000-08-04  4:36 ` Jamie Lokier
2000-08-04  9:04   ` Mark Mitchell
2000-08-04  9:26     ` Jamie Lokier
2000-08-04 13:19       ` Mark Mitchell
2000-08-02 13:44 Mike Stump
2000-08-03 10:55 ` Jamie Lokier
2000-08-03 16:13   ` Mark Mitchell
2000-08-04 12:38     ` Kamil Iskra
2000-08-04 13:24       ` Mark Mitchell
2000-08-05 11:56         ` Kamil Iskra
2000-08-05 12:03           ` Mark Mitchell
2000-08-01 18:14 Mike Stump
2000-08-01 21:52 ` Mark Mitchell
2000-08-02 16:59 ` Alexandre Oliva
2000-08-02 21:01   ` Per Bothner
2000-07-31  9:31 Phil Edwards
2000-07-30  3:49 Richard Kenner
2000-07-28 13:08 Kaveh R. Ghazi
2000-07-28 13:45 ` Mark Mitchell
2000-07-28 12:14 Kaveh R. Ghazi
2000-07-28 12:22 ` Mark Mitchell
2000-07-28 12:01 Anjul Srivastava
2000-07-28 12:11 ` Gabriel Dos Reis
2000-07-28 13:33 ` sidster
2000-07-27 19:46 Richard Kenner
2000-07-27 21:11 ` Jim Wilson
2000-07-27 19:29 Richard Kenner
2000-07-27 19:39 ` Jeffrey A Law
2000-07-27 19:45   ` Michael Meissner
2000-07-27 20:16     ` Mark Mitchell
2000-07-27 20:50       ` Michael Meissner
2000-07-27 20:57         ` Jim Wilson
2000-07-27 21:25         ` Mark Mitchell
2000-07-27 20:14 ` Mark Mitchell
2000-07-27 19:20 Richard Kenner
2000-07-27 19:26 ` Mark Mitchell
2000-07-30 12:09   ` Linus Torvalds
2000-07-27 18:41 Richard Kenner
2000-07-27 19:15 ` Mark Mitchell
2000-07-28  3:59   ` Marc Espie
2000-07-28  8:11     ` Mark Mitchell
2000-08-02 15:00   ` Kamil Iskra
2000-08-02 15:14     ` Mo McKinlay
2000-08-02 15:18     ` Mark Mitchell
2000-07-21 16:31 Joseph S. Myers
2000-07-23  9:39 ` Jeffrey A Law
2000-07-23  9:52   ` Mark Mitchell
2000-07-24 15:48     ` Geoff Keating
2000-07-25  8:44       ` Mark Mitchell
2000-07-26 21:25       ` Richard Henderson
2000-07-26 21:24     ` Richard Henderson
2000-07-26 21:38       ` Mark Mitchell
2000-07-26 22:51         ` Linus Torvalds
2000-07-27 21:14           ` Marc Espie
2000-07-27 21:28             ` Mark Mitchell
2000-07-27 21:29             ` Mo McKinlay
2000-07-28  0:45               ` Akbar A.
2000-07-28  7:27               ` Michael Meissner
2000-07-28 11:50             ` Linus Torvalds
2000-07-28 21:14               ` Marc Espie
2000-07-28 21:28                 ` Linus Torvalds
2000-07-29  1:40                   ` Marc Espie
2000-07-30 10:21                     ` Linus Torvalds
2000-07-27  4:34         ` Joseph S. Myers
2000-07-27  4:53           ` Gabriel Dos Reis
2000-07-27  9:42           ` Mark Mitchell
2000-07-27 17:32             ` Michael Meissner
2000-07-27 14:51           ` Alexandre Oliva
2000-07-29 10:41         ` Per Bothner
2000-07-29 14:36           ` Jamie Lokier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m1snstizkq.fsf@dbritsch.dsl.xmission.com \
    --to=llewelly@dbritsch.dsl.xmission.com \
    --cc=gcc@gcc.gnu.org \
    --cc=kenner@vlsi1.ultra.nyu.edu \
    --cc=mark@codesourcery.com \
    --cc=meissner@cygnus.com \
    --cc=shebs@apple.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).