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

	* 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
	(java_lang_Thread_suspend0, java_lang_Thread_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
	(java_lang_Class_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
 	(BR_unicamp_Guarana_Operation_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
	(java_io_FileInputStream_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 (BR_unicamp_Guarana_Result_throwObject):
	check for compatibility with declared exception type
	* guarana-kaffe/OperationFactoryInternal.c (checkExcept): ditto
	(BR_unicamp_Guarana_OperationFactoryInternal_invoke): ditto
	(BR_unicamp_Guarana_OperationFactoryInternal_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
	(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

	* 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
