home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / kaffe-0.5p4-src.tgz / tar.out / contrib / kaffe / README < prev    next >
Text File  |  1996-09-28  |  8KB  |  198 lines

  1. KAFFE v0.5p4 - A JIT and interpreting virtual machine to run Java(tm)* code
  2. ===========================================================================
  3.  
  4. This is Kaffe, a virtual machine design to execute Java bytecode.
  5. This machine can be configured in two modes.  In one mode it operates as
  6. a pure bytecode interpreter (not unlike Javasoft's machine); in the second
  7. mode if performs "just-in-time" code conversion from the abstract code to
  8. the host machine's native code.  This will ultimately allow execution of
  9. Java code at the same speed as standard compiled code but while maintaining
  10. the advantages and flexibility of code independence.
  11.  
  12. What's new
  13. ==========
  14.  
  15.  * Added port for m68k AmigaOS.
  16.  
  17.  * Improved (hopefully) Windows'95 port.
  18.  
  19.  * Lots of bug fixes (see ChangeLog).
  20.  
  21. What can run Kaffe
  22. ==================
  23.  
  24. This version of Kaffe will run on the following platforms:
  25.  
  26.     i386    FreeBSD 2.x        (interp + jit)
  27.       "    Linux 1.2.13 & 2.0.x     (interp + jit)
  28.       "    NetBSD 1.x        (interp + jit)
  29.       "    Solaris 2.x        (interp + jit)
  30.       "    BSDI 2.x        (interp + jit)
  31.       "    Unixware        (interp + jit)
  32.       "    SCO 3.2v5        (interp + jit)
  33.       "    NeXTStep 3        (interp + jit)
  34.       "    Windows '95         (interp)
  35.     Sparc    SunOS 4.x        (interp)
  36.       "    Solaris 2.x        (interp)
  37.       "    NetBSD 1.x        (interp)
  38.       "    NeXTStep 3        (interp)
  39.     PowerPC    MkLinux         (interp)
  40.     M68k    AmigaOS            (interp)
  41.  
  42. Although the system is relatively portable, some machine and processor
  43. specific code is necessary.  If operating in an interpreting mode, it
  44. is only necessary to supply thread switching code.  This allows relatively
  45. simple ports of Kaffe to be made to new platforms.
  46. If operating in JIT mode, significant machine dependent code is required in
  47. order to provide the internal native code generator.  Ports to new
  48. architecture are obviously more complex although the code generator is itself
  49. reasonably portable.
  50.  
  51. Who can use Kaffe
  52. =================
  53.  
  54. This version of Kaffe is distributed under a Berkeley style license.
  55. Essentially you can use Kaffe for both personal and commerical purpose, on
  56. its own or as part of another package (see license.terms for full details).
  57.  
  58. Kaffe Web and FTP sites
  59. =======================
  60.  
  61. Kaffe is available from various sites.  The primary site is:
  62.  
  63.         ftp://ftp.sarc.city.ac.uk/pub/kaffe/kaffe-0.5p4.tgz
  64.  
  65. Kaffe mailing lists
  66. ===================
  67.  
  68. A couple of mailing lists are available for information and discussion of
  69. the Kaffe project.  There lists are:
  70.   
  71.         kaffe@sarc.city.ac.uk           General Kaffe discussions
  72.         kaffe-announce@sarc.city.ac.uk  Kaffe related announcements
  73.   
  74. To subscribe to these lists send a message containing the word "subscribe"
  75. to either:
  76.         
  77.         kaffe-request@sarc.city.ac.uk                   or
  78.         kaffe-announce-request@sarc.city.ac.uk
  79.   
  80. depending what you are interested in.
  81.  
  82. You can also check out the Kaffe related web pages at:
  83.  
  84.     http://www.sarc.city.ac.uk/~tim/kaffe
  85.  
  86. Compiling Kaffe for UNIX
  87. ========================
  88.  
  89. The machine comes complete with the interpreter, stub generator, and
  90. supporting native libraries.   Compilation is controlled using the
  91. GNU autoconf program.  To generate the necessary makefiles
  92. type "./configure" in this directory.  This will identify your system
  93. and configure the software appropriately.  If JIT mode is supported on your
  94. system it will be selected automatically, otherwise it defaults to
  95. interpreting mode.  Compilation should then be a simple matter of
  96. typing "make" in this directory, but note that you must use a version
  97. of "make" which supports VPATH.  If your version does not (Sun's version
  98. doesn't) I suggest you use GNU make.
  99.  
  100. By default, the system will install into the /usr/local hierarchy as per
  101. the standard GNU coding rules.  This can be changed using the --prefix
  102. option to configure.  To install the binaries type "make install".
  103.  
  104. Compiling Kaffe for Windows '95
  105. ===============================
  106.  
  107. An initial Windows '95 port is now included with Kaffe.  This currently
  108. works with Borland C++ v5.0 compiler.  The port is preconfigured to install
  109. into C:\KAFFE.
  110.  
  111. To compile change directory to kaffe-0.5p4/win32 and type "make".  To install
  112. type "make install".
  113.  
  114. Running Kaffe
  115. =============
  116.  
  117. This version of Kaffe is not supplied with a copy of Sun's class library.
  118. This can be obtained from Sun's JDK package (from http://www.javasoft.com) or
  119. pre-prepaired in kaffe-0.5p4-sun.tgz (from the usual Kaffe ftp sites).
  120. This version of Kaffe uses the class library from JDK 1.0.2.
  121.  
  122. Before running Kaffe it is necessary to configure the environment.
  123. This requires the setting of CLASSPATH, KAFFEHOME and LD_LIBRARY_PATH.
  124. For the standard installation these would be defined as follows:
  125.  
  126.     CLASSPATH=.:/usr/local/share/kaffe/classes.zip
  127.     KAFFEHOME=/usr/local/share/kaffe
  128.     LD_LIBRARY_PATH=/usr/lib:/usr/local/lib
  129.  
  130. A file "ENVIRONMENT" is generated by the configure program which contains
  131. a /bin/sh environment setup.  This may help you to figure out what to
  132. set to what if you alter the standard installation point.
  133.  
  134. The source comes with a test program "HelloWorldApp" which can be found
  135. in the test directory in the distribution.  After installation, run this
  136. program from the test directory by typing the following:
  137.  
  138.     cd <java source directory>/test
  139.     kaffe HelloWorldApp
  140.  
  141. This should load and execute the HelloWorld application.  If all is well
  142. it will print "Hello World!".   As a further test you might like to try
  143. compiling the HelloWorldApp source.  To do this type the following:
  144.  
  145.     javac HelloWorldApp.java
  146.  
  147. "javac" is a shell script which has been provided to invoke Kaffe on
  148. the standard Java compiler.  If all is well, the application should compile
  149. without incident.
  150.  
  151. The state of play
  152. =================
  153.  
  154. Kaffe should run all non-graphical code which will run on a Java
  155. machine.  However there are still bugs and plenty of untested native
  156. library functions.  Some functions which are not currently implemented
  157. (most often because I don't understand exactly what they are suppose to
  158. do) will simply abort if called.  If you can help out on any of these
  159. then please do *BUT* remember, this is a clean-room implementation (I
  160. have never seen any of Sun's Java source code) and I cannot simply
  161. encorporate Javasoft's* code.
  162.  
  163. The missing bits
  164. ================
  165.  
  166. Awt
  167. ---
  168. One major missing component from Kaffe is an implementation of AWT.  Work
  169. on this is being done by others, and their current implementation can be found
  170. at ftp://slhp1.epfl.ch/pub/sawt-0.1.tar.gz.  I don't know what the current
  171. status of this work.
  172.  
  173. Java.lang & Java.io
  174. -------------------
  175. Although Kaffe can be used with Sun's classes.zip library, there is work
  176. to develop a version of this class library which is Sun's free.  This
  177. can be found at ftp://ftp.lantz.com/kream/kream-0.01.tgz.  Again, I don't
  178. know the current status of this work.
  179.  
  180. Kaffe and Sun's Java
  181. ====================
  182.  
  183. Kaffe is a clean-room implementation of a virtual machine which can run
  184. Java bytecode.  It is capable of interpreting code generated by Sun's
  185. software but has not been derived from any Sun code.  Currently this version
  186. utilises Sun's freely available compiled class library but it is hoped
  187. that this will be replaced with a freely available version in due time.
  188. At the moment it is impossible to validate whether this software is
  189. Java compatible(tm) (the test suites are not publically available) and
  190. the terms under which this can be claimed are unknown.
  191.  
  192. Erm, that's it ....
  193.  
  194. Tim Wilkinson
  195. <tim@sarc.city.ac.uk>
  196. ----
  197. * Java and Javasoft are registered trademark of Sun Microsystems, Inc.
  198.