Sun Jul 12 00:24:27 1998 Godmar Back <gback@marker.cs.utah.edu> * kaffe/kaffevm/classMethod.c: fixed race condition and lock problem in loadClass. Fri Jul 10 20:41:54 1998 Godmar Back <gback@marker.cs.utah.edu> * 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 <gback@marker.cs.utah.edu> * 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/NullPointerTest.java: new file Mon Jul 6 17:43:04 1998 Godmar Back <gback@marker.cs.utah.edu> * kaffe/kaffevm/thread.[ch];locks.c;baseClasses.c: kaffe/kaffevm/systems/unix-[jthreads|internals]/*: 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 <gback@marker.cs.utah.edu> * 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/ReflectInterfaces.java: new file to test above fixes. * 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 <gback@marker.cs.utah.edu> * libraries/clib/native/Class.c: don't report java.io.Serializable 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/TestSerializable.java: new file. Wed Jul 1 19:20:23 1998 Godmar Back <gback@marker.cs.utah.edu> * libraries/clib/native/Class.c: implemented makeExceptions kaffe/kaffevm/code.[ch]: kaffe/kaffevm/classMethod.h,readClassConfig.h,baseClasses.c: 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 <gback@marker.cs.utah.edu> * libraries/clib/native/ObjectStreamClass.c: implement missing methods and fixed methods returning signatures. Mon Jun 29 16:16:23 1998 Godmar Back <gback@marker.cs.utah.edu> * libraries/clib/native/ObjectStreamClass.c: exclude transient fields from serialization. Fri Jun 26 20:06:02 1998 Godmar Back <gback@marker.cs.utah.edu> * 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 constructors. test/regression/TestScript: fixed test result. Wed Jun 17 11:25:56 1998 Godmar Back <gback@marker.cs.utah.edu> * 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 exit->EXIT. Mon Jun 15 12:33:25 1998 Alexandre Oliva <oliva@dcc.unicamp.br> * 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 <gback@marker.cs.utah.edu> * libraries/clib/native/Method.c: used JNI to implement InvocationTargetException as recommended by Tim. test/regression/InvTarExcTest.java: new file test/regression/ReflectInvoke.java: new file test/regression/TestScript: added two small tests InvTarExcTest, ReflectInvoke * 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 <gback@marker.cs.utah.edu> * 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/TestNative.java: native methods, only in DEBUG mode libraries/clib/native/Makefile.in: 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 <inaba@snoopy.src.ricoh.co.jp> Godmar Back <gback@marker.cs.utah.edu> * config/sparc/sunos4/md.h, kaffe/kaffevm/Makefile.in, kaffe/kaffevm/systems/unix-internal/Makefile.frag kaffe/kaffevm/systems/unix-jthreads/Makefile.frag: SunOS4 changes: removed use of += construct in Makefile, corrected SP_OFFSET kaffe/kaffevm/systems/unix-jthreads/jthread.h: configure.in, config/config.h.in: included test for SunOS4 on_exit Thu May 28 13:57:47 1998 Godmar Back <gback@marker.cs.utah.edu> * kaffe/kaffevm/jar.[ch]: removed use of stdio. Thu May 28 11:31:43 PDT 1998 Tim Wilkinson <tim@transvirtual.com> * 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 <gback@cs.utah.edu> * configure.in, Makefile.in at all levels: added depend target; copied and adapted from Pat Tullmann's build env <tullmann@cs.utah.edu> README.depend: new file describing the changes. Wed May 27 12:39:02 PDT 1998 RĂ©mi Perrot <remi.perrot@mail.dotcom.fr> * 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 <oliva@dcc.unicamp.br> * kaffe/libraries/clib/native/Method.c (java_lang_reflect_Method_invoke): wrap non-Object return types correctly Tue May 26 09:45:50 1998 Godmar Back <gback@cs.utah.edu> * kaffe/kaffevm/system/unix-internal/internalCalls.c kaffe/kaffevm/system/unix-jthreads/internal.c: include/jsyscall.h: added fstat to syscall interface as suggested by Robert S. Thau <rst@ai.mit.edu> kaffe/kaffevm/findInJar.c: included jsyscall.h Mon May 25 15:02:26 1998 Godmar Back <gback@cs.utah.edu> * 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 <oliva@dcc.unicamp.br> * 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 <gback@cs.utah.edu> * kaffe/kaffevm/debug.[ch]: new files. Support for debugging. kaffe/kaffevm/Makefile.in,baseClasses.c,exception.c,soft.c,locks.c 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 <jsc@brillig.cs.city.ac.uk> * 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 <gback@marker.cs.utah.edu> * kaffe/kaffevm/system/unix-jthreads/jthread.c: fixed bug in internalYield, added deadlock detection. Fri May 15 17:07:36 1998 Godmar Back <gback@marker.cs.utah.edu> * kaffe/kaffevm/thread.c: set standardGroups.group initially to null instead of an array of length null to fix ThreadGroup creation problem. Thu May 14 15:04:09 1998 Godmar Back <gback@marker.cs.utah.edu> * test/regression/TestScript: added GCTest * test/regression/GCTest.java: new file, courtesy Pat Tullmann <tullmann@cs.utah.edu> * 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 <lincoln@netapp.com> * libraries/clib/net/PlainSocketImpl.c: Added support for TCP_NODELAY option. Tue May 12 09:51:42 1998 Godmar Back <gback@marker.cs.utah.edu> * 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 <oliva@dcc.unicamp.br> * 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/Makefile.in: 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/Makefile.in: (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 <oliva@dcc.unicamp.br> * 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 <gback@cs.utah.edu> * libraries/clib/native/Class.c: added check for parameters in getMethod0 and getConstructor0. Fri Apr 10 00:52:06 1998 Godmar Back <gback@cs.utah.edu> * 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/CLTest.java, test/regression/Hello.java: new files Thu Apr 9 14:30:59 1998 Godmar Back <gback@cs.utah.edu> * 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 <tim@transvirtual.com> * Too much stuff has changed to document it all here. Sorry. Wed Jan 14 15:18:36 GMT 1998 John C. Hayward <John.C.Hayward@wheaton.edu> * config/i386/netbsd1/md.h: Fixed stack pointer offset. Wed Jan 14 15:18:36 GMT 1998 Todd T. Fries <toddf@acm.org> * Support for Openbsd on Sparc. Fri Oct 24 17:54:56 BST 1997 Tim Wilkinson <tim@tjwassoc.co.uk> * 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/Makefile.in: Added EXTRA_CFLAGS. * kaffe/kaffevm/Makefile.in: Added EXTRA_CFLAGS. * kaffe/kaffevm/kaffe.def: Optimised and merged some instructions. * kaffe/kaffevm/kaffe.def: Detect null methods and insert call to exception. * 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/tjwassoc.co.uk/external_wrappers.h: Uncommented function which are now implemented. * tjwassoc.co.uk/APIcore/lib/java.lang/System.c: Fixed assignment of NULL entries to arrays in arraycopy. Thu Oct 23 21:44:03 BST 1997 Tim Wilkinson <tim@tjwassoc.co.uk> * 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 <oliva@dcc.unicamp.br> * 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 <bothner@cygnus.com> * 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 <bothner@cygnus.com> * 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 <tim@tjwassoc.co.uk> * Version 0.9.2 of Kaffe released. Thu Oct 2 21:52:27 BST 1997 Tim Wilkinson <tim@tjwassoc.co.uk> * 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 system. * 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. * java.net/PlainSocketImpl.c: 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 <rainer@server.urb.de> * packages/tjwassoc.co.uk/APInet/lib/java.net/...: Fixes for datagram systems. Sat Sep 20 12:38:59 1997 Per Bothner <bothner@rtl.cygnus.com> * 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 <tim@tjwassoc.co.uk> * 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. * tjwassoc.co.uk/APIcore/lib/...: Updated library types to use new unpacked types. * tjwassoc.co.uk/APInet/lib/...: Updated library types to use new unpacked types. * tjwassoc.co.uk/APIzip/lib/...: Updated library types to use new unpacked types. Fri Sep 19 00:00:00 BSD 1997 Richard Henderson <richard@stommel.tamu.edu> * config/alpha/...: Extensive bug fixes for Alpha ports. Sun Jun 29 16:13:05 BST 1997 Tim Wilkinson <tim@tjwassoc.co.uk> * 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 <tim@tjwassoc.co.uk> * Version 0.9.1 of Kaffe released. Thu Jun 26 16:28:23 BST 1997 Tim Wilkinson <tim@tjwassoc.co.uk> * config.guess: Added QNX * config.sub: Added QNX * configure.in: Added QNX * NOTES/FAQ.amigaos: Updated Amiga comments. * config/config.h.in: 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, intrp/machine.c,intrp/machine.h,jit/machine.c,jit/machine.h, jit/funcs.c}: Misc updates and bug fixes. * tjwassoc.co.uk/APIcore/lib/java.io/FileInputStream.c: Implement available using select. * tjwassoc.co.uk/APInet/lib/java.net/PlainSocketImpl.c: Thu Jun 26 12:45:59 1997 +0100 Jeppe Sommer <jso@lyngso-industri.dk> * Added QNX port for i386. Sun Jun 15 20:09:18 BST 1997 Pat Tullman <tullmann@cs.utah.edu> * Various Makefile.in: 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 <tim@tjwassoc.co.uk> * configure.in: Updated to handle libkaffe_zip * config/sparc/jit.h: Trampoline bug fix. * kaffevm/classMethod.c: Various bug fixes. * tjwassoc.co.uk/Makefile.in: Added libkaffe_zip. * tjwassoc.co.uk/APIcore/lib/Makefile.in: Removed entries to zip functions - now moved to own library. * tjwassoc.co.uk/APIzip/lib/java.util.zip.stubs/...: New files for zip library. * tjwassoc.co.uk/APIcore/lib/java.util.zip.stubs/...: Removed files. Thu Jun 12 13:22:53 BST 1997 Tim Wilkinson <tim@tjwassoc.co.uk> * config/config-mem.h: Removed checked_malloc, etc. which are no longer required. * config/config-std.h: Added __NORETURN__ macro which is used with gcc. * include/Array.h: New file for general array support. * include/Makefile.in: New files installed. * include/java_lang_Thread.h: New file specifying internal thread structure. * include/java_lang_ThreadGroup.h: New file specifying internal thread group structure. * include/java_lang_Throwable.h: New file specifying internal exception structure. * 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 system. * 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 ACC_TRANSLATED flag. * 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 structures. * 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/Makefile.in: Install new scripts. * scripts/...: Added new script files. * packages/javasoft.com/...: Updated to JDK 1.1.2 * packages/tjwassoc.co.uk/...: 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 <bothner@cygnus.com> * 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 <lidl@va.pubnix.com> * New BSDI 3.x port for Sparc. Thu Jun 05 01:54:37 MET1 1997 Matthias Hopf <mshopf@informatik.uni-erlangen.de> * 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 <tim@tjwassoc.co.uk> * javasoft/APIcore/...: Replaced classes and properties with new JDK 1.1.2 parts. Sun 1 Jun 1997 13:47:35 CDT Richard Henderson <richard@stommel.tamu.edu> * 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 <richard@stommel.tamu.edu> * Various bug fixes. Thu May 29 18:54:19 1997 Per Bothner <bothner@deneb.cygnus.com> * 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 <bothner@cygnus.com> * 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 <mshopf@informatik.uni-erlangen.de> * config/config.h.in: Added ALIGNMENTOF_VOIDP. * configure.in: 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 <tullmann@facility.cs.utah.edu> * kaffe/kaffeh/...: Lots of bug fixes for kaffeh. Sun 25 May 1997 15:33:02 Birddog <kaffe@shebiki.demon.co.uk> * Added port for m68k Linux. Sat May 24 17:00:27 MET1 1997 Matthias Hopf <mshopf@informatik.uni-erlangen.de> * 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 syntax. * kaffevm/kaffe.def: Added loads of CHECK_NULL macro invocations. Fri May 23 06:26:14 1997 Fila Kolodny <fila@ibi.com> * 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/config.h.in: Correct typo. Add HAVE_ASM_SIGNAL_H, HAVE_ASM_SIGCONTEXT_H, HAVE_SIGNAL_H and HAVE_FEATURES_H. * configure.in: Add sigcontext.h, signal.h and features.h to AC_CHECK_HEADERS. Tue, 20 May 1997 21:56:58 MET Artur Biesiadowski <abies@pg.gda.pl> * tjwassoc.co.uk/APIcore/lib/...: Added some simple native functions. Tue May 20 13:01:09 BST 1997 Eduardo Takahashi <takahasi+@cs.cmu.edu> * kaffevm/gc-mem.c: Fixes to size translation table - some values were missed. Thu May 15 11:36:11 BST 1997 Tim Wilkinson <tim@tjwassoc.co.uk> * Version 0.9.0 of Kaffe released. Thu May 15 09:30:15 BST 1997 Tim Wilkinson <tim@tjwassoc.co.uk> * configure.in: Various fixes, and modified checks for dlopen and dlerror. * config/config.h.in: 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 compilers. 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 gc-mem.c. * 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 <mcook@cognex.com> * kaffeh/file.h: Fixed up macros to avoid portability problems. Wed May 14 18:51:37 1997 Per Bothner <bothner@deneb.cygnus.com> * 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 <tim@tjwassoc.co.uk> * configure.in: Modified library search to address problems on certain architectures. * configure.in: Added ARM options (not fully supported yet) * configure.in: 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 threads. * 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/Makefile.in: Now use STD_LIBRARIES. * kaffevm/Makefile.in: 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 staticData. * 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 structures. * 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 argument. * kaffevm/object.c(newMultiArray): New function to create multi-dim array. * kaffevm/object.c(walkClass): Updated to handle new form of static class data. * kaffevm/object.h: Updated for new functions and use of java_lang_Object.h. * 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 system. * kaffevm/jit/machine.c: Use new locking scheme. * javasoft.com/APIcore/Makefile.in: Added new properties for install. * javasoft.com/APIcore/classes/classes.zip: JDK 1.1.1 classes. * tjwassoc.co.uk/external_wrappers.h: Updated function wrappers for non-shared library systems. * tjwassoc.co.uk/APIcore/lib/Makefile.in: Updated file lists. * tjwassoc.co.uk/APIcore/lib/java.io/File.c: Updated for JDK 1.1.1 * tjwassoc.co.uk/APIcore/lib/java.io/FileDescriptor.c: Updated for JDK 1.1.1 * tjwassoc.co.uk/APIcore/lib/java.io/FileInputStream.c: Updated for JDK 1.1.1 * tjwassoc.co.uk/APIcore/lib/java.io/FileOutputStream.c: Updated for JDK 1.1.1 * tjwassoc.co.uk/APIcore/lib/java.io/RandomAccessFile.c: Updated for JDK 1.1.1 * tjwassoc.co.uk/APIcore/lib/java.lang/Class.c: Update for JDK 1.1.1 * tjwassoc.co.uk/APIcore/lib/java.lang/ClassLoader.c: Updated for JDK 1.1.1 * tjwassoc.co.uk/APIcore/lib/java.lang/Object.c: Updated for JDK 1.1.1 * tjwassoc.co.uk/APIcore/lib/java.lang/SecurityManager.c: Updated for JDK 1.1.1 * tjwassoc.co.uk/APIcore/lib/java.lang/System.c: Updated for JDK 1.1.1 * tjwassoc.co.uk/APIcore/lib/java.lang/Thread.c: Updated for JDK 1.1.1 * tjwassoc.co.uk/APIcore/lib/java.lang/Throwable.c: Updated for JDK 1.1.1 * tjwassoc.co.uk/APIcore/lib/java.lang/UNIXProcess.c: Updated for JDK 1.1.1 (not quite fixed yet) * tjwassoc.co.uk/APInet/lib/Makefile.in: Added new files. * tjwassoc.co.uk/APInet/lib/java.net/PlainSocketImpl.c: Updated for JDK 1.1.1 * tjwassoc.co.uk/APInet/lib/java.net/SocketInputStream.c: Updated for JDK 1.1.1 * tjwassoc.co.uk/APInet/lib/java.net/SocketOutputStream.c: Updated for JDK 1.1.1 Fri Apr 25 14:48:00 1997 Daniel.Veillard <Daniel.Veillard@imag.fr> * 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 <jamesd@spirit.com.au> * kaffe/kaffevm/support.c: Fix to javaString2CString to handle null strings. Wed Apr 23 14:37:04 1997 Per Bothner <bothner@deneb.cygnus.com> * 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 <tim@tjwassoc.co.uk> * Version 0.8.4 of Kaffe released. Thu Apr 17 13:35:39 BST 1997 Tim Wilkinson <tim@tjwassoc.co.uk> * Various small bug fixes which I forgot to make a note of. Sat Mar 29 15:22:59 GMT 1997 Tim Wilkinson <tim@tjwassoc.co.uk> * Snapshot taken for book "Java Secrets" by Elliotte Rusty Harold. Sat Mar 29 15:11:49 GMT 1997 Tim Wilkinson <tim@tjwassoc.co.uk> * kaffevm/slib.h: Modified selection of shared library system. * config/config.in.h: Added undefs for dlopen, shl_load and others. * configure.in: 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 <ulrich.albrecht@AC.CyberCity.de> * 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 <gufl0000@stud.uni-sb.de> * kaffevm/external.c: ifndef around declaration of libhandle array. Sat Mar 29 15:11:49 GMT 1997 Alexandre Oliva <oliva@dcc.unicamp.br> * kaffevm/Makefile.in: Added NET_LIBRARIES to standard libs for non-shared link. Wed 26 Mar 1997 16:11:29 +0100 Daniel Veillard <Daniel.Veillard@imag.fr> * 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 <tim@tjwassoc.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * Version 0.8.3 of Kaffe released. Thu Mar 20 23:38:52 GMT 1997 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <Frank.Mehnert@mchp.siemens.de> * 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 <tim@tjwassoc.demon.co.uk> * 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 <bothner@deneb.cygnus.com> 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 <tim@tjwassoc.demon.co.uk> * 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). * configure.in: Added INSTALL_SCRIPT * kaffe/scripts/Makefile.in: Used INSTALL_SCRIPT rather than INSTALL_PROGRAM. * 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 <veillard@inrialpes.fr> * 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 <tim@tjwassoc.demon.co.uk> * Marged in new version of BISS-AWT (version 0.87) Fri Mar 7 11:19:13 GMT 1997 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <bothner@deneb.cygnus.com> 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. (STRING_SIZE, STRING_DATA): New macros. * 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 <gback@cs.utah.edu> * java.net/DatagramSocket.c: Minor fixes to Datagrams. Wed Mar 5 15:10:01 GMT 1997 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * kaffevm/slib.h: Abstracted shared library loading into more general macros. * 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 <ljd@hpeoposk.cup.hp.com> * config/parisc/...: Added PARISC configuration for HP-UX. Tue 4 Mar 1997 13:00:20 MET Michael Eriksson <Michael.Eriksson@era-t.ericsson.se> * config/sparc/netbsd1/jit-md.h: Added JIT support for NetBSD on sparc. Thu Feb 27 18:22:02 1997 Per Bothner <bothner@deneb.cygnus.com> * 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/tjwassoc.demon.co.uk/APIcore/lib/java.lang/System.c (java_lang_System_arraycopy): Use ARRAY_DATA. Follow spec better. * packages/tjwassoc.demon.co.uk/APIcore/lib/java.lang/Object.c, packages/tjwassoc.demon.co.uk/APInet/lib/java.net/InetAddress.c: Use ARRAY_DATA. Mon Mar 3 10:31:03 GMT 1997 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * Version 0.8.2 of Kaffe released. Wed Feb 26 23:20:49 GMT 1997 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * APIcore/lib/java.lang/Runtime.c: Rewrote execInternal to use UNIXProcesses. * APIcore/lib/java.lang/UNIXProcess.c: Implemented primitives for managing processes. * configure.in: 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/java.net/PlainSocketImpl.c: Fix socket binding to retrieve socket number if lport == 0. Sun Feb 23 23:18:54 1997 Per Bothner <bothner@deneb.cygnus.com> * 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 <tim@tjwassoc.demon.co.uk> * 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 <rth@tamu.edu> * 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, ngc_int. (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 <jcollas@moreira.com> * 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 <rth@tamu.edu> * Various bug fixes for Alpha port. Mon Feb 17 23:48:45 GMT 1997 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * Version 0.8.1 of Kaffe released. Mon Feb 17 13:33:46 CST 1997 Richard Henderson <rth@tamu.edu> * config/alpha/jit.h: Bounce calls to native C functions through a trampoline. * kaffevm/jit/machine.c (translate): Added support for native call trampoline. Mon Feb 17 12:54:53 GMT 1997 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <rth@tamu.edu> * config/m68k/jit*: Added in JIT system for m68k. Sat, 15 Feb 1997 21:24:40 +0100 Piers Uso Walter <piers@mediahaus.de> * config/config-io.h: Now conditionally include <bsd/libc.h> * kaffevm/classMethod.c: Added ';' on label to prevent compiler error. Fri, 14 Feb 1997 15:38:47 +0200 Esa Salonen <es@vat-vai.valmet.com> * kaffevm/intrp/machine.c: Avoid calling native() when ncode has already been found. Thu Feb 13 22:15:39 1997 Per Bothner <bothner@deneb.cygnus.com> 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 <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * config/config.h.in, configure.in: 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 <veillard@inrialpes.fr> * 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 anyhow). Mon 10 Feb 1997 13:14:34 -0200 Alexandre Oliva <oliva@dcc.unicamp.br> * 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 <rth@tamu.edu> * 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. * configure.in (alpha-osf): Fix typo in LIBSHARE. * packages/tjwassoc.demon.co.uk/APIcore/lib/java.util/Date.c: The proper type for the argument to localtime and gmtime is time_t. Mon Feb 10 10:00:00 GMT 1997 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * Version 0.8.0 of Kaffe released. Sat Feb 8 15:39:09 GMT 1997 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * kaffevm/threadCalls.c: Added simple file descriptor check to blockOnFile. Sat, 8 Feb 1997 00:58:18 +0100 Bert Driehuis <driehuis@playbeing.org> * java.net/SocketOutputStream.c: Added check for valid file descriptor before writing to socket. Fri, 07 Feb 1997 01:14:29 EST Erik Nygren <nygren@mit.edu> * Added OpenBSD configuration form i386. Fri Feb 7 15:33:03 GMT 1997 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 <mshopf@informatik.uni-erlangen.de> * configure: Changed the default CFLAGS for m68k-unknown-amigaos as the old ones were the reason for major troubles on some machines. * configure.in: 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 <tim@tjwassoc.demon.co.uk> * 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 <rth@tamu.edu> * 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. * configure.in (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/tjwassoc.demon.co.uk/APIcore/lib/java.io/File.c (java_io_File_list0): Correct name of String class. Sun Feb 2 22:19:18 GMT 1997 Daniel Veillard <Daniel.Veillard@inrialpes.fr> * 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 <rth@tamu.edu> * 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 <tim@tjwassoc.demon.co.uk> * 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 <bothner@deneb.cygnus.com> * 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 <tim@tjwassoc.demon.co.uk> * Merged in more Alpha JIT patches. Thanks to Richard Henderson <rth@tamu.edu>. Wed Jan 29 20:25:38 GMT 1997 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * Merged in Alpha JIT patches. My very great thanks to Richard Henderson <rth@tamu.edu> 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 <tim@tjwassoc.demon.co.uk> * Merged in support for BISS-AWT. * Merged in support for SAWT. Jan 24 12:14:35 MST 1997 Brad Harvey <brad@hitachi.com> * Updates for AIX port. Thu Jan 23 12:42:59 CST 1997 Richard Henderson <rth@tamu.edu> * 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 <flight@mathi.uni-heidelberg.de> * config/m68k/*/threads.h: Added TCTX(..) macros which had been missed. Thu Jan 23 22:10:39 GMT 1997 Rick Greer <rick@sandpiper.com> * 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 <tim@tjwassoc.demon.co.uk> * Version 0.7.1 of Kaffe released. Wed, 22 Jan 1997 12:24:02 CST Richard Henderson <richard@atheist.tamu.edu> * Fixes for Alpha port. Wed Jan 22 11:52:56 GMT 1997 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * configure.in: 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 <tim@tjwassoc.demon.co.uk> * 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 <richard@atheist.tamu.edu> * 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 <rick@sandpiper.com> * lib/net/java.net/SocketInputStream.c: Fixed to correctly return end-of-file. * 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 <mpf@ai.mit.edu> * 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 <rick@sandpiper.com> * 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 <rick@sandpiper.com> * 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 <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 configuration. * config/sparc/jit-icode.h: Remove attempt to optimise creation of 0.0 in float and double register (using fsub) 'cause it doesn't work. * 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 <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 <iristech@nordnet.fr> * lib/native/java.util/Date.c: Removed the various #ifndef __WIN32__ since this code is valid under Cygnus's Win32 tools. Mon Jan 6 12:22:06 GMT 1997 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * Version 0.7.0 of Kaffe released. Fri Jan 3 14:46:23 GMT 1997 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 <pm@mwave.biss-net.com> for doing the orignal implementation of this. Tue Dec 31 00:12:00 GMT 1996 Thomas Graf <graf@dms.at> * Added Data General DG/UX port for i386. Tue Dec 31 00:03:20 GMT 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <ms.anet.cz@ms.anet.cz> * 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 <tim@tjwassoc.demon.co.uk> * Version 0.6.1 of Kaffe released. Tue Dec 17 12:07:49 GMT 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * kaffevm/exception.c, config/{config-signal.h,config.in.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 <tim@tjwassoc.demon.co.uk> * 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 uptodate. * 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). * configure.in: 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 <tim@tjwassoc.demon.co.uk> * 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 <mshopf@informatik.uni-erlangen.de> * config/m68k/amigaos/...: Various AmigaOS fixes. Fri Dec 6 16:01:42 GMT 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <isozaki@theory.brl.ntt.jp> * config/config-hacks.h: Fix for MIPS for blocking calls. Wed Dec 4 23:32:19 GMT 1996 Kevin Christian <Kevin.Christian@symbios.com> * lib/net/java.net/InetAddress.c: Added stdio.h. Wed Dec 4 10:59:39 GMT 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <bothner@deneb.cygnus.com> 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/jtypes.h.in (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*). (WORDS_TO_LONG, CLASS_CONSTANTS, CLASS_CONST_SIZE, CLASS_CONST_TAG, CLASS_CONST_DATA, CLASS_CONST_INT, CLASS_CONST_LONG, CLASS_CONST_USHORT1, CLASS_CONST_USHORT2): New macros. 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 <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * Added Fujitsu UXP/DS90 port for SPARC. Thanks to Toshiaki Nomura <nom@yk.fujitsu.co.jp> Wed Nov 27 22:40:38 GMT 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <bothner@deneb.cygnus.com> * 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/Makefile.in: Compile ../kaffevm/util.c with -DKAFFEH Mon Nov 26 16:25:43 +0100 1996 Peter C, Mehlitz <pm@biss.hb.eunet.de> * kaffevm/{thread.c,threadCall.c,gc.c}: Various thread fixes. Tue Nov 26 09:54:20 GMT 1996 Erik Johannessen <erjohann@sn.no> * Added NetBSD port for M68K. Mon Nov 25 00:01:45 +0100 1996 Felix Hupfeld <hupfeld@swol.de> * config/m68k/amigados/md.h: Fix to Amiga compilation. Sun Nov 24 17:00:54 GMT 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <shm@network-services.uoregon.edu> * configure.in: 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 <tim@tjwassoc.demon.co.uk> * configure.in: 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). * .../Makfile.in: Propogated Per's exit fix to other makefiles. Sat Nov 23 21:45:02 GMT 1996 Per Bothner <bothner@deneb.cygnus.com> * Makefile.in: Fixed exit to stop compilation process when errors detected. Sat Nov 23 21:40:10 GMT 1996 Thomas Katzlberger <katzlbt@vuse.vanderbilt.edu> * 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 <tim@tjwassoc.demon.co.uk> * Version 0.6.0 of Kaffe released. Fri Nov 22 08:29:38 GMT 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 <rick@sandpiper.com> * Added port for MachTen 4.0.3/PowerPc. Mon Nov 18 17:28:01 GMT 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 instructions). * 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 <bothner@deneb.cygnus.com>. Fri Nov 15 16:04:36 1996 Per Bothner <bothner@deneb.cygnus.com> * configure.in, 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 <bothner@deneb.cygnus.com> 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 <bothner@deneb.cygnus.com> * lib/native/java.io/FileInputStream.c (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 <bothner@deneb.cygnus.com> 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, STRING_OBJ2DATA): Removed. (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*. (CLASS_CNAME, CLASS_CONST_TAG, CLASS_CONST_DATA): New macros. * 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/Makefile.in (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/Makefile.in: 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/java.net/InetAddress.c: Add now-needed #include directives. Wed Oct 2 17:43:08 1996 Per Bothner <bothner@deneb.cygnus.com> 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 <tim@tjwassoc.demon.co.uk> * Version 0.5.6 of Kaffe released. Thu Nov 14 09:57:37 GMT 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <bothner@deneb.cygnus.com> * lib/native/java.io/FileInputStream.c (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 <tim@tjwassoc.demon.co.uk> * kaffevm/jit/exception.c, kaffevm/{lookup.c,lookup.h}, config/i386/jit.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 <bothner@deneb.cygnus.com> * kaffevm/util.c Added util file containing checked malloc and calloc. Fri Nov 8 09:27:06 GMT 1996 Yasuyuki Tsukui <tsukui@xpc.canon.co.jp> * 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 <chase@ece.utexas.edu> * config/config-hack.h Added config hacks for NetBSD. Wed Nov 6 08:11:16 GMT 1996 Thomas Katzlberger <katzlbt@vuse.vanderbilt.edu> * lib/native/java.util/Date.c Various fixes to date outputs. Wed Nov 6 07:02:09 GMT 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * lib/native/java.io/FileOutputStream.c Added O_TRUNC to open so files which exists are truncated. * lib/net/java.net/PlainSocketImpl.c Added SO_REUSEADDR so binds can rebind to TIME_WAIT sockets. Thanks to David Hyatt <d-hyatt@cs.uiuc.edu>. Mon Nov 4 09:55:12 GMT 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * configure.in, config.sub, config.guess Fixed [345] to [3456] enable handling of Pentium Pros. Thu Oct 24 09:11:51 BST 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * lib/native/java.io/File.c Fixed true/false return values of various functions. Thanks to Artur 'Revinor' Biesiadowski <abies@pg.gda.pl>. Mon Oct 21 08:14:06 BST 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <cs@hal.kph.tuwien.ac.at> * 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 <leei@ai.sri.com> * configure.in, config/{config.h.in, config-io.h} Fixed confusing directory configuration. Thu Oct 17 09:06:08 BST 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * configure.in Added LIBS to build lines for shared libraries. Thanks to Jonathan Hardwick <jch@cs.cmu.edu>. Fri Oct 11 15:32:04 BST 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * configure.in, config/config.h.in, 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 <tim@tjwassoc.demon.co.uk> * configure.in, .../Makefile.in 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 <bothner@deneb.cygnus.com> * 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 <tim@tjwassoc.demon.co.uk> * Version 0.5.5 of Kaffe released. Sun Oct 6 15:22:51 BST 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * kaffevm/intrp/{machine.c, exception.c} Added backtrace printout to interpreter. Sun Oct 6 01:42:46 BST 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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> * Makefile.in Automatically update Makefile, configure when Makefile.in or configure.in change. * **/Makefile.in Split CFLAGS into INCLUDES,CFLAGS and ALL_CFLAGS so that `make CFLAGS="-g -O1"' will behave properly. * configure.in Use AC_C_CHAR_UNSIGNED to check for default unsigned char declarations. * 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 <tim@tjwassoc.demon.co.uk> * 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 thrown. Thu Oct 3 08:43:03 BST 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * Merged additional Amiga patches. Thanks to Matthias Hopf <mshopf@informatik.uni-erlangen.de> * Added m68k-nextstep3 port. Wed Sep 11 17:08:40 JST 1996 Tim Wilinson <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * Version 0.5p4 of Kaffe released. Wed Sep 4 22:48:28 BST 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * 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 <tim@tjwassoc.demon.co.uk> * kaffevm/thread.c Given initial threads names so getName() will provides something printable. * kaffevm/support.c Added function makeJavaCharArray to build character arrays from C strings. Fri Aug 30 23:54:55 BST 1996 Tim Wilkinson <tim@tjwassoc.demon.co.uk> * configure.in 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 <desb@desb.demon.co.uk> * More Windows'95 porting and fixing from Des. Thu Aug 29 16:44:22 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * kaffevm/external.c Added code to eliminate duplicate shared library handles. Fri Aug 23 20:54:16 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * lib/native/java.lang/System.c Fixed array copy to correctly copy overlapping buffers. Thanks to John Orr <jorr@math.unl.edu> for giving me the information which finally caught this sucker. Fri Aug 16 14:21:29 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * config/..., kaffevm/... Merged in diffs for Amiga DOS. Thanks to Matthias Hopf <mshopf@informatik.uni-erlangen.de> * kaffevm/thread.c Small changes to thread stack allocation and free macros. Mon Aug 12 22:52:50 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * kaffevm/locks.c Added thread resume in internalWaitCond(). Thanks Werner Dittmann <wdi@zfe.siemens.de>. Mon Aug 12 18:20:45 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * configure.in 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 <tim@sarc.city.ac.uk> * 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/java.io/File.c Added list0 code - can now get directory listings. Thu Aug 8 11:33:38 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Version 0.5p3 of Kaffe released. Thu Aug 8 07:43:32 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * lib/net/java.net/PlainSocketImpl.c 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 <tim@sarc.city.ac.uk> * lib/net/java.net/{DatagramSocket.c,PlainSocketImpl.c} Fixed close calls so socket will not be closed more than once. Wed Aug 7 17:55:57 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 thread. Wed Aug 7 11:03:34 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * config/i386/win95/ms/..., configure.in Added initial support for Microsoft C compilation of kaffe. Unfinished. Tue Aug 6 22:44:04 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * kaffevm/... Made some minor optimisations to code to improve efficency. Mon Aug 5 19:45:41 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <jdassen@wi.leidenuniv.nl> * man/kaffe.1 Added manual page for kaffe. Mon Aug 5 13:57:55 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <dyoung@cu-online.com> for his helpful comments). Mon Aug 5 12:25:19 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * kaffe/main.c, kaffevm/{support.c,support.h}, java.lang/System.c Added '-D' option to allow definition of user defined properties. Mon Aug 5 11:34:27 BST 1996 Mark Huizer <xaa@stack.nl> * kaffevm/gc.c Removed assertion for GC_GARBAGE which is just wrong. Sat Aug 3 18:24:58 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 routine. * kaffeh/Makefile.in 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 <tim@sarc.city.ac.uk> * Version 0.5p2 of Kaffe released. Fri Aug 2 07:12:40 BST 1996 Michael Golm <mlgolm@immd4.informatik.uni-erlangen.de> * kaffevm/support.c, lib/native/java.io/File.c 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 <tim@sarc.city.ac.uk> * 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 <gusthy@hu.bonus.com> * kaffevm/..., configure.in, config/powerpc/... Merged version of Kaffe which support the PowerPC. Wed Jul 31 12:13:18 BST 1996 Bruce Zenel <baz@cs.columbia.edu> * kaffevm/threadCalls.c Various fixes for non-blocking sockets calls. Wed Jul 31 12:00:16 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <bradm@caldera.silverplatter.com> * lib/native/java.lang/System.c Removed free()ing of getcwd buffer. Mon Jul 22 20:43:08 PDT 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 compilers). * Makefile.in, lib/Makefile.in Added '|| exit 1' to propogate errors between nested makes. Fri Jul 12 15:27:02 BST 1996 ??? (lost email address) ??? * configure.in, config/... Added NetBSD1 configuration form SPARC. Thu Jul 11 21:23:53 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Version 0.5p1 of Kaffe released. Thu Jul 11 06:42:22 PST 1996 Per Bothner <bothner@deneb.cygnus.com> * java.io/FileOutputStream.c Bug fix to byte writing. Thu Jul 11 21:01:19 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * kaffevm/jit/machine.c, kaffevm/jit/labels.c, kaffevm/jit/seq.c Modified various limited pools to be dynamicly sized rather than static. Wed Jul 10 23:26:43 BST 1996 Tim Wilinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 software. Tue Jul 9 15:11:36 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * kaffevm/jit/machine.c Ignore unreachable code rather than failing assertion. Sat Jul 6 18:16:59 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 file. Wed Jul 3 09:12:06 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * Makefile.in, lib/Makefile.in Ignore errors from rmdir - these directories can only be removed if the program is built in a different tree from the source. Wed Jul 3 08:37:12 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <andyj@osf.org> * 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * Version 0.5 of Kaffe released. Mon Jun 24 22:50:03 BST 1996 Michael Dickson <mdickson@bsdi.com> * configure.in 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 <alo@hut.fi> * lib/net/java.net/InetAddress.c Fix for lookupAllHostAddresses. Mon Jun 24 00:00:00 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * lib/support/nets.h, lib/support/files.h Added extern definition of sys_errlist if syserror() function is unknown. Fri Jun 14 10:00:00 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * configure.in, win95/..., config/config.in.h Minor bug fixes to Windows'95 installation and some configuration parameters for Solaris 2. Wed Jun 12 23:59:26 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Version 0.4p1 of Kaffe released. Wed Jun 12 12:00:21 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Finished Windows'95 port. Many thanks to Des Barry <desb@desb.demon.co.uk> 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 <desb@desb.demon.co.uk> Sat Jun 9 13:30:01 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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> * configure.in, config/sco5/... Added patches to support SCO. Thu Jun 6 9:59:45 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 <tor@cs.brown.edu> * configure.in, lib/net/java.net/PlainSocketImpl.c Added patches to support SPARC Solaris 2. Mon May 20 09:26:40 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * Various Makefile.in 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 <tim@sarc.city.ac.uk> * kaffevm/support.c Fixed conversion of java to c string. Wasn't adding offset to start of the string. * sun/classes.zip, sun/javac.properties Updated classes and properties files to JDK 1.0.2. Mon May 13 11:35:45 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 adjusted). Wed May 1 10:53:43 BST 1996 Des Barry <desb@desb.demon.co.uk> * 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 <tim@sarc.city.ac.uk> * Version 0.3p2 of Kaffe released. Mon Apr 29 07:42:12 BST 1996 Des Barry <desb@desb.demon.co.uk> * 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 <tim@sarc.city.ac.uk> * 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 <desb@desb.demon.co.uk> * Continue Win95/NT & OS/2 code integration. Sat Apr 20 18:31:01 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * config/i386-asm.h Fix for fildd instruction (used by L2D). Fri Apr 19 17:05:29 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * Makfile.in (all), configure.in Changed representation of library extension. Fri Apr 12 09:06:45 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <andyj@osf.org> * Unixware patches for exception handling. Mon Apr 1 10:11:46 BST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Version 0.3 of Kaffe released. Thu Mar 28 14:04:12 GMT 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * lib/... Simplified naming of library files. Tue Mar 26 14:30:03 GMT 1996 Juergen Hannken-Illjes <hannken@eis.cs.tu-bs.de> * Applied NetBSD-current patches. Tue Mar 26 14:06:41 GMT 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * configure.in Combined all configure information into one place. Tue Mar 26 13:54:54 GMT 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * kaffeh/sig.c Fixed up array signatures to match Java. Mon Mar 18 11:13:20 PST 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <andyj@osf.org> * Added Unixware support. Wed Feb 28 12:40:38 GMT 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * kaffeh/readClassConfig.h Added support for super classes. Mon Feb 26 17:49:31 GMT 1996 Pace Willisson <pace@blitz.com> * Added BSDI 2.0.1 support. Mon Feb 26 16:28:07 GMT 1996 Lennart Augustsson <augustss@carmen.se> * Extensive bug fixes for both general Kaffe code as well as Solaris code. Tue Feb 20 10:21:42 GMT 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Version 0.2 of Kaffe released. Tue Feb 20 10:20:40 GMT 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Completed Linux port. Tested on RedHat-2.1. Sun Feb 18 00:04:18 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * readClass.c, readClass.h, readClassConfig.h Generalised readClass functions using macros. Fri Feb 16 01:30:25 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * gc.c Extensive fixing of bugs in garbage collector. Wed Feb 14 01:27:58 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Kaffe now configured using GNU autoconf. Tue Feb 13 00:28:27 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * soft1.c, soft2.c Fixed returns up so optimisater will work. Mon Feb 12 19:34:28 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Changed copyright to Berkeley style license to allow unrestricted use of software. Mon Feb 12 19:07:23 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * zextract.c, findClass.c Added zip .class extraction. Code contributed by Per Bothner (bothner@cygnus.com). Mon Feb 12 12:54:47 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * threadCalls.c Added threaded calls for read and write function. These allow threads to block on a read call without blocking the process. Sun Feb 11 15:46:19 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * lib/... Implementented the majority of java.lang and java.net. 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * soft1.c Added last soft instructions for floats and doubles. Wed Feb 7 23:46:53 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Added multianewarray support. Wed Feb 7 11:13:59 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * kaffeh/readClass.c Added double and long support to the stub generator. Wed Feb 7 00:09:04 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Various minor fixes. * Added full array support (arrays are now classes). Tue Feb 6 11:38:46 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Version 0.1 of Kaffe released. Tue Feb 6 11:17:26 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Lots of fixes to get javac running under VM. Will now correctly compile HelloWorldApp.java but is still generating stack errors (I don't know why yet). Mon Feb 5 11:44:03 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Remove need to call translator recursively. Mon Feb 5 10:48:44 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * translate.c Fixed RET argument (added FIXUP macro). Sun Feb 4 23:27:58 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * i386-freebsd-asm.h Finished i386 code generation (floating point instructions). Sun Feb 4 20:19:02 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Changes layout of source into more sensible sub-directories. Sun Feb 4 04:02:44 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * translator.c, instruction.c Added lookupswitch and tableswitch generation. Sat Feb 3 18:53:57 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * 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 <tim@sarc.city.ac.uk> * Virtual machine runs HelloWorldApp.class. Sat Jan 13 10:00:00 MET 1996 Tim Wilkinson <tim@sarc.city.ac.uk> * Java(tm) Virtual Machine project started.