2001-04-01  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* README: Updated.
	* NEWS: Mention update.
	* FAQ: Noted plans about GCJ and about missing some monitor_exit
	interceptions.
	* Updated to Kaffe 1.0.6 snapshot 2001-04-01.
	* sample/performance/run: Use kjc instead of pizza.
	
2000-02-07  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* kaffe/kaffe/kaffe/main.c (main): Update copyright notice.

	* configure.in (JAVADOC): Check for a pre-installed one.
	* Makefile.am (install-data-local): Install javadocs in
	share/guarana/html.
	* configure, */Makefile.in: Rebuilt.

	* kaffe/kaffe/kaffevm/thread.c (broadcastDeath): Use Object
	locking primitives, instead of Mutex ones.

	* kaffe/kaffe/kaffevm/soft.c (soft_new): Call guarana_newObject
	with errorInfo.
	(soft_newarray, soft_anewarray): Likewise for guarana_newArray.

	* kaffe/kaffe/kaffevm/object.c (guarana_newMultiArray): Pass
	errorInfo to guarana_newArray.

	* kaffe/kaffe/kaffevm/locks.h (guarana_reify_monitorEnter): Return
	void.
	(guarana_reify_monitorExit_known): Removed.

	* kaffe/kaffe/kaffevm/locks.c (lockObject, slowLockObject): Call
	guarana_reify_monitorEnter when object is reflective.
	(unlockObject, slowUnlockObject): Likewise, for
	guarana_reify_monitorExit.

	* kaffe/kaffe/kaffevm/kaffe.def (GETSTATIC, PUTSTATIC, GETFIELD,
	PUTFIELD): Use !FIELD_ISPRIM instead of FIELD_ISREF.

	* kaffe/kaffe/kaffevm/intrp/icode.h: (softcall_reify_field_load):
	Use !FIELD_ISPRIM instead of FIELD_ISREF.
	(softcall_reify_field_store): Likewise.
	* kaffe/kaffe/kaffevm/jit/machine.h: (softcall_reify_field_load):
	Use !FIELD_ISPRIM instead of FIELD_ISREF.
	(softcall_reify_field_store): Likewise.

	* kaffe/libraries/clib/native/Class.c (p_makeParameters,
	p_makeReturn): Delete.
	(kaffe_guarana_init_function_pointers): Do not set them.

	* kaffe/libraries/clib/native/Field.c
	(java_lang_reflect_Field_get): Convert int to shorter return
	types.

	* kaffe/libraries/clib/native/ClassLoader.c
	(java_lang_ClassLoader_defineClass0): Do not use lockCEntry.

	* kaffe/kaffe/kaffevm/mem/gc-incremental.c (gcInvokeGC): Remove
	bogus lock statements that resulted from incorrect merge.

	* configure.in (JAVAC): Use kjc instead of pizza.
	* aclocal.m4, configure, Makefile.in: Rebuilt.

1999-10-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* Updated to Kaffe 1.0.b4 snapshot 1999-10-16.

1999-10-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* Updated to Kaffe 1.0.b4 snapshot 1999-10-11.

	* sample/tutorial-src/Reconfigure.java: Thinko in comment.
	Reported by Diego Pinheiro Pedro <diego@dcc.unicamp.br>

1999-10-09  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* sample/regression/WrapPromotedWrite.java: New test.
	* sample/regression/Makefile.am (TESTS): Added it.
	* sample/regression/Makefile.in: Rebuilt.
	* NEWS: Document the float->Object wrapping corrected error.

1999-10-02  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* NEWS: Operations are associated with Threads by perform().
	
	* kaffe/libraries/extensions/guarana/ChangeLog: New file.

1999-09-20  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* kaffe/libraries/extensions/guarana/javalib/BR/unicamp/Guarana/SequentialComposerAlgorithms/WithArrayAndRange.java
	(configureArray, reconfigureArray): newMetaObjects wouldn't always
	be created when needed.
	Reported by Rodrigo Dias Arruda Senra <rodsenra@correionet.com.br>
	
1999-09-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* kaffe/libraries/extensions/guarana/javalib/BR/unicamp/Guarana/SequentialComposer.java:
	Factored out a lot of code reusable by independent classes into a
	superclass.
	* kaffe/libraries/extensions/guarana/javalib/BR/unicamp/Guarana/SequentialComposerAlgorithms/WithArrayAndRange.java:
	New class, with the factored out code.
	* kaffe/libraries/extensions/guarana/javalib/BR/unicamp/Guarana/SequentialComposerAlgorithms/WithArray.java:
	New class, with utility methods to access the the factored out
	code.
	* kaffe/libraries/extensions/guarana/javalib/Makefile.am:
	Added the new classes.
	* kaffe/libraries/extensions/guarana/javalib/Makefile.am:
	Rebuilt.
	* kaffe/libraries/extensions/guarana/javalib/guarana.jar:
	Rebuilt.
	* NEWS: Document the change.
	
1999-09-14  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* kaffe/libraries/extensions/guarana/javalib/BR/unicamp/Guarana/SequentialComposer.java
	(newComposer): New method to ease subclassing.
	(configure, reconfigure): New overloads to ease subclassing.
	* kaffe/libraries/extensions/guarana/javalib/guarana.jar:
	Rebuilt.
	* NEWS: Documented.
	
1999-09-12  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* configure.in (VERSION): Bump to 1.7-pre.  Append build date to
	VERSION for CVS builds.  Add --enable-guarana=$VERSION argument,
	to pass version number to kaffe/configure, unless guarana is
	disabled.
	* configure: Rebuilt.
	* kaffe/configure.in (GVER): Set with the argument of
	--enable-guarana.  Do not AC_SUBST it.
	(GUARANA_VERSION): AC_DEFINE it to GVER.
	* kaffe/aclocal.m4, kaffe/configure: Rebuilt.
	* kaffe/config/config.h.in: Rebuilt.
	* kaffe/libraries/extensions/guarana/clib/Makefile.am (INCLUDES):
	No longer define GVER.
	* kaffe/*/Makefile.in: Rebuilt.
	* kaffe/include/guarana.h.in (GUARANA_VERSION): Added.
	* kaffe/libraries/extensions/guarana/clib/GuaraNative.c
	(guarana_version): Use GUARANA_VERSION instead of GVER.

	* NEWS: Documented the fixes below.

	* kaffe/kaffe/kaffevm/jit/machine.c (translate): Do not submit
	lock and unlock of the class of the method being JIT-compiled to
	interception; this does not occur with the interpreter.

	* kaffe/libraries/extensions/guarana/clib/OperationFactoryInternal.c
	(invoke, construct): Copy argument list correctly.
	Triggered by Alessandro Fabricio Garcia <983311@dcc.unicamp.br>

	* sample/regression/Makefile.am: New.  Regression tests.
	* sample/regression/CreateInvoke.java: Test argument copying in
	OperationFactory.invoke.
	* sample/regression/NoJITLock.java: Test native-level locking of
	Class objects by the JIT compiler.
	* configure.in: Added sample/regression/Makefile.
	* sample/Makefile.am (SUBDIRS): Added regression.
	* aclocal.m4, configure, sample/Makefile.in: Rebuilt.
	* sample/regression/Makefile.in: New.
	
1999-09-07  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* kaffe/libraries/extensions/guarana/javalib/Makefile.am
	(BR_unicamp_Guarana_SRCS): Removed MetaSequenceArray.
	* kaffe/libraries/extensions/guarana/javalib/Makefile.in:
	Rebuilt.
	* kaffe/libraries/extensions/guarana/javalib/guarana.jar:
	Rebuilt.

	* kaffe/libraries/extensions/guarana/javalib/BR/unicamp/Guarana/MetaSequenceArray.java: 
	Removed.
	* NEWS: Documented it.
	
	* kaffe/libraries/extensions/guarana/javalib/BR/unicamp/Guarana/SequentialComposer.java: 
	Heavily rewritten, to enforce the assumptions of the MOP.
	Unfortunately, this is backward-incompatible.
	* NEWS: Detailed the changes.
	
1999-09-06  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* kaffe/libraries/extensions/guarana/javalib/BR/unicamp/Guarana/Guarana.java:
	(reconfigure): Add casts to make Jikes happy.
	
	* sample/performance/performance.java: New flag --verbose, to
	print the iteration count on each test round.

	* kaffe/libraries/extensions/guarana/javalib/BR/unicamp/Guarana/MetaObject.java:
	(reconfigure): Return this, instead of oldMetaObject, when request
	does not match ask to replace this.
	Reported by Rodrigo Dias Arruda Senra <rodsenra@correionet.com.br>

	* kaffe/libraries/extensions/guarana/javalib/BR/unicamp/Guarana/MetaObject.java:
	(reconfigure): Assume this for oldMetaObject == null.
	
	* kaffe/libraries/extensions/guarana/javalib/BR/unicamp/Guarana/Guarana.java: 
	(reconfigure): Pass oldMetaObject instead of current, even if
	oldMetaObject is null, to current.reconfigure().
	* NEWS: Likewise.
	Reported by Rodrigo Dias Arruda Senra <rodsenra@correionet.com.br>
	
1999-09-02  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* kaffe/libraries/extensions/guarana/javalib/BR/unicamp/Guarana/MetaObject.java 
	(reconfigure): Clarify default behavior.
	Reported by Rodrigo Dias Arruda Senra <rodsenra@correionet.com.br>
	
1999-07-29  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* sample/performance/run: Run Java interpreter with -ms 1m.

	* sample/performance/performance.java (createObject, createArray,
	CreateMultiArray): Pre-allocate objects and arrays in these tests, 
	so that we don't get the garbage collector running at random.
	* sample/performance/run: Use -vmstats to time compile, if
	available.  Compute compile-diff.

1999-06-13  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* kaffe/libraries/clib/native/Field.c: Include GuaraNative.h for
	function declarations and update calls to guarana_reify_field_load 
	and _store.
	Reported by Rodrigo Senra <rodsenra@correionet.com.br>

1999-06-03  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* FAQ: Recommend environment variables that affect Kaffe to be
	unset at build time.

1999-06-01  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Guarana 1.6 released.

	* NEWS: Updated to current Kaffe.

	* Makefile.am: Run pizzadoc on Guarana sources at install time.

	* Makefile.am: Remove patches from the distribution.

	* PLATFORMS: Added FreeBSD.  Testsuite failures on
	GNU/Linux/sparc, SunOS4/sparc and IRIX5/mips.

	* FAQ: Patches are no longer included in the distribution.

	* kaffe/libraries/extensions/guarana/clib/Makefile.am
	(DERIVED_HDRS, stamp-h0all): Avoid name class between Guarana.h
	and guarana.h in include, by generating header files starting with
	the package name.
	* GuaranaIntrn.h: Include them using the package prefix.

	* Makefile.am (KAFFE_SNAPSHOT_SUFFIX): Updated to 1999-05-27.
	(kaffe-snap.diff): Remove broken quote.

1999-05-31  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* sample/performance/run: Do not use xargs.

1999-05-29  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* sample/performance/run: Arrange that it can be used as a test.

	* FAQ: Moved PLATFORMS away; removed all references to current
	version.  Updated installation instructions.  Update on papers and 
	performance results.

	* kaffe/kaffe/kaffevm/locks.h (unlockCEntryKnownMutex): Define it
	when Guarana is disabled too.

	* Makefile.am (EXTRA_DIST): Added BUGS, FAQ and PLAFORMS.
	* Makefile.in: Rebuilt.

	* PLATFORMS: Moved from FAQ.

	* NEWS: Updated snapshot, build exampes, run performance as test,
	MetaLogger and precise garbage collection.

	* README: Clean up; removed versioning information.

	* sample/tutorial-src/ModifyOperation.java (toString, callSuper):
	Tweak static final initializers so that pizza can compile them.
	* sample/tutorail-src/ModifyResult.java (hashCode, toString):
	Likewise.

	* depcomp, missing: Updated from automake snapshot used by Kaffe.

	* sample/Makefile.am: New file.
	* sample/performance/Makefile.am: Likewise.
	* sample/tutorial-src/Makefile.am: Likewise.
	* Makefile.am: Descend to sample.  Add support for JAVADOC.
	* sample/Makefile, sample/performance/Makefile: Removed.
	* sample/tutorial-src/Makefile: Likewise.
	* configure.in: AC_SUBST JAVA and JAVAC.  Add new Makefiles.
	* configure, */Makefile.in: Rebuilt.

	* kaffe/kaffe/kaffevm/gc.h: Add forceFinalization to gc
	interface.  If it is missing in a gc implementation, finalizers
	won't be forced.  If not, finalizers won't be optimized away on
	reflective objects.
	* kaffe/kaffe/kaffevm/mem/gc-incremental.c (gcForceFinalization):
	New function.  Enable or disable forced finalization of an object,
	according to the reflectiveness of the object.
	(forcedFinalizer): New function.  Finalizes a reflective object
	whose finalizer would be optimized away.
	(finalizerMan): Run forcedFinalizer when appropriate.
	(GC_Ops): Add gcForceFinalization.
	* kaffe/libraries/extensions/guarana/clib/Guarana.c
	(setMetaObjectOf): Force finalization of object.

	* sample/performance/run: Do not skip tests that involve memory
	allocation.

	* kaffe/kaffe/kaffevm/kaffe.def: Do not pass meta-object to field
	and array operation interceptors, they don't use it, so we can
	save a register, by not saving it before the interception branch.
	* kaffe/kaffe/kaffevm/intrp/icode.h: Likewise.
	* kaffe/kaffe/kaffevm/jit/machine.h: Likewise.
	* kaffe/kaffe/kaffevm/support.c: Likewise; also for methods.
	* kaffe/kaffe/kaffevm/jni.c: Likewise; also for methods.
	* kaffe/libraries/extensions/guarana/clib/GuaraNative.h: Remove
	meta-object argument from declarations.
	* kaffe/libraries/extensions/guarana/clib/GuaraNative.c: Do not
	take a meta-object as argument in interceptors;
	Guarana.perform must check for changes anyway.

	* kaffe/libraries/extensions/guarana/clib/GuaraNative.c
	(walkOperation): Do nothing for monitor operations.  Mark method
	or field *class* on method invocations or field operations,
	because methods and fields are not walkable.  The class will take
	care of marking the internal *arrays* of methods and fields.

1999-05-27  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Updated to Kaffe 1.0.b4 snapshot 1999-05-27.

	* kaffe/kaffe/kaffe/main.c (options): Updated Guarana Copyright.

1999-04-18  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* .../guarana/clib/Result.c: Rewrote macros as inline functions.
	* .../guarana/clib/OperationFactoryInternal.c: Ditto.  Fixed
	references to _Jv_{void,int}Class.

	* .../BR/unicamp/Guarana/Guarana.java (blocker): Documented.
	(reconfigure): Rewrote synchronized statement with ternary
	operator, that Pizza could not handle.
	* BUGS: Worked around Pizza bug.

	* kaffe/libraries/extensions/guarana/clib/GuaraNative.c: Allocate
	Operations with GC_ALLOC_OPERATION.  Do not allocate empty
	argument lists.
	* kaffe/libraries/extensions/guarana/clib/Operation.c: Likewise.

	* Updated to Kaffe 1.0.b4 snapshot 1999-04-17.
	* Moved guarana-kaffe to kaffe/libraries/extensions/guarana/clib.
	* Moved src to kaffe/libraries/extensions/guarana/javalib.
	* Autoconfiscated, automade and libtoolized Guarana.
	* .../guarana/clib/GuaraNative.h: Moved internal details...
	* .../guarana/clib/GuaranaIntrn.h: to this new header.
	* kaffe/include/Makefile.am: Create a preprocessor proxy to
	GuaraNative.h.
	* kaffe/kaffe/kaffevm/gcFuncs.h: Added GC_ALLOC_OPERATION.
	* kaffe/kaffe/kaffevm/gcFuncs.c: Configure to walk primitive
	arrays and operations.
	* .../guarana/clib/GuaraNative.c: New function to walk
	operations.  Moved walkPrimArray here.
	* kaffe/kaffe/kaffevm/mem/gc-incremental.c: Once again, arrange
	that objects that wouldn't regularly need finalization are
	properly finalized if they're reflective.
	* .../BR/unicamp/Guarana/MetaLogger.java: Copied from
	sample/tutorial-src; it's become part of the API.
	* .../BR/unicamp/Guarana/MetaBlocker.java: New MetaObject, to fix
	a potential security problem.
	* .../BR/unicamp/Guarana/Guarana.java: Instantiate a MetaBlocker.
	* .../guarana/clib/GuaraNative.c (guarana_meta_init): Use it.
	* BUGS: The `float' problem in Kaffe appears to have been fixed.
	But Pizza can't compile guarana.jar :-(

1999-02-22  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* sample/Makefile (all): recurse before building local tree, so
	that MetaLogger is already compiled
	Reported by Rodrigo Senra <rodsenra@correionet.com.br>

1999-02-20  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* guarana-kaffe/OperationFactoryInternal.c: field write operations 
	were created as field read
	Reported by Nadia Vieira Leao Pereira <972155@dcc.unicamp.br>

1999-02-10  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* kaffe/kaffe/kaffevm/mem/gc-incremental.c: removed excess #endif
	* kaffe/kaffe/kaffevm/jit/machine.c: lockMutex -> lockObjMutex
	* kaffe/kaffe/kaffevm/systems/unix-internal/internal.c: ditto

1998-12-18  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Makefile (KAFFE_SNAPSHOT_SUFFIX): Updated to 1998-12-18

1998-12-12  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* kaffe/kaffe/kaffevm/mem/gc-incremental.c (gcFunctions): added
 	new types for objects with forced finalization, i.e., objects,
 	arrays and classes whose finalizers are trivial, but that should
 	be finalized anyway, for example, if the object is associated with
 	a meta-object, so the finalization can be intercepted
	(gcForceFinalize): switches an object between forced finalization
	and non-finalization, if appropriate
	(forcedFinalize): finalize an object using virtual dispatching,
	because class->finalizer is null
	(finalizeObject): if interception is to take place, start it with
	the already-resolved finalizer
	(objectStatsChange): account for new gcFunctions
	(Kaffe_GarbageCollectorInterface): added gcForceFinalize as
	forceFinalize
	* guarana-kaffe/Guarana.c (setMetaObjectOf): call forceFinalize
	if object has no finalizer, to disable or enaable explicit
	finalization depending if the new meta-object is null or not

	* Makefile (KAFFE_SNAPSHOT_SUFFIX): updated to 1998-12-12; a new
	optimization would prevent interception of trivial finalizers;
	fixed above
	
1998-12-10  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Makefile (KAFFE_SNAPSHOT_SUFFIX): updated to 1998-12-10

	* guarana-kaffe/GuaraNative.c (guarana_unwrap): accept null
	if we expect a reference type

1998-12-09  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* FAQ: patch for SunOS4 is no longer needed

	* README: updated for 1.5.2

	* Makefile: updated to Kaffe 1.0.b3 1998-12-09
	* NEWS: ditto

1998-12-03  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Makefile: updated to Kaffe 1.0.b2 1998-12-03
	* NEWS: ditto

	* guarana-kaffe/GuaraNative.c: update to use errorInfo
	* guarana-kaffe/Guarana.c: ditto
	* guarana-kaffe/Result.c: ditto
	* guarana-kaffe/OperationFactoryInternal.c: ditto

	* guarana-kaffe/GuaraNative.h: reordered inclusion of header-files 

	* kaffe/kaffe/kaffevm/Makefile.in (LIBGUARANA): avoid warning
	message from sub-make by redefining LIBGUARANA

	* kaffe/libraries/clib/native/external_wrappers.h.debug: added
	guarana_init_function_pointers, enclosed in #ifdef GUARANA
	* kaffe/libraries/clib/native/Class.c
 	(java_lang_Class_init_function_pointers): renamed to
	guarana_init_function_pointers
	* kaffe/kaffe/kaffevm/baseClasses.c (initialiseKaffe): ditto

	* Makefile: updated to Kaffe 1.0.b2 1998-12-02
	* NEWS: ditto

1998-11-27  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Makefile: updated to Kaffe 1.0.b2 1998-11-25

	* kaffe/kaffe/kaffevm/mem/gc-incremental.c (walkObject, walkClass,
 	walkRefArray, walkPrimArray): use markObjectDontCheck to mark
 	meta-object

	* Makefile: Bump to 1.5.2; remove rules for Kaffe 0.10.1
	* FAQ: ditto; clean up
	* kaffe/configure.in, kaffe/configure: ditto

1998-11-20  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* kaffe/kaffe/kaffevm/mem/gc-incremental.c (walkObject):
 	explicitly mark meta-object, now that the object is not walked
 	conservatively
	* NEWS: ditto

1998-11-16  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Guarana 1.5.1 released

	* FAQ: works on IRIX 5.2; does not build on DU4.0/alpha

	* NEWS: Fixed release date

	* BUGS: Kaffe 1.0.b* is improving, so this is probably the last
	release that supports 0.10.1

1998-11-12  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* kaffe/kaffe/scripts/kaffe.in (CLASSPATH): was not exported due
	to error in merge :-(

1998-11-11  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* sample/DetailedException.java: new file
	* sample/Makefile: compile it

	* BUGS: the finalizer bug in Kaffe was fixed

	* kaffe/kaffe/kaffevm/Makefile.in (install): libguarana should be
	installed in nativedir, like other run-time libraries

	* kaffe/configure.in: bumped to Guarana 1.5.1
	* Makefile, NEWS, README, FAQ: ditto
	
	* Updated to Kaffe 1.0.b2 1998-11-11
	* kaffe-0.10.1/kaffe/scripts/kaffe.in: ditto
	
1998-10-12  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Guarana 1.5 released

	* Makefile (create-$(KAFFE_OLD_TGZ) kaffe-old-dist): don't try to
 	optimize creation of .tar.gz for non-snapshot distribution

	* BUGS: added note about finalizer bug in Kaffe

	* sample/interceptFinalize.java: New program; tests interception
 	of finalizers
	* sample/Makefile: update

	* kaffe/kaffe/kaffevm/mem/gc-incremental.c: invoke finalizer in a
	way that it can be intercepted

1998-10-10  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* FAQ: major reformatting; update for Guarana 1.5
	* Makefile: update for Guarana 1.5
	* NEWS: ditto
	* README: ditto
	* kaffe/configure.in: ditto
	* kaffe-0.10.1/configure.in: ditto

1998-10-06  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* NEWS: update of Kaffe and intercepting array finalizers

	* kaffe-0.10.1/kaffe/scripts/Makefile.in: update to Kaffe 1.0.b2 
	configure-generated scripts
	* kaffe-0.10.1/configure.in: ditto

	* kaffe/kaffe/kaffevm/mem/gc-incremental.c (gcFunctions): arrange
 	that finalize() is called even for Arrays and Class objects.

	* Updated to Kaffe 1.0.b2
	
1998-09-29  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* kaffe-0.10.1/kaffe/kaffevm/jni.c (Kaffe_JNI_wrapper): call
	installMethodCode
	* kaffe-0.10.1/kaffe/kaffevm/jit/machine.c: export
	installMethodCode 
	* NEWS: explain the fixed bug

	* src/BR/unicamp/Guarana/Result.java (throwObject): overloaded
 	with a new package-protected deprecated variant, with additional
	argument that determines whether exception type should be
	validated or not
	* guarana-kaffe/Result.h (throwObject): added new argument
	* guarana-kaffe/Result.c (throwObject): ditto
	* src/BR/unicamp/Guarana/Guarana.java (perform): call the new
	variant of throwObject when deliver throws; this means that the
	called method thrown, and there is no reason for validation
	* NEWS: explain it

1998-09-23  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* sample/performance/run (MetaLogger.class): look for it in
 	../tutorial-src

	* guarana-kaffe/Guarana.c (makeProxy): for array classes, ensure
 	that an array of length 0 is created
	* src/BR/unicamp/Guarana/Guarana.java (makeProxy): document it
	* NEWS: ditto
	Reported by Nadia Vieira Leao Pereira <972155@dcc.unicamp.br>

1998-09-18  Alexandre Oliva  <oliva@dcc.unicamp.br>
	
	* sample/performance/logMetaPerformance.java: log to System.out
	* sample/performance/performance.java: exchange System.out and
 	System.err
	* sample/performance/run (timecmd): use POSIX time for
	portability; separate JIT accounting for better redirection
	handling
	(javac): use Pizza compiler to perform tests, since JDK's javac
	won't run on Kaffe 1.0.b1 :-(

1998-09-17  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* kaffe-0.10.1/kaffe/scripts/kaffe.in (CLASSPATH): use klasses.zip 
	instead of Klasses.jar

1998-09-14  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* kaffe-0.10.1/libraries/clib/zip/Deflater.c (end): nullify
 	this.dtream when it is freed
	(kaffe_zalloc, kaffe_zfree): new functions for zlib to properly
 	interface with the garbage collector
	(init): allocate dstream with the right size; set up kaffe_zalloc
 	and kaffe_zfree for zalloc and zfree

1998-09-12  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* kaffe/libraries/clib/native/Field.c (get): remove warning

	* Guarana 1.4.1 released

1998-09-11  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Makefile (KAFFE_SNAPSHOT_SUFFIX): updated to 1998-09-10
	* NEWS: ditto
	
1998-09-10  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* sample/tutorial-src/ModifyResult.java: added comments for clarity
	* sample/tutorial-src/Reconfigure.java: ditto

	* FAQ: updated supported platforms list

	* NEWS: fixed release date

1998-09-09  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Makefile (KAFFE_SNAPSHOT_SUFFIX): updated to 1998-09-09
	* NEWS: ditto

	* kaffe/libraries/clib/native/Thread.c (suspend0, resume0): cast
 	Thread* to Object* for lock and unlock operations

	* kaffe/libraries/clib/native/Array.c (guarana_reify_array_load,
	guarana_reify_array_store, guarana_reify_arraylength): declare
	them to avoid warnings
	* kaffe/libraries/clib/native/Field.c (guarana_reify_field_load,
	guarana_reify_field_store): ditto

	* kaffe/libraries/clib/native/Class.c (init_function_pointers):
 	properly declare it, to avoid warnings

	* kaffe/kaffe/kaffevm/jit/machine.h (softcall_reify_field_load,
 	softcall_reify_field_store): initialize variables to avoid
 	warnings

	* kaffe/kaffe/kaffevm/jit/icode_internal.h
	(build_call_frame_guarana): declare it, instead of
 	build_call_frame

	* kaffe/kaffe/kaffevm/locks.h: declare guarana_reify_monitorEnter
	and guarana_reify_monitorExit, to avoid warnings

	* kaffe/kaffe/kaffevm/external.c: it is not here that
	guarana/external_wrappers.h should be included,
	* kaffe/libraries/clib/external_wrappers.h: it is here

	* kaffe/kaffe/kaffevm/baseClasses.c (initialiseKaffe): call
 	java_lang_Class_init_function_pointers() directly on static build

	* kaffe/kaffe/kaffevm/Makefile.in (depend): create `guarana'
	before generating dependencies, to support builddir!=srcdir

	* src/BR/unicamp/Guarana/Guarana.java (toString): use
 	toHexString(i) instead of toString(i,16), because the hexadecimal
 	number is supposed to be unsigned

	* sample/Makefile (CLASSPATH): tutorial is now called tutorial-src

	* guarana-kaffe/Operation.c (getArguments): removed unused
 	variable signature

	* guarana-kaffe/GuaraNative.c (guarana_wrap, guarana_unwrap):
	added return statements to satisfy gcc -Wall

	* guarana-kaffe/GuaraNative.h: missing #includes

	* FAQ, NEWS, README: updated for 1.4.1
	* Makefile (GUARANA_VERSION): ditto

	* kaffe/configure.in (GVER): update for 1.4.1
	(GUARANALIB): created to support static linking; appended to
 	NOSHAREDLIBS and KAFFE_LIBDEP

1998-09-07  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* BUGS: updated for 1.4.1
	* Makefile (KAFFE_SNAPSHOT_SUFFIX): updated to 1998-09-06

	* kaffe/scripts/appletviewer jar javac javadoc javakey javap 
	jdb native2ascii pizza pizzadoc rmic rmiregistry serialver
	compat/java: document mechanism to look for java interpreter
	* kaffe/scripts/kaffe.in: document mechanism to start
	debugging sessions

	* kaffe-0.10.1/scripts/Makefile.in (SCRIPTFILES_COMPAT): do not
 	install compat scripts that depend on Kaffe 1.0's classes
	* kaffe-0.10.1/scripts/compat/appletviewer javac javadoc: removed

	* kaffe-0.10.1/libraries/clib/native/FileInputStream.c
	(available): try file size, from fstat, minus current position,
 	from lseek, before trying ioctl and/or select

1998-08-22  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Guarana 1.4 released

	* BUGS: Kaffe OpenVM 1.0.b1 is still unstable and buggy

1998-08-21  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Makefile: do not include patches for updating Kaffe; tested
	snapshots will be available for download
	* FAQ: updated installation instructions

1998-08-20  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* FAQ: updated information about SunOS 4.1.3 and RedHat
	Linux/alpha

	* kaffe/kaffe/kaffevm/jni.c (Kaffe_NewObjectA): call method
	interception function with slots, not va_list
	(Kaffe_CallNonvirtualVoidMethodA): ditto

	* guarana-kaffe/GuaraNative.c
 	(guarana_va_lsit_reify_method_invocation): increment argl, not
 	args, for long and double arguments

	* Makefile: updated snapshot date

1998-08-09  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Makefile: prepared for support of both Kaffe 0.10.1 and 1.0.b1
	* FAQ: updated installation instructions

1998-08-07  Alexandre Oliva  <oliva@dcc.unicamp.br>

	Ported Kaffe 1.0.b1's scripts back into 0.10.1 branch

	* kaffe/configure.in (GVER): define Guarana version
	* kaffe/kaffe/kaffevm/Makefile.in (GVER): ditto
	* guarana-kaffe/GuaraNative.c (guarana_version): ditto
	* kaffe/kaffe/kaffe/main.c (options): print Guarana version number
 	when called with -version

1998-07-24  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* guarana-kaffe/Result.c (throwObject):
	check for compatibility with declared exception type
	* guarana-kaffe/OperationFactoryInternal.c (checkExcept): ditto
	(invoke): ditto
	(construct): ditto
	* src/BR/unicamp/Guarana/Result.java (throwObject): document new
 	check
	* src/BR/unicamp/Guarana/OperationFactory.java (invoke,
 	construct): ditto
	* src/BR/unicamp/Guarana/OperationFactoryInternal.java (invoke,
 	construct): ditto
	* NEWS: ditto

1998-07-15  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* sample/Makefile (JAVAC): Use guaranac
	* sample/performance/Makefile (JAVAC): ditto
	* sample/tutorial-src/Makefile (JAVAC): ditto

	* Makefile, README, FAQ, NEWS: updated to Kaffe 1.0.b1; prepared
	for Guarana 1.4

	* kaffe/kaffe/scripts/kaffe.in (CLASSPATH): add guarana.jar if
	guarana was not disabled
	* kaffe/kaffe/scripts/Makefile.in (install-guarana): install
	`bin/guarana' as copy of `bin/kaffe' and `bin/guaranac' as copy of 
	`bin/javac'
	(install): depend on `install-guarana' if guarana was not
	disabled.

1998-07-08  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* BUGS: fixed float interception problem; Kaffe is still buggy
	with respect to native code involving floats.
	* src/BR/unicamp/Guarana/Result.java (returnFloat(F...)): convert
	value to double and call native method
	(returnFloat(D...)): new static native private method, called by
	the original one to avoid passing floats as arguments
	(getFloatValue): call getFloatValueAsDouble
	(getFloatValueAsDouble): new private native method, called by
	getFloatValue to avoid returning floats
	* guarana-kaffe/Result.h (returnFloat): takes double now
	(getFloatValue): renamed to getFloatValueAsDouble, returns double
	now
	* guarana-kaffe/Result.c (returnFloat): ditto
	(getFloatValue): ditto
	* guarana-kaffe/external_wrappers.h (getFloatValue): replaced with 
	getFloatValueAsDouble
	* guarana-kaffe/GuaraNative.c (guarana_wrap): pass float to
 	execute_java_constructor as if it were an int: `*(int*)&floatval'

	* kaffe/kaffe/kaffevm/kaffe.def: instead of sync_registers(), use
 	guarana_spill_and_clean_registers() before meta-object test
 	branches, which prevents double spilling.
	(guarana_spill_and_clean_registers): defined to end_sub_block
	* kaffe/config/i386/jit-i386.def: revert long-standing unneeded
 	modification

1998-07-02  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* sample/performance/performance.java: add --nostat command line
 	argument, useful for automatically extracting the assembly code
 	produced for each test

1998-06-30  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* sample/performance/performance.java: added println test
	* sample/performance/run: time JIT compilation of `javac' run too

1998-06-28  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* sample/performance/performance.java: use bytecode names as
	mnemonics
	* sample/performance/run: do not run tests that involve object
	creation; they can't be reliably timed

1998-06-27  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* sample/performance/performance.java: add command line options to 
	select tests and length
	* sample/performance/run: reduce code duplication; pass some
	command line options to performance program; do not run getTime
	test

1998-06-24  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* sample/performance/run: time `javac' execution too

1998-06-13  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Guarana 1.3 released.

	* sample/performance: performance measurement program.

	* kaffe/kaffe/kaffevm/jni.c: intercept all method invocation,
	synchronization and object and array creation operations, but not
	field or array element accesses, nor array length, for similarity
	with the non-JNI native interface.
	* guarana-kaffe/GuaraNative.h
	(guarana_va_list_resolve_method_invocation): new function
	* guarana-kaffe/GuaraNative.c
	(guarana_va_list_resolve_method_invocation): new function

	* Updated to Kaffe 0.10.1

	* kaffe/kaffe/kaffevm/mem/gc-incremental.c (walkClass): mark
	meta-object.
	(walkRefArray): ditto.
	(walkPrimArray): new function; ditto.

1998-06-08  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* guarana-kaffe/OperationFactoryInternal.c (checkCompat): ensure
 	that replaced operation was performed already.
	* src/BR/unicamp/Guarana/OperationFactory.java: update docs
	* src/BR/unicamp/Guarana/OperationFactoryFilter.java: ditto
	* src/BR/unicamp/Guarana/OperationFactoryInternal.java: ditto
	* guarana-kaffe/Operation.c (validate): do not assume
 	op->kind==op_nop for NOPs.

	* guarana-kaffe/GuaraNative.h (op_performed): new operation_type
	tag
	* guarana-kaffe/Guarana.c (markAsPerformed): new method
	* guarana-kaffe/Guarana.h: ditto
	* guarana-kaffe/external_wrappers.h: ditto
	* src/BR/unicamp/Guarana/Guarana.java (markAsPerformed): ditto
	(perform): call markAsPerformed.
	* guarana-kaffe/GuaraNative.c: do not replace op_performed bit in
 	op->kind
	* guarana-kaffe/OperationFactoryInternal.c: ditto

1998-06-07  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* sample/tutorial-src: new directory with examples from the
	Guarana Tutorial
	* sample/MetaLogger.java: moved into sample/tutorial.

1998-06-05  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* guarana-kaffe/Guarana.c (setMetaObjectOf): if meta-object
 	changes after new meta-object is initialized, release it before
 	returning.
	* src/BR/unicamp/Guarana/Guarana.java (setMetaObjectOf): document
 	this change.
	(reconfigure): use Guarana.getClass(obj) instead of
 	obj.getClass().

1998-06-01  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* guarana-kaffe/Guarana.c (makeProxy): broadcast NewProxy to
 	Clazz, not the converse.

1998-05-29  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* sample/MetaLogger.java: major clean up; added prefix support

	* src/BR/unicamp/Guarana/Guarana.java (reconfigure): compare new
 	MetaObject with current one, and only call setMetaObject if
 	they're different.

	* src/BR/unicamp/Guarana/MetaSequenceArray.java: deprecated,
	functionality moved into SequentialComposer.
	* src/BR/unicamp/Guarana/SequentialComposer.java: no longer an
 	abstract class; full implementation of MetaSequenceArray moved
 	into it.
	(handle, configure): new static methods for handling Operations
 	and Results on arbitrary subsets of arrays of MetaObjects, and for 
	selecting a metaObject array for configuring a new Object.
	(makeMetaObjectsFor): deprecated; just calls static configure.

	* src/BR/unicamp/Guarana/MetaException.java (getLocalizedMessage,
 	getMessage): implemented so that message includes name and message 
	of encapsulated exception.

1998-05-23  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* kaffe/kaffe/kaffevm/locks.h (lockObjMutexDirect,
 	unlockObjMutexDirect): called when monitor enter and exit
 	operations are not to be reified.
	(lockCEntryMutex, unlockCEntryMutex): renamed from lockNObjMutex
 	and unlockNObjMutex.
	* kaffe/kaffe/kaffevm/jit/machine.c (translate): ensure that locks
 	and unlocks of Class objects issued by the translator are not
 	reified.
	* kaffe/kaffe/kaffevm/classMethod.c: replaced lockNObj with
 	lockCEntry.
	* kaffe/kaffe/kaffevm/findInJar.c: ditto
	* kaffe/kaffe/kaffevm/lookup.c: ditto
	* kaffe/libraries/clib/native/ClassLoader.c: ditto

1998-05-19  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* guarana-kaffe/OperationFactoryInternal.c (checkCompat): fix
	wrapping of booleans, bytes, shorts and chars.
	* guarana-kaffe/Result.c (returnBoolean, returnByte, returnShort,
	returnChar, getBooleanValue, getByteValue, getShortValue,
	getChar): ditto

1998-05-13  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Guarana 1.2 released
