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

	* Guarana 1.3 released.

	* sample/performance: performance measurement program.

	* kaffe/config/sparc/sunos4/md.h: must #include <stdarg.h> for
	vfprintf declaration.

	* kaffe/kaffe/kaffe/Makefile.in (LDFLAGS): accept LDFLAGS from
	configure environment.

	* 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
	(BR_unicamp_Guarana_Operation_validate): do not assume
	op->kind==op_nop for NOPs.

	* kaffe/kaffe/kaffevm/findInJar.c (classpath): dynamically grow.

	* kaffe/libraries/clib/math/BigInteger.c
	(java_math_BigInteger_plumbModInverse): implement
	(java_math_BigInteger_plumbSquare): implement
	(java_math_BigInteger_plumbGeneratePrime): remove
	* kaffe/libraries/clib/math/BigInteger.h
	(java_math_BigInteger_plumbGeneratePrime): remove
	* kaffe/libraries/clib/math/external_wrappers.h
	(java_math_BigInteger_plumbGeneratePrime): remove

	* kaffe/kaffe/kaffevm/Makefile.in: use CPPFLAGS and LDFLAGS from
	configure environment
	* kaffe/libraries/clib/math/Makefile.in: ditto
	* kaffe/libraries/clib/native/Makefile.in: ditto
	* kaffe/libraries/clib/zip/Makefile.in: ditto

	* guarana-kaffe/GuaraNative.h (op_performed): new operation_type
	tag
	* guarana-kaffe/Guarana.c
	(BR_unicamp_Guarana_Guarana_markAsPerformed): new method
	* guarana-kaffe/Guarana.h: ditto
	* guarana-kaffe/external_wrappers.h: ditto
	* src/BR/unicamp/Guarana/Guarana.java (markAsPerformed): new method
	(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
	(BR_unicamp_Guarana_Guarana_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 (BR_unicamp_Guarana_Guarana_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-26  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* kaffe/libraries/clib/native/Method.c
 	(java_lang_reflect_Method_invoke): wrap non-Object return types
 	correctly

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
	(BR_unicamp_Guarana_Result_returnBoolean,
	BR_unicamp_Guarana_Result_returnByte,
	BR_unicamp_Guarana_Result_returnShort,
	BR_unicamp_Guarana_Result_Char,
	BR_unicamp_Guarana_Result_getBooleanValue,
	BR_unicamp_Guarana_Result_getByteValue,
	BR_unicamp_Guarana_Result_getShortValue,
	BR_unicamp_Guarana_Result_getChar): ditto

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

	* Guarana 1.2 released
