KAFFE
Frequently asked questions

 
People keep asking me things so I thought I'd put together an list of common questions. It's a work in progress so if it isn't here, please email and ask.

The following topics are addressed:

  1. What is Kaffe?
  2. Where can I get Kaffe?
  3. Is Kaffe an interpreter or does it do "JIT"?
  4. Which platforms currently support "JIT"?
  5. What machine/operating systems are supported?
  6. What other platform will be supported?
  7. How do I go about porting Kaffe?
  8. Are there any mailing lists?
  9. How fast is Kaffe compared to Sun's JDK?
  10. Does Kaffe support the new JDK 1.1?
  11. Is Kaffe part of a bigger project?
  12. Can Kaffe generate standalone binaries?
  13. Where can I get the virtual machine spec?
  14. What about other Java related information?


 
  1. What is Kaffe?
    Kaffe is a virtual machine design to execute Java bytecode. Unlike other virtual machines available, this machine performs "just-in-time" code conversion from the abstract code to the host machine's native code. This will ultimately allow execution of Java code at the same speed as standard compiled code but while maintaining the advantages and flexibility of code independence.
    Incidentally, Kaffe is also Swedish for coffee. I happened to be working in Stockholm when I began this.
  2. Where can I get Kaffe?
    Kaffe is available from the following sites:
  3. Is Kaffe an interpreter or does it do "JIT"?
    From version 0.5, Kaffe supports both interpreting and "just-in-time" (JIT) code compilation. The idea is for the interpreter to be used as a fall back machine if JIT is not available, otherwise the relavant JIT system will be used.
  4. Which platforms  currently support "JIT"?
    Kaffe support various platforms in interpreted mode but currently only supports the i386, SPARC, M68K and ALPHA processors for "just-in-time" compilation.
  5. What machines/operating systems are supported?
    Currently Kaffe supports the following hardware/OS combinations:

    i386

    J+I

    FreeBSD 2.x

    Linux 1.2.x +

    NetBSD 1.1R

    Solaris 2.x

    BSDI 2.1

    Unixware

    SCO 3.2v5

    NeXTStep 3.x

    Windows '95

    DS/UX

    OpenBSD

    Sparc

    J+I

    SunOS 4.x

    Solaris 2.x

    NeXTStep 3.x

    NetBSD 1.x

    Linux
    Fujitsu UXP/DS
    Alpha J+I
    Linux     OSF/1

    PowerPC

    I

    MkLinux

    MachTen

    Aix

    M68K

    J+I

    AmigaDOS

    NeXTStep 3.x

    NetBSD 1.x

    MIPS

    I

    Irix 5 & 6

  6. What other platform will be supported?
    If it the intention that Kaffe should run on all requested platforms. However, due to a time constraints, some platforms will happen before others. The inclusion of a fall-back interpreter should allow quick port to most platforms (there is very little machine specific code in this system). Subsequently, JIT systems can be added. Current work has centred on supporting i386 based systems since writing the initial code generator has been a lot of effort. Once this is complete, it should be reasonable easy to add additional the requrested JIT ports.
  7. How do I go about porting Kaffe?
    Although the current system is relatively portable, because it generates native opcodes internally, it is necessary to write additional code generators for each new architecture which is to be supported. Future platforms will be added to this system as and when I have time and the resources to do them. From version 0.5 onward, Kaffe uses a new code generator. This system replaces the older i386 centred system which was being used.
  8. Are there any mailing lists?
    There are two mailing list associated with Kaffe, both maintained by a majordomo server. These are:
        kaffe-announce@sarc.city.ac.uk - For Kaffe related announcements, and
        kaffe@sarc.city.ac.uk - For general discussions.
  9. How fast is Kaffe compared to Sun's JDK?
    A few *microbenchmarks have been done using various platforms. In general, Kaffe is 10 times faster than Sun's interpreter (and we haven't even begun to optimise it yet).
  10. Does Kaffe support the new JDK 1.1?
    Currently Kaffe complies with JDK 1.0.2.  JDK 1.1 will be supported in time but requires new native library support and some changes to the basic machine.
  11. Is Kaffe part of a bigger project?
    Nothing exists in a vacuum and there is more to building a Java-style machine than just the virtual machine bit. Rather than having to do all this stuff myself, others are sorting out other bits. Collectively these people form the Jolt Project.
  12. Can Kaffe generate standalone binaries?
    Kaffe cannot currently translate class files into standalone programs. In some instances this would be a useful facility but since Kaffe is designed as an embedded interpreter this is beyond its current remit. However others are working on this project. Per Bothner from *Cygnus is particularly interested in designing a class front end to GCC to enable it to perform this conversion.
  13. Where can I get the virtual machine spec?
    You can also buy this information from *JavaSoft.
  14. What about other Java related information?
    You can find out more about Java from Sun's own Java resource pages at *http://www.javasoft.com/. Of course, there are other Java related projects going on. You can find out about some of them from Cygnus at *http://webhackers.cygnus.com/webhackers/projects/java.html.

Copyright (C) T. J. Wilkinson & Associates 1996-7