KAFFE                                                       COMMON PROBLEMS
===========================================================================
Written by Tim Wilkinson <tim@tjwassoc.demon.co.uk>, 1996-97.
Ported to AmigaOS by Matthias Hopf <mshopf@informatik.uni-erlangen.de>


                     NOTES ABOUT THE AMIGAOS PORT
                     ============================

The Amiga port has been done in a relatively straightforward way using  the
Geek  Gadgets  (abbreviated  GG  in  this  document) developer environment,
formerly known as ADE (Amiga Developer Environment). Thus to work  properly
it  needs  at  least  version 45.0 of ixemul.library, available from any GG
mirror.

The needed Sun java classes are not included due to legal reasons. They are
available  as  a  seperate archive, e.g. kaffe-0.9.0-sun.tgz. If you get an
'Cannot find essential class 'java/lang/Object' in class library ...',  you
probably  do  not  have  the  Sun  classes  included in your CLASSPATH (see
below). Note that begining with kaffe-0.9.0 you  will  need  the  JDK-1.1.1
version of classes.zip.

To set up kaffe, do 'make  install'  in  an  GG  environment,  set  up  the
environment  variables as stated in the file ENVIRONMENT and make sure that
kaffe can be found in your path as well as in  the  sh  'PATH'  environment
variable.

Try 'kaffe HelloWorldApp' in the test/ directory. Guess what it does :-)

Try 'javac HelloWorldApp.java' in the  test/  directory.  But  be  prepared
- the javac compiler class is relatively slow...

Try 'make test' in the main directory. This  will  run  a  number  of  test
suites. Most tests should work by now. This test takes a lot of time...

When kaffe does not work properly, please  read  the  COMMON  CONFIGURATION
PROBLEMS  and  KNOWN  BUGS sections below before sending any bug reports to
me, or even better to the mailing list gg-java@ninemoons.com.  When  I  ask
you  to,  please  fill  out the system configuration report you can find in
config/m68k/amigaos/REPORT.amiga and send it to me. It will help debugging.



                     COMMON CONFIGURATION PROBLEMS
                     =============================

- 'version ixemul.library'
  You will need at least V44.0 of ixemul.library. The kaffe binaries that
  can be fetched from ftp.ninemoons.com need at least V45.0 of
  ixemul.library.

- Sun's classes.zip file.
  For kaffe to work properly you will need the JDK 1.1.1 classes.zip file
  from Sun, available from Sunsoft or from any kaffe-sun-* archive from
  ftp.ninemoons.com.
  *NOTE* The JDK classes.zip files from earlier releases will not work with
  kaffe! Guavac seems to be shipped with the old Sun classes.

- 'echo "$CLASSPATH"'
  The classpath has to include at least '.' (the current directory) and
  Sun's classes.zip file (the file itself, not the directory where it is
  located). A valid classpath may be set with e.g.
    setenv CLASSPATH ".;GG:share/kaffe/classes.zip"
  Don't forget the doublequotes (';' is the comment specifier in AmigaDos).
  And do not forget the trailing dot when specifying the current directory
  or volumes (e.g. 'kaffe:.'). Of course the CLASSPATH specification is
  also affected by your ixprefs settings!

- 'ixprefs -i 0'
  Either you will have to make ixemul.library recognize global environment
  variables, or you will have to set the local environment variable
    set CLASSPATH="$CLASSPATH"
  Again, don't forget the doublequotes.

- 'EMT Trap.'
  When kaffe simply aborts with 'EMT Trap', then you have probably an
  executable compiled for Amigas with coprozessors (versions before 0.7.1
  from GG were compiled with -m68881 by accident).
  It is possible, that you have the wrong ixemul.library installed, too.
  If you do not get this problem regulary, it may well be that you just
  encountered a problem inherrited to several IDE drives which cannot
  handle high MaxTransfer settings (if any is set up at all...).
  If you run kaffe from a SCSI drive, it can also be a drive and/or host
  adaptor with reselection problems. In that case disable reselection.



                              KNOWN BUGS
                              ==========

KNOWN BUGS of the current version

- Not all pointer access are checked for null pointer accesses. However,
  kaffe should work better now than in the last few versions.



KNOWN BUGS of former versions

* distributions before V0.9.0

- NullPointerExceptions were not generated at all. The kaffe code relied on
  SIGSEGV signals for NULL pointer access, which cannot work on AmigaOS.
  *NOTE* On NULL pointer access you *will* encounter Enforcer hits.
  These can even crash your computer...

* distributions before V0.7.1

- When kaffe simply aborts with 'EMT Trap', then you have probably an
  executable compiled for Amigas with coprocessors (binary archives from
  GG were compiled with -m68881 by accident and the configure script
  added the options -m68020-40 and -m68881).

* distributions before V0.7.0

- kaffeh produced loads of (most times harmless) Enforcer hits and
  generated wrong files sometimes.

- kaffeh liked to abort with 'Bus error' when invoked without the
  '-stubs' option.

* distributions before V0.6.0

- kaffeh of distributions before V0.6.0 used a different CLASSPATH scheme
  (':' as seperator).

- kaffevm/thread.c did not compile without warnings because of the thread
  switching macros.

- kaffe-0.5p4 aborted with an 'Exception thrown on NULL object' when the
  classes.zip file (see below) couldn't be found. kaffe-0.5.5 simply
  crashes, however. Begining with kaffe-0.6.0 this abnormal exception is
  caught.


KNOWN COMPILATION BUGS of former versions

* distributions before V0.7.1

- Kaffe was compiled with -m68020-40 and -m68881 by accident.

- Several version did not compile when fetched from Tim's original kaffe
  site. The GG versions had several bug fixes.


NONWORKING CLASSES

- some tests in regression still fail

* distributions before V0.9.0

- exception/NullTest  (see BUGS)
- exception/StackDump
- some more...


OTHER NOTES

* distributions before V0.7.1

- The thread switching code was not perfect. However, you should not notice
  that except when compiling kaffe...



That's it, folks :)

Matthias Hopf
<mshopf@informatik.uni-erlangen.de>


----
* Java and Javasoft are registered trademark of Sun Microsystems, Inc.

