need for flag for incompatible-changes

Per Bothner bothner@cygnus.com
Tue Jan 27 16:18:00 GMT 1998


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



More information about the Gcc mailing list