Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

3313 lines (2391 sloc) 130.675 kB
Sun Jul 12 00:24:27 1998 Godmar Back <>
* kaffe/kaffevm/classMethod.c: fixed race condition and
lock problem in loadClass.
Fri Jul 10 20:41:54 1998 Godmar Back <>
* kaffe/kaffevm/systems/unix-jthread/jthread.[ch]:
config/i386/freebsd2/md.h: added macros SAVE_FP, LOAD_FP, and
SAVED_FP_SIZE for architectures where the threading system must
save the floating point state.
Wed Jul 8 15:24:17 1998 Godmar Back <>
* kaffe/kaffevm/baseClasses.c: preload java.lang.NullPointerException.
kaffe/kaffevm/jit/machine.[ch]: added jit_flag NULLPOINTER to obtain
information when null pointer exceptions are caught. Modified
CHECK_NULL to sync registers if that is the case.
test/regression/ new file
Mon Jul 6 17:43:04 1998 Godmar Back <>
* kaffe/kaffevm/thread.[ch];locks.c;baseClasses.c:
added initialise function to threading interface to remove
bogus assumptions from initialization process. Changed
locks.c to properly handle the case where currentNative==0.
Sun Jul 5 15:05:25 1998 Godmar Back <>
* libraries/clib/native/Class.c: do not report superclass for
interfaces. Do not include methods of java.lang.Object for
interfaces. Include superinterfaces properly.
test/regression/ new file to test above
* libraries/clib/native/ObjectInputStream.c:
libraries/clib/native/ObjectOutputStream.c: make sure that
invokeObjectReader/Writer will not look in superclasses,
which makes no sense.
Fri Jul 3 18:33:44 1998 Godmar Back <>
* libraries/clib/native/Class.c: don't report
for arrays
* libraries/clib/native/ObjectStreamClass.c: fixes to primitive
classes, include static fields in ObjectStreamField arrays
* libraries/clib/native/ObjectInputStream.c: fixes to loadClass0
kaffe/kaffevm/classMethod.c: set array flags and interfaces right.
* test/regression/ new file.
Wed Jul 1 19:20:23 1998 Godmar Back <>
* libraries/clib/native/Class.c: implemented makeExceptions
added fields declared_exceptions to method struct to hold the
constant pool indices of declared exceptions.
test/regression/TestScript: changed output for Bean and Reflect.
Tue Jun 30 23:47:14 1998 Godmar Back <>
* libraries/clib/native/ObjectStreamClass.c: implement missing
methods and fixed methods returning signatures.
Mon Jun 29 16:16:23 1998 Godmar Back <>
* libraries/clib/native/ObjectStreamClass.c: exclude transient
fields from serialization.
Fri Jun 26 20:06:02 1998 Godmar Back <>
* libraries/clib/native/Method.c:
libraries/clib/native/Constructor.c: fixed Constructor.newInstance
and Method.invoke so that the proper JNI function is used.
* libraries/clib/native/Class.c: fixed the getConstructor methods
to *not* follow their superclass pointers when reflecting
test/regression/TestScript: fixed test result.
Wed Jun 17 11:25:56 1998 Godmar Back <>
* kaffe/kaffevm/code-analyse.c: fixed race condition where verifier
was reentered by finalizer between verifyMethod and tidyVerifyMethod.
* kaffe/kaffevm/gtypes.h: replaced EXIT and ABORT macros with calls
to JVM/JNI hooks.
various files: Changed all occurrences of abort->ABORT and of
Mon Jun 15 12:33:25 1998 Alexandre Oliva <>
* kaffe/kaffevm/findInJar.c (classpath): dynamically grow.
* kaffe/kaffevm/support.c (callMethodA): do not assume args
is MAXMARGS long.
Sat Jun 6 17:52:14 1998 Godmar Back <>
* libraries/clib/native/Method.c: used JNI to implement
InvocationTargetException as recommended by Tim.
test/regression/ new file
test/regression/ new file
test/regression/TestScript: added two small tests InvTarExcTest,
* libraries/clib/native/ClassLoader.c: fixed processClass to
process to CSTATE_OK, needed for Method.invoke on a static method.
Thu Jun 4 18:47:51 1998 Godmar Back <>
* config/config-hacks.h: added DOUBLE_ORDER_OPPOSITE for arm32
software floating point emul where the order of double is the
opposite of the order of long long.
kaffe/kaffevm/constants.c: take DOUBLE_ORDER_OPPOSITE into account
when reading doubles from class files
libraries/clib/native/Double.c: fixed longBitsToDouble & Co. for
arm32; libraries/clib/native/Float.c: made BitToFloat more portable.
* libraries/clib/native/TestNative.c: new tests that test calling
test/regression/ native methods, only in DEBUG mode
libraries/clib/native/ added TestNative.c
libraries/clib/native/external_wrappers.h: added TestNative_
functions (only when debugging enabled.)
* kaffe/kaffevm/debug.[ch]: added more debug options.
kaffe/kaffevm/intrp/machine.c: converted to new debugging scheme.
* kaffe/kaffevm/systems/unix-internal/internal.c: removed flag_preempt
kaffe/kaffe/main.c, kaffe/kaffevm/systems/unix-jthreads/internal.c:
got rid of flag_preemption (formerly -nopreempt), use
JTHREADNOPREEMPT vmdebug option instead.
* kaffe/kaffevm/support.h: upped MAXMARGS to 64 for TestNative and
added comment explaining callMethodInfo for other porters.
kaffe/kaffevm/support.c: added XXX to check for callsize overflow.
* config.sub, config/arm32/*: added NetBSD/arm32 port.
Wed Jun 3 11:48:15 1998 Kiyo Inaba <>
Godmar Back <>
* config/sparc/sunos4/md.h, kaffe/kaffevm/,
SunOS4 changes: removed use of += construct in Makefile,
corrected SP_OFFSET
kaffe/kaffevm/systems/unix-jthreads/jthread.h:, config/ included test for SunOS4 on_exit
Thu May 28 13:57:47 1998 Godmar Back <>
* kaffe/kaffevm/jar.[ch]: removed use of stdio.
Thu May 28 11:31:43 PDT 1998 Tim Wilkinson <>
* Merged in Transvirtual's implementation of Java Native Interface
(JNI) calling mechanism.
This conforms to the JNI specified in JDK 1.1.
Wed May 27 21:48:41 1998 Godmar Back <>
*, at all levels: added depend target;
copied and adapted from Pat Tullmann's build env <>
README.depend: new file describing the changes.
Wed May 27 12:39:02 PDT 1998 Rémi Perrot <>
* config/m68k/common.h, config/m68k/linux/md.h: Fixed configuation
so now works on Linux.
Tue May 26 17:03:18 PDT 1998 Alexandre Oliva <>
* kaffe/libraries/clib/native/Method.c
(java_lang_reflect_Method_invoke): wrap non-Object return types
Tue May 26 09:45:50 1998 Godmar Back <>
* kaffe/kaffevm/system/unix-internal/internalCalls.c
include/jsyscall.h: added fstat to syscall interface as
suggested by Robert S. Thau <>
kaffe/kaffevm/findInJar.c: included jsyscall.h
Mon May 25 15:02:26 1998 Godmar Back <>
* kaffe/kaffevm/debug.[ch]: new debug options.
kaffe/kaffevm/system/unix-jthreads/jthread.c various fixes
kaffe/kaffevm/mem/gc-mem.[ch]: new freelist scheme
Fri May 22 14:55:35 PDT 1998 Alexandre Oliva <>
* libraries/clib/math/BigInteger.c
(java_math_BigInteger_plumbModInverse): implement
(java_math_BigInteger_plumbSquare): implement
(java_math_BigInteger_plumbGeneratePrime): remove
* libraries/clib/math/BigInteger.h
(java_math_BigInteger_plumbGeneratePrime): remove
* libraries/clib/math/external_wrappers.h
(java_math_BigInteger_plumbGeneratePrime): remove
Tue May 19 18:02:55 1998 Godmar Back <>
* kaffe/kaffevm/debug.[ch]: new files. Support for debugging.
thread.c: eliminated DBG macros and converted to new debugging scheme
kaffe/kaffevm/system/unix-jthreads/*: ditto
kaffe/kaffe/main.c: ditto, added support for -vmdebug flag
Mon May 18 18:00:00 1998 Stephen Crane <>
* kaffe/kaffevm/support.c: separated most of execute_java_constructor()
out into execute_java_constructor_v() which is easier to call from
native code.
Sat May 16 23:27:54 1998 Godmar Back <>
* kaffe/kaffevm/system/unix-jthreads/jthread.c: fixed bug in
internalYield, added deadlock detection.
Fri May 15 17:07:36 1998 Godmar Back <>
* kaffe/kaffevm/thread.c: set initially to null
instead of an array of length null to fix ThreadGroup creation problem.
Thu May 14 15:04:09 1998 Godmar Back <>
* test/regression/TestScript: added GCTest
* test/regression/ new file, courtesy
Pat Tullmann <>
* kaffe/kaffevm/mem/gc-incremental.c: fixed nasty race condition
where gc freed newborn objects. See comment in file.
Wed, 13 May 1998 22:13:04 -0700 Lincoln Myers <>
* libraries/clib/net/PlainSocketImpl.c: Added support for
Tue May 12 09:51:42 1998 Godmar Back <>
* kaffe/kaffevm/mem/gc-incremental.c: avoid calling markObject with
NULL; added missing LOCK/UNLOCK for list manipulation
* kaffe/kaffevm/mem/gc-mem.c: released gc_lock if running out of
memory; filled freed objects with pattern to help debugging.
Sun May 10 17:33:21 1998 Alexandre Oliva <>
* libraries/clib/native/Field.c (java_lang_reflect_Field_get):
wrap shorts as shorts, not booleans
(java_lang_reflect_Field_set): handle references before other
types, for speed and because val may be null. Compare the class
of val with javaLang*Class objects, instead of class names.
* libraries/clib/native/Array.c: full reimplementation of all
get and set methods, with error checking and wrapping.
(java_lang_reflect_Array_multiNewArray): dims array must be large
enough to contain the trailing zero.
* kaffe/kaffevm/ specify output file in .c.o rule
* kaffe/kaffevm/soft.c: (soft_multianewarray) interpreter
would incorrectly set up the array of dimensions.
* kaffe/kaffevm/kaffe.def: (INVOKESTATIC) mtable is no longer used
here, do not alloc it
* config/sparc/jit-sparc.def: (branch) fix opcode for bugt
* config/sparc/sunos4/md.h: declare several internal functions not
declared in standard header files
* include/ (BUILT_INCLUDEFILES) new variable
* kaffe/kaffevm/intrp/Makefile.frag: ensure that machine.o depends
on machine.c and kaffe.def
Wed May 6 14:48:49 PDT 1998 Alexandre Oliva <>
* config/sparc/jit-sparc.def: (build_key) add missing semicolon.
(returnarg_long) swap i0 and i1, when needed.
* config/sparc/common.h: (sysdepCallMethod) total rewrite,
in order to correctly handle jlongs and jdoubles arguments and
return values, as well as long (>6 words) argument lists.
* kaffe/kaffevm/support.c: (callMethodV) assume jboolean,
jshort, jbyte and jchar are all promoted to jint, just like
most of kaffe.def does. Fixed handling of jdouble and jlong.
Tue Apr 14 15:53:40 1998 Godmar Back <>
* libraries/clib/native/Class.c: added check for parameters
in getMethod0 and getConstructor0.
Fri Apr 10 00:52:06 1998 Godmar Back <>
* Fixes for ClassLoader
* kaffe/kaffevm/classMethod.[ch]: exported lookupClassEntry
* kaffe/kaffevm/constants.c: do not require lock if no centry
* libraries/clib/native/ClassLoader.c: classes loaded from byte
arrays now get their classEntry, added various checks
* test/regression/TestScript: added test case for ClassLoader
* test/regression/, test/regression/ new files
Thu Apr 9 14:30:59 1998 Godmar Back <>
* New internal threading system added. Should run on FreeBSD,
Linux, and Solaris. Use --with-threads=unix-jthreads to enable.
This system is preemptive and uses asynchronous I/O.
* Added more regression test cases for new system.
Mon Mar 30 10:52:13 PST 1998 Tim Wilkinson <>
* Too much stuff has changed to document it all here. Sorry.
Wed Jan 14 15:18:36 GMT 1998 John C. Hayward <>
* config/i386/netbsd1/md.h: Fixed stack pointer offset.
Wed Jan 14 15:18:36 GMT 1998 Todd T. Fries <>
* Support for Openbsd on Sparc.
Fri Oct 24 17:54:56 BST 1997 Tim Wilkinson <>
* config/{alpha,i386,sparc,m68k}/jit.h: Labels now specific
to architecture rather than common in jit/label.c. This is
necessary since all labels are not supported in the same way
even if they have the same label type.
* kaffe/kaffe/ Added EXTRA_CFLAGS.
* kaffe/kaffevm/ Added EXTRA_CFLAGS.
* kaffe/kaffevm/kaffe.def: Optimised and merged some instructions.
* kaffe/kaffevm/kaffe.def: Detect null methods and insert call to
* kaffe/kaffevm/kaffe.def: Handle new method_sig() macro.
* kaffe/kaffevm/lookup.c: Removed regeneration of dtable.
* kaffe/kaffevm/lookup.h: Added 'name' to callInfo.
* kaffe/kaffevm/soft.c: Added soft_nosuchmethod function.
* kaffe/kaffevm/jit/icode.c: Added softcall_nosuchmethod function.
* kaffe/kaffevm/jit/label.c: Made all labels conditionally included.
* kaffe/kaffevm/jit/label.h: Removed arch. dependent labels.
* kaffe/kaffevm/intrp/icode.h: Added softcall_nosuchmethod macro.
* kaffe/kaffevm/jit/machine.h: Added method_name and method_sig.
* kaffe/kaffevm/intrp/machine.h: Added method_name and method_sig.
* kaffe/packages/ Uncommented
function which are now implemented.
* Fixed assignment
of NULL entries to arrays in arraycopy.
Thu Oct 23 21:44:03 BST 1997 Tim Wilkinson <>
* kaffe/kaffevm/classMethod.c (addField): Resolve all primitive
classes at load time so we can set the FIELD_SIZE for everything
at this point. This simplified lots of size reckoning code later
on and means all unresolved fields are references.
Mon Oct 20 20:10:10 -0200 1997 Alexandre Oliva <>
* config/mips/threads.s: Fix for assembly code to make it more
GNU as and MIPS as friendly.
Wed Oct 15 17:19:24 1997 Per Bothner <>
* kaffe/kaffevm/findInJar.c (findClass): Gets Utf8Const*, not char*.
(findClass): Remove unneeded buffer. Allocate class object if needed.
(findInJar): Generate name of class object using same mangling as jc1.
* kaffe/kaffevm/classMethod.c (prepareClass): Set class->head.dtable
to ClassClass.dtable here instead of in loadStaticClass.
Don't do allocStaticFields if CSTATE_PRELOADED.
(insertClass): Renamed from registerClass.
(registerClass): Do gc_attach in addition to insertClass.
(loadClass): Don't allocate class object here - leave that to
findClass (since class may have been pre-compiled and hence static).
Wed Oct 15 17:19:24 1997 Per Bothner <>
* kaffe/kaffevm/classMethod.h (FIELD_ISREF): Also true if not resolved.
* kaffe/kaffevm/gc-incremental.c (gcStaticData): Don't need to walk.
* kaffe/kaffevm/object.c (walkClass): Fix walking of static objects.
Thu Oct 3 23:59:59 BST 1997 Tim Wilkinson <>
* Version 0.9.2 of Kaffe released.
Thu Oct 2 21:52:27 BST 1997 Tim Wilkinson <>
* kaffe/kaffevm/support.c: Added do_execute_... functions
which return longs, doubles and floats.
* kaffe/kaffevm/external.h: Provide defaults macros for making
C-to-Java calls.
* config/i386/jit.h: Added macros for making C-to-Java calls
and returning the correct type.
* config/i386/threads.h: Use new setjmp/longjmp thread system.
* kaffe/kaffevm/thread-internal.h: Added new setjmp/longjmp threading
* kaffe/kaffevm/gc-incremental.c: Fix finalization problems.
* kaffe/kaffevm/itypes.c: Added finishTypes which sets the
basic types dtables up correctly.
* kaffe/kaffevm/support.h: Added do_execute macros.
* java.lang/Object.c: Size fix to cloning objects.
* Added sockoptions.
* Thanks to Rene Leermakers from Philips Research for the new
more portable threading system.
Fri Sep 26 02:51:59 CEST 1997 Rainer Bieniek <>
* packages/ Fixes for
datagram systems.
Sat Sep 20 12:38:59 1997 Per Bothner <>
* kaffevm/string.c (hashUtf8String, hashChars): Fix hash algorithm
to match String.hashCode (for long strings).
Sat Sep 20 07:33:33 BST 1997 Tim Wilkinson <>
* license.terms: Updated license
* config/i386/jit.h: Changes to remove null static argument.
* config/m68k/jit.h: Changes to remove null static argument.
* config/sparc/jit-sparc.def: Changes to remove null static argument.
* config/sparc/jit.h: Changes to remove null static argument.
* include/java_lang_Thread.h: Updated thread structure for new
packed object style.
* include/java_lang_ThreadGroup.h: Updated thread group structure.
* include/jtypes.h: Added jbool type.
* kaffe/kaffeh/sigs.c: Changes to use new packed types rather than
padding to jint.
* kaffe/kaffeh/support.c: Changes to use new types.
* kaffevm/classMethod.c: Changes to use new packed types.
* kaffevm/errors.h: Added new exception types.
* kaffevm/external.c: Changed shared library/function system to
allow use by other subsystems.
* kaffevm/external.h: Changes to remove null static argument.
* kaffevm/findInJar.c: Added support for shared library jars.
* kaffevm/kaffe.def: Changes to remove null static argument and
to use new packed types.
* kaffevm/object.c: Remove x4 on objects size since its no longer
necessary. ALso no longer add in object base size.
* kaffevm/soft.c: Added new functions for GCC support and rewrite
some other functions to help GCC too.
* Updated library types to use new
unpacked types.
* Updated library types to use new
unpacked types.
* Updated library types to use new
unpacked types.
Fri Sep 19 00:00:00 BSD 1997 Richard Henderson <>
* config/alpha/...: Extensive bug fixes for Alpha ports.
Sun Jun 29 16:13:05 BST 1997 Tim Wilkinson <>
* kaffevm/intrp/machine.c: Emergency fixes to get interpreter
working again.
* kaffevm/baseClasses.c (initBaseClasses): Removed explicit setting
of class object dtables.
* kaffevm/classMethod.c (loadStaticClass): Explicitly set class object
dtables after initialisation.
Sat Jun 28 14:10:40 BST 1997 Tim Wilkinson <>
* Version 0.9.1 of Kaffe released.
Thu Jun 26 16:28:23 BST 1997 Tim Wilkinson <>
* config.guess: Added QNX
* config.sub: Added QNX
* Added QNX
* NOTES/FAQ.amigaos: Updated Amiga comments.
* config/ Add a few new configuration options.
* config/alpha/trampolines.c: New file, of trampoline code.
* config/i386/trampolines.c: New file, of trampoline code.
* config/i386/qnx/...: New QNX configuration.
* config/m68k/amigaos/...: Updated amiga configuration.
* config/m68k/linux/...: Added new configuration.
* config/sparc/trampolines.c: New file, of trampoline code.
* kaffe/kaffevm/{external.c,flags.c,flags.h,kaffe.def,support.c,
jit/funcs.c}: Misc updates and bug fixes.
* Implement
available using select.
Thu Jun 26 12:45:59 1997 +0100 Jeppe Sommer <>
* Added QNX port for i386.
Sun Jun 15 20:09:18 BST 1997 Pat Tullman <>
* Various Change ';' to '&&' in makefiles where we cd
to avoid getting into loops where directories don't exist.
Sun Jun 15 16:49:51 BST 1997 Tim Wilkinson <>
* Updated to handle libkaffe_zip
* config/sparc/jit.h: Trampoline bug fix.
* kaffevm/classMethod.c: Various bug fixes.
* Added libkaffe_zip.
* Removed entries to zip
functions - now moved to own library.
* New files
for zip library.
* Removed files.
Thu Jun 12 13:22:53 BST 1997 Tim Wilkinson <>
* config/config-mem.h: Removed checked_malloc, etc. which are
no longer required.
* config/config-std.h: Added __NORETURN__ macro which is used with
* include/Array.h: New file for general array support.
* include/ New files installed.
* include/java_lang_Thread.h: New file specifying internal thread
* include/java_lang_ThreadGroup.h: New file specifying internal
thread group structure.
* include/java_lang_Throwable.h: New file specifying internal exception
* include/native.h: Added support for noreturn attribute under gcc.
Also added a few new function prototypes.
* kaffe/main.c: Simplified include files and tidied startup procedure.
* kaffeh/constants.c: Changed checked_malloc to gc_malloc_fixed.
* kaffeh/util.c: New support functions for kaffeh.
* kaffevm/access.h: Added ACC_TRANSLATED flag.
* kaffevm/baseClasses.c: Moved initializeClass into loadStaticClass.
* kaffevm/baseClasses.h: Use String include file and now use
standard access methods.
* kaffevm/classMethod.c: Moved class initialisation system into
a single function 'processClass'. This makes is much easier to
see how this all works and control what gets done when.
* kaffevm/classMethod.c: Handle changes in method structure.
* kaffevm/classMethod.c: Handle new structure for exception table.
* kaffevm/classMethod.c: Split reaolveStaticFields into two functions;
one to allocation, the other to initialise. This is necessary for
handling precompiled classes.
* kaffevm/classMethod.h: Reworked class states for new initialisation
* kaffevm/classMethod.h: Minor modifications to class, method and
field strucures to save space.
* kaffevm/code-analyse.c: Minor bug fixes and changes to handle
method changes.
* kaffevm/code-analyse.c: Minor bug fixes.
* kaffevm/code.c: Fixes to handle new exception table structure.
* kaffevm/code.h: Remove exception_table_length.
* kaffevm/constants.c: Rewrite constant pool classes and strings to
avoid extra indirection later on. This is necessary to handle
pre-compiled classes.
* kaffevm/constants.h: Added CONSTANT_Error.
* kaffevm/errors.h: Added message to IO exception.
* kaffevm/exception.c: Use new Throwable class type.
* kaffevm/exception.h: Modification for new exception table structure.
* kaffevm/external.c: Used new METHOD_NATIVECODE macro and
* kaffevm/findInJar.c: Detect compressed components of Jar file and
throw exception 'cause we don't handle them.
* kaffevm/gc-incremental.c: Added lots of statistics gathering stuff.
* kaffevm/gc-incremental.c: Fixed walking of white objects which
are finalised to avoid infinite loop.
* kaffevm/gc-incremental.c: Added gc_?_fixed functions to allocate
memory in general heap which isn't GCed.
* kaffevm/gc-mem.c: Various bug fixes. Also changed management of
page blocks so they are freed if the sub-blocks in them are all
freed. Gives better memory utilisation.
* kaffevm/gc-mem.c: Removed checked_? functions.
* kaffevm/gc-mem.h: Modified structures and flags.
* kaffevm/locks-internal.h: Modified way in which threads are queued.
* kaffevm/lookup.c: Various fixes to accomadate changes in various
* kaffevm/soft.c: Use new allocation methods; use new initializeClass.
* kaffevm/string.c: New file to handle all string related stuff.
* kaffevm/support.c: Moved much of the string stuff to string.c
* kaffevm/thread-internal.c: Modifeid way in whcih threads are queued.
* kaffevm/thread-internal.h: Modifeid way in whcih threads are queued.
* kaffevm/thread.c: Various bug fixes.
* kaffevm/thread.h: Use new Thread, ThreadGroup include files.
* kaffevm/util.c: Removed.
* keffevm/zextract.c: Flag compressed elements.
* kaffevm/intrp/machine.c: Handle new thread queuing.
* kaffevm/jit/icode.c: Handle partial emission of instructions to
avoid excessive memory use.
* kaffevm/jit/labels.c: Handle partial emission of instructions to
avoid excessive memory use.
* kaffevm/jit/machine.c: Handle partial emission of instructions to
avoid excessive memory use.
* kaffevm/jit/slots.c: Handle partial emission of instructions to
avoid excessive memory use.
* scripts/ Install new scripts.
* scripts/...: Added new script files.
* packages/ Updated to JDK 1.1.2
* packages/ Added java.lang.String and various
bug fixes.
* kaffe/main.c: Added printing of Java version this kaffe system
is emulating.
* kaffevm/flags.c: Put Java version number in here.
Wed Jun 11 10:17:53 1997 Per Bothner <>
* kaffevm/classMethod.c (registerClass): New function.
(internalAddClass): Use registerClass.
* kaffevm/classMethod.c (resolveStaticFields): Split into two parts:
(allocateStaticFields): Done at load (or ahead-of-time-compile) time
to allocate the space.
(resolveStaticFields): Handles initialisation of constants.
Wed Jun 11 14:44:01 BST 1997 Kurt J. Lidl <>
* New BSDI 3.x port for Sparc.
Thu Jun 05 01:54:37 MET1 1997 Matthias Hopf <>
* NOTES/FAQ.amigaos,config/m68k/amigaos/REPORT.amiga: Renamed ADE
(Amiga Developer Environment to GG (Geek Gadgets), its new name.
Wed Jun 4 17:32:52 BST 1997 Tim Wilkinson <>
* javasoft/APIcore/...: Replaced classes and properties with
new JDK 1.1.2 parts.
Sun 1 Jun 1997 13:47:35 CDT Richard Henderson <>
* Added trampolines for method dispatch. This avoids the need to
call a function to lookup a method's code, allowing direct dispatch
but stil allows code translation on demand.
Sun 1 Jun 1997 13:47:18 CDT Richard Henderson <>
* Various bug fixes.
Thu May 29 18:54:19 1997 Per Bothner <>
* kaffevm/stackTrace.c (buildStackTrace): Make stack trace be
array of lines of chars, not bytes. Protect against buffer overflow.
* java.lang/Throwable.c (java_lang_Throwable_printStackTrace0):
Print lines of char[] on either PrintStream or PrintWriter.
Wed May 28 13:54:30 1997 Per Bothner <>
* kaffevm/classMethod.c (resolveStaticFields): Simplification.
* kaffevm/classMethod.c (initialiseConstants): Change CONSTANT_String
to CONSTANT_ResolvedString.
(resolveStaticFields): Handle optionally resolved CONSTANT_String.
* kaffevm/code-analyse.h: Handle CONSTANT_ResolvedString.
* kaffevm/kaffe.def: Likewise.
* kaffevm/lookup.c (getClass): Update from CONSTANT_Class
to CONSTANT_ResolvedClass and save loaded class. Update callers.
Tue May 27 01:05:42 MET1 1997 Matthias Hopf <>
* config/ Added ALIGNMENTOF_VOIDP.
* Added Alignment test for void*.
* kaffevm/gc-incremental.c(scanConservative): Scaning memory in steps
of ALIGNEMNTOF_VOIDP instead of sizeof(void*).
Wed 28 May 1997 22:58:34 MDT Pat <>
* kaffe/kaffeh/...: Lots of bug fixes for kaffeh.
Sun 25 May 1997 15:33:02 Birddog <>
* Added port for m68k Linux.
Sat May 24 17:00:27 MET1 1997 Matthias Hopf <>
* NOTES/FAQ.amiga: Cleaned up Amiga FAQ and added additional info.
* config/m68k/amigaos/{BUGS,COMMONPROBLEMS}.amiga: Removed.
* config/m68k/amigaos/md.[ch]: Cleaned up machine dependend code
and removed hacks.
* config/m68k/amigaos/threads.h: Fixed include check.
* config/m68k/amigaos/md.h: Enabled null pointer checks for the
first time.
* kaffevm/{intrp,jit}/machine.h: Removed CHECK_NULL macros as they
depend on a flag setting in md.h which is included *way after*
machine.h in machine.c.
* kaffevm/{intrp,jit}/machine.c: Added updated CHECK_NULL macros.
* kaffevm/kaffe.def: Updated CHECK_NULL macros to new calling
* kaffevm/kaffe.def: Added loads of CHECK_NULL macro invocations.
Fri May 23 06:26:14 1997 Fila Kolodny <>
* config/i386,sparc,alpha/linux/jit-md.h: Only include headers from
asm directory if not GLIBC >= 2. Include signal.h, sigcontext.h, and
features.h if they can be found.
* config/ Correct typo. Add HAVE_ASM_SIGNAL_H,
* Add sigcontext.h, signal.h and features.h to
Tue, 20 May 1997 21:56:58 MET Artur Biesiadowski <>
* Added some simple native
Tue May 20 13:01:09 BST 1997 Eduardo Takahashi <>
* kaffevm/gc-mem.c: Fixes to size translation table - some values
were missed.
Thu May 15 11:36:11 BST 1997 Tim Wilkinson <>
* Version 0.9.0 of Kaffe released.
Thu May 15 09:30:15 BST 1997 Tim Wilkinson <>
* Various fixes, and modified checks for dlopen and
* config/ Added new HAVE_???
* config/i386/jit-i386.def: Modified IEEE flags. No longer round
down by default (we now use floor & ceil) since maths for Java
should round to nearest.
Removed cvt_float/double_int/long which are no longer used.
* config/i386/jit-icode.h: Removed HAVE_cvt_float/double_int/long.
* config/i386/sco3.2v5/md.h: Enable POSIX signals
* config/sparc/jit.h: Clobber extra registers in FUNCTION call macros.
* kaffe/main.c: Added support for maximum heap size, heap size
increament, and parsing of 'K' and 'M' in sizes.
* kaffeh/main.c: Removed throwOutMemory and added checked_malloc.
* kaffevm/baseClasses.c: Replaced signal with catchSignal function
to enable a more 'generic' handler to be used.
* kaffevm/classMethod.c: Removed setting of 'insn'.
Added new mechanism to set FIELD_CONSTIDX to avoid extra space
in field structure.
(resolveObjectFields) New way to handle Object sizes. Now add
it into offset for fields.
(resolveStaticFields) Rewrite of static field initialisers to handle
memory allocations and constantValues.
(initializeClass) Kill static initialiser method when it's been
done so the space will be garbage collected.
* kaffevm/classMethod.h: Added FIELD_CONST??? macros.
* kaffevm/code-analyse.c: Bug fixes to handle WIDE instructions
in basicblock analysis.
* kaffevm/errors.h: Added NEW_IO_EXCEPTION.
* kaffevm/exception.c: Changes signal for catchSignal.
(catchSignal) New function to handle signal depending on what
system we're using.
* kaffevm/findInJar.c: Bug fix to handle signals in reading of
class files.
* kaffevm/gc-incremental.[ch]: Lots of changes to integrate with new
allocation scheme.
* kaffevm/gc-mem.[ch]: New memory allocation scheme.
* kaffevm/kaffe.def: Changes to field access since we no longer need
to add in an extra object offset.
* kaffevm/object.c: Changes for new GC+MEM scheme.
* kaffevm/object.h: Removed OBJECT_DATA_OFFSET.
Added checked_pagealloc function.
* kaffevm/soft.c: Moved 1e300 to variable to avoid bug in some
Rewrote float/double_to_int/long functions to use floor and ceil
so avoiding need to understand default rounding mode (which should
be "nearest" anyhow).
* kaffevm/support.c: Modified way strings are finalized.
* kaffevm/thread-internal.c: Change signal to catchSignal.
Changed way finalizer are set from threads.
* kaffevm/thread.c: Modified thread walking to use new GC/MEM system.
* kaffevm/util.c: Moved checked_malloc and related calls out into
* kaffevm/intrp/machine.h: Removed field_data().
* kaffevm/jit/basecode.c: Removed useless field from sequences.
* kaffevm/jit/labels.c: Added new function resetLabels.
* kaffevm/jit/machine.c: Count code generated and bytecode translated.
Use this information to estimate the size of the resulting code when
allocating the generation buffer.
* kaffevm/jit/machine.h: Removed field_data().
* kaffevm/jit/seq.[ch]: Removed useless fields.
Thu May 15 09:30:15 BST 1997 Michael R Cook <>
* kaffeh/file.h: Fixed up macros to avoid portability problems.
Wed May 14 18:51:37 1997 Per Bothner <>
* kaffe/kaffevm/classMethod.c (buildDispatchTable):
Don't create a dipatch table slot for <init> (constructor) methods.
(initializeClass): Set state to CSTATE_DOING_INIT *before*
initializing super.
* kaffe/kaffevm/support.c (java_lang_String_intern): Renamed to
internJavaString to old name can be found by native.
Mon May 5 13:56:45 BST 1997 Tim Wilkinson <>
* Modified library search to address problems on
certain architectures.
* Added ARM options (not fully supported yet)
* Added native lock detection.
* config/config-math.h: Improved floor/ceil macros.
* Various: Now use Hjava_lang_Thread for thread structure.
* Various: Now use Hjava_lang_Class for class structure.
* config/mips/threads.h: Remove thread switch asms.
* config/mips/threads.s: Added thread assembly routines.
* config/sparc/solaris2/md.h: Added support for Sparc Prof compiler.
* include/kthread.h: Modified threading call macros to use 'standard'
names. This makes them simpler to use and easier to add native
* include/java_lang_Object.h: New file - what an object looks like.
* include/native.h: Added array of booleans.
* include/system.h: Changed vendor url.
* kaffe/main.c: Updates to new thread macros.
* kaffeh/ Now use STD_LIBRARIES.
* kaffevm/ Added findInJar.c and stackTrace.c
* kaffevm/baseClasses.c: Make Class, String, Object and System
classes static.
* kaffevm/baseClasses.c: Updated string constant creations.
* kaffevm/baseClasses.c: Add system class initialisers.
* kaffevm/baseClasses.c: Add internal class initialisers.
* kaffevm/baseClasses.h: Change class pointers to class structures.
* kaffevm/classMethod.c(setFieldValue): New function to set constant
values for static fields.
* kaffevm/classMethod.c(loadClass): Rearranged code and now use
linkClass rather than prepareClass.
* kaffevm/classMethod.c(loadStaticClass): Now takes class as
argument, attach to GC and linkClass rather than prepareClass.
* kaffevm/classMethod.c(resolveObjectFields): New function
made from resolveFields to resolve object fields.
* kaffevm/classMethod.c(resolveStaticFields): New function
made from resolveFields to resolve static fields. Set fields
to point at memory rather than offsets.
* kaffevm/classMethod.c(buildDispatchTable): Modify method to
avoid need for extra arguments.
* kaffevm/classMethod.c(prepareClass): Simplified unnecessary
state checks.
* kaffevm/classMethod.c(linkClass): Simplified unnecessary state
checks and move constant pool resolutions into its own function.
* kaffevm/classMethod.c(initializeClass): Tidy unnecessary state
checks and add call to initialiseConstant.
* kaffevm/classMethod.c(initialiseConstant): New function to
initialise constants in constant pool and set constant values in
class statics.
* kaffevm/classMethod.h: Update prototype layouts.
* kaffevm/classMethod.h: Added new CSTATEs.
* kaffevm/classMethod.h: Updated structure of Class and removed
* kaffevm/classMethod.h: Changed field offset to union for both offset
and address.
* kaffevm/classMethod.h: Added new macros for access field offsets
and field address.
* kaffevm/code-analyse.c: Initial stab at bytecode verifier.
* kaffevm/code-analyse.h: Initial stab at bytecode verifier.
* kaffevm/code.c: Record both constant pool index and class type in
exception table. This avoid having to resolve the classes until
an exception is thrown involving this handler.
* kaffevm/exception.c: Use new locking scheme.
* kaffevm/exception.c: Removed buildStackTrace and move to new one
in stackTrace.c
* kaffevm/exception.h: Updated exception table.
* kaffevm/external.c: If we can't find a library using the 'libkaffe_"
prefix we fall back on the standard "lib" prefix.
* kaffevm/gc-incremental.c: Updated locks.
* kaffevm/gc-incremental.c: Added indirection scheme to allow GC to
operate on static memory.
* kaffevm/gc-malloc.c: Tidied up a few bugs in implementation.
* kaffevm/gtypes.h: Tidied up definition of various types.
* kaffevm/itypes.c: Change internal classes from pointers to
* kaffevm/kaffe.def: Changed PUT/GETSTATIC to use FIELD_ADDRESSes
rather than offsets.
* kaffevm/locks.c: Implement new locking scheme (easier to integrate
with native scheme).
* kaffevm/locks.h: Implement new locking scheme (easier to integrate
with native scheme).
* kaffevm/object.c: Removed old 'alloc_?" functions.
* kaffevm/object.c(newObject): Updated to avoid need for explicit size
* kaffevm/object.c(newMultiArray): New function to create multi-dim
* kaffevm/object.c(walkClass): Updated to handle new form of static
class data.
* kaffevm/object.h: Updated for new functions and use of
* kaffevm/readClass.c: Update to pass various class, method and field
pointers to attribute handlers.
* kaffevm/readClassConfig.h: Updated macros and added handler for
constant values.
* kaffevm/soft.c: Updated to stop using 'alloc_?' calls.
* kaffevm/support.c: Updated to stop using 'alloc_?' calls.
* kaffevm/support.c(unimp): New function to generate internal
exceptions for unimplemented functions.
* kaffevm/thread.c: Rewrite to allow easier integration of native
threads. Also make changes for JDK 1.1.1.
* kaffevm/thread.h: Rewrite to allow easier integration of native
threads. Also make changes for JDK 1.1.1.
* kaffevm/threadCalls.c(threadedRecvfrom): New function.
* kaffevm/intrp/machine.c: Various fixes to handle new startup
* kaffevm/jit/machine.c: Use new locking scheme.
* Added new properties for install.
* JDK 1.1.1 classes.
* Updated function wrappers for
non-shared library systems.
* Updated file lists.
* Updated for JDK 1.1.1
* Updated for
JDK 1.1.1
* Updated for
JDK 1.1.1
* Updated for
JDK 1.1.1
* Updated for
JDK 1.1.1
* Update for JDK 1.1.1
* Updated for
JDK 1.1.1
* Updated for JDK 1.1.1
* Updated for
JDK 1.1.1
* Updated for JDK 1.1.1
* Updated for JDK 1.1.1
* Updated for
JDK 1.1.1
* Updated for
JDK 1.1.1 (not quite fixed yet)
* Added new files.
* Updated for
JDK 1.1.1
* Updated for
JDK 1.1.1
* Updated for
JDK 1.1.1
Fri Apr 25 14:48:00 1997 Daniel.Veillard <>
* kaffe/kaffevm/findInJar.c: New function 'addClasspath' to
add an extra path element to the class path.
Wed Apr 23 23:53:02 1997 James Dempsey <>
* kaffe/kaffevm/support.c: Fix to javaString2CString to handle
null strings.
Wed Apr 23 14:37:04 1997 Per Bothner <>
* kaffe/kaffevm/classMethod.h (struct _methods): Remove unused
outs field. Change some int fields to short, and re-arrange
to save 12 bytes per method.
* kaffe/kaffevm/classMethod.c (countInsAdnOuts): Ins and outs
are now short* instead of int*.
* kaffe/kaffevm/lookup.h (callInfo): In and out fields are now short.
Thu Apr 17 13:40:00 BST 1997 Tim Wilkinson <>
* Version 0.8.4 of Kaffe released.
Thu Apr 17 13:35:39 BST 1997 Tim Wilkinson <>
* Various small bug fixes which I forgot to make a note of.
Sat Mar 29 15:22:59 GMT 1997 Tim Wilkinson <>
* Snapshot taken for book "Java Secrets" by Elliotte Rusty Harold.
Sat Mar 29 15:11:49 GMT 1997 Tim Wilkinson <>
* kaffevm/slib.h: Modified selection of shared library system.
* config/ Added undefs for dlopen, shl_load and others.
* Ditto.
* kaffevm/baseClasses.c: Added thread.h to fix missing currentThread.
* kaffevm/classMethod.c: Added thread.h to fix missing currentThread.
Sat Mar 29 15:11:49 GMT 1997 Ulrich Albrecht <>
* kaffevm/{error.h,support.c}: Catch attept to instantiate abstract
classes and interfaces.
* java.lang/Class.c: Fixed getInterfaces to it works again.
Sat Mar 29 15:11:49 GMT 1997 Guido Flohr <>
* kaffevm/external.c: ifndef around declaration of libhandle array.
Sat Mar 29 15:11:49 GMT 1997 Alexandre Oliva <>
* kaffevm/ Added NET_LIBRARIES to standard libs for
non-shared link.
Wed 26 Mar 1997 16:11:29 +0100 Daniel Veillard <>
* kaffe-0.8.3/config/powerpc/threads.h: Fixed labels to be usable
on native assembler.
Mon Mar 24 22:46:11 GMT 1997 Tim Wilkinson <>
* kaffevm/{slib.h,external.c}: Added check for duplicate library
loads by storing and checking libray names. This is necessary
for the NeXTStep system and not a bad idea anyhow.
Fri Mar 21 09:37:09 GMT 1997 Tim Wilkinson <>
* Version 0.8.3 of Kaffe released.
Thu Mar 20 23:38:52 GMT 1997 Tim Wilkinson <>
* configure: Now can be used with all OSes (including win32).
* configure.win32: Removed
* config.guess: Added type to recongnise Cygnus's Win32 toolkit.
Wed 19 Mar 1997 16:12:27 MET Frank Mehnert <>
* kaffevm/classMethod.h: Added CSTATE_DOING_LINK
* kaffevm/classMethod.c: Handle CSTATE_DOING_LINK so we don't link
a class more than once.
Tue Mar 18 21:52:58 GMT 1997 Tim Wilkinson <>
* config/sparc/threads.h: Recoded thread switch routine to avoid
some assembly problems.
* kaffevm/thread.c: Fixed up various aspects of thread death so
dead threads will be correctly removed and GCed.
* APIcore/{Runtime.c,UNIXProcess.c,ProcessReaper.c}: Had yet
another go at coding up the exec system.
* kaffevm/thread.c: Modified allocation/deallocation of thread
contexts to make use of finalizing to tidy up. This saves space.
Also made thread context table dynamic to avoid running out.
Thu Mar 13 22:26:36 1997 Per Bothner <>
More JDK1.1 support, mostly java.lang.reflect.Field.
* kaffe/kaffevm/support.c (equalUtf8JavaStrings): New function.
* .../lib/java.lang/Class.c: Added isPrimitive, isArray,
getComponentType, and isAssignableFrom.
* .../lib/java.lang/Field.c: New file, with (incomplete) support
for the JDK 1.1 reflection features for Fields.
Wed Mar 12 22:11:03 GMT 1997 Tim Wilkinson <>
* kaffevm/lookup.c: If method cannot be found, allocate a dummy
which points to an exception. This means we only generate the
relevant exceptions when the call is actually made (as per spec).
* kaffe/scripts/ Used INSTALL_SCRIPT rather than
* kaffevm/zextract.c: Round mprotect() call size up to pagesize
to avoid a bug on BSDIs.
* kaffevm/object.c: Added walkClass function so we only follow
the references in classes to GC'able objects.
Wed 12 Mar 1997 17:58:38 Daniel Veillard <>
* config/alpha/osf/md.c: Fixed defines which are not available
on some systems.
Mon 10 Mar 1997 17:58:33 Bernie Solomon <bernard@UG.EDS.COM>
* kaffeh/support.c: Handle doubles which might be badly aligned.
Mon Mar 10 11:37:37 GMT 1997 Tim Wilkinson <>
* Marged in new version of BISS-AWT (version 0.87)
Fri Mar 7 11:19:13 GMT 1997 Tim Wilkinson <>
* kaffevm/gc-incremental.c: Modified finalisation of strings.
* kaffevm/support.c: Added string finalizer.
* kaffevm/gc-incremental.[ch]: Merged walk and finalize functions into
single gcFuncs pointer to save space.
Thu Mar 6 22:53:51 1997 Per Bothner <>
Various changes for Java 1.1 support, enabled by USING_JDK_1_1.
* kaffe/kaffvm/baseClasses.c: Explicitly load java.lang.System
as new variable SystemClass, and call initializeSystemClass.
* kaffe/kaffevm/baseClasses.h: Rename _stringClass -> String.
* kaffe/kaffevm/itypes.[ch]: Make primitive Classes non-static.
* .../lib/java.lang/{Class,Double,Float,System}.c: Add new native
methods needed for JDK 1.1.
Intern strings created from literals.
* kaffe/kaffevm/baseClasses.h ({SET_,}STRING_IS_INTERNED): New macros.
* kaffe/kaffevm/gc-incremental.c: An UNFINALIZED String means
it was interned, and needs to be uninterned.
* kaffe/kaffevm/support.c: Code to maintain the hashtable of
interned Strings.
* kaffe/kaffevm/util.c: Rename strhash* variable to utf8hash* to
avoid confusion with new strhash String intern table in support.c.
* kaffe/kaffevm/gc-incremental.c (walkThreadCtx): Hack to only
walk the active part of the (current) stack.
Wed 5 Mar 1997 14:17:17 MST Godmar <>
* Minor fixes to Datagrams.
Wed Mar 5 15:10:01 GMT 1997 Tim Wilkinson <>
* kaffevm/slib.h: Abstracted shared library loading into more general
* kaffevm/external.c: Use new shared library macros to aid portability.
Tue 4 Mar 1997 14:27:44 Bernie Solomon <bernard@UG.EDS.COM>
Laura Dickey <>
* config/parisc/...: Added PARISC configuration for HP-UX.
Tue 4 Mar 1997 13:00:20 MET Michael Eriksson <>
* config/sparc/netbsd1/jit-md.h: Added JIT support for NetBSD on
Thu Feb 27 18:22:02 1997 Per Bothner <>
* kaffe/kaffevm/gc-incremental.[hc]: Replaced walkObject with
functions stored in the new walk field of gcInfo. This allows us
to use non-conservative scanning more often. It also allows us to
*not* scan primitive arrays (which contain no pointers).
Size of gcInfo reduced by 8 bytes on typical 32-bit machines.
* kaffe/kaffevm/thread.c: Changed it so that thread stack
is in same object as thread ctx. This allowed various gc-related
simplifications, and makes it easier in the future to scan only
the *active* part of the stack.
* kaffe/kaffevm/gtypes.h: Define Array as typedef for struct Array.
* kaffe/kaffevm/locks.h (iMux): Remove __align field__.
* kaffe/kaffevm/object.h (struct _object): Move aasize field
to struct Array. With iMux change, this reduces size of each
object by 8 bytes; including gcInfo changes, each (non-Array) Object
is now 16 bytes shorter.
(struct Array): New. Update ARRAY-related macros.
* kaffe/kaffevm/object.h: Renamed OBJECT_SIZE to ARRAY_SIZE_OFFSET,
since it is now only valid for Arrays.
Rename OBJECT_DTABLE, OBJECT_DATA by appending _OFFSET to names.
* kaffe/kaffevm/{jit,intrp}/machine.h: Update renamed macros.
* kaffe/kaffevm/classMethod.h (struct _classes): Change accflags type.
(struct _method): Remove outtype - not used.
* kaffe/kaffevm/classMethod.h (addmethod): Don't set method.outtype.
* kaffe/kaffevm/object.c: Update to use new allocation functions.
* kaffe/kaffevm/soft.[ch] (soft_anewarray): Function becomes macro.
* kaffe/kaffevm/support.c: Use ARRAY_DATA where needed.
* kaffe/kaffe/main.c: Update.
* include/native.h: Update for new array layouts.
* packages/
(java_lang_System_arraycopy): Use ARRAY_DATA. Follow spec better.
* packages/,
Mon Mar 3 10:31:03 GMT 1997 Tim Wilkinson <>
* Version 0.8.2 of Kaffe released.
Wed Feb 26 23:20:49 GMT 1997 Tim Wilkinson <>
* APIcore/lib/java.lang/Runtime.c: Rewrote execInternal to use
* APIcore/lib/java.lang/UNIXProcess.c: Implemented primitives for
managing processes.
* Added test directory into configuration.
* test/Makefile: Added target to run test script.
* test/TestScript: Added simple test script. Will add more
tests in the future.
Wed, 26 Feb 1997 14:00:26 +0000 Bernie Solomon <bernard@UG.EDS.COM>
* APInet/lib/ Fix socket binding to
retrieve socket number if lport == 0.
Sun Feb 23 23:18:54 1997 Per Bothner <>
* config/sparc/threads.h (THREADINIT): Set regstore[%fp]
to same as restore[%sp]. Seems to be needed ...
* config/sparc/jit-sparc.def (adc): Fix opcode 0x10 -> 0x08.
Sun Feb 23 17:48:42 GMT 1997 Tim Wilkinson <>
* kaffevm/jit/icode.c: Merged in ?_ref instructions rather than
aliasing them to ?_int instructions. This tidies up things between
32-bit and 64-bit architectures and one where there are different
types of registers.
* kaffevm/jit/icode-common.h: Removed.
* config/i386/jit-icode.h: Added in HAVE_?_ref definitions.
* kaffevm/util.c (checked_free): Added check for freeing 'null' which
causes problems on some allocators.
* kaffevm/util.c (checked_realloc): Added check for reallocing 'null'
and diverted it to malloc. Causes problems on some allocators.
Fri Feb 21 17:33:24 CST 1997 Richard Henderson <>
* config/m68k/aux/threads.h: Clean up a bit.
* config/m68k/jit-icode.h: Define move_any and ngc_int.
* config/m68k/jit-m68k.def: Define move_any and ngc_int.
(load_float): Get output register for write.
(return_long): Use HSLOT & LSLOT.
(returnarg_long): Oops. Slotting was backward. Now use [HL]SLOT.
* config/m68k/jit.h: Oops. RETURN_LONG_* backward.
* kaffe/kaffevm/jit/icode.c (mon_enter, mon_exit):
Move test for ACC_SYNCHRONISED from here ...
* kaffe/kaffevm/jit/basecode.h (monitor_enter, monitor_exit):
... to here. The main reason for this was to be able to put
debugging assertion macros in local() and stack(), but seems a
good idea anyway.
* kaffe/kaffevm/jit/icode-common.h: Remove load_*any* and store_*any*.
* kaffe/kaffevm/jit/icode.c: Conditionally add move_any, move_anylong,
(neg_long): Use ngc_int if available.
* kaffe/kaffevm/jit/machine.c (translate): Set stackno each time
round from the code-analyse data.
* kaffe/kaffevm/kaffe.def (LDC1, LDC2, LDC2W): More completely
decode the constant type.
Wed 19 Feb 1997 16:10:13 -0500 Juan J. Collas <>
* config/m68k/*/threads.h: Fixed garbage collection bug. Base
of stack wasn't being stored so garbage collector removed it.
Tue 18 Feb 1997 09:44:43 CST Richard Henderson <>
* Various bug fixes for Alpha port.
Mon Feb 17 23:48:45 GMT 1997 Tim Wilkinson <>
* kaffevm/kaffe.def (AASTORE): Added call to soft_checkarraystore so
we can generate ArrayStoreExceptions for incorrect array stores.
* kaffevm/soft.c: Added soft_checkarraystore function.
* kaffevm/jit/icode.c: Added softcall_checkarraystore function.
* kaffevm/intrp/icode.h: Added softcall_checkarraystore macro.
Mon Feb 17 23:03:22 GMT 1997 Tim Wilkinson <>
* Version 0.8.1 of Kaffe released.
Mon Feb 17 13:33:46 CST 1997 Richard Henderson <>
* config/alpha/jit.h: Bounce calls to native C functions through
a trampoline.
* kaffevm/jit/machine.c (translate): Added support for native call
Mon Feb 17 12:54:53 GMT 1997 Tim Wilkinson <>
* kaffevm/jit/code-analyse.[ch]: Added in new code analyser.
Currently this just determines basic blocks, exception blocks
and stack pointers. Ultimately this will also include the
bytecode verifier.
* kaffevm/jit/machine.c: Removed old findBlocks system.
* kaffevm/jit/codeinfo.h: Removed.
Mon, 17 Feb 1997 00:17:36 -0600 (CST) Richard Henderson <>
* config/m68k/jit*: Added in JIT system for m68k.
Sat, 15 Feb 1997 21:24:40 +0100 Piers Uso Walter <>
* config/config-io.h: Now conditionally include <bsd/libc.h>
* kaffevm/classMethod.c: Added ';' on label to prevent compiler
Fri, 14 Feb 1997 15:38:47 +0200 Esa Salonen <>
* kaffevm/intrp/machine.c: Avoid calling native() when ncode has
already been found.
Thu Feb 13 22:15:39 1997 Per Bothner <>
Preparatory changes to later support java.lang.reflect.Method.
* kaffevm/classMethod.h: In Class, replace linked list methodList
by array methods. Add nmethods fields. Add corresponding macros.
* kaffevm/lookup.c (findMethodFromPC) to classMethod.c.
Use the classPool to search all methods for a match.
(methodList): Removed no longer needed global.
In Method, remove next and exception_next fields.
* config/sparc/jit.h (CALL_KAFFE_FUNCTION_VARARGS): Set retval.
Thu Feb 13 23:54:05 GMT 1997 Tim Wilkinson <>
* APIcore/lib/java.lang/System.c: Added array and range checks
to arraycopy since this is a public method.
* kaffevm/gtypes.h: Now use jtypes.h for java types rather than
duplicating here.
* kaffevm/{thread.c, threadCall.c}: Fixed some problems and
inconsistencies in the thread code.
Wed Feb 12 19:20:10 GMT 1997 Tim Wilkinson <>
* config/, Added check for mallopt which
is only available in some version of Linux.
* config/i386/jit-i386.def: Fixed floating point rounding.
* APIcore/lib/java.lang/Math.c: Fixed rint to conform to spec.
* config/config-hacks.h: Linux & FreeBSD now use BLOCKING_CALLS
like everything else.
Tue, 11 Feb 1997 21:23:18 +0100 Daniel Veillard <>
* kaffevm/support.c: Fix to addNativeMethod to avoid overrunning
method array.
* include/native.h: Added prototype for addNativeMethod.
* Fixed name class of 'object' when using Kaffe in Amaya. Now
all references replaced by 'Object' (which was the intention
Mon 10 Feb 1997 13:14:34 -0200 Alexandre Oliva <>
* Fix to catch use of 'amask' instruction.
* Fix for x_includes & x_libraries being set to ''.
* Fix for architectures which don't declare 'select' in default
include files.
Mon Feb 10 10:37:14 CST 1997 Richard Henderson <>
* config/alpha/jit-alpha.def (alpha_do_call_c): To avoid future
problems with structure member offsets changing, stick the offsets
in variables rather than code them in the assembly.
(alpha_do_call_div): Likewise.
* config/alpha/ofs/md.[ch]: Convert constructor to INIT_MD.
* (alpha-osf): Fix typo in LIBSHARE.
* packages/
The proper type for the argument to localtime and gmtime is time_t.
Mon Feb 10 10:00:00 GMT 1997 Tim Wilkinson <>
* Version 0.8.0 of Kaffe released.
Sat Feb 8 15:39:09 GMT 1997 Tim Wilkinson <>
* kaffevm/threadCalls.c: Added simple file descriptor check to
Sat, 8 Feb 1997 00:58:18 +0100 Bert Driehuis <>
* Added check for valid file
descriptor before writing to socket.
Fri, 07 Feb 1997 01:14:29 EST Erik Nygren <>
* Added OpenBSD configuration form i386.
Fri Feb 7 15:33:03 GMT 1997 Tim Wilkinson <>
* Various bug fixes to align gc_malloc'ed and Objects on 64 bit
bounaries. This had been caused by the new garbage collector
changing various structure sizes.
Wed Feb 5 09:22:10 GMT 1997 Tim Wilkinson <>
* kaffevm/findClass.c: Added KAFFE_CLASSPATH environmental variable
which is used in preference to CLASSPATH. This avoid problems
with Netscape.
* kaffeh/support.c: Added KAFFE_CLASSPATH environmental variable
which is used in preference to CLASSPATH. This avoid problems
with Netscape.
Wed, 05 Feb 1997 02:03:01 MET1 Matthias Hopf <>
* configure: Changed the default CFLAGS for m68k-unknown-amigaos as
the old ones were the reason for major troubles on some machines.
* ditto.
* kaffeh/main.c The ADE linker is broken according to ANSI standard
as it defines a external symbol 'stub', also used in kaffeh.
Explicitely initializing 'stub' with 0 does no harm to anyone and
bypasses the bug.
* kaffevm/thread.h: The new thread switching code needs the current
default threadStackSize for a simple check. I think it should not
be problematic to export it.
* config/m68k/amigaos/*: Various other m68k fixes.
Tue Feb 4 23:18:35 GMT 1997 Tim Wilkinson <>
* config/*/linux/md.[ch]: Added INIT_MD function and marco
because Linux requires a little preliminary initialisation
to avoid some memory problems.
This was being done using a constructor but since we require
an INIT_MD anyway, I though I'd use it here.
* kaffevm/gc-incremental.c: Fixed some race conditions in GC related
to objects only referenced from thread stacks. Thrad stack now
have their own 'root' list.
Tue Feb 4 10:53:28 CST 1997 Richard Henderson <>
* config/alpha/jit-alpha.def (spill_int): Spill as longs to avoid
collecting garbage when slots are manipulated in "any" mode.
(*): Range check all relative 32, 21, and 16x16 fixups.
* (alpha-osf*): LIBSHARE needs expect_undefined.
* kaffe/kaffevm/gc-incremental.c (walkObject): Make sure pointer
has good alignment before testing to see if it is an object.
* kaffe/kaffevm/jit/labels.c (linkLabels): Default to signed
operations. Add optional range checking to Llong32, Llong21,
and Llong16x16.
* kaffe/kaffevm/jit/labels.h: Retain distinct fields, but renumber
to/from options to not overlap so as to detect errors.
* kaffe/kaffevm/kaffe.def (LOOKUPTABLE): Pointer operations must
be done in ref mode.
* packages/
(java_io_File_list0): Correct name of String class.
Sun Feb 2 22:19:18 GMT 1997 Daniel Veillard <>
* kaffevm/{external.c, external.h, support.c, support.h
threadCalls.c, native.h}: Patches for using Kaffe inside
the Amaya webbrowser.
Sun Feb 2 15:36:02 GMT 1997 Richard Henderson <>
* kaffevm/{findClass.c,zextract.c,zipfile.h},
config/config-mem.h: Added support for mmap'ing of zip files.
Sun Feb 2 15:00:00 GMT 1997 Tim Wilkinson <>
* kaffevm/jit/slots.[ch],
config/*/jit-*.def: Change support for return values to use
a new instruction type.
* kaffevm/gc-incremental.[ch]: Put new garbage collector in place.
This is now incremental and *much* better than the old one (although
there's still room for improvement).
Most classes and data structures are now allocated using gc_malloc
so allowing much more of Kaffe's internals to be garbage collected.
Currently only Classes and Threads are root objects (and threads
only while they are live). Hopefully Classes will cease to be
roots at some point.
* kaffevm/gc-simple.[ch]: Removed
Thu Jan 31 23:23:40 1997 Per Bothner <>
* Various changes to better support JDK 1.1 reflection features.
* Create Class objects also for primitive types.
* Fields and arrays contain type (Class) of elements.
* Fields no longer contain signature strings.
* Fields are stored in an array, not a linked list.
* Field offsets are in bytes, not words.
* Reduce use of signatures for looking of classes, and otherwise.
* Changes merged in by Tim Wilkinson.
Fri Jan 31 23:22:18 GMT 1997 Tim Wilkinson <>
* Merged in more Alpha JIT patches.
Thanks to Richard Henderson <>.
Wed Jan 29 20:25:38 GMT 1997 Tim Wilkinson <>
* Merged in Alpha JIT patches.
My very great thanks to Richard Henderson <> for
all this work.
* Rearranged sources into some I think is more sensible (even
if everyone else will disagree).
Mon Jan 27 08:44:35 GMT 1997 Tim Wilkinson <>
* Merged in support for BISS-AWT.
* Merged in support for SAWT.
Jan 24 12:14:35 MST 1997 Brad Harvey <>
* Updates for AIX port.
Thu Jan 23 12:42:59 CST 1997 Richard Henderson <>
* kaffevm/exception.c (nullException): If a nullException_catcher
is installed, longjmp there so the C code can recover.
* kaffevm/exception.h: Declare nullException_catcher.
* kaffevm/gc-simple.c (validReference): Set nullException_catcher
while poking a potential object for its gc idx.
(garbageCollect): Report the number of faults caught this round.
Thu Jan 23 22:10:39 GMT 1997 Gregor Hoffleit <>
* config/m68k/*/threads.h: Added TCTX(..) macros which had been
Thu Jan 23 22:10:39 GMT 1997 Rick Greer <>
* kaffevm/threadCalls.c: Don't release all threads if select
returns EINTR. Check for this condition in reschedule().
Thu Jan 23 08:14:00 GMT 1997 Tim Wilkinson <>
* Version 0.7.1 of Kaffe released.
Wed, 22 Jan 1997 12:24:02 CST Richard Henderson <>
* Fixes for Alpha port.
Wed Jan 22 11:52:56 GMT 1997 Tim Wilkinson <>
* Modified configuration to use Makefile fragments
for the individual execution engines. This is tidier than
the original scheme. Also changed --enable-? options to be
--with-engine=? option.
Mon Jan 20 23:40:57 GMT 1997 Tim Wilkinson <>
* kaffevm/thread.c: Moved thread contexts into separate table
so thread.PrivateInfo becomes an index. Necessary for Alpha
port when sizeo(jint) != sizeof(void*).
Fri, 17 Jan 1997 03:53:49 CST Richard Henderson <>
* Initial stab at an Alpha port. Very much work in progress.
(Merged and modified by Tim Wilkinson)
Sat Jan 18 11:38:33 1997 Rick Greer <>
* lib/net/ Fixed to correctly return
* kaffevm/exception.c: Added assert after killThread(0).
* kaffevm/thread.c: Added fixes to allow dying threads to
kill themselves.
* kaffevm/threadCalls.c: Fixed read/write handling of error. When
one thread closes a file, other threads now correctly handle it.
Fri, 17 Jan 1997 03:34:56 EST Michael Frank <>
* kaffevm/slib.h: Qualified used of libdld.a with lack of dlfcn.h
which causes problems on some systems.
Thu, 16 Jan 1997 13:46:45 PST Rick Greer <>
* kaffevm/thread.c: Kaffe's main thread was not being included
in the "system" thread group.
Mon Jan 13 08:31:07 GMT 1997 Rick Greer <>
* kaffevm/thread.c,thread.h: Minor bug fix to thread timeouts
to correctly interpreter timeouts of 0 as infinite.
Sun Jan 12 22:54:11 GMT 1997 Tim Wilkinson <>
* kaffevm/{jit,intrp}/machine.c: Added VerifyError exception
instead of abort() for various failed tests in execution engines.
Fri Jan 10 10:51:04 GMT 1997 Tim Wilkinson <>
* Added NetBSD port for MIPS.
* Added SunOS4 port for M68K.
* kaffevm/thread.c: Added removeFromAlarmQ() function and added
calls to it in iresumeThread to remove thread from alarm Q
when necessary.
Thu Jan 9 11:45:30 GMT 1997 Tim Wilkinson <>
* kaffevm/jit/...: Remove used of MAXSLOT which can cause assertion
failures on large programs. This is now varied dynamically.
* kaffevm/jit/icode-common.h: New file. Captures the common
part of the instruction configuration.
* kaffevm/{i386,sparc}/jit-icode.h: Remove common part of instruction
* config/sparc/jit-icode.h: Remove attempt to optimise creation of
0.0 in float and double register (using fsub) 'cause it doesn't
* kaffevm/soft.c: Fixed MAXDIM assertion to allocate a larger
buffer for the multiarray when necessary.
Wed Jan 8 19:23:16 GMT 1997 Tim Wilkinson <>
* kaffevm/soft.c: Fixed soft_multiarray for interpreter; arguments
were being processed in the wrong order.
* config/sparc/jit-icode.h: Endables short load and store macros
which were previously forgotten.
Tue Jan 7 12:32:13 GMT 1997 Tim Wilkinson <>
* kaffevm/jit/{icode.c,machine.c,slots.h,basecode.h}: Added
rnowriteback support to allow elimination of slots which become
invalid. Particularly useful before branches.
* kaffevm/kaffe.def: Added slot_nowriteback(...) macro to various
branches to avoid pointless writebacks.
Mon Jan 6 16:52:10 GMT 1997 Daniel ANDRE <>
* lib/native/java.util/Date.c: Removed the various
#ifndef __WIN32__ since this code is valid under Cygnus's Win32
Mon Jan 6 12:22:06 GMT 1997 Tim Wilkinson <>
* Version 0.7.0 of Kaffe released.
Fri Jan 3 14:46:23 GMT 1997 Tim Wilkinson <>
* config/{sparc,i386}/jit.h: Added FLUSH_DCACHE macro necessary
for flushing out the generate code before we execute it. Only
seems to matter on the Ultra SPARC at the moment.
* kaffevm/jit/machine.c: Added FLUSH_DCACHE.
Tue Dec 31 18:24:26 GMT 1996 Tim Wilkinson <>
* lib/native/java.lang/Runtime.c: Added execInternal implementation.
This is something of a guess since I don't have the spec.
Tue Dec 31 11:46:05 GMT 1996 Tim Wilkinson <>
* kaffevm/{thread.c,thread.h,locks.c}: Added support for timeouts
in conditional waits.
* lib/native/java.lang/Object.c: Added support for wait timeouts.
Waits which timeout now throw an exception.
Thanks to Peter C, Mehlitz <> for doing the
orignal implementation of this.
Tue Dec 31 00:12:00 GMT 1996 Thomas Graf <>
* Added Data General DG/UX port for i386.
Tue Dec 31 00:03:20 GMT 1996 Tim Wilkinson <>
* Added initial SPARC JIT system.
Limited testing has been performed but it does seem to run the
compiler plus numerous small test programs.
This port involved changing lots of files, mostly in the ../jit
and ../config directories.
Wed Dec 25 22:54:48 +0100 1996 Milan Votava <>
* kaffevm/thread.c: Fixes to suspendOnQThread and setPriorityThread to
fixup tail of queue when removing tail thread.
Thu Dec 19 23:39:19 GMT 1996 Tim Wilkinson <>
* Version 0.6.1 of Kaffe released.
Tue Dec 17 12:07:49 GMT 1996 Tim Wilkinson <>
* kaffevm/{errors.h,exception.c}: Added support to print detailed
messages from uncaught exceptions.
* config/config-hacks.h: Made BLOCKING_CALLS the default options
for I/O threading. Some architectures may choose to use unblocked
I/O (FreeBSD for example) if it requires.
* kaffevm/external.c: Added error_stub to which unfound native
functions are pointer. This avoids some recursive errors.
However, if a native function is not found this prevents it
from ever being found in the future (or even being detected again).
This is probably not to spec.
Mon Dec 16 00:56:35 GMT 1996 Tim Wilkinson <>
* kaffevm/exception.c, config/{config-signal.h,}: Added
signal unblocking when exceptions throw. Necessary to allow
handlers which may generate new exceptions after handling
previous ones (esp. SEGVs).
Mon Dec 9 11:25:43 GMT 1996 Tim Wilkinson <>
* kaffevm/zextract.c: Can now handle the inclusion of extra fields
and comments. This is necessary when using zip2.1 for UNIX.
* kaffevm/exception.c: Merged the jit/exception.c and intrp/exception.c
into a single common file. A bit messy still but simpler to keep
* kaffevm/jit/..., kaffevm/flags.[hc]: Removed code optimiser
(which wasn't working anyway and I've thought of better ways to
do the same thing).
* kaffe/main.c: Added standard Java options (even if they're ignored).
* Added --enable-staticlib mode to force Kaffe to
build and use static libraries rather than shared (where available).
This is useful for a spot of profiling.
Sun Dec 8 20:18:22 GMT 1996 Tim Wilkinson <>
* kaffevm/verify.c: Added new file contains the class file
verification code. Currently bytecode isn't verified.
* kaffevm/classMethod.c: Added calls to verify2() and verify3().
* lib/native/java.lang/System.c (java_lang_System_arraycopy): Fixed
checking of types in array copy so exceptions will now be throw
for bad copies.
* lib/native/java.lang/Thread.c (stop0): Terminate thread by
throwing ThreadDeath exception rather than simply killing thread.
* kaffevm/{jit,intrp}/exception.c: Added check for ThreadDeath
exception and kill thread rather than terminate machine.
* kaffevm/thread.c: If thread marked as dying, throw ThreadDeath
exception when it wakes up.
Fri Dec 6 16:00:20 GMT 1996 Matthias Hopf <>
* config/m68k/amigaos/...: Various AmigaOS fixes.
Fri Dec 6 16:01:42 GMT 1996 Tim Wilkinson <>
* kaffeh/...: Various fixes to get this to compile and work again
after applying the latest Cygnus patches.
Thu Dec 5 08:05:39 GMT 1996 Hideki ISOZAKI <>
* config/config-hacks.h: Fix for MIPS for blocking calls.
Wed Dec 4 23:32:19 GMT 1996 Kevin Christian <>
* lib/net/ Added stdio.h.
Wed Dec 4 10:59:39 GMT 1996 Tim Wilkinson <>
* kaffevm/kaffe.def: Added QUICK_? opcodes and the necessary
magic to convert standard opcode to these versions. This is
probably in violation of a patent held by Sun so I'll have to
sort this out.
* kaffevm/lookup.c: Added CONSTANT_ResolvedFieldref which replaces
field lookups after they are first done.
Tue Dec 3 13:05:23 1996 Per Bothner <>
Embed struct _constants in Class as sub-struct, not pointer:
* kaffeh/constants.[ch] (readConstantPool): Take (dummy) (Class*) arg.
* kaffeh/constants.h (jword): Remove typedef.
* kaffeh/readClassConfig.h (constant_pool): Add declaration.
(ALLOC_CLASS): Add placeholder (empty) definition.
* kaffevm/classMethod.c (addClass, internalAddClass):
Pass in pe-allocated Class*, but not constants.
Use CLASS_CONSTANTS to get constants pol from Class.
* kaffevm/classMethod.h (struct _classes): Make constants a sub-object.
(CLASS_CONST_TAG, CLASS_CONST_DATA): Moved to constants.h.
* kaffevm/file.h (readu8): Removed - no longer used.
* kaffevm/{gc-simple,gc,lookup}.c: Update for new constants type.
* kaffevm/gtypes.h (jword): New typedef.
* lib/support/ (jword): Ditto.
* kaffevm/readClass.c: Now pre-allocate entire Class, not
just constants (which are now part of the Class).
* kaffevm/readClassConfig.h (ALLOC_CLASS): New macro.
(ADDCLASS): Now classThis is pre-allocated; pass it to addClass.
Change constant pool to use single jword (usually 32-bit) per slot,
rather than 64-bit struct _slot:
* kaffevm/constants.h (ConstSlot): New typedef (as "unsigned word").
(struct _constants): Change type of data to be (ConstSlot*).
Other macros updated for new _constants and _classes layouts.
* kaffevm/constants.c (readConstantPool): Update acoordingly.
* kaffevm/util.c (WORDS_TO_LONG): New function (if not native int64).
* kaffevm/kaffe.def (LDC1,LDC2,LDC2W): Don't first move const
to cnst slot - use move_int_const to move literal in one move.
* kaffevm/intrp/icode.h (various softcalls):
Pass Class constants as (Class*) rather than via a slot.
* kaffevm/jit/icode.c: Likewise.
* kaffevm/intrp/machine.c: Make some globals be frame-local.
* kaffevm/{intrp,jit}/machine.c (cnst): Removed - no longer used.
* kaffevm/{intrp,jit}/machine.h (get_method_info, get_field_info,
get_static_field_info, get_class_info): Removed unused cnst arg.
(class_object): Do not coerce to a slot pointer.
(constants, constant, constant_long): Remove - no longer used.
* kaffevm/kaffe.def: Update accordingly.
* kaffevm/constants.h (struct _slots): Added tword field.
* kaffevm/external.h (CALL_KAFFE_FUNCTION_VARARGS): Change interface
such that return value is a jword lvalue (instead of slots*).
* config/i386/jit.h (CALL_KAFFE_FUNCTION_VARARGS):
Partial rewrite - it did not compile if not compiled with -O:
Don't create a dummy frame (for one thing - it confuses gdb).
Resturn retval as output register, instead of copying to *retval.
* kaffevm/support.c (do_execute_java_method, execute_java_constructor,
do_execute_java_class_method): Simplify type of retval.
* kaffevm/support.[hc] (do_execute_java_method,
do_execute_java_class_method): Make return jword instead of int.
* lib/support/native.h: Likewise.
* kaffe/main.c (do_execute_java_class_method): Update prototype.
Sat Nov 30 16:50:43 GMT 1996 Tim Wilkinson <>
* kaffevm/soft.c: Added instanceof_array routine to allow casting
of one array to another array as specified in the VM spec.
Wed Nov 27 22:42:21 GMT 1996 Tim Wilkinson <>
* Added Fujitsu UXP/DS90 port for SPARC.
Thanks to Toshiaki Nomura <>
Wed Nov 27 22:40:38 GMT 1996 Tim Wilkinson <>
* kaffevm/thread.c: Fixed alarms handling when it conflicts with
thread rescheduling. Might be unportable at the moment.
Tue Nov 26 15:17:20 -0800 1996 Per Bothner <>
* kaffeh/constants.c: Fix typo.
* kaffeh/{gtypes.h,access.h,util.c}: Removed. Use kaffevm versions.
* kaffeh/constants.h: Add declaration of makeUtf8Const.
* kaffevm/util.c: If defined(KAFFEH), don't #include thread.h.
* kaffeh/ Compile ../kaffevm/util.c with -DKAFFEH
Mon Nov 26 16:25:43 +0100 1996 Peter C, Mehlitz <>
* kaffevm/{thread.c,threadCall.c,gc.c}: Various thread fixes.
Tue Nov 26 09:54:20 GMT 1996 Erik Johannessen <>
* Added NetBSD port for M68K.
Mon Nov 25 00:01:45 +0100 1996 Felix Hupfeld <>
* config/m68k/amigados/md.h: Fix to Amiga compilation.
Sun Nov 24 17:00:54 GMT 1996 Tim Wilkinson <>
* kaffevm/kaffe.def: Modified WIDE instruction and those if affects
to comform to the spec. defined in the Java VM Spec. book rather
than the older online documentation.
kaffevm/jit/{ops.h,machine.c}: Modified the length of WIDE.
kaffevm/intrp/machine.c: Modified the length of WIDE.
* kaffevm/kaffe.def: Remove RET_W instruction - no longer in the spec.
kaffevm/jit/ops.h: Removed info for RET_W instruction.
kaffevm/intrp/machine.h: Removed info for RET_W instruction.
Sun Nov 24 14:30:55 GMT 1996 Shrijeet Mukherjee <>
* Added Linux port for SPARC.
config/sparc/linux/{md.c,md.h}: Added linux config files.
Sun Nov 24 14:19:49 GMT 1996 Tim Wilkinson <>
* Yet another attempt to fix the sigcontext detection
for Linux. This new version checks for sigcontext (some versions
of Linxu 2.x.x) as well as two permuations of sigcontext_struct
(Linux 1.2.13+ as well as some other versions of Linux 2.x.x).
* .../ Propogated Per's exit fix to other makefiles.
Sat Nov 23 21:45:02 GMT 1996 Per Bothner <>
* Fixed exit to stop compilation process when errors
Sat Nov 23 21:40:10 GMT 1996 Thomas Katzlberger <>
* config/config-io.h: Fix to us of <sys/dir.h> (use on NeXT) to
define missing macros and types.
Fri Nov 22 12:07:04 GMT 1996 Tim Wilkinson <>
* Version 0.6.0 of Kaffe released.
Fri Nov 22 08:29:38 GMT 1996 Tim Wilkinson <>
* lib/native/java.lang/{Float.c,Double.c}: Added <math.h> to
fix strtod prototype bug on SunOS4. Floats now work correctly
on this platform.
Thu Nov 21 18:01:19 GMT 1996 Tim Wilkinson <>
* config/m68k/threads.h: Removed
config/m68k/amigados/threads.h: Replaced with older version of
threads file for AmigaDOS ('cause this one works!).
Thu Nov 21 13:51:39 GMT 1996 Tim Wilkinson <>
* Various: Minor fixes to get source working under Linux 1.3.12 and
Windows'95 (the platforms I have to hand appart fro FreeBSD).
* kaffevm/kaffe.def,kaffevm/jit/icode.c,
config/i386/jit-i386.def: Added load_offset_int & store_offset_int
instructions to optimise simple load and stores.
Wed Nov 20 12:15:02 GMT 1996 Tim Wilkinson <>
* config/i386/{jit-i386.def,jit.h}: Added %edi and %esi registers
to allocation scheme. These registers cannot be used in a byte
context (which currently only involves 'store_byte' instructions)
so if a conflict is found, the value is moved to another register.
Tue Nov 19 11:22:01 GMT 1996 Tim Wilkinson <>
* kaffevm/{locks.h,soft.c,lookup.c}, kaffevm/jit/machine.c: Changed
intsDisable/intsRestore macros for a single mutex lock
inside the translator - we only get one thread inside the JIT
at once, but it doesn't prevent other threads from running.
Mon Nov 18 21:23:12 GMT 1996 Rick Greer <>
* Added port for MachTen 4.0.3/PowerPc.
Mon Nov 18 17:28:01 GMT 1996 Tim Wilkinson <>
* kaffevm/kaffe.def, config/i386/jit-i386.def: Minor fixes to
pushing of doubles for method arguments. This is a case of
something which should never have worked - but did anyway!
* kaffevm/util.c: Added intsDisable/intsRestore to malloc, calloc
and free calls.
Sun Nov 17 23:21:23 GMT 1996 Tim Wilkinson <>
* kaffevm/{external.h,classMethod.c}, kaffevm/intrp/machine.c,
kaffevm/jit/machine.c: Removed retarg and placed on stack for
interpreter and use return values to jit.
* kaffevm/support.c: Fixed support functions 'do_execute_...' to
return value returned by called method (well an 'int' anyway).
* config/i386/jit.h: Modified macros to support return value.
* kaffeh/support.c: Added '_R_' argument to stub functions to
support return values for intepreter.
Sun Nov 17 14:57:43 GMT 1996 Tim Wilkinson <>
* kaffevm/kaffe.def: Minor changes to fix INVOKEINTERFACE so it works
with JIT system. Also modified static initialisers to improve
generated code (should still be to spec.).
* kaffevm/thread.c: Fixed setting of exceptPtr for interpreter. Could
cause problems with exception handling.
Sat Nov 16 21:29:53 GMT 1996 Tim Wilkinson <>
* kaffevm/kaffe.def: Merged cmp_int and branch_? into conditional
branches. This is necessary for correct operation of unsigned
comparisons in interpreter and should allow better JIT optimisation
on some processors (more to do here to allow use of skip style
* kaffevm/machine/icode.h: Added cbranch_? macros.
* config/i386/jit-icode.h: Added cbranch_? macros.
* kaffevm/jit/icode.c: Added cbranch_? routines and macros.
* kaffevm/classMethod.c (prepareClass): Use super_idx of -1 to
indicate ObjectClass as superclass. Necessary for constructing
arrays which must be derived from ObjectClass and need to correctly
inherit the method dispatch table.
* kaffevm/classMethod.c (lookupArray): Set superclass to -1.
* kaffevm/classMethod.c (lookupObjectArrayClass): Set superclass to -1.
* kaffeh/constants.c: Fixes to strings in constant pool so kaffeh
can now correctly handle subclasses (and works!).
* config/config-hacks.h: Added BLOCKING_CALLS to Next configuration.
* Merged in Cygnus patches 'kaffe-961115.patch' to main source.
Thanks to Per Bothner <>.
Fri Nov 15 16:04:36 1996 Per Bothner <>
*, configure: When checking for struct sigcontext
and struct sigcontext_struct, declare objects, not pointers.
Merge with Kaffe 0.5.6.
Wed Nov 13 16:06:02 1996 Per Bothner <>
Merge with Kaffe 0.5.5, and make JIT work with my changes.
* config/i386/jit-icode.h: Add some casts to suppress warnings.
* lib/native/java.lang/Class.c: Use CLASS_CNAME.
* kaffeh/support.c: Pass extra NULL arg to readClass.
* kaffevm/baseClasses.h (stringClass): Move typedef to gtypes.h.
* kaffevm/bytecode.h, kaffevm/kaffe.def: Rename INVOKENONVIRTUAL
to INVOKESPECIAL, to match VM book.
* kaffevm/classMethod.c (loadClass): Support ClassLoader if jit.
* kaffevm/errors.h: Added AbstractMethodError and VerifyError.
Use new macro NEW_LANG_EXCEPTION for brevity.
* kaffevm/exception.h: Make catch_type be a (Class*), not (char*).
* kaffevm/gtypes.h: Add some kludgy conditional definitions.
* lib/support/native.h: Likewise.
* kaffevm/kaffe.def (INVOKE*): Do softcall_get_method_code_const.
(METHOD_PUSHARGS): Re-write to avoid need for method_arg.
* kaffevm/soft.[ch] (soft_get_method_code): New function.
(soft_lookupmethod): Now takes (Object*), rather than (dispatchTable*).
* kaffevm/support.[ch] (makeReplaceJavaStringFromUtf8): New function.
(do_execute_java_method, do_execute_java_class_method): Return void.
* kaffevm/util.c (find_strhash): Fix stepping through hash table.
* kaffevm/intrp/icode.h (method_arg): Removed.
(softcall_get_method_code, softcall_get_method_code_const): Added.
* kaffevm/intrp/slots.h: Moved struct _slots from here ...
* kaffevm/constants.h: ... to here.
* kaffevm/jit/icode.c (popargs): Optimize zero case.
* kaffevm/jit/machine.c (findBlocks): Combine cases.
(softcall_initialize_class): Take constant (Class*) instead.
(softcall_get_method_code_const): New function.
* kaffevm/{intrp,jit}/machine.h (constants): Now get via class.
(constant): Use value, not address.
(method_method): New.
(get_field_info, get_static_field_info): Simplify for
new getField interface.
(method_arg, field_size, field_offset, field_isref): Removed.
(field_class, field_statics): Update for new getField interface.
* kaffevm/classMethod.h: Remove Field.class and Method.constants.
Added some FIELD_-macros.
* kaffevm/lookup.c (getField): Just return a (Field*).
* kaffevm/lookup.h (struct _fieldInfo): Removed.
* kaffevm/kaffe.def (PUTSTATIC,GETFIELD):
Use new FIELD_SIZE, FIELD_ISREF, and FIELD_OFFSET macros instead of
field_size, field_isref, and field_offset.
* kaffevm/jit/slots.h: Rename _slots -> SlotInfo.
* kaffevm/jit/*.[ch]: Update _slots -> SlotInfo.
* kaffevm/{intrp,jit}/exception.c (dispatchException,buildStackTrace),
lib/native/java.lang/Throwable.c (printStackTrace):
Backtrace info is now array of byte, not array of char.
Tue Nov 12 22:37:39 1996 Per Bothner <>
* lib/native/ (skip):
If lseek fails, read ahead using a loop.
(available): If fstat or lseek fail, return 0;
Fri Oct 11 18:18:08 1996 Per Bothner <>
Re-do string handling: Make sizeof(jchar) be 2, not 1.
Make CONSTANT_Utf8 be independent of String (no nesting).
Remove strpair. Rename strconst to Utf8Const.
Make Utf8Const be suitable for embedding in .text segment.
Many function arguments and fields that were char* are now Utf8Const*.
* kaffevm/access.h (accessFlags): Moved to gtypes.h
* kaffevm/gtypes.h (jchar): Change from uint8 to uint16.
(struct _strconst): Moved from constants.h, and removed fields.
* kaffevm/constants.h (CONSTANT_Chararray): Removed.
(CONSTANT_ResolvedString): New.
(struct _strpair, strpair, STRING_DATA2BASE, STRING_DATA2OBJECT,
(equalUtf8Consts, UTF8_GET): New macro and inline function.
* kaffevm/kaffe.def (CALOAD, CSTORE): Remove obsolete optimization.
* kaffevm/constants.c (readConstantPool): New Utf8 handling.
(addStringConstant, addStringConstantPair): Removed.
* kaffevm/baseClasses.c: Various updates for new string handling.
(addStringLen, addStringPair, makeStringObject): Removed.
* kaffevm/baseClasses.h (struct _classes): Remove supername
and sig fields. Change name field to have type Utf8Const*.
(struct _methods): Replace pair field by Utf8Const* name and signature.
(struct _fields): Re-type name and sig fields to Utf8Const*.
* kaffevm/gc.c (walkObject): Re-do to not need Class.sig.
* kaffevm/classMethod.c (lookupObjectArrayClass): New function.
(linkClass): Resolve CONSTANT_String objects here.
* kaffevm/gtypes.h (Utf8Const, Class, Method, Object); New typedefs.
* kaffevm/exception.h (struct _jexception): Change type of catch_type
from (char*) to (Class*).
* kaffevm/code.c (addCode): Update accordingly (using getClass).
* kaffevm/kaffe.def (INVOKEINTERFACE): Use method_method.
* kaffevm/errors.h (ArithmeticException, VerifyError): New.
* kaffevm/{itypes.h,itypes.c} (struct itypes): Add sig field.
* kaffevm/lookup.c: Update for new string handling.
* kaffevm/lookup.h (createInfo): Removed.
(callInfo): Removed fields offset and mtag.
* kaffevm/{intrp,jit}/machine.c (crinfo): Now just a plain Class*.
* kaffevm/support.c (makeJavaStringFromUtf8,Utf8Const2JavaString): New.
* kaffevm/util.c: New file. Various utility functions.
* kaffevm/object.c (checked_malloc, checked_calloc): Moved to util.c.
* {kaffe,kaffeh}/main.c (throwOutOfMemory): New functions.
* kaffevm/ (COMMON): Add util.o.
* kaffevm/{jit,intrp}/machine.h (constant): CONSTANT_Chararray is gone.
* kaffevm/{intrp,jit}/slots.h (jword): New typedef.
(WORD2UTF): New macro.
* kaffevm/jit/icode.c (softcall_lookupmethod): Now that a method*.
* kaffevm/{intrp,jit}/exception.c (initExceptions): Move to ...
* kaffevm/baseClasses.c: ... here.
* kaffeh/constants.c (readConstantPool): Update for new strings.
(addStringConstant): Removed.
* kaffeh/constants.h: Remove strconst. Other updates.
* kaffeh/gtypes.h: Removed - use kaffevm/gtypes.h instead.
* kaffeh/ Also link in ../kaffevm/util.c.
* lib/native/java.lang/Class.c (getname): Update. Convert '/'->'.'.
* lib/native/java.lang/ClassLoader.c (findSystemClass0): Update.
* lib/native/java.lang/Object.c (clone): Use CLASS_CNAME, not sig.
* lib/native/java.lang/System.c (arrayCopy): Likewise.
* lib/net/ Add now-needed #include directives.
Wed Oct 2 17:43:08 1996 Per Bothner <>
Support ClassLoad. Split up class initialization from loading.
Parameter types of many functions changed.
Simplify method invocation.
* kaffevm/baseClasses.c: Remove CloneableClass global (never used).
(initClasses, classInitHead, classInitLevel): Remove.
Replace lookupClass -> loadClass.
* kaffevm/classMethod.c (loadClass): New, based on old lookupClass.
(lookupClass): Now just loadClass+initializeClass.
(addClass, internalAddClass, lookupClass): Take extra ClassLoader arg.
(initializeClass, prepareClass, linkClass): New functions.
* kaffevm/clasmethod.h: CSTATE_* macros added and re-arranged.
(struct _classes): Removed mtable, nextInit, prevInit fields.
(struct _methodTable): Removed.
(struct _dispatchTable): Simplified.
(OBJECT_CLASS): New macro.
* kaffevm/findClass.c (findClass): Return the found class.
* kaffevm/interp/machine.c: Make some variables function-local.
* kaffevm/jit/machine.c: Likewise.
* kaffevm/jit/icode.c (softcall_initialize_class): New function.
* kaffevm/kaffe.def: Make sure to initialize class before
static calls, static fields refs, and constructors.
Invoke call non-interface methods directly or via dtable (no search).
For now dis-able interface method caching until we can do it safely.
* kaffevm/lookup.c (getClass): Return class as function result.
Convert CONSTANT_Class to CONSTANT_ResolvedClass.
* kaffevm/object.c (checked_malloc, checked_calloc): New functions.
* kaffevm/soft.c (soft_initialize_class): New functions.
* lib/native/java.lang/Class.c (forName, ClassLoader): Update.
* lib/native/java.lang/ClassLoader.c: Add ClassLoader support.
Thu Nov 14 12:00:00 GMT 1996 Tim Wilkinson <>
* Version 0.5.6 of Kaffe released.
Thu Nov 14 09:57:37 GMT 1996 Tim Wilkinson <>
* config/i386/win32/cygnus/..., configure.win32
Added configuration to allow compilation using Cygnus's GNU
tools running under Windows 95 or Windows NT. Currently this
is the only working Windows configuration.
Tue Nov 12 22:37:39 1996 Per Bothner <>
* lib/native/ (skip):
If lseek fails, read ahead using a loop.
(available): If fstat or lseek fail, return 0;
Sat Nov 9 14:59:25 GMT 1996 Tim Wilkinson <>
* kaffevm/jit/exception.c, kaffevm/{lookup.c,lookup.h},
Fixed sync objects to they are unlocked correctly in JIT mode
when exception is thrown within them.
* kaffevm/support.c
Added 'makeCString' function.
Sat Nov 9 14:12:02 GMT 1996 Per Bothner <>
* kaffevm/util.c
Added util file containing checked malloc and calloc.
Fri Nov 8 09:27:06 GMT 1996 Yasuyuki Tsukui <>
* config/m68k/nextstep3/threads.h
Fixed broken lines and remove spaces at end of continuation lines.
Fri Nov 8 09:27:00 GMT 1996 Craig M. Chase <>
* config/config-hack.h
Added config hacks for NetBSD.
Wed Nov 6 08:11:16 GMT 1996 Thomas Katzlberger <>
* lib/native/java.util/Date.c
Various fixes to date outputs.
Wed Nov 6 07:02:09 GMT 1996 Tim Wilkinson <>
* lib/native/
Added O_TRUNC to open so files which exists are truncated.
* lib/net/
Added SO_REUSEADDR so binds can rebind to TIME_WAIT sockets.
Thanks to David Hyatt <>.
Mon Nov 4 09:55:12 GMT 1996 Tim Wilkinson <>
*, config.sub, config.guess
Fixed [345] to [3456] enable handling of Pentium Pros.
Thu Oct 24 09:11:51 BST 1996 Tim Wilkinson <>
* lib/native/
Fixed true/false return values of various functions.
Thanks to Artur 'Revinor' Biesiadowski <>.
Mon Oct 21 08:14:06 BST 1996 Tim Wilkinson <>
* kaffevm/jit/basecode.h, config/i386/jit-i386.def, kaffevm/kaffe.def
Fixed array index check to be unsigned rather than signed.
Sat Oct 19 17:31:26 BST 1996 Christian Starkjohann <>
* kaffevm/threadCalls.c
Fixes to threadedRead and threadedWrite to handled return of
EWOULDBLOCK as well as EAGAIN. This happens under NeXTStep.
Thu Oct 17 09:12:30 BST 1996 Lee Iverson <>
*, config/{, config-io.h}
Fixed confusing directory configuration.
Thu Oct 17 09:06:08 BST 1996 Tim Wilkinson <>
* kaffevm/{threadCalls.c, lerror.h}
Added EINTR checks to thread reads and writes to avoid bad
interactions with alarms.
Sun Oct 13 14:54:02 BST 1996 Tim Wilkinson <>
Added LIBS to build lines for shared libraries.
Thanks to Jonathan Hardwick <>.
Fri Oct 11 15:32:04 BST 1996 Tim Wilkinson <>
*, config/, config/i386/linux/jit-md.h
Added tests for 'sigcontext' and 'sigcontext_struct' to support
newer versions of Linux.
Tue Oct 8 10:35:19 BST 1996 Tim Wilkinson <>
*, .../
Modified shared library linking to correctly support BSDI.
* kaffevm/findClass.c
Catch ClassNotFoundException generated by ClassNotFoundException.
Wed Oct 2 17:43:08 1996 Per Bothner <>
* kaffevm/baseClasses.c: Remove CloneableClass global (never used).
(initClasses, classInitHead, classInitLevel): Remove.
* kaffevm/classMethod.h: (struct _classes): Removed nextInit,
prevInit fields.
* kaffevm/object.h: (OBJECT_CLASS): New macro.
* kaffevm/findClass.c (findClass): Return the found class.
* kaffevm/jit/icode.c (softcall_init_static_class): New function.
* kaffevm/kaffe.def: Make sure to initialize class before
static calls, static fields refs, and constructors.
* kaffevm/soft.c (soft_initialize_class): New functions.
* lib/native/java.lang/Class.c (forName, ClassLoader): Update.
* lib/native/java.lang/ClassLoader.c: Add ClassLoader support.
Sun Oct 6 23:15:20 BST 1996 Tim Wilkinson <>
* Version 0.5.5 of Kaffe released.
Sun Oct 6 15:22:51 BST 1996 Tim Wilkinson <>
* kaffevm/intrp/{machine.c, exception.c}
Added backtrace printout to interpreter.
Sun Oct 6 01:42:46 BST 1996 Tim Wilkinson <>
* lib/native/java.util/Date.c
Fixed timezone daylight saving when converting times.
Fri Oct 4 16:46:30 1996 Lee Iverson <leei@Canada.AI.SRI.COM>
Automatically update Makefile, configure when or change.
* **/
`make CFLAGS="-g -O1"' will behave properly.
Use AC_C_CHAR_UNSIGNED to check for default unsigned char
* kaffevm/gtypes.h
`typedef signed char int8' when necessary (e.g. on SGI).
* config/mips
Incorporate Robert Mercier's threads.h to enable threading on
MIPS machines. Currently only support SGI Irix5/6.
* kaffevm/intrp/checks.h
check_local_*, check_stack_*: Add CHDBG calls for reporting
values operated on by bytecodes.
* kaffevm/{intrp,jit}/checks.h
check_pc, check_pc_wide, check_pcidx, check_pcwidx: Added for
checking/debugging of arguments to bytecodes.
* kaffevm/machine.c
Define CHDBG(s) for compile-time debugging of bytecode args/values.
Thu Oct 3 09:14:45 BST 1996 Tim Wilkinson <>
* kaffevm/{intrp,jit}/exception.c, kaffevm/errors.h
Removed initial creation of exception objects and replaced
by execute_java_constructor calls when exceptions are actually
Thu Oct 3 08:43:03 BST 1996 Tim Wilkinson <>
* kaffevm/thread.c
Added itimer support for alarm to allow sub-second sleeps.
* kaffevm/support.c
Make sure do_execute_java_method only invokes non-statics and
do_execute_java_class_method only invokes statics.
Wed Oct 2 10:54:44 BST 1996 Tim Wilkinson <>
* kaffe/main.c
Added verbose flag to kaffe.
* kaffevm/{findClass.c, flags.c, flags.h}
Added class loading debugging flag.
Tue Oct 1 14:18:46 BST 1996 Tim Wilkinson <>
* Merged additional Amiga patches.
Thanks to Matthias Hopf <>
* Added m68k-nextstep3 port.
Wed Sep 11 17:08:40 JST 1996 Tim Wilinson <>
* kaffeh/support.c
Added code to support constant values.
* config/{config-std.h, config-io.h, config-mem.h, config-math.h}
Moved lots of HAVE_*_H definitions into common files which
can be simply included.
Fri Sep 6 09:36:46 BST 1996 Tim Wilkinson <>
* kaffeh/support.c
Fixes to class file location so failures to find classes in
some circumstances don't result in SEGVs.
* kaffevm/jit/exception.c
Fix for throwing an null object to prevent SEGV.
Thu Sep 5 09:25:01 BST 1996 Tim Wilkinson <>
* Version 0.5p4 of Kaffe released.
Wed Sep 4 22:48:28 BST 1996 Tim Wilkinson <>
* kaffevm/thread.c
Cast argument in alarm call to int. On big endian machines where
there's no alarm prototype this didn't work before.
Sun Sep 1 20:32:41 BST 1996 Tim Wilkinson <>
* kaffevm/{jit,intrp}/exception.c, lib/native/java.lang/Throwable.c
Added stack backtrace support - helps with debugging.
NB. Currently prints addresses of exceptions and does not
translate to line numbers (I currently don't load this info).
Sat Aug 31 17:29:59 BST 1996 Tim Wilkinson <>
* kaffevm/thread.c
Given initial threads names so getName() will provides something
* kaffevm/support.c
Added function makeJavaCharArray to build character arrays
from C strings.
Fri Aug 30 23:54:55 BST 1996 Tim Wilkinson <>
Changed NeXTStep configurations to non-shared libraries until
I have chance to fix the necessary configurations.
Fri Aug 30 23:54:55 BST 1996 Des Barry <>
* More Windows'95 porting and fixing from Des.
Thu Aug 29 16:44:22 BST 1996 Tim Wilkinson <>
* kaffevm/external.c
Added code to eliminate duplicate shared library handles.
Fri Aug 23 20:54:16 BST 1996 Tim Wilkinson <>
* lib/native/java.lang/{Double.c,Float.c}
Fixed string to value convertions so they now throw
an exception if the string is in the wrong format.
* kaffevm/{support.c,baseClasses.c,baseClasses.h}
Changed funtion addString to addStringLen which now takes a
maximum string length as well as the char*. Added a macro
for addString to call addStringLen.
Wed Aug 21 20:52:51 BST 1996 Tim Wilkinson <>
* lib/native/java.lang/System.c
Fixed array copy to correctly copy overlapping buffers.
Thanks to John Orr <> for giving me the
information which finally caught this sucker.
Fri Aug 16 14:21:29 BST 1996 Tim Wilkinson <>
* kaffevm/soft.c
Modified implementation of soft_instanceof and soft_checkcast
to recurse through superclasses of interfaces.
* lib/support/native.h
Added API routines to allocate objects, arrays and object arrays.
Fri Aug 16 13:30:33 BST 1996 Tim Wilkinson <>
* config/..., kaffevm/...
Merged in diffs for Amiga DOS.
Thanks to Matthias Hopf <>
* kaffevm/thread.c
Small changes to thread stack allocation and free macros.
Mon Aug 12 22:52:50 BST 1996 Tim Wilkinson <>
* kaffevm/...
Added a method dispatch table. This suplements the method
table which acts as a cache and was used for all method calls.
The dispatch table has a direct mapping for all methods in a class
and is used by INVOKEVIRTUAL, NONVIRTUAL and STATIC. Now only
INVOKEINTERFACE uses the older method cache. The use of the
dispatch table prevents method hash clashes which can slow down
operation of the machine and so avoids calls to soft_lookupmethod.
Mon Aug 12 18:28:28 BST 1996 Tim Wilkinson <>
* kaffevm/locks.c
Added thread resume in internalWaitCond().
Thanks Werner Dittmann <>.
Mon Aug 12 18:20:45 BST 1996 Tim Wilkinson <>
* kaffeh/main.c
Added "-postfix <pfix>" option to allow adding of postfix
to generated file names. This is necessary for generating
the stub files for the Kaffe native library.
* kaffeh/main.c
Removed "Stub" postfix to generate ".c" files - this makes
it compatible with Sun's javah.
Mon Aug 12 18:08:48 BST 1996 Tim Wilkinson <>
* kaffevm/threadCalls.c
Portability fixes to threading of system calls. Now correctly
use EWOULDBLOCK and EAGAIN, and attempt to use fcntl() calls
rather than ioctl() where possible.
Fixes suggested by Andrew Stitcher <andrewst@sco.COM>.
Sat Aug 10 16:43:33 BST 1996 Tim Wilkinson <>
* kaffevm/registers.h
Fixed test for correct slot type.
* config/i386/jit-i386.def
Fixed up problem with float+double copying. Test for
slot equality wrong so copying of floats/doubles never happened.
Fri Aug 9 13:25:21 BST 1996 Tim Wilkinson <>
Minor configuration changes.
* kaffevm/soft.c
Fixed NaN checks in float and double comparison routines.
Fri Aug 9 08:42:01 BST 1996 Tim Wilkinson <>
* kaffevm/{gc.c, thread.c, thread.h}
Added flags to context structure. Currently used to indicate
if stack has not been allocated to thread by malloc (gc changed
to check this flag).
* lib/native/
Added list0 code - can now get directory listings.
Thu Aug 8 11:33:38 BST 1996 Tim Wilkinson <>
* Version 0.5p3 of Kaffe released.
Thu Aug 8 07:43:32 BST 1996 Tim Wilkinson <>
* lib/net/
Various fixes to the information stored in the socket objects
about who is connected - might be right now (not sure).
* kaffevm/gc.c
Removed two assertions for GC_FREE and GC_GARBAGE2. Both can
happen and be correct.
Wed Aug 7 19:48:58 BST 1996 Tim Wilkinson <>
* lib/net/{DatagramSocket.c,PlainSocketImpl.c}
Fixed close calls so socket will not be closed more than
Wed Aug 7 17:55:57 BST 1996 Tim Wilkinson <>
* kaffevm/jit/machine.h
Fix to temp slot allocation in constant_long - was only
allocating one slot rather than two.
* kaffevm/thread.c
Fix to setPriorityThread. Wasn't zeroing next pointer for
Wed Aug 7 11:03:34 BST 1996 Tim Wilkinson <>
* config/i386/win95/ms/...,
Added initial support for Microsoft C compilation of kaffe.
Tue Aug 6 22:44:04 BST 1996 Tim Wilkinson <>
* kaffevm/...
Made some minor optimisations to code to improve efficency.
Mon Aug 5 19:45:41 BST 1996 Tim Wilkinson <>
* kaffevm/locks.c,threads.c,threadCalls.c + others
Seperated locks out into Mutex & Conditional variables
(like pthreads). Process will be completed once first native
thread implementation is made.
Mon Aug 5 14:28:26 BST 1996 J.H.M.Dassen <>
* man/kaffe.1
Added manual page for kaffe.
Mon Aug 5 13:57:55 BST 1996 Tim Wilkinson <>
* kaffevm/external.c, lib/external_wrapper.h, library Makefile.ins
Fixed various bugs in order to get the non-shared library
version of kaffe operational (my thanks to
David Young <> for his helpful comments).
Mon Aug 5 12:25:19 BST 1996 Tim Wilkinson <>
* kaffe/main.c, kaffevm/{support.c,support.h}, java.lang/System.c
Added '-D' option to allow definition of user defined
Mon Aug 5 11:34:27 BST 1996 Mark Huizer <>
* kaffevm/gc.c
Removed assertion for GC_GARBAGE which is just wrong.
Sat Aug 3 18:24:58 BST 1996 Tim Wilkinson <>
* kaffevm/threadCalls.c
Fixed previous patch for non-blocking socket calls.
* kaffevm/gc.c, kaffevm/thread.c
Only free stacks if they were actually allocated (some mallocs
get upset about this).
* kaffevm/object.c
Removed add_object from multi-dimensional array allocation
* kaffeh/
Modified make to find source shared with kaffevm. Old system
only worked if source is build in seperate directory.
Fri Aug 2 08:00:00 BST 1996 Tim Wilkinson <>
* Version 0.5p2 of Kaffe released.
Fri Aug 2 07:12:40 BST 1996 Michael Golm <>
* kaffevm/support.c, lib/native/
Fix for javaString2CString which was overruning passed buffer
space. Also fix call to it in isAbsolute().
Thu Aug 1 20:43:08 BST 1996 Tim Wilkinson <>
* kaffevm/gc.c, kaffevm/gc.h
Rewrote garbage collection to avoid use of recursion. This
was using too much stack space when analysing deeps object
structures (such as lists).
* kaffevm/thread.c
Added thread sleeps using alarm queue.
* kaffevm/threadCalls.c
Added additional threading calls for opening files.
Wed Jul 31 13:32:18 BST 1996 Attila Molnar <>
* kaffevm/...,, config/powerpc/...
Merged version of Kaffe which support the PowerPC.
Wed Jul 31 12:13:18 BST 1996 Bruce Zenel <>
* kaffevm/threadCalls.c
Various fixes for non-blocking sockets calls.
Wed Jul 31 12:00:16 BST 1996 Tim Wilkinson <>
* kaffevm/object.c
Fixed alloc_objectarray which incorrectly allocated space for
arrays of objects > jints when used with multianewarray.
Wed Jul 31 10:56:04 BST 1996 Gregor Hoffleit <flight@mathi.uni-heidelberg.DE>
* Various
Added support for NeXTStep on i386 and Sparc platforms.
Tue Jul 30 18:38:58 BST 1996 Bradley McLean <>
* lib/native/java.lang/System.c
Removed free()ing of getcwd buffer.
Mon Jul 22 20:43:08 PDT 1996 Tim Wilkinson <>
* kaffevm/jit/...
Completed first stage of code optimisation (enabled by
using the -O switch). This attempts to reduce various
instruction combinations to single instructions, remove
redundant register moves, and removed instructions which
generate results which are never used.
Also reduce spills and reloads by modification to temporary
slot management.
* config/i386/jit-i386.def
Added optimising instructions - allow for register and
constant ops as well as providing additional addressing
modes for loads and stores. Also provide instructions
for direct short, char and byte accessing.
Mon Jul 22 20:40:39 PDT 1996 Tim Wilkinson <>
* java.lang/Class.c
Fixed forName() (Added missing dummy class argument).
* kaffevm/support.c
Added unistd.h
* kaffevm/...
Added define for SEEKs where required (for use with pre-ANSI
*, lib/
Added '|| exit 1' to propogate errors between nested makes.
Fri Jul 12 15:27:02 BST 1996 ??? (lost email address) ???
*, config/...
Added NetBSD1 configuration form SPARC.
Thu Jul 11 21:23:53 BST 1996 Tim Wilkinson <>
* Version 0.5p1 of Kaffe released.
Thu Jul 11 06:42:22 PST 1996 Per Bothner <>
Bug fix to byte writing.
Thu Jul 11 21:01:19 BST 1996 Tim Wilkinson <>
* kaffevm/jit/machine.c, kaffevm/jit/labels.c, kaffevm/jit/seq.c
Modified various limited pools to be dynamicly sized rather than
Wed Jul 10 23:26:43 BST 1996 Tim Wilinson <>
* kaffeh/support.c, lib/...
Added dummy first argument for static methods (just like
Sun's javah). Seems stupid but there you go.
Regenerated library stubs.
* kaffevm/kaffe.def kaffevm/jit/machine.c kaffevm/jit/register.c
Added pushing of null argument for INVOKESTATIC calls to maintain
direct C calling convention from Kaffe to C.
* kaffevm/jit/machine.c
Fixed bug in basic block delimiting - should now produce fewer
basic blocks (was over eager before).
* kaffevm/jit/icode.c kaffevm/jit/machine.c
Added marker for exception blocks. In JIT mode, exceptions handler
are entered with the reference return register containing the
exception object.
Wed Jul 10 17:17:50 BST 1996 Tim Wilkinson <>
* kaffeh/main.c, kaffeh/support.c kaffeh/readConfigClass.c
Major changes the stub generator to make it more like Sun's
stub generator.
* lib/...
Major changes to libraries to support new form of generated stubs.
Hopefully these are more like those generated by Sun's Java
Tue Jul 9 15:11:36 BST 1996 Tim Wilkinson <>
* kaffe/main.c, kaffeh/main.c, kaffevm/flags.h, kaffeh/flags.c
Added general options processing and usage information which
are compatible with Sun's Java programs.
Mon Jul 8 22:46:15 BST 1996 Tim Wilkinson <>
* kaffeh/main.c
Modified names of stubs and includes files. Names now contain
'_' between path sections rather than '.'s.
Sun Jul 7 23:00:00 BST 1996 Tim Wilkinson <>
* lib/native/java.util/Date.c
Fixup date string formats.
* lib/native/java.lang/Runtime.c
Made buildLibName safe (can nolonger overrun buffer).
* lib/net/InetAddress.c
Various minor fixes to address routines.
Sun Jul 7 21:59:10 BST 1996 Tim Wilkinson <>
* kaffevm/jit/machine.c
Ignore unreachable code rather than failing assertion.
Sat Jul 6 18:16:59 BST 1996 Tim Wilkinson <>
* config/i386/jit.h
Changed 'jmpl' to 'jmp' to be compatible with more assemblers.
* kaffevm/external.h
Move JIT VARAGS invocation macro out into i386/jit.h specific
Wed Jul 3 09:12:06 BST 1996 Tim Wilkinson <>
* kaffevm/jit/..., config/i386/jit-i386.def
Changed PC to CODEPC - this caused problems on some versions
of Solaris 2.
Wed Jul 3 09:01:10 BST 1996 Tim Wilkinson <>
*, lib/
Ignore errors from rmdir - these directories can only be
removed if the program is built in a different tree from the
Wed Jul 3 08:37:12 BST 1996 Tim Wilkinson <>
* NOTES/..
Added notes directory and creates a BUGS list to contains
detailed info. on things to do.
Fri Jun 28 07:40:12 BST 1996 Andy Johnson <>
* kaffevm/label.h, kaffevm/register.h, kaffevm/register.c
Fixes to various structures names to avoid conflicts with others
on Unixware systems.
* config/univel_svr4
Fixed config name from unixware to univel.
Thu Jun 27 07:56:00 BST 1996 Tim Wilkinson <>
* kaffevm/jit/...
Modified register allocation system so can now correctly manage
float and double registers as one.
* config/i386/linux/jit-md.h
Added include of <asm/sigcontext.h> which is necessary in some
Linux systems.
Wed Jun 26 19:37:22 BST 1996 Andrew Stitcher <andrewst@sco.COM>
* config/i386/sco3.2v5/jit-md.h
Added missing JIT configuraiton for SCO.
* kaffevm/...
Changed exception NoClassDefFoundError to ClassNotFoundException
as per specification.
Tue Jun 25 12:21:26 BST 1996 Tim Wilkinson <>
* Version 0.5 of Kaffe released.
Mon Jun 24 22:50:03 BST 1996 Michael Dickson <>
Fixups for the BSDI configuration - should now work
correctly on BSDI 2.0.1 & 2.1.0 (but still untested).
Mon Jun 24 22:33:33 BST 1996 Antti Louko <>
* lib/net/
Fix for lookupAllHostAddresses.
Mon Jun 24 00:00:00 BST 1996 Tim Wilkinson <>
* kaffevm/jit/..., config/...
Completed integration of new "Just-In-Time" compilation system.
This system is best considered to be beta quality for the moment.
It is designed to provide a means for future development of the
code generation system but, at the moment at least, is far from
being as efficient as it could be (a number of currently available
optimisations are disabled until they are debugged).
The initial system provides support for i386 based system. I
will add a SPARC port as soon as time permits.
Sun Jun 23 11:12:38 BST 1996 Tim Wilkinson <>
* lib/native/java.lang/Object.c
Further fixes to clone() - now correcty clones arrays as
well as simple objects.
* kaffevm/kaffe.def
Added method table cache checks for method invocations.
Fri Jun 14 20:25:00 BST 1996 Tim Wilkinson <>
* kaffevm/gc.c
Added alignment check in validReference() - must be pointer
aligned. On some architecture indirection through non-align
pointers causes bus errors.
Fri Jun 14 13:36:00 BST 1996 Tim Wilkinson <>
* lib/support/nets.h, lib/support/files.h
Added extern definition of sys_errlist if syserror() function is
Fri Jun 14 10:00:00 BST 1996 Tim Wilkinson <>
* kaffevm/thread.c, kaffevm/gc.c, threadvm/threadCalls.c
Modified 'ctx' to contains all private thread information and
changed how it is referenced from the thread structure. This
was necessary to correctly manage thread priorities and to allow
the switching of exception pointers during thread switches.
Fri Jun 14 8:25:34 BST 1996 Tim Wilkinson <>
*, win95/..., config/
Minor bug fixes to Windows'95 installation and some configuration
parameters for Solaris 2.
Wed Jun 12 23:59:26 BST 1996 Tim Wilkinson <>
* Version 0.4p1 of Kaffe released.
Wed Jun 12 12:00:21 BST 1996 Tim Wilkinson <>
* Finished Windows'95 port.
Many thanks to Des Barry <> for all his
work and help on this. He provided lots of bug fixes and changes
to get this sorted out.
Port still lacks network and socket support. Also, kaffeh
has not been ported.
Wed Jun 12 11:40:00 BST 1996 Tim Wilkinson <>
* kaffevm/gc.c
Fixed finalising in garbage collection. Objects which are to
be finalised now mark those they reference to avoid their garbage
collection (which is wrong!).
Sun Jun 9 18:40:16 BST 1996 Tim Wilkinson <>
* Initial Windows'95 port.
Completed partial port of Kaffe to Windows'95. Currently can
run HelloWorldApp. Lots yet to do!!
Many thanks to Des Barry <>
Sat Jun 9 13:30:01 BST 1996 Tim Wilkinson <>
* kaffevm/classMethod.c
Fixed lookupArray to inherit java/lang/Object - means ops
like clone will now work.
Thu Jun 6 11:29:38 BST 1996 Tim Wilkinson <>
* Extracted sun/.. part of distribution.
This is generally constant so there seems little point in
redistributing with each version of Kaffe.
Thu Jun 6 10:21:21 BST 1996 Andrew Stitcher <andrewst@sco.COM>
*, config/sco5/...
Added patches to support SCO.
Thu Jun 6 9:59:45 BST 1996 Tim Wilkinson <>
* kaffevm/intrp/icode.h
Fixed move_any - this fixes problems with DUP2 codes which
was causing lots of problems with the compiler.
Thu Jun 5 23:05:00 BST 1996 Tim Wilkinson <>
* include/... & lib/native/...
Various fixes to data types to make the explicityly external.
Without this, Linux shared libraries don't correctly link
together (causing lots of problems).
Tue May 21 14:01:25 BST 1996 Tim Rowley <>
*, lib/net/
Added patches to support SPARC Solaris 2.
Mon May 20 09:26:40 BST 1996 Tim Wilkinson <>
* Version 0.4 of Kaffe released.
This is a radical change to the previous versions of Kaffe.
This uses a new code generation model which in this
version is only used to build an interpreter. The intention
is to add the JIT part to this base in the near future, use
it where available but fall back on the interpreter if not
for the given platform.
Sat May 18 18:08:25 BST 1996 Tim Wilkinson <>
* Various
Modified shared library support. All libraries are now built
with version numbers but are then linked to simple extensions.
This is necessary for some OSs (the latest Linux's for example)
and makes more general sense when Kaffe is loading libraries.
Sat May 18 17:51:12 BST 1996 Tim Wilkinson <>
* kaffevm/support.c
Fixed conversion of java to c string. Wasn't adding offset to
start of the string.
* sun/, sun/
Updated classes and properties files to JDK 1.0.2.
Mon May 13 11:35:45 BST 1996 Tim Wilkinson <>
* kaffeh/readClassConfig.h
Added prototyping in stub generation. Currently everything is
an integer (basically so arguments are bytecopied from the caller).
Mon May 13 09:03:24 BST 1996 Tim Wilkinson <>
* kaffe/main.c
Removed dependency on kaffe_vm library. This is now loaded
manually into the program when it starts (make's it more
portable would you believe).
* kaffe/main.c, kaffevm/codegen/instruction.c
Added options processing. Currently supports -version and
-ncodesize (allows the size of the native code buffer to be
Wed May 1 10:53:43 BST 1996 Des Barry <>
* kaffevm/exception.c
Refixed throwException. The old one didn't work when walking
back down the stack. The new one does.
Mon Apr 29 07:52:55 BST 1996 Tim Wilkinson <>
* Version 0.3p2 of Kaffe released.
Mon Apr 29 07:42:12 BST 1996 Des Barry <>
* kaffevm/exception.c
Fixed to throwException to backup PC one byte. This is necessary
to make sure the exception is caught by the correct handler in
all circumstances.
Fri Apr 26 17:10:05 BST 1996 Tim Wilkinson <>
* kaffevm/findClass.c
Cache zip directory to avoid regenerating it for each file
we load from an archive.
Sun Apr 21 20:04:48 BST 1996 Des Barry <>
* Continue Win95/NT & OS/2 code integration.
Sat Apr 20 18:31:01 BST 1996 Tim Wilkinson <>
* config/i386-asm.h
Fix for fildd instruction (used by L2D).
Fri Apr 19 17:05:29 BST 1996 Tim Wilkinson <>
* Lots of bug fixes to libraries, threads, sockets and all.
Hmm, must try to remember to put them in here!
Fri Apr 12 09:09:42 BST 1996 Tim Wilkinson <>
* (all),
Changed representation of library extension.
Fri Apr 12 09:06:45 BST 1996 Tim Wilkinson <>
* kaffevm/soft2.c
Fixed multianewarray support to correctly process arguments
* kaffevm/codegen/translator.c
Fixed argument tiding in multianewarray instruction.
* config/i386-kaffe.def, kaffevm/soft1.c
Extensive fixing of double support.
* kaffevm/classMethod.c
Fixed signature analysis for arrays of arrays.
Sun Apr 7 14:38:12 BST 1996 Andy Johnson <>
* Unixware patches for exception handling.
Mon Apr 1 10:11:46 BST 1996 Tim Wilkinson <>
* Version 0.3 of Kaffe released.
Thu Mar 28 14:04:12 GMT 1996 Tim Wilkinson <>
* kaffe/readClassConfig.h
Fixed up return types. Because of different calling conventions,
floats/doubles must be forced into similar sized ints/long longs
for return to kaffe methods.
* kaffevm/gc.c
Fixed garbage collection bugs.
Thu Mar 28 12:34:30 GMT 1996 Tim Wilkinson <>
* lib/native/...
Fixed float & double problems caused by incompatible calling
conventions for returning float/double from functions.
Wed Mar 27 10:09:00 GMT 1996 Tim Wilkinson <>
* kaffevm/gc.c
Modifed garbage collector to remove final flag from all objects.
* kaffevm/object.h, ...
Removed type field from objects (can be infered from mtable) and
split lock information into own structure for later seperation.
Wed Mar 27 08:58:08 GMT 1996 Tim Wilkinson <>
* lib/...
Simplified naming of library files.
Tue Mar 26 14:30:03 GMT 1996 Juergen Hannken-Illjes <>
* Applied NetBSD-current patches.
Tue Mar 26 14:06:41 GMT 1996 Tim Wilkinson <>
Combined all configure information into one place.
Tue Mar 26 13:54:54 GMT 1996 Tim Wilkinson <>
* kaffevm/...
Seperated the virtual machine from the launch program. Now
the virtual machine library is in one directory.
Mon Mar 18 11:45:20 PST 1996 Tim Wilkinson <>
* kaffeh/sig.c
Fixed up array signatures to match Java.
Mon Mar 18 11:13:20 PST 1996 Tim Wilkinson <>
* Added array out of bounds checking.
This is not very efficient but it is better to have it slow than
not at all.
Mon Mar 18 08:49:27 PST 1996 Andy Johnson <>
* Added Unixware support.
Wed Feb 28 12:40:38 GMT 1996 Tim Wilkinson <>
* kaffeh/readClassConfig.h
Added support for super classes.
Mon Feb 26 17:49:31 GMT 1996 Pace Willisson <>
* Added BSDI 2.0.1 support.
Mon Feb 26 16:28:07 GMT 1996 Lennart Augustsson <>
* Extensive bug fixes for both general Kaffe code as well as
Solaris code.
Tue Feb 20 10:21:42 GMT 1996 Tim Wilkinson <>
* Version 0.2 of Kaffe released.
Tue Feb 20 10:20:40 GMT 1996 Tim Wilkinson <>
* Completed Linux port. Tested on RedHat-2.1.
Sun Feb 18 00:04:18 MET 1996 Tim Wilkinson <>
* readClass.c, readClass.h, readClassConfig.h
Generalised readClass functions using macros.
Fri Feb 16 01:30:25 MET 1996 Tim Wilkinson <>
* gc.c
Extensive fixing of bugs in garbage collector.
Wed Feb 14 01:27:58 MET 1996 Tim Wilkinson <>
* Kaffe now configured using GNU autoconf.
Tue Feb 13 00:28:27 MET 1996 Tim Wilkinson <>
* soft1.c, soft2.c
Fixed returns up so optimisater will work.
Mon Feb 12 19:34:28 MET 1996 Tim Wilkinson <>
* Changed copyright to Berkeley style license to allow
unrestricted use of software.
Mon Feb 12 19:07:23 MET 1996 Tim Wilkinson <>
* zextract.c, findClass.c
Added zip .class extraction. Code contributed by
Per Bothner (
Mon Feb 12 12:54:47 MET 1996 Tim Wilkinson <>
* baseClasses.c, classMethod.c
Reimplemented mechanism to call class constructors (again).
Hopefully they are now called in the correct order but only
as they are needed. Probably do not detect recursive
declarations properly yet (and then we abort anyhow).
Sun Feb 11 21:17:01 MET 1996 Tim Wilkinson <>
* threadCalls.c
Added threaded calls for read and write function. These
allow threads to block on a read call without blocking the
Sun Feb 11 15:46:19 MET 1996 Tim Wilkinson <>
* lib/...
Implementented the majority of java.lang and The
remainder hasn't been done 'cause I don't have the manuals
handy. Needs extensive testing!
Sun Feb 11 04:20:22 MET 1996 Tim Wilkinson <>
* gc.c, thread.c
Added mark & sweep (or is it the other way round?) garbage
collector and finaliser thread. Appears to work for trivial
examples but need *LOTS* more testing.
Currently all classes are considered persistent objects and
are not garbaged when unreferenced. This is mostly because I
don't understand some of the finer points here I suspect.
Sun Feb 11 00:58:45 MET 1996 Tim Wilkinson <>
* thread.c, locks.c
Finished up thread implementation.
Added CVs to lock system + library support for notifies.
Sat Feb 10 14:52:03 MET 1996 Tim Wilkinson <>
* thread.c
Initial user-level thread implementation.
* locks.c
Initial user-level mutex implementation (no cv's yet).
* soft2.c, translator.c, instruction, md.h
Fixed monitors so static method monitors lock class object.
Thu Feb 8 21:44:32 MET 1996 Tim Wilkinson <>
* lib/...
Generated stubs for all native functions in java/... classes.
Implemented all java/io and java/util function.
* support.c
Added support functions for native code to call.
* md.h
Added assembly macros for various KAFFE calls needed by
support routines, exceptions, and class initialisation.
New routines allow optimiser to be enabled for most
file (currently not for soft?.c).
Thu Feb 8 13:48:21 MET 1996 Tim Wilkinson <>
* soft1.c
Added last soft instructions for floats and doubles.
Wed Feb 7 23:46:53 MET 1996 Tim Wilkinson <>
* Added multianewarray support.
Wed Feb 7 11:13:59 MET 1996 Tim Wilkinson <>
* kaffe2native.c, register.c
Modified stack management to support arbitrary number of
registers. Still using 4 since code generate cannot handle
different types of registers.
Wed Feb 7 00:31:56 MET 1996 Tim Wilkinson <>
* kaffeh/readClass.c
Added double and long support to the stub generator.
Wed Feb 7 00:09:04 MET 1996 Tim Wilkinson <>
* Various minor fixes.
* Added full array support (arrays are now classes).
Tue Feb 6 11:38:46 MET 1996 Tim Wilkinson <>
* Version 0.1 of Kaffe released.
Tue Feb 6 11:17:26 MET 1996 Tim Wilkinson <>
* Lots of fixes to get javac running under VM. Will now
correctly compile but is still generating
stack errors (I don't know why yet).
Mon Feb 5 11:44:03 MET 1996 Tim Wilkinson <>
* Remove need to call translator recursively.
Mon Feb 5 10:48:44 MET 1996 Tim Wilkinson <>
* translate.c
Fixed RET argument (added FIXUP macro).
Sun Feb 4 23:27:58 MET 1996 Tim Wilkinson <>
* i386-freebsd-asm.h
Finished i386 code generation (floating point instructions).
Sun Feb 4 20:19:02 MET 1996 Tim Wilkinson <>
* Changes layout of source into more sensible sub-directories.
Sun Feb 4 04:02:44 MET 1996 Tim Wilkinson <>
* Create first version of kaffeh, the program which builds
native stubs from .class files. Currently does not support
types >32 bits correctly.
Sat Feb 3 20:53:46 MET 1996 Tim Wilkinson <>
* translator.c, instruction.c
Added lookupswitch and tableswitch generation.
Sat Feb 3 18:53:57 MET 1996 Tim Wilkinson <>
* main.c
Added command argument processing - builds an array
of strings to be passed to main([Ljava/lang/String;)V.
Sat Feb 3 17:24:28 MET 1996 Tim Wilkinson <>
* Added in automatic calls to monitor enter/exit code for
synchronised methods. Still no actual monitors implemented.
Sat Feb 3 16:58:34 MET 1996 Tim Wilkinson <>
* Finally picked a name - Kaffe (coffee in Swedish, which
is where I happened to be while writing this).
Fri Feb 2 11:33:14 MET 1996 Tim Wilkinson <>
* Virtual machine runs HelloWorldApp.class.
Sat Jan 13 10:00:00 MET 1996 Tim Wilkinson <>
* Java(tm) Virtual Machine project started.
Jump to Line
Something went wrong with that request. Please try again.