This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: binary compatibility ABI (was: Re: [boehm-gc] Import 6.3 alpha 1)


I'm working on this ABI.  It ocurred to me that I didn't really know
exacltly what binary compatibility meant, and so I studied Chapter 13
and used it to write some test cases to see how well we're doing.

It was a very boring job, and took far longer than I expected.
However, I now have the test cases, and can report that we do:

FAIL bin_01: // Adding a method to a class
FAIL bin_02: // Adding a field to a class
PASS bin_03: // Adding a constructor to a class
FAIL bin_04: // Adding a method to an interface
PASS bin_05: // Adding a field to an interface
PASS bin_06: // Adding a constructor to an interface
FAIL bin_07: // Deleting a method from a class
FAIL bin_08: // Deleting a field from a class
PASS bin_09: // Deleting a constructor from a class
FAIL bin_10: // Reordering fields of a class
FAIL bin_11: // Reordering methods of a class
PASS bin_12: // Reordering constructors of a class
FAIL bin_13: // Moving a method upward in the class hierarchy
PASS bin_14: // Reordering the list of direct superinterfaces of a class
PASS bin_15: // Reordering the list of direct superinterfaces of an interface
FAIL bin_16: // Inserting a new class in the type hierarchy
PASS bin_17: // Inserting a new interface in the type hierarchy

and with -findirect-dispatch we do:

PASS bin_01: // Adding a method to a class
FAIL bin_02: // Adding a field to a class
PASS bin_03: // Adding a constructor to a class
PASS bin_04: // Adding a method to an interface
PASS bin_05: // Adding a field to an interface
PASS bin_06: // Adding a constructor to an interface
PASS bin_07: // Deleting a method from a class
FAIL bin_08: // Deleting a field from a class
PASS bin_09: // Deleting a constructor from a class
FAIL bin_10: // Reordering fields of a class
PASS bin_11: // Reordering methods of a class
PASS bin_12: // Reordering constructors of a class
PASS bin_13: // Moving a method upward in the class hierarchy
PASS bin_14: // Reordering the list of direct superinterfaces of a class
PASS bin_15: // Reordering the list of direct superinterfaces of an interface
PASS bin_16: // Inserting a new class in the type hierarchy
PASS bin_17: // Inserting a new interface in the type hierarchy

Unfortunately, this little test suite is driven by a shell script and
not a dejagnu script, so I still have some work to do before
committing this stuff to libgcj.

Two questions:

1.  Are there any cases I've missed?
2.  Are these results as expected?

Andrew.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]