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
