With jikes 1.17, everything compiles, and all but one
regression tests pass on i386-linux-jit3. The failing
test is SoTimeout, which fails because kaffe can't
find SocketImpl.setOption(int, Object) method. I have
to take a closer look at the disassembly of the source
files to figure out if that's a bug in kaffe or in
jikes 1.17.

keep up the good work,

dalibor topic

It seems to be a jikes bug. But it is also a gcj bug (after a comment in SocketImpl.java & DatagramSocketImpl.java in classpath's source) that classpath solve by redeclarations of "setOption" and "getOption" methods in the 2 mentioned classes.
If you decide to do the same thing than in GNU Classpath, don't forget the DatagramSocketImpl (it has the same problem but this is not shown with regression tests).

As the problem may be reproduced in other cases, I join a file that can be put in test/regression, or at least that shows you the bug. It works with kjc, but not with jikes 1.17 (it compiles but throw a "NoSubMethodError" exception. I called it "AbstractInterfaceTest" because there is a problem with jikes when an abstract class implements an interface. It may be renamed or thrown out if you think it's bad idea (that is NOT a kaffe bug)

Best regards,
Hervé

PS: I encounter a "bug" when I post something to kaffe's mailing list : I receive my post 5 hours after I posted it. I believe this is because I live in France and there is a 5 hours shift between Eastern USA & Western Europe. How could this be "repaired" ?
class AbstractInterfaceTest {

  public static void main(String[] args) {
    new AbstractInterfaceTest();
  }

  AbstractInterfaceTest() {
    AIAbstract ai = new AIImpl();
    ai.doIt();
  }

  interface AIInterface {
    void doIt();
  }

  abstract class AIAbstract implements AIInterface {}

  class AIImpl extends AIAbstract {
    AIImpl() {}

    public void doIt() {
      System.out.println("Success");
    }
  }

}

Reply via email to