Kaffe+Kore ChangeLog
* README.Utah: Describe the changes made to configure in
a small bit of detail. Add doc for existing options.
* <everywhere>/Makefile.in, configure.in: Add SET_MAKE to many
makefiles
Add depend stuff everywhere. Mostly
just makefile changes (also changes to configure.in.)
Add --enable-debug to configure.in Add
--enable-depend to configure.in Add --with-kore (Use Kore native
library).
CFLAGS to KAFFE_CFLAGS everywhere (lets me use CFLAGS on the
make command line.)
Make configure more verbose when looking for packages
* kaffe/include/*: Rework the kaffe/include/ directory to have
kore/ and a sun/ subdirectories. (Perhaps this should be part of
each native library? An include directory?) Added appropraite
-I include magic to most Makefiles to support this.
* everywhere: Cleanup dead code, unused types, etc. I compile
with '-Wall', and I've gotten 98% of all the warnings to disappear.
Get some code to wrap at 80 columns (or near 80.)
Added many comments at function heads.
* many header files: Turn lots of "Hjava_TYPE *foo" into "struct
Hjava_TYPE *foo" to reduce header dependencies. Also required to
get lots of code to work with both Kore and Sun libraries---this
effectively makes the typedef opaque so, for example, functions
which only use an object pointer to differentiate different
request (e.g., with the class loader) they don't need to see the
internals of the object.
* kaffe/kaffevm/support.h, include/native.h: Add an unimp() macro
that will use __FUNCTION__ magic under GCC.
* kaffe/kaffe/main.c,kaffe/kaffevm/debug.c,kaffe/kaffevm/debug.h:
Add -vmdebug argument to kaffe/main.c arg parser. This calls into
kaffevm/debug.c, and setups the bit flags of active debug info,
allowing runtime selection of debugging dumps. e.g., 'METHOD_CALL'
will display the name and signature of every method as its called,
and as it returns (it even indents them nicely.) Return values
are also displayed. Replaced most of the per-file DBGx() macros
with a global set of macros and flags (see kaffe/kaffevm/debug.h)
* kaffe/kaffevm/constants.h,kaffe/kaffevm/constants.c: Make
makeUtf8Const() take a 'const' first argument (the C string).
* kaffe/kaffeh/error.h, kaffe/kaffeh/readClassConfig.h,
kaffe/kaffevm/readClass.c: Add <error.h> to kaffeh/ directory,
this lets code shared between kaffeh and kaffevm "throw
exceptions" (It used to simple abort() if the class magic was
bad.)
* kaffe/kaffeh/main.c: Add a -verbose flag to kaffeh
* kaffe/kaffeh/support.c: Add '#if !defined(DEFINED_TYPEDEF_%s)'
protection to header files generated by kaffeh. (e.g., if you
just want to use prototypes in a header file, and not the datatype
definition.)
* kaffe/kaffevm/classLoader.h,kaffe/kaffevm/classLoader.c: Make
the ClassLoader struct completely opaque to kaffevm (its just a
struct everywhere and not some dummy typedef.)
* several places: Add exception messages to a bunch of
throwException() statements inside the VM.
* kaffe/kaffevm/constants.[ch], kaffe/kaffevm/equalUtf8Consts.c:
break equalUtf8Consts out into its own file, so that under GCC we
can include an inline version in every file, and have a linkable
version in constants.c.
* kaffe/kaffevm/exception.c: Improve handling of errors during the
initialization of the system (i.e., before exceptions are setup,
etc.)
* kaffe/kaffevm/gc-mem.c: In the GC, wipe freed memory to wacky
numbers (42) to make errors show up fast (when debugging.)
* kaffe/kaffevm/string.c: Hacks to get it to work with both Sun and Kore
libraries.
* kaffe/kaffevm/support.c: Have _unimp() exit(1) when debugging,
otherwise, it throws an InternalError.
Add a panic() call.
* kaffe/kaffevm/thread-internal.h: Define and use
'assertIntsDisabled()' and 'assertIntsEnabled()' in place of
checks of '(blockInts == ?)'.
* thread-kore.c, thread-sun.c: Add to separate native
library-specific dependencies.
* kaffe/kaffevm/intrp/machine.c: Make various stack
variables/arguments to virtualMachine() volatile in kaffevm/intrp/
to prevent setjmp/longjmp errors and warnings. Add lots of
comments and debugging infrastructure to this function, too.
* kaffe/packages/external_native.h, kaffe/packages/sensei.co.uk:
Add the sensei.co.uk/ package that contains native support for the
Kore libraries.
Pat Tullmann
Last modified: Tue Nov 25 14:58:13 MST 1997