1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
KAFFE v0.7.0 - A JIT and interpreting virtual machine to run Java(tm)* code
===========================================================================
*** STOP PRESS !!! ***
*** "Just-in-time" support for the SPARC architecture ***
This is Kaffe, a virtual machine design to execute Java bytecode.
This machine can be configured in two modes. In one mode it operates as
a pure bytecode interpreter (not unlike Javasoft's machine); in the second
mode if 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.
Running Kaffe
=============
This version of Kaffe is not supplied with a copy of Sun's class library.
This can be obtained from Sun's JDK package (from http://www.javasoft.com) or
pre-prepaired in kaffe-0.7.0-sun.tgz (from the usual Kaffe ftp sites).
This version of Kaffe uses the class library from JDK 1.0.2.
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.
What's new
==========
* "Just-in-time" support for the SPARC architecture.
* New i386 Data General DG/UX port.
* Various thread fixes, including addition of timeouts.
* Lots of bug fixes (see Changelog)
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).
Kaffe Web and FTP sites
=======================
Kaffe is available from various sites. The primary site is:
ftp://ftp.sarc.city.ac.uk/pub/kaffe/
Kaffe mailing lists
===================
A couple of mailing lists are available for information and discussion of
the Kaffe project. There lists are:
kaffe@sarc.city.ac.uk - General discussions
kaffe-announce@sarc.city.ac.uk - Announcements
To subscribe to these lists send a message containing the word "subscribe"
to either:
kaffe-request@sarc.city.ac.uk
kaffe-announce-request@sarc.city.ac.uk
depending what you are interested in.
You can also check out the Kaffe related web pages at:
http://www.tjwassoc.demon.co.uk/kaffe/kaffe.htm
The state of play
=================
Kaffe should 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.
The missing bits
================
Awt
---
One major missing component from Kaffe is an implementation of AWT. Work
on this is being done by others, and their current implementation can be found
at ftp://slhp1.epfl.ch/pub/sawt-0.4.2.tar.gz. I don't know what the current
status of this work but you can check at http://slhp1.epfl.ch/sawt.html.
Java.lang & Java.io
-------------------
Although Kaffe can be used with Sun's classes.zip library, there is work
to develop a version of this class library which is Sun's free. This
can be found at ftp://ftp.lantz.com/kream/kream-0.01.tgz. Again, I don't
know the current status of this work.
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.
Erm, that's it ....
Tim Wilkinson
<tim@tjwassoc.demon.co.uk>
----
* Java and Javasoft are registered trademark of Sun Microsystems, Inc.
|