|
|
-
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.
-
Where can I get Kaffe?
Kaffe is available from the following sites:
-
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.
-
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.
-
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
|
|
|
PowerPC
|
I
|
|
|
M68K
|
J+I
|
|
AmigaDOS
|
NeXTStep 3.x
|
NetBSD 1.x
|
|
|
|
|
MIPS
|
I
|
|
-
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.
-
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.
-
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.
These lists are archived at
http://opera.inrialpes.fr/tools/Kaffe/messages/.
-
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).
-
Does Kaffe support the new JDK 1.1?
From version 0.9.x, Kaffe supports JDK 1.1. Before this version,
Kaffe supports JDK 1.0.2.
-
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.
-
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.
-
Where can I get the virtual machine spec?
You can buy this information from
JavaSoft.
-
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 but I'm not going to try to
keep a definative list of them.
|