home *** CD-ROM | disk | FTP | other *** search
- KAFFE v0.2 - A JIT virtual machine to run Java(tm)* code
- ========================================================
-
- This is Kaffe, 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.
-
- What can run Kaffe
- ==================
-
- This version of Kaffe will run on the following platforms:
-
- i386 FreeBSD 2.0.5R & 2.1.0R (tested)
- i386 Linux 1.2.13 (tested)
- i386 NetBSD 1.1R (untested)
- i386 Solaris 2.4 (untested)
-
- Although the system is relatively portable, because it generates native
- opcode 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 the author has time and the
- resources to do them.
-
- Who can use Kaffe
- =================
-
- This version of Kaffe is distributed under a Berkeley style license.
- Essentially you can use Kaffe for both personal and commerical purpose, on
- its own or as part of another package (see license.terms for full details).
-
- Major changes in Kaffe v0.2
- ===========================
-
- * All virtual machine instructions are now supported.
- * Array are now fully supported.
- * Full threading and locks now supported.
- * Garbage collection now supported.
- * Majority of native library support complete.
- * Sub generator now correctly handles all standard data types.
- * Better native support added.
- * Zip files can now be read.
- * Autoconf installation support.
-
- Compiling Kaffe
- ===============
-
- The machine comes complete with the interpreter, stub generator, and
- supporting native libraries. Compilation is controlled using the
- GNU autoconf program. To generate the necessary makefiles
- type "./configure" in this directory. This will identify your system
- and configure the software appropriately. Compilation should then be
- a simple matter of typing "make" in this directory. By default, the
- system will install into the /usr/local hierarchy as per the standard
- GNU coding rules (not that this is slightly different from release 0.1 so
- you might want to clear it away first). This can be changed using the
- --prefix option to configure. To install the binaries type "make install".
-
- Note that this program needs GNU GCC-2.6.3 or later as it makes use of
- some of GCC's extensions.
-
- Running Kaffe
- =============
-
- For simplicity, this version of Kaffe is supplied with a copy of the
- class library from Sun's Java JDK-1.0. The latest copy of this package
- can be obtained from http://www.javasoft.com. This zipped file will be
- automatically installed in the correct directory.
-
- Before running Kaffe it is necessary to configure the environment.
- This requires the setting of CLASSPATH, KAFFEHOME and LD_LIBRARY_PATH.
- For the standard installation these would be defined as follows:
-
- CLASSPATH=.:/usr/local/share/kaffe/classes.zip
- KAFFEHOME=/usr/local/share/kaffe
- LD_LIBRARY_PATH=/usr/lib:/usr/local/lib
-
- A file "ENVIRONMENT" is generated by the configure program which contains
- a /bin/sh environment setup. This may help you to figure out what to
- set to what if you alter the standard installation point.
-
- The source comes with a test program "HelloWorldApp" which can be found
- in the test directory in the distribution. After installation, run this
- program from the test directory by typing the following:
-
- cd <java source directory>/test
- kaffe HelloWorldApp
-
- This should load and execute the HelloWorld application. If all is well
- it will print "Hello World!". As a further test you might like to try
- compiling the HelloWorldApp source. To do this type the following:
-
- javac HelloWorldApp.java
-
- "javac" is a shell script which has been provided to invoke Kaffe on
- the standard Java compiler. If all is well, the application should compile
- without incident.
-
- The state of play
- =================
-
- Kaffe should now run all non-graphical code which will run on a Java
- machine. However there are still bugs and plenty of untested native
- library functions. Some functions which are not currently implemented
- (most often because I don't understand exactly what they are suppose to
- do) will simply abort if called. If you can help out on any of these
- then please do *BUT* remember, this is a clean-room implementation (I
- have never seen any of Sun's Java source code) and I cannot simply
- encorporate Javasoft's code.
-
- Kaffe is known to correctly run Javasoft's Java compiler "javac" (which is
- included in the classes.zip file and a shell script is included to help
- run it) plus a number of small test programs. However, other major
- programs have not been tested.
-
- Kaffe and Sun's Java
- ====================
-
- Kaffe is a clean-room implementation of a virtual machine which can run
- Java bytecode. It is capable of interpreting code generated by Sun's
- software but has not been derived from any Sun code. Currently this version
- utilises Sun's freely available compiled class library but it is hoped
- that this will be replaced with a freely available version in due time.
- At the moment it is impossible to validate whether this software is
- Java compatible(tm) (the test suites are not publically available) and
- the terms under which this can be claimed are unknown.
-
- Help wanted
- ===========
-
- The Kaffe virtual machine is far from complete. Anyone who wants to
- contribute to this project should contact me on the address given below.
- I particularly need help on the following:
-
- * Public domain version of the class libraries.
-
- * Native support for the AWT and Motif libraries.
-
- * Public domain WWW browser facilties (either built using Kaffe or
- encorporating Kaffe).
-
-
- Erm, that's it ....
-
- Tim Wilkinson
- <tim@sarc.city.ac.uk>
-
- ----
- * Java, Javasoft, and Java Virtual Machine are registered trademark of
- Sun Microsystems, Inc.
-