public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: need for flag for incompatible-changes
@ 1998-01-28 15:03 Joe Buck
  1998-01-29  6:24 ` Paul Koning
  0 siblings, 1 reply; 23+ messages in thread
From: Joe Buck @ 1998-01-28 15:03 UTC (permalink / raw)
  To: egcs

> I wonder about the comment that even GNU ld often would only be able
> to say "sorry, incompatible object files".  Some things, like naming
> (namespace support) clearly aren't like that.

We not only plan to add namespace support to the compiler, but we
then need to redo libstdc++ to put the whole standard library in the
std namespace.  That's what breaks compatibility, and it doesn't show
up at the level of object file version -- it is a change in the API.
Adding namespaces wouldn't break compatibility if namespaces are not
used.

The other major change that needs to be done to C++ is to redo iostreams
as specified by the draft standard (make iostream a template).  This
risks breaking libc compatibility on Linux if it is not done carefully.


^ permalink raw reply	[flat|nested] 23+ messages in thread
* Re: need for flag for incompatible-changes
@ 1998-01-27 19:15 Mike Stump
  0 siblings, 0 replies; 23+ messages in thread
From: Mike Stump @ 1998-01-27 19:15 UTC (permalink / raw)
  To: bothner, egcs

If we have a flag, I think I prefer a more general solution where we
select a flag that specifies what abi we want, and then use that.
When we make incompatible changes, then we conditionalize the new code
on the new value for the flag, and use the old code (with the
disadvantages it brings), with the old value.

-fcompat-2.8.0 is default (for now), and generates code compatible
with 2.8.0, -fcompat-2.9.0 likewise.

I'm not sure if we should do this or not, though I have thought about
it on and off for a while now.

Another way, is to just have a #define NEW_EH and then switch it on at
some point in the future, and then remove it sometime later.

^ permalink raw reply	[flat|nested] 23+ messages in thread
* need for flag for incompatible-changes
@ 1998-01-27 16:18 Per Bothner
  1998-01-27 16:52 ` Joe Buck
  1998-01-28  7:10 ` Paul Koning
  0 siblings, 2 replies; 23+ messages in thread
From: Per Bothner @ 1998-01-27 16:18 UTC (permalink / raw)
  To: egcs

The problem:  We need to continue to make changes to gcc exception
handling, mangling, etc.  Some of these will be incompatible changes.
For example, the current exception table has three columns:  start_pc,
end_pc, and handler_pc.  It is highly desirable (especially for Java)
to add a fourth column: handler_type.  We cannot do that without
breaking compatibility.  So we will break binary compatibility, but we
want to bunch up many compatibility-breaking changes and do them
all at once, to reduce disruption.  But it is easier to make and
test many small incremental changes.  So I propose we add a flag
to turn on compatibility-breaking changes.  The default will be
to disable the changes - except perhaps for Java, which needs the
changes, and has no installed base.  That way people can test them,
plus people who make unrelated changes are less likely to make
patches that don't work with the development sources.  Then
when the time comes, we can migrate the changes to be always enabled.

We could use -fexperimental-exceptions to enable compatibility-breaking
eh-related changes.  Or we could use a more general flag -fexperimental
as a catch-all.

Perhaps "experimeental" does not quite cover what I intend.
How about -fno-compatibility?

	--Per Bothner
Cygnus Solutions     bothner@cygnus.com     http://www.cygnus.com/~bothner

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~1998-01-29 16:16 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <January_28_1998_at_05_17_03_18503_Joseph_H._Buehler@altera>
1998-01-28  6:10 ` need for flag for incompatible-changes Joseph H. Buehler
1998-01-28  9:12   ` Joe Buck
1998-01-28 14:23     ` Paul Koning
1998-01-28 12:09       ` Joe Buck
1998-01-28 15:03         ` Paul Koning
1998-01-29 14:41         ` Andi Kleen
1998-01-28 15:03     ` Jeffrey A Law
1998-01-28 15:03 Joe Buck
1998-01-29  6:24 ` Paul Koning
1998-01-29 11:20   ` Richard Henderson
1998-01-29 13:44     ` Joe Buck
1998-01-29 14:41       ` Paul Koning
1998-01-29 13:44         ` Joe Buck
1998-01-29 13:44           ` Paul Koning
1998-01-29 11:20   ` Joe Buck
1998-01-29 14:41   ` Fred Eisele
1998-01-29 16:16     ` Joe Buck
  -- strict thread matches above, loose matches on Subject: below --
1998-01-27 19:15 Mike Stump
1998-01-27 16:18 Per Bothner
1998-01-27 16:52 ` Joe Buck
1998-01-27 17:03   ` Per Bothner
1998-01-27 19:15     ` Joe Buck
1998-01-28  7:10 ` Paul Koning

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).