2001-12-29 Andreas Tobler <a.tobler@schweiz.ch>

	* libjava/java/lang/ieeefp.h: Define __IEEE_BIG_ENDIAN for
	Darwin.

2001-12-21  Tom Tromey  <tromey@redhat.com>

	* java/io/ObjectInputStream.java (enableResolveObject): Use
	correct security check.
	* java/io/ObjectOutputStream.java (enableReplaceObject): Use
	correct security check.

	Fix for PR java/5165:
	* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass):
	Convert any constant string field to a String; not just final
	fields.

	Fix for PR libgcj/2428:
	* java/lang/natClass.cc: Include RuntimePermission.h.
	(getClassLoader): Define.
	* java/lang/Class.h (Class.getClassLoader): Only declare.

2001-12-19  Tom Tromey  <tromey@redhat.com>

	* java/awt/FlowLayout.java (FlowLayout(), FlowLayout(int)): Set
	gaps to 5.
	(FlowLayout(int,int,int)): Use methods to set fields.
	(getSize): Skip invisible components.
	(layoutContainer): Skip invisible components.

2001-12-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* include/jvm.h (_Jv_BuildGCDescr): Declare unconditionally.
	* nogc.cc (_Jv_BuildGCDescr): Define unconditionally.
	* boehm.cc (_Jv_BuildGCDescr): Likewise.

2001-12-18  Tom Tromey  <tromey@redhat.com>

	* java/text/CollationElementIterator.java (secondaryOrder): Cast
	result to `short'.
	(tertiaryOrder): Likewise.

2001-12-16  Tom Tromey  <tromey@redhat.com>

	For PR libgcj/5103:
	* include/jvm.h (__GCJ_JNI_IMPL__): Define.
	* include/config.h.in: Rebuilt.
	* configure: Rebuilt.
	* configure.in: Define JV_HAVE_INTTYPES_H if inttypes.h found.
	Added comment for HAVE_DLOPEN to avoid autoheader error.
	* gcj/libgcj-config.h.in (JV_HAVE_INTTYPES_H): Added.
	* include/jni.h: Include <gcj/libgcj-config.h>.  Don't include
	CNI-specific headers if we are compiling ordinary JNI code with a
	C++ compiler.  Include <inttypes.h> and JNIWeakRef.h when
	appropriate.
	* jni.cc: Don't include JNIWeakRef.h.
	(__GCJ_JNI_IMPL__): Don't define.

	For PR java/5088:
	* java/lang/natClassLoader.cc (_Jv_InitNewClassFields): New
	function.
	(_Jv_NewClass): Use it.
	(defineClass0): Use it.
	* prims.cc (_Jv_InitPrimClass): Adjust vtable here.
	(_Jv_InitPrimClass): Use _Jv_InitNewClassFields.
	(_Jv_NewArray): Don't abort; just throw exception.
	Include InternalError.h.
	* java/lang/Class.h (Class::Class): Declare, don't define.
	(Class): Declare _Jv_InitNewClassFields as a friend.
	(union _Jv_Self): Removed.

	* Makefile.in: Rebuilt.
	* Makefile.am (ordinary_java_source_files): Removed old file;
	added new file.
	* gnu/java/math/MPN.java: New file.
	* gnu/gcj/math/MPN.java: Removed.
	* java/math/BigInteger.java: Merged with Classpath.

2001-12-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/io/DataOutputStream (write (byte[], int, int)): Update 
	"written" correctly. Fix from the ORP team.

2001-12-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* include/jvm.h (_Jv_VTable::idx_to_offset): New method.
	* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Call
	_Jv_MakeVTable and _Jv_LinkOffsetTable if needed.
	* java/lang/Class.h (_Jv_Method): Add "index" field.
	(_Jv_MethodSymbol): New struct type.
	(_Jv_LinkOffsetTable, _Jv_LayoutVTableMethods, _Jv_SetVTableEntries,
	_Jv_MakeVTable): Friends.
	(otable, otable_syms): New Class fields.
	* java/lang/natClass.cc (_Jv_LinkOffsetTable): New function.
	(isVirtualMethod): New static function.
	(_Jv_LayoutVTableMethods): New function.
	(_Jv_SetVTableEntries): New function.
	(_Jv_MakeVTable): New function.

2001-12-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/util/BitSet.java (and): Fix off-by-one bug, don't skip part of
	the bitset.
	(andNot): Likewise.
	(xor): Likewise.

2001-12-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/util/LinkedList.java (LinkedListItr.add): Don't skip the next
	entry.

2001-12-15  Eric Blake  <ebb9@email.byu.edu>

	* java/util/TreeMap.java (removeNode): Fix bug in node removal.

2001-12-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/util/AbstractCollection.java (containsAll): Use size of the
	correct collection for loop bound.
	* java/util/AbstractList.java (iterator.next): Increment pos after
	calling get on backing list.
	(listIterator.next): Likewise.
	* java/util/LinkedList.java (addLastEntry): Don't increment size before
	checking for size == 0.
	(addFirstEntry): Rearrange to match addLastEntry.
	(add): Do not increment size before inserting the new entry.

	* java/util/AbstractCollection.java (addAll): Use size of the
	correct collection for loop bound.

2001-12-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/util/AbstractSet.java (removeAll): Fix scoping thinko.
	* java/util/HashMap.java (putAllInternal): Set size here.
	* java/util/Hashtable.java (putAllInternal): New method. Copy contents
	of a map efficiently without calling put() or putAll().
	(Hashtable (map)): Use putAllInternal.
	(clone): Likewise.

2001-12-15  Eric Blake  <ebb9@email.byu.edu>

	* java/util/Collections.java:
	* java/util/Vector.java:
	* java/util/WeakHashMap.java: Fix spelling errors.

2001-12-15  Eric Blake  <ebb9@email.byu.edu>

	* java/util/AbstractCollection.java (removeAllInternal),
	(retainAllInternal): Add hooks for use by ArrayList.
	* java/util/AbstractList.java: Minor code updates. Fix some
	scoping.
	* java/util/AbstractMap.java: ditto
	* java/util/ArrayList.java (readObject, writeObject): ditto
	(removeAllInternal, retainAllInternal): Optimize.
	* java/util/Arrays.java: ditto
	* java/util/Collections.java: ditto. Change order of parameters
	to equals(Object, Object) to match specs.
	* java/util/Dictionary.java: Improve javadoc.
	(Dictionary): Add explicit constructor.
	* java/util/HashMap.java: Improve javadoc. Rearrange methods to
	follow order in JDK. Cleanups related to recent code migration to
	AbstractMap. Fix some scoping.
	(entrySet): Cache the result.
	(modCount): Ensure that this is updated correctly.
	* java/util/HashSet.java: Improve javadoc. Fix some scoping.
	(init): Add hooks for LinkedHashSet.
	(map): Use "" instead of Boolean.TRUE in backing map. Use
	package-private API where possible for less overhead.
	(readObject, writeObject): Fix serialization.
	* java/util/Hashtable.java: Improve javadoc. Fix some scoping.
	(entrySet, keySet, values): Cache the result.
	(modCount): Ensure that this is updated correctly.
	(contains, remove): Fix NullPointer checking to match specs.
	(class Enumeration): Make more like HashIterator.
	* java/util/IdentityHashMap.java: Minor code updates.
	(modCount): Ensure that this is updated correctly.
	(readObject, writeObject): Fix serialization.
	* java/util/LinkedHashMap.java: Minor code updates. Cleanups
	related to recent code migration to AbstractMap.
	* java/util/LinkedHashSet.java: New file.
	* java/util/LinkedList.java:
	(readObject, writeObject): Fix serialization.
	* java/util/Makefile.am: List recently added files.
	* java/util/Stack.java: Minor code updates.
	* java/util/TreeMap.java: Improve javadoc. Overhaul the class to
	be more efficient. Fix some scoping. Rearrange the methods.
	(nil): Ensure that this can be thread-safe, and make it a static
	final. Initialize it to be more useful as a sentinal node.
	(Node): Specify color in constructor.
	(deleteFixup, insertFixup): Improve comments and algorithm.
	(fabricateTree): Redesign with less overhead.
	(lowestGreaterThan): Add parameter first to make SubMap easier.
	(removeNode): Patch hole where nil was being modified. Choose
	predecessor instead of successor so in-place swap works.
	(class VerifyResult, verifyTree, verifySub, verifyError): Remove
	this dead code after verifying the class works.
	(class SubMap): Rewrite several algorithms to avoid problems with
	comparing nil.
	* java/util/TreeSet.java: Improve javadoc. Fix some scoping.
	(clone): Fix ClassCastException when cloning subSet().
	(readObject, writeObject): Fix serialization.
	* java/util/WeakHashMap.java: Improve javadoc. Fix some scoping.
	(NULL_KEY): Make it compare as null, for ease elsewhere.
	(Class WeakEntry): Rename from Entry, to avoid shadowing
	Map.Entry. Add missing toString.
	(modCount): Ensure that this is updated correctly.
	(clear, containsValue, keySet, putAll, values, WeakHashMap(Map)):
	Add missing methods and constructor.

2001-12-15  Eric Blake  <ebb9@email.byu.edu>

	* java/util/ArrayList.java (checkBoundExclusive),
	(checkBoundInclusive): Rename from range??clusive, to match
	AbstractList.
	* java/util/LinkedList.java (checkBoundsExclusive),
	(checkBoundsInclusive): ditto
	* java/util/Vector.java (checkBoundExclusive),
	(checkBoundInclusive): Move bounds checking into common methods.

2001-12-15  Eric Blake  <ebb9@email.byu.edu>

	* java/util/AbstractList.java:
	(modCount): Make sure it is updated in all needed places.
	* java/util/ArrayList.java: Improve javadoc. Implements
	RandomAccess. Add serialVersionUID. Reorder methods.
	(modCount): Make sure it is updated in all needed places.
	(rangeExclusive, rangeInclusive): Add common methods for bounds
	check.
	(isEmpty): Add missing method.
	* java/util/Collections.java: (class SynchronizedList): Make
	package visible.
	* java/util/ConcurrentModificationException.java: Improve
	javadoc.
	* java/util/EmptyStackException.java: Improve javadoc.
	* java/util/LinkedList.java: Improve javadoc.
	(modCount): Make sure it is updated in all needed places.
	(rangeExclusive, rangeInclusive): Add common methods for bounds
	check.
	* java/util/NoSuchElementException.java: Improve javadoc.
	* java/util/Stack.java: Improve javadoc. Fix synchronization
	issues.
	(modCount): Make sure it is updated in all needed places.
	* java/util/Vector.java: Improve javadoc. Fix synchronization
	issues. Implements RandomAccess. Reorder methods.
	(modCount): Make sure it is updated in all needed places.
	(setSize): Fix according to specifications: this does not dictate
	the backing array size.
	(removeAll, retainAll): Faster implementations.

2001-12-15  Eric Blake  <ebb9@email.byu.edu>

	* java/util/BitSet.java: Improve javadoc.
	(cardinality(), clear(), clear(int, int), flip(int)),
	(flip(int, int), get(int, int), intersects(BitSet), isEmpty()),
	(nextClearBit(int), nextSetBit(int), set(int, boolean)),
	(set(int, int), set(int, int, boolean)): Add new JDK 1.4 methods.
	(clone): Fix so subclasses clone correctly.

2001-12-15  Eric Blake  <ebb9@email.byu.edu>

	* java/util/AbstractCollection.java: Improve javadoc.
	(AbstractCollection()): Make constructor protected.
	(equals(Object, Object), hashCode(Object)): Add utility methods.
	* java/util/AbstractList.java: Improve javadoc.
	(AbstractList()): Make constructor protected.
	(indexOf(Object)): Call listIterator(), not listIterator(int).
	(iterator()): Follow Sun's requirement to not use listIterator(0).
	(listIterator(int)): Make AbstractListItr anonymous.
	(subList(int, int)): Add support for RandomAccess.
	(SubList.add(int, Object), SubList.remove(Object)): Fix bug with
	modCount tracking.
	(SubList.addAll(Collection)): Add missing method.
	(SubList.listIterator(int)): Fix bugs in indexing, modCount
	tracking.
	(class RandomAccessSubList): Add new class.
	* java/util/AbstractMap.java: Improve javadoc.
	(keys, values, KEYS, VALUES, ENTRIES): Consolidate common map
	fields.
	(AbstractMap()): Make constructor protected.
	(equals(Object, Object), hashCode(Object)): Add utility methods.
	(equals(Object)): Change algorithm to
	entrySet().equals(m.entrySet()), as documented by Sun.
	(keySet(), values()): Cache the collections.
	* java/util/AbstractSequentialList.java: Improve javadoc.
	(AbstractSequentialList()): Make constructor protected.
	* java/util/AbstractSet.java: Improve javadoc.
	(AbstractSet()): Make constructor protected.
	(removeAll(Collection)): Add missing method.
	* java/util/Arrays.java: Improve javadoc, rearrange method orders.
	(defaultComparator): Remove, in favor of
	Collections.compare(Object, Object, Comparator).
	(binarySearch, equals, sort): Fix natural order comparison of
	floats and doubles. Also improve Object comparison - when
	comparator is null, use natural order.
	(fill, sort): Add missing checks for IllegalArgumentException.
	(sort, qsort): Fix sorting bugs, rework the code for more
	legibility.
	(mergeSort): Inline into sort(Object[], int, int, Comparator).
	(class ArrayList): Rename from ListImpl, and make compatible with
	JDK serialization. Add methods which more efficiently override
	those of AbstractList.
	* java/util/Collections: Improve javadoc.
	(isSequential(List)): Add and use a method for deciding between
	RandomAccess and sequential algorithms on lists.
	(class Empty*, class Synchronized*, class Unmodifiable*): Make
	compliant with JDK serializability.
	(class Singleton*, class CopiesList, class RevereseComparator),
	(class UnmodifiableMap.UnmodifiableEntrySet),
	(class *RandomAccessList): New classes for serial compatibility.
	(class Empty*, class Singleton*, class CopiesList): Add methods
	which more efficiently override those of Abstract*.
	(search): Inline into binarySearch(List, Object, Comparator).
	(binarySearch): Make sequential search only do log(n) comparisons,
	instead of n.
	(copy(List, List)): Do bounds checking before starting.
	(indexOfSubList, lastIndexOfSubList, list, replaceAll, rotate),
	(swap):	Add new JDK 1.4 methods.
	(binarySearch, max, min, sort): Allow null comparator to represent
	natural ordering.
	(reverse(List)): Avoid unnecessary swap.
	(shuffle(List, Random)): Do shuffle in-place for RandomAccess
	lists.
	(SingletonList.get): Fix logic bug.
	(SingletonMap.entrySet): Make the entry immutable, and cache the
	returned set.
	(SynchronizedCollection, SynchronizedMap, UnmodifiableCollection),
	(UnmodifiableMap): Detect null pointer in construction.
	(SynchronizedMap, UnmodifiableMap): Cache collection views.
	* java/util/BasicMapEntry: Improve javadoc.

2001-12-14  Hans Boehm  <Hans_Boehm@hp.com>

	* libjava/prims.cc: Some old cleanups.  The collector now
	handles test for out of memory.

	* libjava/prims.cc, libjava/gcj/javaprims.h:
	(_Jv_AllocObjectNoInitNoFinalizer, _Jv_AllocObjectNoFinalizer):
	New functions for finalizer-free allocation.
	(jvmpi_notify_alloc): Became separate function.

	* libjava/java/lang/Object.h, libjava/include/jvm.h: Adjust for
	revised vtable layout on IA64.  With TARGET_VTABLE_USES_DESCRIPTORS,
	there is only one extra descriptor.

2001-12-12  Tom Tromey  <tromey@redhat.com>

	* prims.cc (_Jv_RunMain): Use `using' to simplify code.  Set
	_Jv_Jar_Class_Path early.

	* jni.cc (call): Synchronize if required.

	* gij.cc (main): Clarify --help output.

	* gnu/gcj/runtime/StringBuffer.java
	(ensureCapacity_unsynchronized): Ensure we always get at least
	`minimumCapacity' characters in new buffer.

2001-12-11  Tom Tromey  <tromey@redhat.com>

	* java/lang/String.java (String): New constructor.
	* gnu/gcj/runtime/natStringBuffer.cc: New file.
	* gnu/gcj/runtime/StringBuffer.java: New file.
	* Makefile.in: Rebuilt.
	* Makefile.am (ordinary_java_source_files): Added
	gnu/gcj/runtime/StringBuffer.java.
	(nat_source_files): Added gnu/gcj/runtime/natStringBuffer.cc.

2001-12-10  Tom Tromey  <tromey@redhat.com>

	For PR libgcj/1147:
	* prims.cc (JvConvertArgv): Convert using current locale's
	encoding.

2001-12-10  Tom Tromey  <tromey@redhat.com>

	Fix for PR libgcj/5064.
	* java/lang/natClassLoader.cc: Don't include stdio.h.
	(_Jv_RegisterClassHookDefault): Don't use snprintf.

2001-12-09  Per Bothner  <per@bothner.com>

	* gnu/gcj/xlib/XImage.java (toString):  Add missing initialization.

2001-12-09  Tom Tromey  <tromey@redhat.com>

	* resolve.cc (_Jv_PrepareClass): Verify method here...
	* defineclass.cc (handleMethodsEnd): ... not here.
	* verify.cc (_Jv_BytecodeVerifier::initialize_stack): New method.
	(_Jv_BytecodeVerifier::verify_instructions_0) [op_return]: Ensure
	there are no uninitialized objects.
	(_Jv_BytecodeVerifier::state::this_type): New field.
	(_Jv_BytecodeVerifier::state::state): Initialize this_type.
	(_Jv_BytecodeVerifier::state::copy): Copy this_type.
	(_Jv_BytecodeVerifier::state::merge): Merge this_type.
	(_Jv_BytecodeVerifier::state::check_no_uninitialized_objects):
	Handle this_type.
	(_Jv_BytecodeVerifier::state::check_this_initialized): New
	method.
	(_Jv_BytecodeVerifier::state::set_initialized): Handle this_type.
	(_Jv_BytecodeVerifier::state::set_this_type): New method.
	(_Jv_BytecodeVerifier::verify_instructions_0) [op_putfield]: Allow
	assignment to fields of `this' before another initializer is run.

	* Makefile.in: Rebuilt.
	* Makefile.am (gnu/gcj/runtime/VMClassLoader.h): Use `::java'.

2001-12-08  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (java/lang/reflect/Method.h): ObjectInputStream now
	a friend.
	* java/lang/natClass.cc (getSignature): Only look at elements of
	non-null parameters.
	(getPrivateMethod): Removed old FIXME comment.
	* java/io/natObjectInputStream.cc (allocateObject): Removed old
	FIXME comment.
	(callConstructor): Simply use `NULL' for value of parameters.
	(ObjectClass): Removed.
	(ClassClass): Likewise.
	* java/io/ObjectInputStream.java (readObject): Fixed typo.

	* verify.cc (_Jv_BytecodeVerifier::is_assignable_from_slow):
	Handle case of array whose component type is not prepared.

2001-12-07  Tom Tromey  <tromey@redhat.com>

	* java/lang/ClassLoader.java (defineClass): Rethrow any
	LinkageError.

	* java/lang/ThreadGroup.java (uncaughtException): Print message to
	System.err.  Required by spec.

	* verify.cc (_Jv_BytecodeVerifier::branch_prepass): Set start_PC
	earlier, for error handling.
	(_Jv_BytecodeVerifier::note_branch_target): Fixed branch target
	check.

2001-12-06  Tom Tromey  <tromey@redhat.com>

	* verify.cc (_Jv_BytecodeVerifier::FLAG_JSR_TARGET): Removed.
	(_Jv_BytecodeVerifier::note_branch_target): Likewise.

	* verify.cc (_Jv_BytecodeVerifier::type_val): Added
	unused_by_subroutine_type.
	(_Jv_BytecodeVerifier::type::merge): Handle
	unused_by_subroutine_type.
	(_Jv_BytecodeVerifier::state::state): Added `ret_semantics'
	argument.
	(_Jv_BytecodeVerifier::state::copy): Likewise.
	(_Jv_BytecodeVerifier::push_jump_merge): Pass `ret_semantics' to
	state constructor.
	(_Jv_BytecodeVerifier::state::is_unmerged_ret_state): New method.
	(_Jv_BytecodeVerifier::pop_jump): Don't accept a jump which is
	from an unmerged ret.
	(_Jv_BytecodeVerifier::verify_instructions_0): Don't let an
	unmerged ret state skip verification in the fall-through case.
	(debug_print): New function.
	(_Jv_BytecodeVerifier::type::print): New method.
	(_Jv_BytecodeVerifier::state::print): New method.
	(_Jv_BytecodeVerifier::push_jump_merge): Print state.
	(_Jv_BytecodeVerifier::verify_instructions_0): Likewise.
	(_Jv_BytecodeVerifier::get_variable): Don't call note_variable.
	(_Jv_BytecodeVerifier::_Jv_BytecodeVerifier): Print debug
	information.

2001-12-05  Tom Tromey  <tromey@redhat.com>

	* defineclass.cc (character): Removed.
	(prepare_character): Removed.
	(is_identifier_start): Use Character, not character.
	(is_identifier_part): Likewise.

2001-12-04  Tom Tromey  <tromey@redhat.com>

	* verify.cc (_Jv_BytecodeVerifier::linked_utf8): New structure.
	(_Jv_BytecodeVerifier::utf8_list): New field.
	(_Jv_BytecodeVerifier::_Jv_BytecodeVerifier): Initialize it.
	(_Jv_BytecodeVerifier::~_Jv_BytecodeVerifier): Free it.
	(_Jv_BytecodeVerifier::make_utf8_const): New method.
	(_Jv_BytecodeVerifier::get_one_type): Use it.
	(_Jv_BytecodeVerifier::type::merge): When using local semantics,
	if the destination type is already unsuitable then we didn't
	change.

	* defineclass.cc (read_one_method_attribute): `end_pc' for an
	exception can be equal to code length.
	* verify.cc (_Jv_BytecodeVerifier::verify_instructions_0): Removed
	`start_PC' from error invocation where it didn't make sense, and
	updated error message.  Use `copy' to copy a state.  Only try to
	merge current state with saved state when we've fallen through
	from the previous instruction.
	(_Jv_BytecodeVerifier::pop_ref_or_return): New method.
	(_Jv_BytecodeVerifier::verify_instructions_0) [op_astore_0]: Use
	pop_ref_or_return.
	(_Jv_BytecodeVerifier::verify_instructions_0) [op_astore]:
	Likewise.
	(_Jv_BytecodeVerifier::push_jump_merge): Pass max_locals, not
	max_stack, to merge.
	(_Jv_BytecodeVerifier::verify_instructions_0): Likewise.
	(_Jv_BytecodeVerifier::push_jump_merge): Merge from new state into
	state at branch target, not vice versa.
	(_Jv_BytecodeVerifier::branch_prepass): Allow end of exception to
	be equal to code length.  Removed redundant test to see if
	exception start is after exception end.
	(_Jv_BytecodeVerifier::verify_instructions_0): Type of argument to
	`finally' is Throwable.

2001-12-04  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* Makefile.in: Rebuilt with automake-gcj.

2001-12-03  Tom Tromey  <tromey@redhat.com>

	* defineclass.cc (handleMethodsEnd): Invoke verifier here...
	(handleCodeAttribute): ... not here.
	* verify.cc (_Jv_BytecodeVerifier::state::state): Use `copy', not
	structure assignment.

2001-12-02  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* Makefile.am (nat_files, x_nat_files): Make sure the dependencies
	don't get deleted if compilation fails.
	* Makefile.in: Rebuilt.

2001-11-30  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* Makefile.am (nat_headers, x_nat_headers): Depend on .class files, not
	libgcj.jar.
	(nat_files, x_nat_files): Build native files in subdirectories using 
	the same dependency options as the java files.
	(gnu/gcj/runtime/FirstThread.h): Remove explicit rule and friend
	declarations.
	* configure.in: Put dependencies for .cc files in deps.mak.
	* Makefile.in: Rebuilt.
	* configure: Rebuilt.

2001-11-25  Tom Tromey  <tromey@redhat.com>

	Fix for PR libgcj/2024, plus other class name cleanups:
	* include/jvm.h (_Jv_VerifyFieldSignature,
	_Jv_VerifyMethodSignature, _Jv_VerifyClassName,
	_Jv_VerifyIdentifier, _Jv_ClassNameSamePackage): Moved from ...
	* include/java-interp.h: ... here.
	* defineclass.cc (UTF8_PEEK): No longer conditional on
	interpreter.
	(_Jv_VerifyOne): Likewise.
	(_Jv_VerifyFieldSignature): Likewise.
	(_Jv_VerifyMethodSignature): Likewise.
	(is_identifier_start): Likewise.
	(is_identifier_part): Likewise.
	(_Jv_VerifyIdentifier): Likewise.
	(_Jv_VerifyClassName): Likewise.
	(_Jv_VerifyClassName): Likewise.
	(_Jv_ClassNameSamePackage): Likewise.
	(_Jv_VerifyClassName): Fail if class name is too long.
	* java/lang/natClassLoader.cc (_Jv_NewArrayClass): Disallow array
	of void.
	* java/lang/natClass.cc (forName): Check syntax of class name.
	Include IllegalArgumentException.h.

2001-11-22  Tom Tromey  <tromey@redhat.com>

	* verify.cc (_Jv_BytecodeVerifier::branch_prepass): Use
	java_opcode as type for switch.
	[op_wide]: Likewise.
	(_Jv_BytecodeVerifier::verify_instructions_0): Likewise.
	[op_invokevirtual]: Likewise.
	* include/java-insns.h (java_opcode): Give enum a name.

2001-11-25  Tom Tromey  <tromey@redhat.com>

	Fix for PR libgcj/4583:
	* java/math/BigDecimal.java (BigDecimal(double)): Rewrote.
	(BigDecimal(String)): Likewise.

2001-11-19  Tom Tromey  <tromey@redhat.com>

	* verify.cc (_Jv_BytecodeVerifier::branch_prepass) [op_iinc]:
	Uses two operand bytes, not one.
	[op_arraylength]: Has no operands in bytecode.
	(_Jv_BytecodeVerifier::push_jump): Fixed call to
	check_no_uninitialized_objects.
	(_Jv_BytecodeVerifier::push_exception_jump): Likewise.
	(_Jv_BytecodeVerifier::handle_ret_insn): Likewise.
	(_Jv_BytecodeVerifier::handle_jsr_insn): Likewise.

	* verify.cc (_Jv_BytecodeVerifier::require_array_type): Special
	case for boolean arrays.

	* verify.cc (_Jv_BytecodeVerifier::compute_jump): Put PC into
	error message.

	* verify.cc (_Jv_BytecodeVerifier::verify_instructions_0)
	[op_lshl, op_lshr, op_lushr]: Shift argument is an int, not a
	long.

2001-11-18  Tom Tromey  <tromey@redhat.com>

	* verify.cc (type::to_array): New method.
	(_Jv_BytecodeVerifier::verify_instructions_0) [op_anewarray]:
	Construct new array type.

	* verify.cc (_Jv_BytecodeVerifier::branch_prepass) [op_sipush]:
	Skip a short, not a byte.
	[op_newarray]: Skip a byte, not a short.

	* verify.cc (_Jv_BytecodeVerifier::get_type_val_for_signature):
	Added `B' case.

	* verify.cc (_Jv_BytecodeVerifier::get_ushort): Use `jint' for
	temporary values.
	(_Jv_BytecodeVerifier::get_short): Likewise.
	(_Jv_BytecodeVerifier::get_int): Likewise.
	(_Jv_BytecodeVerifier::check_return_type): Reverse ordering of
	`compatible' call.

	* verify.cc (_Jv_BytecodeVerifier::pop_type): Put PC into error
	message.
	(_Jv_BytecodeVerifier::pop64): Likewise.
	(_Jv_BytecodeVerifier::pop32): Likewise.
	(_Jv_BytecodeVerifier::pop_raw): Likewise.
	(_Jv_BytecodeVerifier::pop_type): Promote the match type.
	(type::set_initialized): Only modify uninitialized types.
	(type::set_uninitialized): Fix shadowing bug.  Simplify code.

	* verify.cc: Include StringBuffer.h.
	(verify_fail): Added pc argument.  Use StringBuffer to construct
	exception message.
	(_Jv_BytecodeVerifier::verify_instructions_0): Put PC into error
	message.
	(_Jv_BytecodeVerifier::check_return_type): Likewise.
	(_Jv_BytecodeVerifier::handle_field_or_method): Likewise.
	(_Jv_BytecodeVerifier::check_constant): Likewise.
	(_Jv_BytecodeVerifier::check_class_constant): Likewise.
	(_Jv_BytecodeVerifier::check_pool_index): Likewise.
	(_Jv_BytecodeVerifier::get_variable): Likewise.
	(_Jv_BytecodeVerifier::branch_prepass): Likewise.  Also, correctly
	check exception handler endpoint.
	(_Jv_BytecodeVerifier::verify_instructions_0): Correctly handle
	wide arguments to current method.
	(_Jv_BytecodeVerifier::check_wide_constant): New method.
	(_Jv_BytecodeVerifier::verify_instructions_0) [op_ldc2_w]: Use
	it.

2001-11-17  Anthony Green  <green@redhat.com>

	* jni.cc (unwrap): Fix test for wrapped objects.

2001-11-16  Tom Tromey  <tromey@redhat.com>

	* verify.cc (_Jv_BytecodeVerifier::check_field_constant): Handle
	case where field has primitive type.

	* verify.cc (_Jv_BytecodeVerifier::is_assignable_from_slow): New
	method.
	(type::compatible): Use it.
	(type::merge): Likewise.
	(type::promote): Return a `type&'.
	(get_one_type): Promote return value.

	Re-merge with Classpath, from Brian Jones:
	* java/lang/Integer.java (getInteger): Attempt to decode the value
	of the system property instead of the name of the system property.
	(parseInt): Throw NumberFormatException explicitly in the case of
	a null argument in keeping with JDK 1.3.

2001-11-16  Mark Wielaard  <mark@klomp.org>

	* java/util/Timer.java (TaskQueue.isStopped): Remove method.
	(Scheduler.run): Try to re-schedule task and ignore exception if
	queue has been stopped.

2001-11-15  Tom Tromey  <tromey@redhat.com>

	* verify.cc (type::compatible): Use _Jv_IsAssignableFrom.
	(type::merge): Likewise.

2001-11-14  Hans Boehm <Hans_Boehm@hp.com>

	* java/lang/natString.cc: correct argument order for
	_Jv_AllocPtrFreeObj

2001-11-14  Tom Tromey  <tromey@redhat.com>

	* verify.cc (class _Jv_BytecodeVerifier) [op_dup2]: Fixed logic.
	[op_dup_x2]: Likewise.
	[op_dup2_x1]: Likewise.
	[op_dup2_x2]: Likewise.
	(branch_prepass): Added `op_newarray' case.  Updated unrecognized
	instruction error.
	(verify_instructions_0): Updated unrecognized instruction error.

	* java/lang/reflect/Constructor.java (toString): Use more
	efficient form of Modifier.toString().

	Re-merges with Classpath, from various people:
	* java/lang/reflect/Modifier.java: Reindented.
	(toString): Only trim trailing space if text was added to
	StringBuffer.
	* java/lang/reflect/ReflectPermission: Reindented.

	Re-merges with Classpath, from various people:
	* java/lang/Double.java (parseDouble): Fixed ordering of
	modifiers.
	* java/lang/reflect/AccessibleObject.java: Javadoc, reindented.
	* java/lang/reflect/Member.java: Reindented.
	* java/util/ConcurrentModificationException.java: Javadoc
	updates.
	* java/util/EmptyStackException.java: Likewise.
	* java/util/NoSuchElementException.java: Likewise.

2001-11-13  Tom Tromey  <tromey@redhat.com>

	Fix for PR libgcj/4859:
	* java/util/Timer.java (TaskQueue.isStopped): New method.
	(Scheduler.run): Don't re-schedule task if queue has been
	stopped.

2001-11-07  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (ordinary_java_source_files): Added JNIWeakRef.java.
	* jni.cc: Include JNIWeakRef.h.
	(unwrap): New function.
	(_Jv_JNI_DefineClass): Use it.
	(_Jv_JNI_GetSuperclass): Likewise.
	(_Jv_JNI_IsAssignableFrom): Likewise.
	(_Jv_JNI_Throw): Likewise.
	(_Jv_JNI_ThrowNew): Likewise.
	(_Jv_JNI_IsSameObject): Likewise.
	(_Jv_JNI_AllocObject): Likewise.
	(_Jv_JNI_GetObjectClass): Likewise.
	(_Jv_JNI_IsInstanceOf): Likewise.
	(_Jv_JNI_GetAnyMethodID): Likewise.
	(array_from_valist): Likewise.
	(_Jv_JNI_CallAnyMethodV): Likewise.
	(_Jv_JNI_CallAnyMethodA): Likewise.
	(_Jv_JNI_CallAnyVoidMethodV): Likewise.
	(_Jv_JNI_CallAnyVoidMethodA): Likewise.
	(_Jv_JNI_CallStaticMethodV): Likewise.
	(_Jv_JNI_CallStaticMethod): Likewise.
	(_Jv_JNI_CallStaticMethodA): Likewise.
	(_Jv_JNI_NewObjectV): Likewise.
	(_Jv_JNI_NewObject): Likewise.
	(_Jv_JNI_NewObjectA): Likewise.
	(_Jv_JNI_GetField): Likewise.
	(_Jv_JNI_SetField): Likewise.
	(_Jv_JNI_GetAnyFieldID): Likewise.
	(_Jv_JNI_SetStaticField): Likewise.
	(_Jv_JNI_GetStringLength): Likewise.
	(_Jv_JNI_GetStringChars): Likewise.
	(_Jv_JNI_ReleaseStringChars): Likewise.
	(_Jv_JNI_GetStringUTFLength): Likewise
	(_Jv_JNI_GetStringUTFChars): Likewise.
	(_Jv_JNI_GetStringRegion): Likewise.
	(_Jv_JNI_GetStringUTFRegion): Likewise.
	(_Jv_JNI_GetStringCritical): Likewise.
	(_Jv_JNI_GetArrayLength): Likewise.
	(_Jv_JNI_NewObjectArray): Likewise.
	(_Jv_JNI_GetObjectArrayElement): Likewise.
	(_Jv_JNI_SetObjectArrayElement): Likewise.
	(_Jv_JNI_GetPrimitiveArrayElements): Likewise.
	(_Jv_JNI_ReleasePrimitiveArrayElements): Likewise.
	(_Jv_JNI_GetPrimitiveArrayRegion): Likewise.
	(_Jv_JNI_SetPrimitiveArrayRegion): Likewise.
	(_Jv_JNI_MonitorEnter): Likewise.
	(_Jv_JNI_MonitorExit): Likewise.
	(_Jv_JNI_ToReflectedField): Likewise.
	(_Jv_JNI_FromReflectedField): Likewise.
	(_Jv_JNI_ToReflectedMethod): Likewise.
	(_Jv_JNI_FromReflectedMethod): Likewise.
	(_Jv_JNI_NewGlobalRef): Likewise.
	(_Jv_JNI_DeleteGlobalRef): Likewise.
	(_Jv_JNI_DeleteLocalRef): Likewise.
	(_Jv_JNI_NewLocalRef): Likewise.
	(_Jv_JNI_NewWeakGlobalRef): New function.
	(_Jv_JNI_DeleteWeakGlobalRef): Likewise.
	(_Jv_JNIFunctions): Updated for new methods.
	(NOT_IMPL): Removed.
	* gnu/gcj/runtime/JNIWeakRef.java: New file.

2001-11-12  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* boehm.cc (_Jv_GCCanReclaimSoftReference): Fix warning.

2001-11-09  Jeff Sturm  <jsturm@one-point.com>

	* verify.cc: Wrap in #ifdef INTERPRETER...#endif.

2001-11-07  Tom Tromey  <tromey@redhat.com>

	* verify.cc (skip_padding): Fail if padding byte is nonzero.

2001-11-06  Tom Tromey  <tromey@redhat.com>

	* HACKING: Make people commit their own patches.

2001-11-05  Tom Tromey  <tromey@redhat.com>

	* java/lang/Class.h (Class): Made _Jv_BytecodeVerifier a friend.
	* Makefile.in: Rebuilt.
	* Makefile.am (libgcj_la_SOURCES): Added verify.cc.
	* verify.cc: New file.
	* include/java-interp.h (_Jv_count_arguments): Declare.
	(_Jv_VerifyMethod): Likewise.
	(class _Jv_InterpMethod): Made _Jv_BytecodeVerifier a friend.
	(class _Jv_InterpException): Likewise.
	* resolve.cc (_Jv_count_arguments): Renamed from count_arguments.
	No longer static.  Updated callers.
	* defineclass.cc (int_bits_to_float): Removed.
	(long_bits_to_double): Likewise.
	(prepare_pool_entry): Updated.
	(handleCodeAttribute): Verify method (commented out for now).

2001-11-05  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/util/ResourceBundle.java (class Security): Now static.

2001-11-04  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/util/ResourceBundle.java (getClassContext): Removed.
	(Security): New class, extends SecurityManger.
	(getBundle): Use Security.getCallingClassLoader instead of
	getClassContext.
	* java/util/natResourceBundle.cc: Removed.

2001-11-03  Tom Tromey  <tromey@redhat.com>

	* defineclass.cc (handleClassBegin): Use Object::class$, not
	Class::class$, when initializing interface superclass.

2001-11-02  Hans Boehm <Hans_Boehm@hp.com>

	* java/util/natResourceBundle.cc:getClassContext: return
	array of Class instead of array of ClassLoader.

2001-10-31  Joseph S. Myers  <jsm28@cam.ac.uk>

	* HACKING, gnu/gcj/xlib/Pixmap.java, gnu/gcj/xlib/XException.java,
	gnu/java/rmi/rmic/RMIC.java, java/awt/Window.java,
	java/awt/AWTEvent.java, java/io/ByteArrayOutputStream.java,
	java/io/CharConversionException.java,
	java/io/PipedInputStream.java, java/io/PipedReader.java,
	java/io/PrintWriter.java, java/io/WriteAbortedException.java,
	java/io/natFileWin32.cc, java/lang/Class.h,
	java/lang/natClassLoader.cc, java/lang/natObject.cc,
	java/lang/Package.java, java/net/BindException.java,
	java/net/ConnectException.java, java/net/ProtocolException.java,
	java/net/SocketException.java,
	java/net/UnknownServiceException.java,
	java/security/cert/X509Certificate.java,
	java/security/interfaces/DSAKey.java,
	java/security/SecureRandom.java, java/security/SignedObject.java,
	java/sql/DatabaseMetaData.java,
	java/text/DecimalFormatSymbols.java,
	java/util/jar/Attributes.java, java/util/jar/JarEntry.java,
	java/util/jar/JarInputStream.java,
	java/util/jar/JarOutputStream.java, java/util/Calendar.java,
	java/util/Collections.java, java/util/GregorianCalendar.java,
	java/util/HashMap.java, java/util/List.java,
	java/util/Properties.java, java/util/Timer.java,
	java/util/Vector.java, java/util/WeakHashMap.java,
	javax/naming/NamingException.java,
	testsuite/libjava.lang/Thread_Wait.java,
	org/xml/sax/helpers/DefaultHandler.java,
	org/xml/sax/HandlerBase.java, org/xml/sax/SAXParseException.java,
	ChangeLog, acinclude.m4, aclocal.m4, posix-threads.cc: Fix
	spelling errors.
	* configure: Regenerate.

2001-10-30  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* jni.cc (JNI_CreateJavaVM): Call _Jv_CreateJavaVM. Don't call
	_Jv_JNI_Init.

2001-10-29  Tom Tromey  <tromey@redhat.com>

	* java/util/zip/GZIPOutputStream.java (write(int)): New method.
	Fixes PR libgcj/4728.

2001-10-27  Tom Tromey  <tromey@redhat.com>

	* include/jni.h (struct JNINativeInterface) [GetStringLength]:
	Returns jsize, not jint.

2001-10-26  Tom Tromey  <tromey@redhat.com>

	* java/util/zip/Adler32.java: Use correct class name.  (Re-merge
	from Classpath.)

2001-10-25  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/lang/VMClassLoader.java (getPrimitiveClass): Now native. Now 
	takes a jchar type-code argument, not a string. 
	* java/lang/natClassLoader.cc (VMClassLoader::getPrimitiveClass):
	New method. Just call _Jv_FindClassFromSignature.
	* java/lang/Boolean.java (TYPE): Initialize from 
	VMClassLoader.getPrimitiveClass using type-code.
	* java/lang/Character.java (TYPE): Likewise.
	* java/lang/Double.java (TYPE): Likewise.
	* java/lang/Float.java (TYPE): Likewise.
	* java/lang/Integer.java (TYPE): Likewise.
	* java/lang/Long.java (TYPE): Likewise.
	* java/lang/Short.java (TYPE): Likewise.
	* java/lang/Void.java (TYPE): Likewise.

2001-10-25  Hans Boehm <Hans_Boehm@hp.com>

	* include/boehm-gc.h: Call thread local allocation functions
	if THREAD_LOCAL_ALLOC is defined.

2001-10-25  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault): Use
	snprintf, not asprintf.

2001-10-24  Loren J. Rittle  <ljrittle@acm.org>

	* configure.in (case $THREADS): Add *-*-freebsd* configuration.
	(HAVE_GETHOSTBYADDR_R): Create a valid, non-optimal
	configuration when gethostbyaddr_r exists yet no prototype
	exists in netdb.h.
	* configure: Rebuilt.
	* posix-threads.cc (INTR): Reuse path for LINUX_THREADS
	with FREEBSD_THREADS.  However, comment different reason.

2001-10-24  Tom Tromey  <tromey@redhat.com>
            Warren Levy  <warrenl@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (javax_source_files): New macro.
	(ordinary_java_source_files): Added javax_source_files.
	(libgcj.jar): Search javax for class files.
	* javax/naming/LinkException.java (toString): Wrote.
	(toString(boolean)): Likewise.
	* javax/naming/ldap/InitialLdapContext.java: New file.
	* javax/naming/directory/InitialDirContext.java: Wrote.
	* javax/naming/spi/NamingManager.java (getPlusPath): Now has
	package-private protection.
	(getURLContext): Likewise.
	(NamingManager): Likewise.
	* javax/naming/spi/DirectoryManager.java: New file.
	* javax/naming/directory/BasicAttributes.java: New file.
	* javax/naming/directory/BasicAttribute.java: New file.
	* javax/naming/spi/ResolveResult.java
	(ResolveResult(Object,String)): Wrote.
	(appendRemainingName): Uncommented body.
	(appendRemainingComponent): Likewise.
	* javax/naming/ldap/ControlFactory.java: New file.
	* javax/naming/directory/AttributeModificationException.java
	(toString): Wrote.
	* javax/naming/spi/NamingManager.java (NamingManager): New
	constructor.
	(setInitialContextFactoryBuilder): Wrote.
	(getInitialContext): Look in system properties for class name as
	well.  Use Class.forName().
	(getURLContext): Wrote.
	(ofb): New field.
	(setObjectFactoryBuilder): Wrote.
	(getObjectInstance): Wrote.
	(getContinuationContext): Wrote.
	(getPlusPath): New private method.
	(getStateToBind): Wrote.
	* javax/naming/CannotProceedException.java: Added missing methods &
	fields.
	* javax/naming/LinkException.java: Added missing methods & fields.
	* javax/naming/ReferralException.java (ReferralException): Made
	constructor protected per spec.
	Added missing abstract methods.
	* javax/naming/directory/Attribute.java: Updated copyright.
	* javax/naming/directory/AttributeModificationException.java: Ditto.
	* javax/naming/directory/Attributes.java: Ditto.
	* javax/naming/directory/DirContext.java: Ditto.
	* javax/naming/spi/NamingManager.java: Ditto.
	* javax/naming/spi/ResolveResult.java: Added comment.
	* javax/naming/directory/Attribute.java: Added missing interface
	methods.
	* javax/naming/directory/AttributeModificationException.java:
	Added missing methods & fields.
	* javax/naming/directory/directory/Attributes.java: Added missing
	interface methods.
	* javax/naming/directory/SearchControls.java: Maded serialized fields
	private.
	* javax/naming/event/NamingEvent.java: Added comment.
	* javax/naming/event/NamingExceptionEvent.java: Maded serialized field
	private.
	* javax/naming/ldap/UnsolicitedNotificationEvent.java: Maded
	serialized field private.
	* javax/naming/spi/NamingManager.java: Added missing field and stubbed
	missing methods.
	* javax/naming/directory/DirContext.java: Added missing interface
	fields & methods.
	* javax/naming/directory/InitialDirContext.java: Stubbed missing
	methods.
	* javax/naming/directory/ModificationItem.java: New class.
	* javax/naming/directory/SearchResult.java: New class.
	* javax/naming/directory/SearchControls.java: New class.
	* javax/naming/event/EventContext.java: New class.
	* javax/naming/event/EventDirContext.java: New class.
	* javax/naming/event/NamespaceChangeListener.java: New class.
	* javax/naming/event/NamingEvent.java: New class.
	* javax/naming/event/NamingExceptionEvent.java: New class.
	* javax/naming/event/NamingListener.java: New class.
	* javax/naming/event/ObjectChangeListener.java: New class.
	* javax/naming/ldap/Control.java: New class.
	* javax/naming/ldap/ExtendedRequest.java: New class.
	* javax/naming/ldap/ExtendedResponse.java: New class.
	* javax/naming/ldap/HasControls.java: New class.
	* javax/naming/ldap/LdapContext.java: New class.
	* javax/naming/ldap/LdapReferralException.java: New class.
	* javax/naming/ldap/UnsolicitedNotification.java: New class.
	* javax/naming/ldap/UnsolicitedNotificationEvent.java: New class.
	* javax/naming/ldap/UnsolicitedNotificationListener.java: New class.
	* javax/naming/spi/DirObjectFactory.java: New class.
	* javax/naming/spi/DirStateFactory.java: New class.
	* javax/naming/spi/ObjectFactoryBuilder.java: New class.
	* javax/naming/spi/ResolveResult.java: New class.
	* javax/naming/spi/Resolver.java: New class.
	* javax/naming/spi/StateFactory.java: New class.
	* javax/naming/spi/ObjectFactory.java: Made an interface per spec.
	* java/rmi/RemoteException.java: New class.
	* javax/transaction/HeuristicCommitException.java: New class.
	* javax/transaction/HeuristicMixedException.java: New class.
	* javax/transaction/HeuristicRollbackException.java: New class.
	* javax/transaction/NotSupportedException.java: New class.
	* javax/transaction/RollbackException.java: New class.
	* javax/transaction/Status.java: New class.
	* javax/transaction/Synchronization.java: New class.
	* javax/transaction/SystemException.java: New class.
	* javax/transaction/Transaction.java: New class.
	* javax/transaction/TransactionManager.java: New class.
	* javax/transaction/UserTransaction.java: New class.
	* javax/transaction/xa/XAException.java: Added public static fields.
	* javax/transaction/xa/XAResource.java: New class.
	* javax/transaction/xa/Xid.java: New class.
	* javax/naming/CompoundName.java (CompoundName(String)): Reverse
	elements if required.  Handle case where quote is at end of
	string.
	* javax/naming/CompoundName.java (CompoundName(String)): Handle
	text left at end of parsing.
	(toString): Handle empty element at beginning.
	* javax/naming/CompositeName.java (toString): Handle empty element
	at beginning.
	(CompositeName(String)): Handle text left at end of parsing.
	Correctly compute boundary condition for quoting.
	* javax/naming/CompoundName.java: New file.
	* javax/naming/CompositeName.java: New file.
	* javax/naming/Binding.java: New file.
	* javax/naming/LinkRef.java: New file.
	* javax/naming/NameClassPair.java: New file.
	* javax/naming/Reference.java (addrs, classFactory,
	classFactoryLocation): New fields.
	(className): Now protected.
	(Reference): New constructors.
	(add): Now public.  Implemented.
	(get(String)): Likewise.
	(add(int,RefAddr)): New method.
	(clear): Likewise.
	(clone): Likewise.
	(equals): Likewise.
	(get(int)): Likewise.
	(getAll): Likewise.
	(getFactoryClassLocation): Likewise.
	(getFactoryClassName): Likewise.
	(hashCode): Likewise.
	(remove): Likewise.
	(size): Likewise.
	(toString): Likewise.
	* javax/transaction/xa/XAException.java: New file.
	* javax/transaction/TransactionRolledbackException.java: New file.
	* javax/transaction/TransactionRequiredException.java: New file.
	* javax/transaction/InvalidTransactionException.java: New file.
	* javax/naming/directory/SchemaViolationException.java: Use
	correct package.  Import NamingException.
	* javax/naming/directory/NoSuchAttributeException.java,
	javax/naming/directory/InvalidSearchFilterException.java,
	javax/naming/directory/InvalidSearchControlsException.java,
	javax/naming/directory/InvalidAttributesException.java,
	javax/naming/directory/InvalidAttributeValueException.java,
	javax/naming/directory/InvalidAttributeIdentifierException.java,
	javax/naming/directory/AttributeModificationException.java,
	javax/naming/directory/AttributeInUseException.java: Likewise.
	* javax/naming/directory/InitialDirContext.java (getAttributes):
	Stub implementation.
	* javax/naming/RefAddr.java (RefAddr): Reindented.
	(equals): Renamed and reindented.
	* javax/naming/BinaryRefAddr.java (equals): Renamed and
	reindented.

2001-10-24  Tom Tromey  <tromey@redhat.com>

	* java/lang/reflect/Field.java: Made many methods private.

	* java/sql/Types.java (Types): New constructor.

Tue Oct 23 23:52:18 2001  Anthony Green  <green@redhat.com>

	* gnu/gcj/runtime/natSharedLibLoader.cc: Only include dlfcn.h when
	HAVE_DLOPEN.

2001-10-23  Tom Tromey  <tromey@redhat.com>

	* java/lang/reflect/Field.java (Field): New constructor.
	* java/lang/ClassLoader.java (defineClass(String,byte[],int,int)):
	Throw ClassFormatError.
	
2001-10-23  Tom Tromey  <tromey@redhat.com>

	* java/util/PropertyResourceBundle.java (handleGetObject): Now
	public.
	* java/util/ListResourceBundle.java (handleGetObject): Now public
	and final, per spec.

	* java/io/BufferedWriter.java (localFlush): Don't synchronize.

2001-10-23  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* prims.cc (_Jv_Abort): Always print error message using fprintf,
	don't try to allocate.
	(_Jv_CreateJavaVM): Set gcj::runtimeInitialized.
	* include/jvm.h (gcj::runtimeInitialized): New variable declaration.
	* java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault): Handle
	duplicate class registration with JvFail if the runtime hasn't been
	initialized yet.
	
	* java/io/BufferedWriter (write (String, int, int)): Remove redundant 
	bounds checks.
	(write (char[], int, int)): Likewise.

2001-10-22  Tom Tromey  <tromey@redhat.com>

	* java/util/GregorianCalendar.java (getGregorianChange): Removed
	`date' argument.

2001-10-22  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* gnu/gcj/convert/JIS0208_to_Unicode.cc: Declare java_exceptions pragma.
	* gnu/gcj/convert/JIS0212_to_Unicode.cc: Likewise.
	* gnu/gcj/convert/Unicode_to_JIS.cc: Likewise.
	* gnu/gcj/convert/gen-from-JIS.c: Put java_exceptions pragma in output
	file.

2001-10-19  Mark Wielaard  <mark@klomp.org>

	* java/lang/Double.java: More Classpath merging
	(isInfinite): Don't use doubleToLongBits
	(isNaN (Object)): return v != v
	(initIDs): make native
	* java/lang/Float.java: Ditto
	(isInfinite): Don't use floatToIntBits
	(isNaN (Object)): return v != v
	* java/lang/natDouble.cc: add empty initIDs()

2001-10-19  Mark Wielaard  <mark@klomp.org>

	* javax/naming/BinaryRefAddr.java: New file
	* javax/naming/InitialContext.java: Compile fix
	* javax/naming/InvalidNameException.java: Add comments
	* javax/naming/Name.java: Ditto
	* javax/naming/NamingException.java: Implement
	* javax/naming/OperationNotSupportedException.java: Compile fix
	* javax/naming/RefAddr.java: Implement
	* javax/naming/StringRefAddr.java: Add comments and implement
	* javax/naming/directory/InitialDirContext.java: Compile fix

2001-10-18  Tom Tromey  <tromey@redhat.com>

	* java/io/BufferedWriter.java (write(String,int,int)): Correctly
	check bounds.

	* java/security/Security.java (loadProviders): Removed unused
	`pname' variable.  Don't create `File' object.  Don't update
	`providerCount'.
	(providerCount): Removed.
	(insertProviderAt): Don't use `providerCount'.
	(addProvider(Provider,int)): Likewise.
	(removeProvider): Likewise.
	(addProvider(Provider)): Rewrote.
	(getProviders): Rewrote.
	(getProvider): Don't use `providerCount'.

2001-10-17  Tom Tromey  <tromey@redhat.com>

	* gnu/java/security/provider/SHA1PRNG.java (engineNextBytes):
	Rewrote.
	* java/security/SecureRandom.java (setSeed(long)): Don't set seed
	if secureRandomSpi is not initialized.

	* Makefile.in: Rebuilt.
	* Makefile.am (secdir): New macro.
	(install-data-local): Install new data files.
	* java/security/classpath.security: New file.
	* java/security/libgcj.security: New file.

	* java/security/Security.java (loadProviders): Added `vendor'
	argument.
	Load both `classpath' and `java.vm.name' providers.

2001-10-17  Anthony Green  <green@redhat.com>

	* java/security/Security.java (loadProviders): Fix bug in how
	providers are loaded.

2001-10-16  Tom Tromey  <tromey@redhat.com>

	* gcj/javaprims.h: Updated class list.
	* java/util/Hashtable.java: Re-merged with Classpath.

2001-10-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* name-finder.cc (_Jv_name_finder::lookup): Check for NULL dli_sname.

	Eliminate use of C++ static constructors.		
	* interpret.cc: Remove static Utf8Consts. Use namespace gcj. 
	* jni.cc: Likewise.
	* resolve.cc: Likewise.
	* defineclass.cc: Likewise.
	(_Jv_ClassReader::handleClassBegin): Synchronize call to 
	_Jv_RegisterClass.
	* include/jvm.h (void_signature, clinit_name, init_name, finit_name):
	Declare in namespace gcj.
	* java/lang/Class.h (Class): Remove initialization for primitive
	types.
	(friend void _Jv_InitPrimClass): This is in prims.cc.
	* prims.cc (_Jv_InitPrimClass): Do primitive type initialization
	here instead.
	(void_signature, clinit_name, init_name, finit_name): Define in 
	namespace gcj.
	(_Jv_CreateJavaVM): Call _Jv_InitThreads, _Jv_InitGC, and 
	_Jv_InitializeSyncMutex from here. Initialize Utf8 constants. 
	Initialize primitive types.
	* java/lang/natClassLoader.cc (_Jv_RegisterClasses): Don't call
	initialization routines. Don't synchronize.
	* java/lang/natRuntime.cc (_load): Synchronize on java.lang.Class
	across dlopen call.

2001-10-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/util/HashMap.java (HashEntry.clone): Removed.
	(HashMap(Map)): Use putAllInternal.
	(clone): Likewise.
	(putAllInternal): New method. Efficient counterpart to putAll which 
	does not call put().	
	* java/util/LinkedHashMap.java (rethread): Removed.
	(putAllInternal): New method. Clear "head" and "tail".
	(addEntry): New argument "callRemove". Don't call removeEldestEntry()
	if callRemove == false. 

	* Makefile.am: Add new classes RandomAccess and LinkedHashMap.
	* Makefile.in: Rebuilt.

2001-10-15  Eric Blake  <ebb9@email.byu.edu>

	* java/util/Collection.java: Updated javadoc.
	* java/util/Comparator.java: Updated javadoc.
	* java/util/Enumeration.java: Updated javadoc.
	* java/util/Iterator.java: Updated javadoc.
	* java/util/List.java: Updated javadoc.
	* java/util/ListIterator.java: Updated javadoc.
	* java/util/Map.java: Updated javadoc.
	* java/util/RandomAccess.java: New file.
	* java/util/Set.java: Updated javadoc.
	* java/util/SortedMap.java: Updated javadoc.
	* java/util/SortedSet.java: Updated javadoc.

2001-10-15  Tom Tromey  <tromey@redhat.com>

	* java/lang/reflect/AccessibleObject.java (checkPermission):
	Implemented.
	Updated copyright information.

2001-10-15  Hans Boehm <Hans_Boehm@hp.com>

	* java/lang/natObject.cc (heavy_lock): Moved fields
	old_client_data, old_finalization_proc near beginning.
	(heavy_lock_finalization_proc): Now inline; changed type of
	argument.
	(JV_SYNC_TABLE_SZ): Now 2048.
	(mp): New global.
	(spin): `mp' now global.
	(heavy_lock_obj_finalization_proc): Updated to correctly handle
	heavy lock finalization.
	(remove_all_heavy): New function.
	(maybe_remove_all_heavy): Likewise.
	(_Jv_MonitorEnter): Throw exception if object is NULL.
	(_Jv_MonitorExit): Likewise.  Also, clear long lists of unlocked
	heavy locks.
	* include/jvm.h (_Jv_AllocTraceTwo): Declare.
	* nogc.cc (_Jv_AllocTraceTwo): New function.
	* boehm.cc (trace_two_vtable): New global.
	(_Jv_AllocTraceTwo): New function.

2001-10-15  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added new file.
	* java/beans/AppletInitializer.java: New file.

	* java/net/SocketPermission.java (hostport, actions): Now
	private.

2001-10-14  Mark Wielaard  <mark@klomp.org>

	* java/lang/Double.java: Partial merge with Classpath
	(TYPE): initialized through VMClassLoader.getPrimitiveClass()
	(value): made final
	(static): new static block to load native libary (not used in libgcj)
	(Double (String)): call parseDouble()
	(byteValue): removed, already defined in superclass Number
	(shortValue): likewise
	(valueOf (String)): call new Double(String) directly
	(compare (double,double)): new 1.4 method
	(compareTo (Double)): call new compare(double,double) method
	(initIDs): new private method (not used in libgcj)
	* java/lang/Float.java: Partial merge with Classpath
	(TYPE): initialized through VMClassLoader.getPrimitiveClass()
	(value): made final
	(static): new static block to load native libary (not used in libgcj)
	(Float (String)): call parseFloat()
	(byteValue): removed, already defined in superclass Number
	(shortValue): likewise
	(valueOf (String)): call new Float(String) directly
	(compare (float,float)): new 1.4 method
	(compareTo (Float)): call new compare(double,double) method

2001-10-13  Tom Tromey  <tromey@redhat.com>

	* java/lang/SecurityManager.java (SecurityManager): Now public.

	* java/security/AccessController.java (checkPermission): Now
	throws AccessControlException.
	* java/security/AllPermission.java: Class now final.
	* java/security/Permission.java (getName): Now final.
	(name): Now private.
	(equals): New abstract method.
	* java/security/PermissionCollection.java (linesep): Now private.
	* java/security/Permissions.java: Class now final.
	* java/security/Security.java (Security): New private
	constructor.
	* java/security/UnresolvedPermission.java: Import
	java.security.cert.Certificate.  Class now final.
	* java/security/acl/Group.java: Now extends Principal.
	(isMember): Added Principal argument.
	* java/security/spec/X509EncodedKeySpec.java (getFormat): Now
	final.
	* java/security/spec/PKCS8EncodedKeySpec.java (getFormat): Now
	final.

2001-10-12  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (rmi_java_source_files): Added new files.
	* gnu/java/rmi/rmic/RMIC.java (compile): Uncommented; fixed to use
	new Compiler class.
	* gnu/java/rmi/rmic/Makefile.am (EXTRA_DIST): Updated.
	* gnu/java/rmi/rmic/Compile_gcj.java: New file.
	* gnu/java/rmi/rmic/CompilerProcess.java: New file.
	* gnu/java/rmi/rmic/Compiler.java: New file.

2001-10-11  Tom Tromey  <tromey@redhat.com>

	* configure: Rebuilt.
	* configure.in: Recognize --disable-java-awt.

2001-10-10  Tom Tromey  <tromey@redhat.com>

	* gnu/gcj/runtime/natFinalizerThread.cc: New file.
	* java/lang/natRuntime.cc: Include FinalizerThread.h.
	(runFinalization): Call finalizerReady.
	* nogc.cc (_Jv_GCInitializeFinalizers): New function.
	* prims.cc: Include VirtualMachineError.h, FinalizerThread.h.
	(_Jv_CreateJavaVM): Start the finalizer thread.
	* no-threads.cc: Include InternalError.h.
	(_Jv_ThreadStart): Throw InternalError.
	(_Jv_ThreadInitData): Don't throw error if this is not the first
	thread.
	* Makefile.in: Rebuilt.
	* Makefile.am (ordinary_java_source_files): Added
	FinalizerThread.java.
	(nat_source_files): Added natFinalizerThread.cc.
	* include/jvm.h (_Jv_GCInitializeFinalizers): Declare.
	* boehm.cc (_Jv_GCInitializeFinalizers): New function.
	* gnu/gcj/runtime/FirstThread.java (run): Start finalizer thread.
	* gnu/gcj/runtime/FinalizerThread.java: New file.

2001-10-09  Per Bothner  <per@bothner.com>

	* strtod.c (_strtod_r):  Logic to check for missing digits
	after exponent had 'else' attached to wrong 'if'.

2001-10-09  Mark Wielaard  <mark@klomp.org>

	* java/net/SocketImpl.java: Merge with Classpath

2001-10-08  Mark Wielaard  <mark@klomp.org>

	* java/net/DatagramSocketImpl.java: Merge with Classpath

2001-10-07  Mark Wielaard  <mark@klomp.org>

	* java/net/URLDecoder.java: Remerge with Classpath
	* java/net/URLEncoder.java: Merge with Classpath

2001-10-08  Tom Tromey  <tromey@redhat.com>

	Fix for PR libgcj/4481:
	* java/io/File.java (getParent): Handle case where path is "/".
	(normalizePath): Use correct string for UNC leader.

2001-10-06  Mark Wielaard  <mark@klomp.org>

	* java/io/BufferedInputStream.java: Merge with Classpath

2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>

	* defineclass.cc, java/awt/image/ColorModel.java,
	java/awt/image/SampleModel.java, java/lang/Package.java,
	java/security/cert/X509Extension.java: Fix spelling errors of
	"separate" as "seperate", and corresponding spelling errors of
	related words.

2001-10-05  Tom Tromey  <tromey@redhat.com>

	* java/text/DecimalFormat.java (format): Use localized minus sign
	when generating exponent; never use `+'.  Use floor to compute
	exponent.

2001-10-05  Mark Wielaard  <mark@klomp.org>

	* java/util/zip/Adler32.java: Merge with Classpath
	* java/util/zip/CRC32.java: Ditto
	* java/util/zip/Checksum.java: Ditto
	* java/util/zip/DataFormatException.java: Ditto
	* java/util/zip/ZipException.java: Ditto

2001-10-04  Martin Kahlert  <martin.kahlert@infineon.com>

	* jni.cc (_Jv_JNI_DeleteLocalRef): Use correct frame size

2001-10-04  Mark Wielaard  <mark@klomp.org>

	* java/lang/reflect/Modifier.java: Merge with Classpath

2001-10-03  Mark Wielaard  <mark@klomp.org>

	* java/io/SequenceInputStream.java: Merge with Classpath
	* java/io/StringBufferInputStream.java: Ditto
	* java/util/Collections.java: Remerge with Classpath

2001-10-03  Tom Tromey  <tromey@redhat.com>

	* java/lang/ref/natReference.cc (add_to_hash): Set n->next before
	setting *link.

2001-10-03  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* resolve.cc (_Jv_PrepareClass): Fix typos in vtable layout.
	* gij.cc (version): Use GCJVERSION.

2001-10-02  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (core_java_source_files): add InheritableThreadLocal
	* Makefile.in: regenerate
	* gcj/javaprims.h: ditto
	* java/lang/InheritableThreadLocal.java: new class from Classpath
	* java/lang/Thread.java Thread (Thread, ThreadGroup, Runnable, String):
	call InheritableThreadLocal.newChildThread()

2001-10-01  Mark Wielaard  <mark@klomp.org>

	* Makefile.am: Add new classes
	(core_java_source_files): CharSequence
	(ordinary_java_source_files): Authenticator, PasswordAuthentication
	* Makefile.in: regenerate
	* gcj/javaprims.h: ditto
	* java/lang/CharSequence: new class from Classpath
	* java/lang/String.java: implements CharSequence
	(subSequence (int,int)): new method
	* java/lang/SubString.java: implements CharSequence
	(subSequence (int,int)): new method
	remerge comments with Classpath
	* java/net/Authenticator.java: new class from Classpath
	* java/net/PasswordAuthentication.java: ditto

2001-10-01  Tom Tromey  <tromey@redhat.com>

	* gcj/javaprims.h: Rebuilt class list.
	* boehm.cc (_Jv_GCRegisterDisappearingLink): New function.
	(_Jv_GCCanReclaimSoftReference): New function.
	* include/jvm.h (_Jv_GCRegisterDisappearingLink): Declare.
	(_Jv_GCCanReclaimSoftReference): Declare.
	* java/lang/ref/Reference.java (referent): Now a RawData.
	(create): Renamed from `created'.  Added object argument.
	(Reference): Don't initialize `referent' here.
	* Makefile.in: Rebuilt.
	* Makefile.am (nat_source_files): Added new file.
	* java/lang/ref/natReference.cc: New file.

	* prims.cc (_Jv_NewMultiArrayUnchecked): New method.
	(_Jv_NewMultiArray): Use it.  Check each array dimension.
	(_Jv_NewMultiArray): Likewise.
	* java/lang/reflect/natMethod.cc (can_widen): Nothing promotes to
	`char'.
	* java/lang/reflect/natArray.cc (newInstance): Throw
	IllegalArgumentException if there are no dimensions.

2001-10-01  Mark Wielaard  <mark@klomp.org>

	* java/io/FileWriter.java: Merge with Classpath.
	* java/io/FilterInputStream.java: Ditto.
	(mark): no longer synchronized
	(reset): Likewise
	* java/io/FilterOutputStream.java: Merge with Classpath.
	* java/io/FilterReader.java: Ditto.
	(mark): no longer synchronized
	(reset): Likewise
	* java/io/FilterWriter.java: Merge with Classpath.
	* java/io/Writer.java: Ditto.
	* java/lang/Compiler.java: Ditto.
	* java/lang/Process.java: Ditto.
	* java/lang/Void.java: Ditto.
	* java/net/ContentHandler.java: Ditto.
	* java/net/DatagramPacket.java: Ditto.
	* java/net/MulticastSocket.java: Merge comments with Classpath.

2001-09-30  Mark Wielaard  <mark@klomp.org>

	* java/io/DataInput.java:  Merge with Classpath.
	* java/io/DataOutput.java:  Idem.
	* java/io/FilenameFilter.java:  Idem.
	* java/io/Serializable.java:  Idem.
	* java/lang/Cloneable.java:  Idem.
	* java/lang/Comparable.java:  Idem.
	* java/lang/Runnable.java:  Idem.
	* java/lang/reflect/Member.java:  Idem.
	* java/net/ContentHandlerFactory.java:  Idem.
	* java/net/FileNameMap.java:  Idem.
	* java/net/SocketImplFactory.java:  Idem.
	* java/net/SocketOptions.java:  Idem.
	* java/net/URLStreamHandlerFactory.java:  Idem.

2001-09-30  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/lang/natClass.cc (_Jv_IsAssignableFrom): Handle the case of
	an uninitialized target class.
	
	* gnu/gcj/protocol/file/Connection.java (connect): Throw 
	FileNotFoundException if appropriate.
	* gnu/gcj/protocol/file/Handler.java (openConnection): Throw an 
	IOException if we got a file: url with a hostname. Comment out protocol
	switch to ftp for now.
	* java/net/URL.java (URL): Include protocol name in exception message
	when handler can't be found.

2001-09-28  Per Bothner  <per@bothner.com>

	* gnu/gcj/runtime/SharedLibLoader.java:  New class.
	* gnu/gcj/runtime/natSharedLibLoader.cc:  Native methods.
	* Makefile.am:  Update accordingly.
	* configure.in:  Add AC_CHECK_LIB for dlopen.
	* include/config.h.in:  Add HAVE_DLOPEN.

2001-09-29  Jeff Sturm  <jsturm@one-point.com>

	* Makefile.am (libgcj_la_LDFLAGS): Added $(GCLIBS), $(ZLIBS).
	* Makefile.in: Rebuilt.

2001-09-27  Tom Tromey  <tromey@redhat.com>

	* java/util/IdentityHashMap.java (containsKey): Use getHash.
	(get): Likewise.
	(put): Likewise.
	(remove): Likewise.
	(getHash): New method.
	(tombstone, emptyslot): Now static final.
	(put): Correctly determine when to rehash, and correctly rehash.
	(containsKey, remove): Test against table length with `>='.

2001-09-26  Tom Tromey  <tromey@redhat.com>

	* gnu/classpath/Configuration.java.in (INIT_LOAD_LIBRARY): New
	constant.
	* java/io/StreamTokenizer.java, java/util/ResourceBundle.java:
	Re-merged with Classpath.

	* java/io/DataInputStream.java (readChar): Use readFully.
	(readInt): Likewise.
	(readLong): Likewise.
	(readShort): Likewise.
	(readUnsignedShort): Likewise.

2001-09-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/lang/PosixProcess.java (exitValue): Implement here. Throw 
	IllegalThreadStateException if process hasn't exited yet.
	* java/lang/natPosixProcess.cc (exitValue): Removed.
	(waitFor): Only check thread interrupted status if waitpid() returned
	an error. Use WIFEXITED and WEXITSTATUS to process process's exit
	value.
	
	* java/security/cert/X509Extension.java: Merge from classpath.

2001-09-22  Anthony Green  <green@redhat.com>

 	* java/security/DummyKeyPairGenerator.java (initialize): New
 	method (with AlgorithmParameterSpec argument).

2001-09-22  Anthony Green  <green@redhat.com>

	* java/security/spec/EncodedKeySpec.java: Implements KeySpec.

	* gnu/java/security/provider/SHA1PRNG.java: Extend from
	SecureRandomSpi.  
	(engineNextBytes): Fix order of memory copies.
	
2001-09-21  Richard Henderson  <rth@redhat.com>

	* include/jvm.h (_Jv_VTable): Handle function descriptors for ia64;
	add get_method, set_method, vtable_elt_size, new_vtable.
	(_Jv_ArrayVTable): Derive from _Jv_VTable.
	* resolve.cc (_Jv_PrepareClass): Use new _Jv_VTable methods.
	* interpret.cc (_Jv_InterpMethod::continue1): Likewise.
	* java/lang/natClassLoader.cc (_Jv_NewArrayClass): Likewise.

2001-09-21  Richard Henderson  <rth@redhat.com>

	* no-threads.cc (_Jv_ThreadStart): Remove names of unused arguments.
	* java/lang/mprec.c (lo0bits): Fix paren typo.

2001-09-20  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* posix-threads.cc (_Jv_ThreadInterrupt): Re-enable interrupt of 
	blocking IO via pthread_kill().
	* java/io/natFileDescriptorPosix.cc (write (jint)): Check for thread 
	interrupted status flag only if ::write returned an error.
	(write (jbyteArray, jint, jint): Likewise.
	(read (jint)): Likewise.
	(read (jbyteArray, jint, jint): Likewise.

2001-09-19  Anthony Green  <green@redhat.com>

	* gnu/gcj/protocol/file/Handler.java: Avoid NullPointerException
	when host is null.

2001-09-17  Andreas Jaeger  <aj@suse.de>

	* jni.cc (array_from_valist): Use promoted types for va_arg.

2001-09-16  Anthony Green  <green@redhat.com>

	* gnu/java/locale/LocaleInformation.java: Extend
	LocaleInformation_en_US, not LocaleInformation_en.

2001-09-16  Anthony Green  <green@redhat.com>

	* gnu/gcj/convert/IOConverter.java: Add support for iso8859_1.

2001-09-14  Tom Tromey  <tromey@redhat.com>

	* java/util/TimeZone.java: Updated list of timezones from
	Classpath.

	* java/lang/CloneNotSupportedException.java: Re-merged with
	Classpath.

2001-09-14  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/io/File.java (normalizePath): Use equals() not '==' for string
	comparison.

	* java/util/Hashtable.java (Enumerator): Ensure that if
	hasMoreElements() returns true, nextElement() will always return
	something even if the table has been modified.

2001-09-12  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (class-check): New target.

2001-09-11  Tom Tromey  <tromey@redhat.com>

	* java/io/File.java (toURL): Use getAbsolutePath and `file://'.

2001-09-10  Tom Tromey  <tromey@redhat.com>

	* java/util/Properties.java (load): Correctly read \u sequences.
	Report from Anthony Green.

2001-09-10  Manfred Hollstein  <manfredh@redhat.com>

	* configure.in (LIBFFIINCS): Quote uses of $(top_srcdir)
	and $(MULTIBUILDTOP).
	* configure: Re-generate.

2001-09-10  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* include/jvm.h (_Jv_AllocRawObj): New prototype.
	* boehm.cc (_Jv_AllocRawObj): Implement.
	* nogc.cc (_Jv_AllocRawObj): Likewise.
	* exception.cc (_Jv_Throw): Use _Jv_AllocRawObj, not GC_malloc.

2001-09-06  Anthony Green  <green@redhat.com>

	* java/util/ResourceBundle.java (tryLocalBundle): Eliminate
	redundant method calls.
	(emptyLocale): New private member.
	(tryBundle): Use emptyLocale.  Remove duplicate code.  Only cache
	exact matches.

2001-09-06  Tom Tromey  <tromey@redhat.com>

	* java/text/RuleBasedCollator.java (clone): Rewrote.
	(RuleBasedCollator(RuleBasedCollator)): Removed.
	* java/text/MessageFormat.java: Re-merged from Classpath.
	* java/text/DecimalFormat.java: Re-merged from Classpath.

2001-09-06  Anthony Green  <green@redhat.com>

	* include/jvm.h: Declare _Jv_RegisterResource.
	* gnu/gcj/Core.java, gnu/gcj/natCore.cc,
	gnu/gcj/protocol/core/Connection.java,
	gnu/gcj/protocol/core/Handler.java,
	gnu/gcj/protocol/core/CoreInputStream.java,
	gnu/gcj/protocol/core/natCoreInputStream.cc: New files.
	* java/net/URL.java (setURLStreamHandler): Use
	gnu.gcj.protocol.core.Handler for the core protocol.
	* gnu/gcj/runtime/VMClassLoader.java (init): Add "core:/" to the
	end of java.class.path.
	* Makefile.am (ordinary_java_source_files): Add new java files.
	(nat_source_files): Add new native code files.
	* Makefile.in: Rebuilt.

2001-09-05  Tom Tromey  <tromey@redhat.com>

	* java/util/Properties.java: Re-merged from Classpath.

	From Eric Blake, via Classpath:
	* java/lang/String.java (CaseInsensitiveComparator): New class.
	(CASE_INSENSITIVE_ORDER): Use instance of CaseInsensitiveComparator.

	* java/util/Date.java: Re-merged with Classpath.

	* java/text/DateFormatSymbols.java: Re-merged with Classpath.

2001-09-05  Corey Minyard  <minyard@acm.org>
	    Tom Tromey  <tromey@redhat.com>

	* java/lang/natClassLoader.cc: Include VirtualMachineError.h
	(_Jv_RegisterClassHookDefault): Throw error if a class is
	registered twice.

2001-09-05  Tom Tromey  <tromey@redhat.com>

	* java/lang/natSystem.cc (init_properties): Default locale is
	en_US, not just en.

2001-09-05  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/text/MessageFormat.java (setLocale): Don't catch ParseException
	here, DecimalFormat.applyPattern() does not throw it.

2001-09-04  Tom Tromey  <tromey@redhat.com>

	* java/util/AbstractMap.java: Re-merged with Classpath.
	* java/util/IdentityHashMap.java: Re-merged with Classpath.

	* java/text/SimpleDateFormat.java: Re-merged with Classpath.
	* gnu/gcj/text/LocaleData.java, gnu/gcj/text/LocaleData_en.java,
	gnu/gcj/text/LocaleData_en_US.java: Removed.
	* java/text/DateFormatSymbols.java (clone): Use Classpath
	implementation.
	(equals): Simplified.
	(DateFormatSymbols): Look in gnu.java.locale for information.
	(DateFormatSymbols(DateFormatSymbols)): Removed.
	(safeGetResource): Removed.
	(DateFormatSymbols): Throws MissingResourceException.
	(ampmsDefault, erasDefault, localPatternCharsDefault,
	monthsDefault, shortMonthsDefault, shortWeekdaysDefault,
	weekdaysDefault, zoneStringsDefault): Removed.
	* java/text/Collator.java (getAvailableLocales): Use modified
	Classpath implementation.
	(getInstance): Look in gnu.java.locale for information.
	(clone): Rewrote.
	* java/text/MessageFormat.java: Reindented.
	(clone): Rewrote.
	* java/text/FieldPosition.java: Merged with Classpath.
	* java/text/ParsePosition.java: Merged with Classpath.
	* java/text/Format.java: Merged with Classpath.
	* java/text/StringCharacterIterator.java
	(StringCharacterIterator(StringCharacterIterator,int,int)): New
	constructor from Classpath.
	* java/text/Annotation.java,
	java/text/AttributedCharacterIterator.java,
	java/text/AttributedString.java,
	java/text/AttributedStringIterator.java: New from Classpath.
	* java/text/CharacterIterator.java: Copied from Classpath.
	* java/text/ChoiceFormat.java: Reindented.
	(clone): Removed.
	* gnu/java/text/BaseBreakIterator.java,
	gnu/java/text/CharacterBreakIterator.java,
	gnu/java/text/LineBreakIterator.java,
	gnu/java/text/LocaleData_en.java,
	gnu/java/text/LocaleData_en_US.java,
	gnu/java/text/SentenceBreakIterator.java,
	gnu/java/text/WordBreakIterator.java: Renamed from gnu/gcj/text/*.
	* gnu/gcj/text/BaseBreakIterator.java (last): Advance past final
	character.
	* java/text/BreakIterator.java (getAvailableLocales): Use
	Classpath implementation.
	(getInstance): Look in gnu.java.locale for information.
	(getCharacterInstance, getLineInstance, getSentenceInstance,
	getWordInstance): Look in gnu.java.text for implementations.
	* java/text/DecimalFormatSymbols.java: Reindented
	(clone): Use Classpath implementation.
	(DecimalFormatSymbols(DecimalFormatSymbols)): Removed.
	(DecimalFormatSymbols(Locale)): Look in gnu.java.locale for
	information.
	* java/text/DateFormat.java: Merged with Classpath.
	(getAvailableLocales): Use Classpath implementation.
	(format(Object,StringBuffer,FieldPosition)): Minor cleanup.
	(computeInstance): Look in gnu.java.locale for information.
	* java/text/NumberFormat.java: Reindented.
	(computeInstance): Look in gnu.java.locale for information.
	(getAvailableLocales): Use implementation from Classpath.
	(setMaximumIntegerDigits): Likewise.
	(setMinimumIntegerDigits): Likewise.
	(setMaximumFractionDigits): Likewise.
	(clone): Removed.
	* java/text/DecimalFormat.java: Reindented.
	* gnu/java/locale/LocaleInformation_en.java: Copied from Classpath.
	* gnu/java/locale/LocaleInformation_en_US.java: Copied from Classpath.
	* Makefile.in: Rebuilt.
	* Makefile.am (ordinary_java_source_files): Added all new files.
	(ordinary_java_source_files): Renamed or removed gnu/gcj/text/*.
	* java/security/spec/AlgorithmParameterSpec.java,
	java/security/spec/KeySpec.java: Re-merged with Classpath.

	Fix for PR libgcj/4213:
	* Makefile.am (ordinary_java_source_files): Added new file.
	* gnu/gcj/text/LocaleData.java: New file.

2001-09-03  Tom Tromey  <tromey@redhat.com>

	* java/lang/reflect/natField.cc (set): Allow for case when the
	value is null.  Fixes PR libgcj/4208.

	* gcj/javaprims.h: Regenerated class list.
	* java/lang/IllegalThreadStateException.java,
	java/lang/InstantiationException.java: Minor comment tweaks to
	satisfy libgcj `classes.pl' script.

2001-09-01  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (core_java_source_files): Added
	UnsupportedClassVersionError.
	* java/lang/UnsupportedClassVersionError.java: New file from
	Classpath.

	* java/io/CharConversionException.java, java/io/EOFException.java,
	java/io/FileNotFoundException.java, java/io/IOException.java,
	java/io/InterruptedIOException.java,
	java/io/ObjectStreamException.java,
	java/io/OptionalDataException.java,
	java/io/StreamCorruptedException.java,
	java/io/SyncFailedException.java,
	java/io/UTFDataFormatException.java,
	java/io/UnsupportedEncodingException.java,
	java/lang/AbstractMethodError.java,
	java/lang/ArithmeticException.java,
	java/lang/ArrayIndexOutOfBoundsException.java,
	java/lang/ArrayStoreException.java,
	java/lang/ClassCastException.java,
	java/lang/ClassCircularityError.java,
	java/lang/ClassFormatError.java,
	java/lang/CloneNotSupportedException.java, java/lang/Error.java,
	java/lang/Exception.java,
	java/lang/ExceptionInInitializerError.java,
	java/lang/IllegalAccessError.java,
	java/lang/IllegalAccessException.java,
	java/lang/IllegalArgumentException.java,
	java/lang/IllegalMonitorStateException.java,
	java/lang/IllegalStateException.java,
	java/lang/IllegalThreadStateException.java,
	java/lang/IncompatibleClassChangeError.java,
	java/lang/IndexOutOfBoundsException.java,
	java/lang/InstantiationError.java,
	java/lang/InstantiationException.java,
	java/lang/InternalError.java, java/lang/InterruptedException.java,
	java/lang/LinkageError.java,
	java/lang/NegativeArraySizeException.java,
	java/lang/NoClassDefFoundError.java,
	java/lang/NoSuchFieldError.java,
	java/lang/NoSuchFieldException.java,
	java/lang/NoSuchMethodError.java,
	java/lang/NoSuchMethodException.java,
	java/lang/NullPointerException.java,
	java/lang/NumberFormatException.java,
	java/lang/OutOfMemoryError.java, java/lang/RuntimeException.java,
	java/lang/SecurityException.java,
	java/lang/StackOverflowError.java,
	java/lang/StringIndexOutOfBoundsException.java,
	java/lang/ThreadDeath.java, java/lang/UnknownError.java,
	java/lang/UnsatisfiedLinkError.java,
	java/lang/UnsupportedOperationException.java,
	java/lang/VerifyError.java, java/lang/VirtualMachineError.java,
	java/lang/reflect/InvocationTargetException.java,
	java/net/BindException.java, java/net/ConnectException.java,
	java/net/MalformedURLException.java,
	java/net/NoRouteToHostException.java,
	java/net/ProtocolException.java, java/net/SocketException.java,
	java/net/UnknownHostException.java,
	java/net/UnknownServiceException.java,
	java/text/ParseException.java: Copied from Classpath, thanks to
	Mark Wielaard who did the merge.

	* java/lang/System.java (getProperty): Use single argument form of
	SecurityManager.checkPropertyAccess.
	* Makefile.in: Rebuilt.
	* Makefile.am (core_java_source_files): Added VMSecurityManager.
	* java/lang/VMSecurityManager.java: New file.
	* java/lang/SecurityManager.java: Merged with Classpath.

2001-08-31  Per Bothner  <per@bothner.com>

	* gcj/javaprims.h (_Jv_RegisterClassHook):  New extern declaration.
	(_Jv_RegisterClassHookDefault):  Likewise.
	* java/lang/Class.h (_Jv_RegisterClassHookDefault):  Declare as friend.
	* java/lang/natClassLoader.cc (_Jv_RegisterClassHook):  New variable.
	(_Jv_RegisterClassHookDefault):  New.function.
	(_Jv_RegisterClasses):  Call _Jv_RegisterClassHook.

	* java/lang/ClassLoader.java (system):  Remove static field.
	(getSystemClassLoader):  Get gnu.gcj.runtime.VMClassLoader.instance
	directly instead of using it to set the system field.
	(loadClass):  Use VMClassLoader.instance instead of system field.
	(findSystemClass):   Similar.
	* prims.cc (_Jv_RunMain):  Clear VMClassLoader::instance rather
	than ClassLoader::system which no longer exists.
	* java/lang/natClassLoader.java (_Jv_FindClass):  Simplify.

2001-08-31  Tom Tromey  <tromey@redhat.com>

	* java/io/BufferedReader.java, java/io/ObjectInput.java,
	java/io/ObjectInputValidation.java, java/io/ObjectOutput.java:
	Re-merged with Classpath.

	Re-merge with Classpath:
	* java/util/Comparator (equals): Added.
	* java/io/PipedWriter.java (write): Changed argument to `int'.

	* java/io/FileDescriptor.java (FileDescriptor()): New
	constructor.
	* java/io/File.java (getAbsoluteFile): Doesn't throw IOException.

	* Makefile.in: Rebuilt.
	* Makefile.am (ordinary_java_source_files): Removed
	EnumerationChain, added DoubleEnumeration.
	(nat_source_files): Added natResourceBundle.cc.
	* java/util/natResourceBundle.cc: New file.
	* gnu/java/util/DoubleEnumeration.java: New file.
	* gnu/gcj/util/EnumerationChain.java: Removed.
	* java/beans/VetoableChangeSupport.java: Merged with Classpath.
	* java/util/ResourceBundle.java: Merged with Classpath.
	* java/util/StringTokenizer.java: Merged with Classpath.
	* java/util/Locale.java: Merged with Classpath.
	* java/util/Random.java: Merged with Classpath.
	* java/util/PropertyResourceBundle.java: Merged with Classpath.
	* java/util/ListResourceBundle.java: Merged with Classpath.
	* java/util/ConcurrentModificationException.java: Re-merged with
	Classpath.
	* java/util/EmptyStackException.java: Likewise.
	* java/util/MissingResourceException.java: Likewise.
	* java/util/NoSuchElementException.java: Likewise.
	* java/util/TooManyListenersException.java: Likewise.

	* java/io/ByteArrayOutputStream.java: Re-merged with Classpath.
	* java/io/OptionalDataException.java: Merged with Classpath.

2001-08-31  Jason Merrill  <jason_merrill@redhat.com>

	* exception.cc (PERSONALITY_FUNCTION): Simplify
	leb128 handling.

2001-08-31  Tom Tromey  <tromey@redhat.com>

	* java/io/ByteArrayInputStream.java: Merged with Classpath.

2001-08-30  Tom Tromey  <tromey@redhat.com>

	* java/io/BufferedReader.java: Re-merged with Classpath.

2001-08-28  Per Bothner  <per@bothner.com>

	* java/math/BigInteger.java (init(int,Random)):  New method.
	Move body of constructor <init>(int,Random)) here.
	Re-write it to avoid constructing unneeded temporaries.
	(<init>(int,int,Random)):  Use new init method to avoid constructing
	extra temporary BigIntegers.

2001-08-27  Tom Tromey  <tromey@redhat.com>

	* java/rmi/activation/Activatable.java,
	java/rmi/activation/ActivateFailedException.java,
	java/rmi/activation/ActivationDesc.java,
	java/rmi/activation/ActivationException.java,
	java/rmi/activation/ActivationGroup.java,
	java/rmi/activation/ActivationGroupDesc.java,
	java/rmi/activation/ActivationGroupID.java,
	java/rmi/activation/ActivationID.java,
	java/rmi/activation/ActivationInstantiator.java,
	java/rmi/activation/ActivationMonitor.java,
	java/rmi/activation/ActivationSystem.java,
	java/rmi/activation/Activator.java,
	java/rmi/activation/UnknownGroupException.java,
	java/rmi/activation/UnknownObjectException.java,
	java/rmi/AccessException.java,
	java/rmi/AlreadyBoundException.java,
	java/rmi/ConnectException.java, java/rmi/ConnectIOException.java,
	java/rmi/MarshalException.java, java/rmi/MarshalledObject.java,
	java/rmi/Naming.java, java/rmi/NoSuchObjectException.java,
	java/rmi/NotBoundException.java,
	java/rmi/RMISecurityException.java,
	java/rmi/RMISecurityManager.java, java/rmi/Remote.java,
	java/rmi/RemoteException.java, java/rmi/ServerError.java,
	java/rmi/ServerException.java,
	java/rmi/ServerRuntimeException.java,
	java/rmi/StubNotFoundException.java,
	java/rmi/UnexpectedException.java,
	java/rmi/UnknownHostException.java,
	java/rmi/UnmarshalException.java, java/rmi/dgc/DGC.java,
	java/rmi/dgc/Lease.java, java/rmi/dgc/VMID.java,
	java/rmi/registry/LocateRegistry.java,
	java/rmi/registry/Registry.java,
	java/rmi/registry/RegistryHandler.java,
	java/rmi/server/ExportException.java,
	java/rmi/server/LoaderHandler.java,
	java/rmi/server/LogStream.java, java/rmi/server/ObjID.java,
	java/rmi/server/Operation.java,
	java/rmi/server/RMIClassLoader.java,
	java/rmi/server/RMIClientSocketFactory.java,
	java/rmi/server/RMIFailureHandler.java,
	java/rmi/server/RMIServerSocketFactory.java,
	java/rmi/server/RMISocketFactory.java,
	java/rmi/server/RemoteCall.java,
	java/rmi/server/RemoteObject.java, java/rmi/server/RemoteRef.java,
	java/rmi/server/RemoteServer.java,
	java/rmi/server/RemoteStub.java,
	java/rmi/server/ServerCloneException.java,
	java/rmi/server/ServerNotActiveException.java,
	java/rmi/server/ServerRef.java, java/rmi/server/Skeleton.java,
	java/rmi/server/SkeletonMismatchException.java,
	java/rmi/server/SkeletonNotFoundException.java,
	java/rmi/server/SocketSecurityException.java,
	java/rmi/server/UID.java,
	java/rmi/server/UnicastRemoteObject.java,
	java/rmi/server/Unreferenced.java, gnu/java/rmi/dgc/DGCImpl.java,
	gnu/java/rmi/dgc/DGCImpl_Skel.java,
	gnu/java/rmi/dgc/DGCImpl_Stub.java,
	gnu/java/rmi/registry/RegistryImpl.java,
	gnu/java/rmi/registry/RegistryImpl_Skel.java,
	gnu/java/rmi/registry/RegistryImpl_Stub.java,
	gnu/java/rmi/rmic/RMIC.java, gnu/java/rmi/rmic/TabbedWriter.java,
	gnu/java/rmi/server/ProtocolConstants.java,
	gnu/java/rmi/server/RMIDefaultSocketFactory.java,
	gnu/java/rmi/server/RMIHashes.java,
	gnu/java/rmi/server/RMIObjectInputStream.java,
	gnu/java/rmi/server/RMIObjectOutputStream.java,
	gnu/java/rmi/server/UnicastConnection.java,
	gnu/java/rmi/server/UnicastConnectionManager.java,
	gnu/java/rmi/server/UnicastRef.java,
	gnu/java/rmi/server/UnicastRemoteCall.java,
	gnu/java/rmi/server/UnicastRemoteStub.java,
	gnu/java/rmi/server/UnicastServer.java,
	gnu/java/rmi/server/UnicastServerRef.java: RMI implementation from
	Kaffe.  Relabelled classes to fit into Classpath tree.
	* Makefile.in: Rebuilt.
	* Makefile.am (rmi_java_source_files): New macro.
	(ordinary_java_source_files): Reference it.
	(bin_PROGRAMS): Added rmic and rmiregistry.
	(rmic_SOURCES): New macro.
	(EXTRA_rmic_SOURCES): Likewise.
	(rmic_LDFLAGS): Likewise.
	(rmic_LINK): Likewise.
	(rmic_LDADD): Likewise.
	(rmic_DEPENDENCIES): Likewise.
	(rmiregistry_SOURCES): New macro.
	(EXTRA_rmiregistry_SOURCES): Likewise.
	(rmiregistry_LDFLAGS): Likewise.
	(rmiregistry_LINK): Likewise.
	(rmiregistry_LDADD): Likewise.
	(rmiregistry_DEPENDENCIES): Likewise.

2001-08-26  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* name-finder.cc (lookup): Ignore a null dli_fname from dladdr.

	* Makefile.am: New friends for java/lang/Thread.h.
	* prims.cc (runFirst): Removed.
	(JvRunMain): Merged into _Jv_RunMain. Now just calls that.
	(_Jv_RunMain): Now takes either a klass or class name parameter.
	Create a gnu.gcj.runtime.FirstThread and attach the native thread
	to that, then run it using _Jv_ThreadRun. Remove special handling of
	jar files, instead pass is_jar parameter through to FirstThread.
	* gcj/javaprims.h: Add prototypes for _Jv_ThreadRun and new variant
	of _Jv_AttachCurrentThread.
	* gnu/gcj/runtime/FirstThread.java (FirstThread): Now extends Thread.
	(run): New method. Take care of looking up main class manifest
	attribute and calling forName if necessary. Then call call_main.
	(call_main): New native method.
	* gnu/gcj/runtime/natFirstThread.cc (call_main): New function, code
	relocated from prims.cc. Look up and call main method.
	* java/lang/Thread.java (run_): Removed.
	* java/lang/natThread.cc (run_): Renamed to...
	(_Jv_ThreadRun): this. JVMPI notification code moved to ...
	(_Jv_NotifyThreadStart): here. New function.
	(countStackFrames, destroy, resume, suspend, stop): Throw
	UnsupportedOperationExceptions rather than JvFail'ing.
	(_Jv_AttachCurrentThread): New variant takes a Thread argument.
	Existing version wraps new variant.


2001-08-23  Tom Tromey  <tromey@redhat.com>

	* java/lang/reflect/Field.java (toString): Use
	Method.appendClassName.
	* java/lang/reflect/Constructor.java (toString): Use
	Method.appendClassName.
	* java/lang/reflect/Method.java: Reindented.
	(appendClassName): New method.
	(toString): Use it.
	* defineclass.cc (handleMethod ): Initialize `throws' field of
	method.
	(read_one_method_attribute): Handle Exceptions attribute.
	* java/lang/reflect/natMethod.cc (ClassClass): Removed.
	(ObjectClass): Removed.
	(getType): Compute `exception_types'.
	* java/lang/Class.h (struct _Jv_Method): Added `throws' field.

2001-08-21  Anthony Green  <green@redhat.com>

	* java/lang/natClassLoader.cc (findClass): Search for
	lib-gnu-pkg-quux.so, not gnu-pkg-quux.so.

2001-08-21  Jeff Sturm  <jsturm@one-point.com>

	* java/util/IdentityHashMap.java (get): Fix off-by-one error.
	(put): Likewise.

2001-08-20  Tom Tromey  <tromey@redhat.com>

	* java/awt/GridBagConstraints.java: Removed comment.

	* jni.cc (nathash, nathash_count, nathash_size): New globals.
	(DELETED_ENTRY): New define.
	(hash): New function.
	(nathash_find_slot): Likewise.
	(natrehash): Likewise.
	(nathash_add): Likewise.
	(_Jv_JNI_RegisterNatives): No longer interpreter-specific.  Use
	nathash_add.
	(nathash_find): New function.
	(_Jv_LookupJNIMethod): Use it.  Synchronize body.
	(call): Synchronize around assignment.

2001-08-17  Jeff Sturm  <jsturm@one-point.com>

	* gnu/gcj/convert/UnicodeToBytes.java (write): Write work buffer
	starting from zero offset.

2001-08-17  Hans-J. Boehm <Hans_Boehm@hp.com>

	* boehm.cc: Include gc_local_alloc.h if appropriate.
	(GC_GENERIC_MALLOC): Don't define.
	(MAYBE_MARK): Redefine for GC 6.0.
	(_Jv_MarkObj): Mark class differently.
	(_Jv_AllocArray): Use GC_generic_malloc.

2001-08-17  Mark J Roberts  <mjr@anarcast.net>

	* java/math/BigInteger.java (randBytes): New method.
	(BigInteger(int,Random)): Use randBytes.

2001-08-17  Tom Tromey  <tromey@redhat.com>

	* gnu/gcj/convert/IOConverter.java: Add `646' alias.

2001-08-17  Hans-J. Boehm <Hans_Boehm@hp.com>

	* BigInteger.java: fix right shifts by nonzero multiples of 32.

2001-08-15  Tom Tromey  <tromey@redhat.com>

	* jni.cc: Include IdentityHashMap.h, not Hashtable.h.
	(local_ref_table, global_ref_table): Now IdentityHashMap.
	(_Jv_JNI_Init): Updated for new types.
	(mark_for_gc): Likewise.
	(unmark_for_gc): Likewise.
	* gcj/javaprims.h: Rebuilt class list.
	* Makefile.in: Rebuilt.
	* Makefile.am (core_java_source_files): Added new file.
	* java/util/IdentityHashMap.java: New file.

	* gnu/gcj/convert/natIconv.cc (read): Handle EINVAL and E2BIG
	correctly.

2001-08-09  Tom Tromey  <tromey@redhat.com>

	* java/awt/image/SampleModel.java (getPixel): Set correct array
	element.  From Chris Meyer.

2001-08-10  Loren J. Rittle  <ljrittle@acm.org>

	* java/lang/natObject.cc (is_mp): Protect use of _SC_NPROCESSORS_ONLN.
	* gnu/gcj/convert/natIconv.cc (done): Use HAVE_ICONV.

2001-08-06  Tom Tromey  <tromey@redhat.com>

	* java/io/InputStreamReader.java (refill): Only call refill on
	BufferedInputStream when appropriate constraints are met.

2001-08-05  Tom Tromey  <tromey@redhat.com>

	* java/io/StringWriter.java: Merged with Classpath.
	* java/io/InputStream.java: Merged with Classpath.
	* java/io/OutputStream.java: Merged with Classpath.
	* java/io/PushbackInputStream.java: Merged with Classpath.
	* java/io/CharArrayReader.java: Merged with Classpath.
	* java/io/CharArrayWriter.java: Merged with Classpath.

2001-08-02  Tom Tromey  <tromey@redhat.com>

	* prims.cc (JNI_OnLoad): Don't declare.
	(_JNI_OnLoad): Don't define.
	(_Jv_CreateJavaVM): Don't handle JNI_OnLoad.

2001-08-02  Tom Tromey  <tromey@redhat.com>

	* java/io/RandomAccessFile.java (seek): Let seek go past end of
	file.
	(skipBytes): Don't fail if seeking past end of file.
	* java/io/FileInputStream.java (skip): Don't fail if seeking past
	end of file.
	* java/io/natFileDescriptorWin32.cc (seek): Handle `eof_trunc'
	argument.
	* java/io/natFileDescriptorEcos.cc (seek): Handle `eof_trunc'
	argument.
	* java/io/natFileDescriptorPosix.cc (seek): Handle `eof_trunc'
	argument.
	* java/io/FileDescriptor.java (seek): Added `eof_trunc' argument.

2001-08-02  Martin Kahlert  <martin.kahlert@infineon.com>

	* jni.cc (JNI_CreateJavaVM): Call _Jv_JNI_Init in order
	to initialize global_ref_table/local_ref_table.

2001-08-02  Tom Tromey  <tromey@redhat.com>

	* configure: Rebuilt.
	* configure.in (THREADSPEC): Don't set THREADLIBS on Cygwin.  From
	David Billinghurst.

2001-08-01  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* include/posix.h (_POSIX_PII_SOCKET): Define.
	* configure.in (HAVE_SOCKLEN_T): Define.
	* java/net/natPlainSocketImpl.cc [!HAVE_SOCKLEN_T]: Move socklen_t
	definition up.
	(_JV_accept): New function, avoids Tru64 UNIX accept macro.
	(java::net::PlainSocketImpl::accept): Use it.
	Fixes PRs libgcj/3694, libgcj/3696.

	* configure.in (HAVE_STRUCT_IPV6_MREQ): New test.
	* acconfig.h (HAVE_STRUCT_IPV6_MREQ): Provide template.
	* configure, include/config.h.in: Regenerate.
	* java/net/natPlainDatagramSocketImpl.cc (union McastReq): Use it.
	(mcastGrp): Likewise.
	(java::net::PlainDatagramSocketImpl::setOption): Guard against
	missing IPV6_MULTICAST_IF.
	Fixes PR libgcj/3694.

2001-08-01  Jeff Sturm  <jsturm@one-point.com>

	* libgcj.spec.in: Pass -fkeep-inline-functions to jc1.

2001-07-30  Christian Iseli  <chris@ludwig-alpha.unil.ch>

	* Makefile.in: Rebuilt.
	* Makefile.am (GCJLINK): Added --tag=GCJ.
	(LIBLINK): Likewise.

2001-07-30  Tom Tromey  <tromey@redhat.com>

	* java/util/Date.java: Re-merged with Classpath.

2001-07-30  Jeff Sturm  <jsturm@one-point.com>

	* java/net/natPlainDatagramSocketImpl.cc: Undefine bind if defined.
	(_Jv_bind): New static function.
	(bind): Use _Jv_bind.
	* java/net/natPlainSocketImpl.cc: Undefine bind, connect if defined.
	(_Jv_bind, _Jv_connect): New static functions.
	(bind): Use _Jv_bind.
	(connect): Use _Jv_connect.

2001-07-30  Tom Tromey  <tromey@redhat.com>
	    Corey Minyard  <minyard@acm.org>

	* gnu/gcj/convert/natIconv.cc (done): New methods.
	* gnu/gcj/convert/Output_iconv.java (done): New method.
	* gnu/gcj/convert/Input_iconv.java (done): New method.
	* gnu/gcj/convert/UnicodeToBytes.java (defaultEncodingClass):
	Removed.
	(getDefaultEncodingClass): Removed.
	(getDefaultEncoder): Use getEncoder.
	(done): New method.
	(defaultEncoding, CACHE_SIZE, encoderCache, currCachePos): New
	static fields.
	* gnu/gcj/convert/BytesToUnicode.java (defaultDecodingClass):
	Removed.
	(defaultEncoding, CACHE_SIZE, decoderCache, currCachePos): New
	static fields.
	(getDefaultDecodingClass): Removed.
	(getDefaultDecoder): Use getDecoder.
	(getDecoder): Look up decoder in cache.
	(done): New method.
	* java/lang/natString.cc (init): Call `done' on converter.
	(getBytes): Likewise.

2001-07-30  Tom Tromey  <tromey@redhat.com>

	* java/lang/Integer.java: Merged with Classpath.

2001-07-30  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/util/GregorianCalendar.java (GregorianCalendar): Call
	setTimeInMillis() to set the default/current time.

2001-07-29  Mark Wielaard <mark@klomp.org>

	* HACKING: add description on updating namespace

2001-07-26  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/util/Calendar.java (set): Never recompute fields here. They
	will already be set if someone set time explicitly, and it can cause
	problems to do so. Don't invalidate AM_PM setting if HOUR is set.
	* java/util/GregorianCalendar.java (computeTime): Don't ignore an
	HOUR setting if AM_PM is set. Don't try to ensure the HOUR value is
	sane.
	* java/text/SimpleDateFormat.java (defaultCentury): New field.
	(readObject): Call set2DigitYearStart if appropriate so that
	defaultCentury is calculated.
	(SimpleDateFormat): Don't bother clearing calendar here. Call
	computeCenturyStart().
	(set2DigitYearStart): Calculate and set defaultCentury.
	(format): Don't clone the calendar. Use "calendar" not "theCalendar"
	everywhere.
	(parse): Likewise. If the pattern is "y" or "yy" and it found exactly
	2 numeric digits, use the 80-20 heuristic to parse the value into a
	default century based on defaultCenturyStart.
	(computeCenturyStart): Rewritten. Call set2DigitYearStart().

2001-07-25  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (libgcj.jar): Correctly fail when bytecode
	compilation fails.

2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* prims.cc (_JNI_OnLoad): New function.
	(JNI_OnLoad): Use it.
	(_Jv_CreateJavaVM): Check for _JNI_OnLoad, not NULL.

2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.am (AM_MAKEFLAGS): Pass RUNTESTFLAGS.
	Makefile.in: Regenerate.

2001-07-24  Tom Tromey  <tromey@redhat.com>

	* java/lang/VMClassLoader.java (getPrimitiveClass): Return correct
	type.

2001-07-23  Tom Tromey  <tromey@redhat.com>

	* gcj/javaprims.h: Rebuilt class list.
	* Makefile.in: Rebuilt.
	* Makefile.am (core_java_source_files): Added VMClassLoader.
	* java/lang/VMClassLoader.java: New file.
	* java/lang/Boolean.java: Merged with Classpath.
	* java/lang/Byte.java: Merged with Classpath.
	* java/lang/Integer.java: Merged with Classpath.
	* java/lang/Long.java: Merged with Classpath.
	* java/lang/Number.java: Merged with Classpath.
	* java/lang/Short.java: Merged with Classpath.

2001-07-22  Jeff Sturm  <jsturm@one-point.com>

	* configure.host: Enable hash synchronization for alpha*-*.
	* include/posix-threads.h (_Jv_ThreadSelf): Added inline
	function for alpha.
	* java/lang/natObject.cc (compare_and_swap, release_set,
	compare_and_swap_release): Added inline functions for alpha.

2001-07-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* java/net/natPlainDatagramSocketImpl.cc (mcastGrp): Use new RFC
	2533 socket options IPV6_JOIN_GROUP, IPV6_LEAVE_GROUP, falling
	back to old RFC 2133 variants if missing.

2001-07-18  Tom Tromey  <tromey@redhat.com>

	* java/io/natFileWin32.cc (_access): Renamed.
	(_stat): Likewise.
	* java/io/natFile.cc (_access): Renamed.
	(_stat): Likewise.
	* java/io/File.java (access, stat): Add leading `_' to name.
	Updated all callers.

2001-07-18  Tom Tromey  <tromey@redhat.com>

	For PR java/2812:
	* libgcj.spec.in (*lib): Added LIBICONV.
	* configure: Rebuilt.
	* configure.in: Call AM_ICONV.  Don't check for iconv function.
	Add parameters to JV_HASH_SYNCHRONIZATION define.
	* acinclude.m4 (AM_ICONV): New macro, from Bruno Haible.

2001-07-17  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/util/LinkedList.java (clone): Clear the copy list with clear(),
	not by setting its size field.

2001-07-13  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* include/i386-signal.h (HANDLE_DIVIDE_OVERFLOW): Removed unused
	local `_ebp.'

2001-07-12  Tom Tromey  <tromey@redhat.com>
	    David Brownell  <david-b@pacbell.net>

	Fix for PR libgcj/3426:
	* gnu/gcj/convert/natIconv.cc: Include CharConversionException.h,
	errno.h.
	(read): Throw exception if character conversion fails.
	* java/io/BufferedInputStream.java (refill): Now package-private.
	* java/io/InputStreamReader.java (ready): Simplified.
	(refill): New method.
	(read): Use it.

2001-07-12  Tom Tromey  <tromey@redhat.com>

	Report from Henner Zeller:
	* java/io/FileOutputStream.java (FileOutputStream): Throw
	FileNotFoundException, not IOException.

2001-07-10  Anthony Green  <green@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am: Add new files.
	* org/w3c/dom/Attr.java, org/w3c/dom/CDATASection.java,
	org/w3c/dom/CharacterData.java, org/w3c/dom/Comment.java,
	org/w3c/dom/DOMException.java, org/w3c/dom/DOMImplementation.java,
	org/w3c/dom/Document.java, org/w3c/dom/DocumentFragment.java,
	org/w3c/dom/DocumentType.java, org/w3c/dom/Element.java,
	org/w3c/dom/Entity.java, org/w3c/dom/EntityReference.java,
	org/w3c/dom/NamedNodeMap.java, org/w3c/dom/Node.java,
	org/w3c/dom/NodeList.java, org/w3c/dom/Notation.java,
	org/w3c/dom/ProcessingInstruction.java, org/w3c/dom/Text.java,
	org/w3c/dom/ranges/DocumentRange.java,
	org/w3c/dom/ranges/Range.java,
	org/w3c/dom/ranges/RangeException.java,
	org/w3c/dom/traversal/DocumentTraversal.java,
	org/w3c/dom/traversal/NodeFilter.java,
	org/w3c/dom/traversal/NodeIterator.java,
	org/w3c/dom/traversal/TreeWalker.java,
	org/xml/sax/ext/DeclHandler.java,
	org/xml/sax/ext/LexicalHandler.java,
	org/xml/sax/helpers/AttributeListImpl.java,
	org/xml/sax/helpers/AttributesImpl.java,
	org/xml/sax/helpers/DefaultHandler.java,
	org/xml/sax/helpers/LocatorImpl.java,
	org/xml/sax/helpers/NamespaceSupport.java,
	org/xml/sax/helpers/ParserAdapter.java,
	org/xml/sax/helpers/ParserFactory.java,
	org/xml/sax/helpers/XMLFilterImpl.java,
	org/xml/sax/helpers/XMLReaderAdapter.java,
	org/xml/sax/helpers/XMLReaderFactory.java,
	org/xml/sax/AttributeList.java, org/xml/sax/Attributes.java,
	org/xml/sax/ContentHandler.java, org/xml/sax/DTDHandler.java,
	org/xml/sax/DocumentHandler.java, org/xml/sax/EntityResolver.java,
	org/xml/sax/ErrorHandler.java, org/xml/sax/HandlerBase.java,
	org/xml/sax/InputSource.java, org/xml/sax/Locator.java,
	org/xml/sax/Parser.java, org/xml/sax/SAXException.java,
	org/xml/sax/SAXNotRecognizedException.java,
	org/xml/sax/SAXNotSupportedException.java,
	org/xml/sax/SAXParseException.java, org/xml/sax/XMLFilter.java,
	org/xml/sax/XMLReader.java:  New files.

2001-07-10  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* Makefile.am: Added `java/lang/ThreadLocal.java'.
	* Makefile.in: Regenerate.
	* java/lang/ThreadLocal.java: Initial import.

2001-07-07  Jeff Sturm  <jsturm@one-point.com>

	* Makefile.am (libgcj.jar): Don't recursively make
	built_java_source_files.  Avoid long command lines.
	Don't change to $(srcdir) to invoke javac.
	(libgcj.la, libgcjx.la); Avoid long command lines.
	($(nat_headers),$(x_nat_headers)): Depend on libgcj.jar.
	* Makefile.in: Rebuilt.

2001-07-06  Andrew Haley  <aph@cambridge.redhat.com>

	* include/i386-signal.h: Don't do anything with unsigned divide
	overflow except throw an exception.

2001-07-05  Tom Tromey  <tromey@redhat.com>

	For PR java/3562:
	* java/lang/Class.h (Class(void)): Now private.  Removed
	implementation.  From dmorsberger@sensysdl.com.

2001-07-02  Tom Tromey  <tromey@redhat.com>

	Fix for PR bootstrap/3281:
	* aclocal.m4, configure: Rebuilt.
	* acinclude.m4 (LIBGCJ_CONFIGURE): Don't set libgcj_flagbasedir.
	Correctly compute libgcj_basedir.
	(mkinstalldirs): Define and subst.

2001-07-01  Jeremy Nimmer  <jwnimmer@alum.mit.edu>

	For PR libgcj/3523:
	* java/io/LineNumberReader.java (reset): Pass correct arguments to
	countLines.

2001-06-27  Tom Tromey  <tromey@redhat.com>

	* gnu/gcj/convert/IOConverter.java: Manually maintained alias now
	lowercase.

2001-06-25  Tom Tromey  <tromey@redhat.com>

	* scripts/encodings.pl: Generate lower-case names.  Updated URL
	for `character-sets' file.
	* gnu/gcj/convert/IOConverter.java (canonicalize): Convert name to
	lower case.
	Rebuilt list of aliases.

2001-06-25  Tom Tromey  <tromey@redhat.com>

	* java/io/natFileDescriptorPosix.cc (open): Change error message
	formatting.  From David Brownell.

2001-06-21  Tom Tromey  <tromey@redhat.com>

	* include/java-interp.h (_Jv_InterpClass): Use JV_MARKOBJ_DECL.
	From Corey Minyard.

2001-06-19  Mark J. Roberts  <mjr@statesmean.com>

	* java/math/BigInteger.java (byteArrayToIntArray): Don't include
	extraneous/malformed sign word.

2001-06-15  Tom Tromey  <tromey@redhat.com>

	* jni.cc (_Jv_JNI_NewLocalRef): Search other frames.

2001-06-15  Tom Tromey  <tromey@redhat.com>

	* java/lang/natRuntime.cc (_Jv_FindSymbolInExecutable): Return
	NULL if no library on the list has the symbol.
	(init): Call add_library on the program itself.
	* prims.cc (JvRunMain): Initialize Runtime before searching for
	`main'.
	(_Jv_RunMain): Likewise.

2001-06-15  Tom Tromey  <tromey@redhat.com>

	* jni.cc (ClassClass): Removed; updated all users.
	(ObjectClass): Likewise.
	(ThrowableClass): Likewise.
	(MethodClass): Likewise.
	(ThreadGroupClass): Likewise.
	(local_ref_table): Renamed from `ref_table'.
	(global_ref_table): New global.
	(_Jv_JNI_Init): Initialize both ref tables.
	(mark_for_gc): Added `ref_table' parameter.
	(unmark_for_gc): Likewise.  Also, fail if we unreferenced too many
	times.
	(_Jv_JNI_NewGlobalRef): Updated for new mark function.
	(_Jv_JNI_DeleteGlobalRef): Likewise.
	(_Jv_JNI_DeleteLocalRef): Likewise.
	(_Jv_JNI_NewLocalRef): Likewise.
	(_Jv_JNI_PopLocalFrame): Likewise.
	(_Jv_JNI_GetStringChars): Likewise.
	(_Jv_JNI_ReleaseStringChars): Likewise.
	(_Jv_JNI_GetPrimitiveArrayElements): Likewise.
	(_Jv_JNI_ReleasePrimitiveArrayElements): Likewise.

2001-06-14  Tom Tromey  <tromey@redhat.com>

	Fix for PR libgcj/3144:
	* java/util/Date.java: Merged with Classpath.

2001-06-12  Tom Tromey  <tromey@redhat.com>

	* aclocal.m4, configure: Rebuilt.
	* acinclude.m4: Find configure.host in srcdir.

2001-06-07  Tom Tromey  <tromey@redhat.com>

	Fix for PR libgcj/3059:
	* java/lang/natSystem.cc (init_properties): Define `java.home'.
	* Makefile.in: Rebuilt.
	* Makefile.am (AM_CXXFLAGS): Define PREFIX.

2001-06-10  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* exception.cc (cstdlib): Replaces stdlib.h.
	(_Jv_Throw): Use std::abort().
	(PERSONALITY_FUNCTION): Likewise.

2001-06-09  Alexandre Oliva  <aoliva@redhat.com>, Stephen L Moshier  <moshier@mediaone.net>

	* acinclude.m4 (AC_EXEEXT): Work around in case it expands to
	nothing, as in autoconf 2.50.
	* aclocal.m4, configure: Rebuilt.

2001-06-08  Tom Tromey  <tromey@redhat.com>

	* configure: Rebuilt.
	* configure.in: Compute new aux dir using `pwd'.

2001-06-07  Tom Tromey  <tromey@redhat.com>

	For PR bootstrap/3075:
	* configure, aclocal.m4, Makefile.am: Rebuilt.
	* configure.in: Pass `--with-auxdir' to subdir configure.  Don't
	call AC_CONFIG_AUX_DIR or AC_CANONICAL_SYSTEM.  Look for unwind.h
	relative to libgcj_basedir.
	* acinclude.m4 ((LIBGCJ_CONFIGURE): Call AC_CONFIG_AUX_DIR and
	AC_CANONICAL_SYSTEM here.
	* Makefile.am (CONFIG_STATUS_DEPENDENCIES): Use srcdir, not
	libgcj_basedir.
	($(extra_headers)): New target.

2001-06-05  Martin Kahlert  <martin.kahlert@infineon.com>
	    Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/lang/natClass.cc (_Jv_IsAssignableFrom): Ensure that ancestors
	table index is within allowed bounds. Ensure that we don't try to access
	class itable at a negative offset. Avoid an ancestor table lookup if
	source is a primitive type class.
	(isInstance): Remove redundant isPrimitive() check.

2001-06-04  Tom Tromey  <tromey@redhat.com>

	* java/security/PublicKey.java: Extend Key.
	* java/security/PrivateKey.java: Extend Key.

2001-06-02  Anthony Green  <green@redhat.com>

	* java/lang/natRuntime.cc (_Jv_FindSymbolInExecutable): Provide an
	alternate when USE_LTDL not defined.

2001-06-02  Anthony Green  <green@redhat.com>

	* configure: Rebuild.
	* configure.in: Remove data_start hack.
	* libgcj.spec.in: Ditto.
	* Makefile.in: Rebuild.
	* Makefile.am: Ditto.
	* libgcjdata.c: Remove.

2001-06-02  Anthony Green  <green@redhat.com>

	* configure: Rebuild.
	* configure.in (LIBFFIINCS, LIBFFI): Introduce.  Add
	--without-libffi option.  Tweak --disable-java-net processing.
	* Makefile.in: Rebuild.
	* Makefile.am (LIBFFIINCS, LIBFFI): Use.
	* include/config.h.in: Rebuild.
	* acconfig.h (USE_LIBFFI): Define.
	* java/lang/reflect/natMethod.c: Use USE_LIBFFI.

2001-06-02  Anthony Green  <green@redhat.com>

	* configure: Rebuilt.
	* configure.in: Test for sigaction on native builds.
	* prims.cc: Check HAVE_SIGACTION.
	* include/config.h.in: Rebuilt.

2001-05-31  Jeff Sturm  <jsturm@one-point.com>

	* natFile.cc (get_entry): Removed functions.
	(performList): Call readdir or readdir_r if HAVE_READDIR_R defined.
	Allocate enough storage for d_name if using readdir_r.

2001-05-31  Tom Tromey  <tromey@redhat.com>

	* java/io/natFileDescriptorPosix.cc (open): Allocate buffer to
	correct size.
	(write): Loop until write completes.  From Corey Minyard.

2001-05-29  Laurent Guerby  <guerby@acm.org>

	* java/awt/geom/Rectangle2D.java: fix doc typo.

2001-05-31  Tom Tromey  <tromey@redhat.com>

	* java/sql/DriverManager.java (getDrivers): Handle case where
	driver's class loader is null.  From Corey Minyard.

2001-05-29  Tom Tromey  <tromey@redhat.com>

	* include/jvm.h (_Jv_ThrowNoMemory): Mark as noreturn.

	* configure: Rebuilt.
	* configure.in: Only add multilib support code if we just rebuilt
	top-level Makefile.

2001-05-29  Andrew Haley  <aph@redhat.com>

	* include/i386-signal.h (MAKE_THROW_FRAME): Don't fix up frame
	pointer: the dwarf unwinder in libgcc will do everything that's
	needed.
	(HANDLE_DIVIDE_OVERFLOW): Tidy.  Don't mess with stack frames any
	more than we absolutely need to.
	* configure.host (EXCEPTIONSPEC): Remove libgcj_sjlj on Alpha.
	* configure.in (SIGNAL_HANDLER): Use include/dwarf2-signal.h on
	Alpha.
	(SIGNAL_HANDLER): Test "$enable_sjlj_exceptions", not
	"$libgcj_sjlj".
	* configure: Rebuilt.
	* include/dwarf2-signal.h (MAKE_THROW_FRAME): Adjust PC
	for Alpha.
	(SIGNAL_HANDLER): Use siginfo style handler.
	(INIT_SEGV): Likewise.
	(INIT_FPE): Likewise.
	* include/ppc-signal.h: Delete whole file.

2001-05-24  Tom Tromey  <tromey@redhat.com>

	* java/lang/natString.cc (init): Throw
	ArrayIndexOutOfBoundsException.
	(getChars): Likewise.
	(getBytes): Likewise.
	(valueOf): Likewise.

	* configure.in: Only allow hash synchronization when POSIX threads
	are enabled.
	* java/lang/natObject.cc (alloc_heavy): Properly find `init' field
	of sync info object.

2001-05-23  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (AM_CXXFLAGS): Remove -fvtable-thunks.

	Revert patch of 2001-05-21:
	* Makefile.am (libgcj_la_DEPENDENCIES): Removed nat_files.
	(libgcj_la_LIBADD): Likewise.
	(libgcjx_la_DEPENDENCIES): Removed x_nat_files.
	(libgcjx_la_LIBADD): Likewise.

	* posix-threads.cc (_Jv_self_cache): Renamed from self_cache.
	* gcj/Makefile.in: Rebuilt.
	* gcj/Makefile.am (gcj_HEADERS): Added libgcj-config.h.
	* gcj/javaprims.h: Include gcj/libgcj-config.h.
	* gcj/libgcj-config.h.in: New file.
	* libgcj.spec.in (*jc1): Added @HASH_SYNC_SPEC@.
	* configure: Rebuilt.
	* configure.in: Enable hash synchronization by default on some
	platforms.
	(HASH_SYNC_SPEC): New subst.
	(AC_CONFIG_HEADER): Added gcj/libgcj-config.h.
	Correctly use `test -z' instead of `test -n' in a couple places.
	(JV_HASH_SYNCHRONIZATION): Use AC_DEFINE; don't add to
	LIBGCJ_CXXFLAGS.
	* configure.host (enable_java_net_default): Initialize.
	(enable_hash_synchronization_default): New variable.

2001-05-23  Hans Boehm <Hans_Boehm@hp.com>

	* boehm.cc (_Jv_MarkObj): Don't mark sync_info when hash
	synchronization in use.
	(_Jv_MarkArray): Likewise.
	(_Jv_AllocBytes): Don't check return result.
	(handle_out_of_memory): New function.
	(_Jv_InitGC): Set GC_oom_fn.
	(trace_one_vtable): New global.
	(_Jv_AllocTraceOne): New function.
	* configure.in: Added --enable-hash-synchronization.
	* defineclass.cc, prims.cc, resolve.cc, java/lang/natString.cc,
	java/net/natInetAddress.cc: Remove _Jv_AllocBytesChecked.
	* nogc.cc (_Jv_AllocObj): Throw out-of-memory.
	(_Jv_AllocArray): Likewise.
	(_Jv_AllocBytes): Likewise.
	(_Jv_AllocPtrFreeObject): New function.
	(_Jv_AllocTraceOne): Likewise.
	* posix-threads.cc (_Jv_ThreadRegister): Handle slow
	pthread_self().
	(self_cache): New global.
	(_Jv_ThreadSelf_out_of_line): New function.
	* prims.cc (_Jv_AllocBytesChecked): Removed.
	(_Jv_ThrowNoMemory): New function.
	(_Jv_AllocObject): Don't check for null return from allocator.
	(_Jv_NewObjectArray): Likewise.
	(_Jv_AllocPtrFreeObject): New function.
	(_Jv_NewPrimArray): Allocate pointer-free object if possible.
	* include/javaprims.h (_Jv_AllocPtrFreeObject): Declare.
	(_Jv_MonitorEnter, _Jv_MonitorExit): Don't return value.
	* include/boehm-gc.h (_Jv_AllocObj): Define.
	(_Jv_AllocPtrFreeObj): Define.
	* include/jvm.h (_Jv_AllocPtrFreeObj): Declare.
	(_Jv_ThrowNoMemory): Declare.
	(_Jv_AllocTraceOne): Declare.
	(_Jv_AllocBytesChecked): Removed.
	* include/posix-threads.h (_Jv_MutexInit, _Jv_MutexLock,
	_Jv_MutexUnlock): Handle LOCK_DEBUG.
	(_Jv_ThreadSelf): Handle case where system pthread_self() is
	slow.
	* java/lang/Class.h (Class): Declare _Jv_AllocPtrFreeObj as
	friend.
	* java/lang/Object.h (sync_info): Conditional upon presence of
	hash synchronization.
	* java/lang/natObject.cc: Much new code to handle thin locks and
	hash synchronization.
	* java/lang/natString.cc (_Jv_AllocString): Allocate pointer-free
	object if possible.

2001-05-23  Joseph S. Myers  <jsm28@cam.ac.uk>

	* gij.cc (version): Update copyright year.

2001-05-22  Anthony Green  <green@redhat.com>

	* configure.in: Tweak canadian cross test, and don't redefine GCJ
	for cross builds.

2001-05-21  Per Bothner  <per@bothner.com>

	Implement invocation interface; don't create new thread for main.
	* java/lang/Thread.java (gen_name):  Make native.
	(<init>(Thread,THreadGroup,Runnable,String)):  New private
	constructor, used by other constructors, and _Jv_AttachCurrentThread.
	* java/lang/natThread.cc (gen_name):  New implementation.
	(_Jv_AttachCurrentThread, _Jv_DetachCurrentThread):  New.
	* prims.cc (main_init):  Removed, replaced by _Jv_CreateJavaVM.
	(_Jv_CreateJavaVM):  New runtime initialization procedure.
	(runFirst):  New proecdure - mostly code from old FirstThread::run.
	(JvRunMain, _Jv_RunMain):  Re-write to use new invocation code.
	* gcj/cni.h (JvCreateJavaVM, JvAttachCurrentThread,
	JvDetachCurrentThread):  New inline wrappers.
	* gcj/javaprims.h (_Jv_CreateJavaVM, _Jv_AttachCurrentThread,
	_Jv_DetachCurrentThread):  New declarations.
	* gnu/gcj/runtime/FirstThread.java:  Gutted.  Now contains only ...
	(getMain): new static method.
	* gnu/gcj/runtime/natFirstThread.cc:  Removed;  run method replaced
	by runFirst in prims.cc.
	(java/lang/Thread.h):  Update for new invocation interface.
	* include/posix-threads.h (_Jv_ThreadRegister,
	_Jv_ThreadUnRegister):  New declarations.
	* posix-threads.cc (_Jv_ThreadRegister, _Jv_ThreadUnRegister):  New.
	(really_start):  Use new _Jv_ThreadRegister.
	* include/no-threads.h (_Jv_ThreadInitData):  No longer inline.
	(_Jv_ThreadRegister, _Jv_ThreadUnRegister):  New empty inlines.
	* no-threads.cc (_Jv_ThreadInitData):  Set _Jv_OnlyThread here.
	Complain of called when _Jv_OnlyThread already set.
	(_Jv_ThreadStart):  Always JvFail.
	* include/win32-threads.h  (_Jv_Thread_t):  New thread_obj field.
	(_Jv_ThreadRegister, _Jv_ThreadUnRegister):  New declarations.
	* win32-threads.cc (struct starter):  Remove objet field -
	we use _Jv_Thread_t's new thread_obj field instead.
	(_Jv_ThreadInitData):  Set _Jv_Thread_t's thread_obj field.
	(_Jv_ThreadRegister, _Jv_ThreadUnRegister):  New.
	(really_start):  Use new _Jv_ThreadRegister.
	* jni.cc (_Jv_JNI_AttachCurrentThread):  Use _Jv_AttachCurrentThread.
	(_Jv_JNI_DetachCurrentThread):  Use _Jv_DetachCurrentThread.
	* gnu/gcj/jni/NativeThread.java, gnu/gcj/jni/natNativeThread.cc:
	Removed - no longer needed with new invocation interface.
	* Makefile.am:  Update for removed/added files.

2001-05-21  Per Bothner  <per@bothner.com>

	* Makefile.am (libgcj_la_DEPENDENCIES):  Add $(nat_files).
	(libgcj_la_LIBADD):  Likewise.
	(libgcjx_la_DEPENDENCIES, libgcjx_la_LIBADD):  Add $(x_nat_files).

2001-05-21  Per Bothner  <per@bothner.com>

	* gcj/javaprims.h (_Jv_FormatInt):  New declaration.
	* java/lang/natString.cc (_JvFormatInt):  New primitive, with logic
	taken from old Integer.toString code.
	(Integer::valueOf):  Use _Jv_FormatInt.
	* java/lang/Integer.java (toString):  Just use call String.valueOf.
	* java/lang/Long.java (toString):  Fix typo in comment.
	* java/lang/String.java (valueOf(int)):  Make native.
	* java/lang/StringBuffer.java (append(int)):  Make native.
	* java/lang/natStringBuffer.cc:  New file, for append(jint).
	* Makefile.am (nat_source_files):  Add java/lang/natStringBuffer.cc.

2001-05-21  Tom Tromey  <tromey@redhat.com>

	* gnu/gcj/runtime/VMClassLoader.java (VMClassLoader): Now public.

2001-05-18  Andrew Haley  <aph@cambridge.redhat.com>

	* include/dwarf2-signal.h: New file.
	* configure.in (SYSDEP_SOURCES): Add dwarf2-signal.h for PPC.
	* configure.host (EXCEPTIONSPEC): Don't use sjlj on PPC.
	* configure: Rebuilt.

2001-05-21  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* configure.in: Update boehm-gc include dir for new GC version.
	* configure: Rebuilt.
	* exception.cc: Only include <gc.h>. Remove TRUE/FALSE hacks and
	extern "C" wrapper.
	* boehm.cc: Update includes for new GC version. MAKE_PROC is now
	GC_MAKE_PROC. mark_proc is now GC_mark_proc.
	* posix-threads.cc: Only include <gc.h>. Don't need to wrap with
	extern "C".

2001-05-18  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* include/posix-threads.h (_Jv_CondInit): `0' used in place of `NULL.'
	(_Jv_MutexInit): Likewise.

2001-05-18  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added Polygon.java.

2001-05-18  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* include/jvm.h: Move "#pragma GCC java_exceptions" to ...
	* gcj/javaprims.h: ... here.
	* gnu/gcj/io/shs.cc: Add "#pragma GCC java_exceptions".

2001-05-17  Martin Kahlert  <martin.kahlert@infineon.com>

	* java/lang/natClass.cc (_Jv_FindIIndex): Fix an off by one error
	with length of ioffset table.
	(_Jv_IsAssignableFrom): Likewise.

2001-05-17  Per Bothner  <per@bothner.com>

	* Makefile.am (ZIP):  The "fastjar" binary is now plain "jar".

2001-05-16  Tom Tromey  <tromey@redhat.com>

	* java/text/SimpleDateFormat.java (parse): Handle non-dst time
	zones.

2001-05-15  Tom Tromey  <tromey@redhat.com>

	* java/util/GregorianCalendar.java (computeTime): Only call
	getTimeZone() once.

2001-05-14  Tom Tromey  <tromey@redhat.com>

	* java/text/SimpleDateFormat.java (parse): Clear DST_OFFSET and
	ZONE_OFFSET just before computing the time.

2001-05-12  Zack Weinberg  <zackw@stanford.edu>

	* Makefile.am (libgcj_la_OBJECTS): Remove libsupc++convenience.la.
	* Makefile.in: Regenerate (by hand).
	* include/jvm.h: Add #pragma GCC java_exceptions at top of file.
	* doc/cni.sgml: Document #pragma GCC java_exceptions.

2001-05-11  Richard Henderson  <rth@redhat.com>

	* configure.in (ia64-*): Don't set SYSDEP_SOURCES.
	* java/lang/natThrowable.cc: Don't use __ia64_backtrace.

2001-05-11  Richard Henderson  <rth@redhat.com>

	* exception.cc: Include unwind-pe.h.  Remove all pointer
	encoding logic.

2001-05-10  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added Polygon.java.
	* java/awt/Polygon.java: New file.

	* java/awt/geom/AffineTransform.java
	(setToRotation(double,double,double)): New method.
	(AffineTransform): Set type to TYPE_GENERAL_TRANSFORM.
	(setToShear): Likewise.

2001-05-10  Tom Tromey  <tromey@redhat.com>

	* java/util/GregorianCalendar.java: Imported from Classpath.
	* gnu/java/locale/LocaleInformation_nl.java: New file from
	Classpath.
	* gnu/java/locale/LocaleInformation_en.java: Likewise.
	* gnu/java/locale/LocaleInformation_de.java: Likewise.
	* gnu/java/locale/LocaleInformation.java: Likewise.
	* natGregorianCalendar.cc: Removed.
	* Makefile.in: Rebuilt.
	* Makefile.am (nat_source_files): Removed
	natGregorianCalendar.cc.

2001-05-10  Tom Tromey  <tromey@redhat.com>

	* java/text/SimpleDateFormat.java (computeCenturyStart): New
	method.
	(defaultCenturyStart): Use it.
	(readObject): Likewise.
	(SimpleDateFormat): Clear the calendar.  Set the grouping on the
	number format.
	(parse): Copy the calendar before modifying it.  Correctly handle
	the time zone.

	* java/util/Calendar.java (clear): Set field value(s) to 0.

2001-05-10  Jeff Sturm  <jsturm@one-point.com>

	* Calendar.java (get): Clear areFieldsSet if requested field
	is not set.
	(set): Unset fields that depend on new value.

2001-05-06  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/lang/Class.h (_Jv_Self): New union type.
	(Class): Manipulate vtable pointer via _Jv_Self union. Thanks to
	Jeff Sturm and Fergus Henderson.

2001-05-06  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* java/lang/ClassLoader.java: Remove dead code fragment.

2001-05-03  Martin Kahlert  <martin.kahlert@infineon.com>

	* jni.cc (_Jv_JNI_GetPrimitiveArrayRegion): Fixed bounds
	checking.
	(_Jv_JNI_SetPrimitiveArrayRegion): Likewise.

2001-04-30  Andrew Haley  <aph@cambridge.redhat.com>

	* libgcj.spec.in (jc1): Add EXCEPTIONSPEC.
	* configure.host (EXCEPTIONSPEC): New.
	* configure.in (EXCEPTIONSPEC): New.
	* configure: Rebuilt.

2001-05-02  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* doc/*.texi: Remove generated documentation.

2001-04-30  Matt Kraai  <kraai@alumni.carnegiemellon.edu>

	* java/io/natFile.cc (performSetReadOnly): Fix #ifdef test.
	(performDelete): Fix #endif placement.

2001-04-27  Zack Weinberg  <zackw@stanford.edu>

	* prims.cc (_Jv_ThisExecutable): Use _Jv_Malloc.
	* posix-threads.cc (_Jv_ThreadInitData): Use _Jv_Malloc.
	(_Jv_ThreadDestroyData): Use _Jv_Free.
	* java/lang/natClassLoader.cc (_Jv_RegisterInitiatingLoader):
	Use _Jv_Malloc.

2001-04-27  Tom Tromey  <tromey@redhat.com>

	* jni.cc (_Jv_JNI_GetPrimitiveArrayRegion): Fixed bounds
	checking.
	(_Jv_JNI_SetPrimitiveArrayRegion): Likewise.

2001-04-27  Martin Kahlert  <martin.kahlert@infineon.com>

	* include/jni.h (struct JNINativeInterface): Fixed types in
	Get/Set*ArrayRegion declarations.
	(class _Jv_JNIEnv): Likewise.

2001-04-26  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in: Obtain THREADS with `gcc -v'.
	* configure: Rebuilt.

2001-04-25  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	Fix PR libgcj/2237:
	* java/io/ObjectStreamClass.java (setClass): Calculate
	serialVersionUID for local class and compare it against the UID
	from the Object Stream. Throw InvalidClassException upon mismatch.
	(setUID): Renamed to...
	(getClassUID): this. Return the calculated class UID rather than
	setting uid field directly.
	(getDefinedSUID): Removed.
	* java/io/ObjectInputStream.java (resolveClass): Use the
	three-argument Class.forName().
	* java/io/InvalidClassException (toString): Don't include classname in
	result if it is null.

2001-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* java/net/natInetAddress.cc (java::net::InetAddress::aton):
	Wrap use of inet_pton in HAVE_INET6.

2001-04-25  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	java.security merge and ClassLoader compliance fixes.

	* java/lang/Class.h (Class): Include ProtectionDomain.h.
	New protectionDomain field.
	(forName): Add initialize parameter. Fixes declaration to comply with
	JDK spec.
	* java/lang/natClass.cc (forName): Correct declaration of the three-arg
	variant. Honour	"initialize" flag.
	(getProtectionDomain0): New method.
	* java/lang/Class.java: Fix forName() declaration.
	(getPackage): New method based on Classpath implementation.
	(getProtectionDomain0): New native method decl.
	(getProtectionDomain): New method.
	* java/lang/ClassLoader.java (getParent): Now final.
	(definedPackages): New field.
	(getPackage): New.
	(defineClass): New variant with protectionDomain argument.
	(definePackage): New.
	(getPackages): New.
	(findSystemClass): Now final.
	(getSystemResourceAsStream): Remove redundant "final" modifier.
	(getSystemResource): Remove redundant "final" modifier.
	(getResources): Now final.
	(protectionDomainPermission): New static field.
	(unknownProtectionDomain): Ditto.
	(defaultProtectionDomain): Ditto.
	(getSystemClassLoader): Now non-native.
	* java/util/ResourceBundle.java (tryGetSomeBundle): Use the correct
	arguments for Class.forName().
	* java/lang/Package.java: New file.
	* gnu/gcj/runtime/VMClassLoader.java (getVMClassLoader): Removed.
	(instance): Static initialize singleton.
	(findClass): Override this, not findSystemClass.
	* java/lang/natClassLoader.cc (defineClass0): Set class's
	protectionDomain field as specified.
	(getSystemClassLoader): Removed.
	(findClass): Renamed from findSystemClass. Call the interpreter via
	URLClassLoader.findClass if loading class via dlopen fails.

	* java/security/*.java: java.security import/merge with Classpath.
	* java/security/acl/*.java: Likewise.
	* java/security/interfaces/*.java: Likewise.
	* java/security/spec/*.java: Likewise.
	* java/net/NetPermission.java: Likewise.
	* java/net/SocketPermission.java: Likewise.
	* gnu/java/security/provider/DefaultPolicy.java: Likewise.

	* Makefile.am: Add new classes.
	* Makefile.in: Rebuilt.
	* gcj/javaprims.h: CNI namespace rebuild.

2001-04-24  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (CPPFLAGS): Added builddir and srcdir to CPPFLAGS
	for libtool tests.  Pre-create gnu/classpath/Configuration.java.
	* configure: Rebuilt.

2001-04-21  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added Line2D.java.
	* java/awt/geom/Line2D.java: Wrote.

	* java/awt/Menu.java (addNotify): Wrote.

	* java/awt/PopupMenu.java (addNotify): Implemented.
	(show): Likewise.

	* java/awt/Scrollbar.java (addNotify): Call super.addNotify.
	* java/awt/List.java (addNotify): Call super.addNotify.
	* java/awt/Label.java (addNotify): Call super.addNotify.
	* java/awt/FileDialog.java (addNotify): Call super.addNotify.
	* java/awt/Dialog.java (addNotify): Call super.addNotify.
	* java/awt/Choice.java (addNotify): Call super.addNotify.
	* java/awt/CheckboxMenuItem.java (addNotify): Call super.addNotify.
	* java/awt/Checkbox.java (addNotify): Call super.addNotify.

	* java/awt/List.java (replaceItem): Notify peer.

	* java/awt/geom/Rectangle2D.java
	(Float.setRect(float,float,float,float)): New method.

	* java/awt/event/ContainerEvent.java (getContainer): Now returns
	Container.

	* java/awt/RenderingHints.java (Key): Class now public.

	* java/awt/Rectangle.java (Rectangle): Now implements
	Serializable.
	(getPathIterator): Removed.

	* java/awt/GraphicsConfiguration.java (GraphicsConfiguration): New
	constructor.

	* java/awt/FileDialog.java: Wrote.

	* java/awt/EventQueue.java (isDispatchThread): Now public.
	(invokeLater): Likewise.

	* java/awt/Component.java (setCursor): Update peer.
	(getFontMetrics): Use peer.

	* java/awt/ComponentOrientation.java (ComponentOrientation): Class
	now final.

2001-04-20  Tom Tromey  <tromey@redhat.com>

	* java/awt/List.java: Wrote.
	* java/awt/Dialog.java: Wrote.

2001-04-20  Warren Levy  <warrenl@redhat.com>

	* java/lang/natSystem.cc (getSystemTimeZone): Adjust for DST.
	* java/text/SimpleDateFormat.java
	(indexInArray): Removed private method.
	(processYear): Removed private method.
	(parseLenient): Removed private method.
	(parseLeadingZeros): Removed private method.
	(parseStrict): Removed private method.
	(expect): Added new private method.
	(parse): Reverted to pre-Classpath merge version with minor fixes.
	* java/util/natGregorianCalendar.cc (computeTime): Handle strict
	calendars.

2001-04-12  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/io/File.java (normalizePath): New private method.
	(File (String)): Use normalizePath().
	(File (String, String)): Likewise.

	* Makefile.am (libffi_files): Removed.
	(libgcj.la): Link libffi as a convenience library instead of
	refering to its object files directly.
	* Makefile.in: Rebuilt.

2001-04-08  Per Bothner  <per@bothner.com>

	* java/lang/natString.cc (_Jv_NewStringUtf8Const):  Register finalizer.
	Recalculate hash, since Utf8Const's hash is only 16 bits.

	* java/lang/natString.cc (_Jv_StringFindSlot, rehash):  Use high-order
	bits of hash to calculate step for chaining.

	* java/lang/natString.cc (intern, _Jv_NewStringUtf8Const):  Rehash
	when 2/3 full, rather than 3/4 full.

2001-04-06  Tom Tromey  <tromey@redhat.com>

	* jni.cc (wrap_value<jobject>, wrap_value<jclass>): Removed.
	(wrap_value<T*>): New specialization.
	(_Jv_JNI_PopLocalFrame): Update env->locals.

2001-04-05  Tom Tromey  <tromey@redhat.com>

	* libtool-version: Updated current.

2001-04-04  Andreas Jaeger  <aj@suse.de>

	* gcj/Makefile.am (AUTOMAKE_OPTIONS): Remove no-installinfo.
	* gcj/Makefile.in: Rebuilt.
	* Makefile.am (AUTOMAKE_OPTIONS): Remove no-installinfo.
	* Makefile.in: Rebuilt.
	* testsuite/Makefile.am (AUTOMAKE_OPTIONS): Remove no-installinfo.
	* testsuite/Makefile.in: Rebuild.
	* include/Makefile.am (AUTOMAKE_OPTIONS): Remove no-installinfo.
	* include/Makefile.in: Rebuild.

2001-04-02 Zack Weinberg <zackw@stanford.edu>

	* testsuite/lib/libjava.exp: Correct typo: 'output from source
	compiled test', not 'execution from source compiled test'.
	Use UNTESTED, not XFAIL, for tests which are not run because
	they depend on a previous test which failed.

2001-04-02  Richard Henderson  <rth@redhat.com>

	* configure.in (GCC_UNWIND_INCLUDE): Assume we're built within
	the same tree as gcc.
	* configure: Rebuilt.

	* exception.cc (_Jv_Throw): Clarify commentary.

2001-04-02  Marcus G. Daniels  <mgd@swarm.org>

	* jni.cc (wrap_value<jclass>): New specialization.

2001-04-02  Tom Tromey  <tromey@redhat.com>

	* java/io/PrintStream.java (out): Removed field.  Fixes PR
	java/2449.
	(write): Call flush, not out.flush, per spec.
	(close): Flush output stream, per spec.  Handle
	InterruptedIOException.
	(checkError): Likewise.
	(flush, print, write): Handle InterruptedIOException per spec.
	(PrintStream): Don't create BufferedOutputStream.
	(work_bytes): New field.
	(writeChars): Use work_bytes.  Don't assume `out' is a
	BufferedOutputStream.

2001-04-02  Torsten Rueger  <torsten.rueger@firsthop.com>

	* java/text/MessageFormat.java (setLocale): Added missing `else'.
	For PR libgcj/2429.

2001-03-30  Tom Tromey  <tromey@redhat.com>

	* jni.cc (add_char): Correctly encode non-ascii characters.
	(add_char): Define even when INTERPRETER not defined.
	(mangled_name): Likewise.
	(_Jv_GetJNIEnvNewFrame): Likewise.
	(_Jv_LookupJNIMethod): Likewise.

2001-03-23  Kevin B Hendricks  <khendricks@ivey.uwo.ca>

	* configure.host: Enable interpreter for PPC.

2001-04-02  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/natSystem.cc (init_properties): Revert yesterday's changes
	to "file.separator", "path.separator", and "java.io.tmpdir" property
	initialization.
	* java/io/File.java: Likewise.
	* java/io/natFile.cc (init_native): Likewise.
	* java/io/natFileWin32.cc (init_native): Likewise.

2001-04-01  Per Bothner  <per@bothner.com>

	* java/lang/natString.cc (intern):  If string's data does not point to
	this String, make a fresh String that does.

	* java/lang/natString.cc (unintern):  Replace by static function.
	* java/lang/String.java (unintern):  Remove method.

2001-04-01  Per Bothner  <per@bothner.com>

	* DeflaterOutputStream.java (deflate):  Loop while def.needsInput.
	(finish):  def.deflate needs to be called in a loop.
	(inbuf, inbufLength):  New private fields.
	(write(int)): Use inbuf.
	(write(byte[],int,int):  Check if pending output in inbuf.
	* ZipOutputStream.java:  Don't use Deflater if stored.
	Use a Checksum object directly, not via a CheckedOutputStream.
	(uncompressed_size):  New field,
	(closeEntry):  Only write data_directory if needed.
	(write):  If STORED, write directly.
	Always update crc, and uncompressed_size.
	(write_entry):  Fix lots of protocol erors.

2001-04-01  Bryce McKinlay  <bryce@albatross.co.nz>

	1.3-Compliant Implementation of java.io.File.
	* java/lang/natSystem.cc (init_properties): Get "file.separator",
	"path.separator", and "java.io.tmpdir" from the File class, instead
	of setting them explicitly.
	* java/io/File.java: Do not canonicalize paths for security manager
	checks. Call init_native() from static initializer. Do not pass path
	argument to native methods. New native method declarations. Some
	security manager checks moved to checkWrite().
	(equals): Check file system case sensitivity and act appropriatly.
	(hashCode): Likewise.
	(isHidden): New method implemented.
	(performList): Changed prototype. Now takes a class argument specifying
	the class of the returned array: Strings or File objects. Also added
	FileFilter argument.
	(listFiles): New variants with "File" return type implemented.
	(createTempFile): Use createNewFile(). Use maxPathLen.
	(setReadOnly): New method implemented.
	(listRoots): Likewise.
	(compareTo): Likewise.
	(setLastModified): Likewise.
	(checkWrite): New method.
	(setPath): Removed.
	* java/io/natFile.cc: Various functions no longer take canonical path
	argument.
	(stat): Handle ISHIDDEN query.
	(isAbsolute): Remove WIN32 cruft.
	(performList): New arguments. Handle returning either File[] or String[]
	arrays. Check with FileFilter or FilenameFilter arguments as
	appropriate. Use an ArrayList, not a Vector, for the temporary list.
	(performSetReadOnly): New method implemented.
	(performListRoots): Likewise.
	(performSetLastModified): Likewise.
	(performCreate): Likewise.
	(init_native): New initialization function.
	* java/io/natFileWin32.cc: Various functions no longer take canonical
	path argument.
	(stat): Add FIXME about ISHIDDEN query.
	(performList): New arguments. Handle returning either File[] or String[]
	arrays. Check with FileFilter or FilenameFilter arguments as
	appropriate. Use an ArrayList, not a Vector, for the temporary list.
	(performSetReadOnly): New. Stubbed.
	(performListRoots): Likewise.
	(performSetLastModified): Likewise.
	(performCreate): Likewise.
	(init_native) New initialization function.
	* configure.in: Check for utime() and chmod().
	* configure: Rebuilt.
	* include/config.h.in: Rebuilt.

	Resolves PR libgcj/1759.

2001-03-28  Richard Henderson  <rth@redhat.com>

	IA-64 ABI Exception Handling:
	* Makefile.am (GCC_UNWIND_INCLUDE): Rename from EH_COMMON_INCLUDE.
	(AM_CXXFLAGS): -fnon-call-exceptions not -fasynchronous-exceptions.
	Remove EXCEPTIONSPEC.
	* configure.host (libgcj_sjlj): Remove.
	* configure.in (EXCEPTIONSPEC): Remove.
	(enable-sjlj-exceptions): Detect if not specified.
	(GCC_UNWIND_INCLUDE): Rename from EH_COMMON_INCLUDE; change
	what header we're looking for.
	* libgcj.spec.in (jc1): Remove EXCEPTIONSPEC.
	* Makefile.in, configure: Regenerate.
	* exception.cc: Don't declare libgcc2 stuff.
	(java_eh_info, _Jv_type_matcher, _Jv_exception_info): Remove.
	(_Jv_eh_alloc, _Jv_eh_free, _Jv_setup_eh_info): Remove.
	(win32_get_restart_frame): Remove.
	(struct java_exception_header): New.
	(__gcj_exception_class): New.
	(get_exception_header_from_ue): New.
	(_Jv_Throw): Rewrite for IA-64 ABI unwind routines.
	(size_of_encoded_value, read_encoded_value): New.
	(read_uleb128, read_sleb128, parse_lsda_header): New.
	(get_ttype_entry, __gcj_personality_sj0): New.
	* gcj/javaprims.h (_Jv_Sjlj_Throw): Remove.

2001-03-27  Joerg Brunsmann  <joerg_brunsmann@yahoo.de>

	* javax/naming/InitialContext.java (init): Fix typo.
	(composeName): Remove unnecessary semicolon.
	(addToEnvironment): Remove unnecessary semicolon.
	(addToEnvironment): Use put() instead of add().

	* javax/naming/InitialContext.java (InitialContext):
	Make public.
	(destroySubcontext): Method doesn't return a result.
	* javax/naming/Context.java: Import java.util.Hashtable.
	* javax/naming/Name.java: Import java.util.Enumeration.

2001-03-27  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am (libffi_files): Use 'find' to pick up libffi libtool
	objects	in subdirectories.
	* Makefile.in: Rebuilt.

2001-03-25  Richard Henderson  <rth@redhat.com>

	* exception.cc (java_eh_info): Make value type jthrowable.
	(_Jv_type_matcher): Remove now unneeded cast.
	(_Jv_Throw): Make argument type jthrowable.  Munge name
	for SJLJ_EXCEPTIONS here ...
	* gcj/cni.h: ... not here.
	(JvThrow): Remove.
	* gcj/javaprims.h (_Jv_Throw, _Jv_Sjlj_Throw): Update declarations.

	* defineclass.cc, interpret.cc, jni.cc, posix-threads.cc,
	prims.cc, resolve.cc, gnu/gcj/runtime/natFirstThread.cc,
	gnu/gcj/xlib/natDrawable.cc, gnu/gcj/xlib/natFont.cc,
	gnu/gcj/xlib/natWMSizeHints.cc, gnu/gcj/xlib/natWindowAttributes.cc,
	gnu/gcj/xlib/natXImage.cc, java/io/natFile.cc,
	java/io/natFileDescriptorEcos.cc, java/io/natFileDescriptorPosix.cc,
	java/io/natFileDescriptorWin32.cc, java/io/natFileWin32.cc,
	java/lang/natClass.cc, java/lang/natClassLoader.cc,
	java/lang/natDouble.cc, java/lang/natObject.cc,
	java/lang/natPosixProcess.cc, java/lang/natRuntime.cc,
	java/lang/natString.cc, java/lang/natSystem.cc,
	java/lang/natThread.cc, java/lang/reflect/natArray.cc,
	java/lang/reflect/natConstructor.cc, java/lang/reflect/natField.cc,
	java/lang/reflect/natMethod.cc, java/util/zip/natDeflater.cc,
	java/util/zip/natInflater.cc:
	Use throw, not JvThrow or _Jv_Throw.

2001-03-24  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/HashMap.java (HashMap): If 0 is given for initialCapacity
	paramater, bump it to 1.
	* java/util/Hashtable.java (Hashtable): Likewise.

2001-03-23  Per Bothner  <per@bothner.com>

	* java/lang/natDouble.cc (parseDouble):  Cannot use errno to
	check for errors, since we don't want to throw exception on
	overflow/underflow.  Instead, trim whitespace, and then check that
	_strtod_r uses up all the rest of the string.

	* java/lang/natClass.cc (_Jv_IsAssignableFrom):  Checking the
	ancestors array is invalid for interfaces, so do that *after*
	check that the target type is not an interface.

2000-03-23  Jeff Sturm  <jsturm@one-point.com>

	* prims.cc (_Jv_FindClassFromSignature): Check return of
	recursive call.  Do not abort on invalid signature; return NULL
	instead.

2001-03-22  Tom Tromey  <tromey@redhat.com>

	* jni.cc (_Jv_JNI_GetAnyFieldID): Handle unresolved fields.
	* java/lang/reflect/natField.cc (getType): Use _Jv_ResolveField
	unconditionally.
	* include/jvm.h (_Jv_ResolveField): Declare.
	* include/java-interp.h (_Jv_ResolveField): Don't declare.
	* resolve.cc (_Jv_ResolveField): No longer conditional on
	INTERPRETER.

2001-03-23  Bryce McKinlay  <bryce@albatross.co.nz>

	Fix for PR libgcj/1736. Thanks to Robert Boehne and Alexandre Oliva
	for libtool hacking.
	* Makefile.am (libgcj.la): New explicit rule. Echo the list of objects
	to a temporary file, then invoke libtool with the -objectlist
	paramater.
	(libgcjx.la): Likewise.
	* Makefile.in: Rebuilt.

2001-03-22  Joerg Brunsmann <joerg_brunsmann@yahoo.de>

	* javax/naming/Context.java (SECURITY_CREDENTIALS): Fix typo.

2001-03-22  Marcus G. Daniels  <mgd@swarm.org>

	* jni.cc (add_char): Handle `.' like `/'.

2001-03-22  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/reflect/Method.java (getExceptionTypes): Call getType() to
	initialize if exception_types is null.
	* java/lang/reflect/Constructor.java: Likewise.
	* java/lang/reflect/natConstructor.cc (getType): Initialize
	exception_types to an empty Object array.

2001-03-21  Tom Tromey  <tromey@redhat.com>

	* configure: Rebuilt.
	* configure.in (GCJFLAGS): Subst.
	* Makefile.in: Rebuilt.
	* Makefile.am (jv_convert_LDFLAGS): Added -shared-libgcc.
	(gij_LDFLAGS): Likewise.
	(JC1FLAGS): Added GCJFLAGS and removed -g.

	* java/io/natFileDescriptorPosix.cc (open): Add O_CREAT in
	read/write case.  Fixes PR libgcj/2338.

2001-03-20  Warren Levy  <warrenl@redhat.com>

	* java/util/TimeZone.java: Sync up with Classpath.  Includes new
	and corrected SimpleTimeZone's for the timezones hash table.

2001-03-19  Per Bothner  <per@bothner.com>

	* java/net/URLStreamHandler.java (parseURL):  Fix bug which would
	"canonicalize" "../../xxx" to "/xxx".

2001-03-19  Mark Wielaard <mark@klomp.org>

	* java/util/ArrayList.java: Remove RCS keywords from comments
	* java/util/BasicMapEntry.java: idem
	* java/util/Dictionary.java: idem
	* java/util/HashSet.java: idem

	* java/util/EventObject.java: reindent
	* java/util/Properties.java: idem
	* java/util/SortedMap.java: idem

	* java/util/Enumeration.java: Merge with Classpath
	* java/util/EventListener.java: idem
	* java/util/Observable.java: idem
	* java/util/Observer.java: idem
	* java/util/Stack.java: idem

2001-03-17  Tom Tromey  <tromey@redhat.com>

	* java/lang/natString.cc (rehash): Don't bother with memset;
	_Jv_AllocBytes returns zero'd memory.  Use _Jv_AllocBytesChecked.
	Use UNMASK_PTR.
	(UNMASK_PTR): New macro.
	(intern): Unmask pointer before returning it.  Register finalizer
	for the string.
	(unintern): Handle case where
	(MASK_PTR): New macro.
	(PTR_MAKSED): Likewise.
	(_Jv_NewStringUtf8Const): Use UNMASK_PTR.

2001-03-01  Andrew Haley  <aph@redhat.com>

	* java/lang/natThrowable.cc (printRawStackTrace): Copy the
	stackTrace buffer to a correctly aligned pointer array.

2001-03-12  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/Runtime.java (_exit): Declare new package-private native.
	* java/lang/natRuntime.cc (_exit): Implemented. Same as exit() but
	without a security manager check.
	(exit): Call _exit after security check.
	* prims.cc (JvRunMain): Call Runtime._exit to shutdown the runtime
	"naturally".
	* java/lang/System.java (setSecurityManager): If a security manager
	is already in place, call checkPermission.
	* java/lang/ThreadGroup.java (uncaughtException): If printStackTrace()
	throws an exception, try to deal with it gracefully.
	* java/lang/ExceptionInInitializerError.java (printStackTrace):
	Only try to print the subordinate stack trace if "exception" is set.
	Print our class name first.

2001-03-08  Tom Tromey  <tromey@redhat.com>

	* java/io/ObjectStreamClass.java (setUID): Don't write interface
	info for array classes.
	Fixes PR libgcj/1971.

2001-03-06  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/TreeSet.java (writeObject): Use a for-loop instead of
	Iterator.hasNext().

2001-03-05  Jochen Hoenicke  <jochen@gnu.org>

	* java/util/TreeMap.java (writeObject): Use defaultWriteObject()
	instead of the new JDK1.2 API.  This is simpler and makes
	back-porting the classes to JDK1.1 trivial.
	(readObject): likewise.

2001-03-01  Per Bothner  <per@bothner.com>

	Changes merged from Kawa's gnu.math.
	* gnu/gcj/math/MPN.java (rshift0): New method handles zero shift count.
	(rshift(int[],int[],int,int):  Removed - not needed.
	(gcd):  Use rshift0 rather than rshift.
	* java/math/BigInteger.java (setShiftRight):  Likewise.
	(divide):  Simplify by using rshift0.
	(divide):  Zero-extend results if high-order bit set.

2001-02-27  Bryce McKinlay  <bryce@albatross.co.nz>

	* libgcj.spec.in: Insert %(libgcc) before %(liborig) to fix static
	linking.

2001-02-23  Per Bothner  <per@bothner.com>

	Change to sometimes include class name in ClassFormatError message.
	* defineclass.cc (_Jv_VerifyFieldSignature, _Jv_VerifyMethodSignature,
	_Jv_VerifyIdentifier, _Jv_VerifyClassName (two overlods)):  Return
	boolean instead of throwing ClassFormatError on failure.
	(throw_class_format_error):  Change static function to method.
	(_Jv_ClassReader):  New inline methods verify_identifier,
	two overloads of verify_classname, verify_field_signature, and
	verify_method_signature
	* include/java-interp.h:  Update declarations to return bool.
	* java/lang/natClassLoader.cc (defineClass0):  Explicitly throw
	ClassFormatError since _Jv_VerifyClassName now returns bool.

2001-02-23  Per Bothner  <per@bothner.com>

	* java/lang/Throwable.java (CPlusPlusDemangler):  Pass -s java to
	c++filt to select java-style output.

2001-02-22  Bryce McKinlay  <bryce@albatross.co.nz>

	Fix for PR java/2040:
	* java/util/HashMap.java (HashMap): Don't throw exception for
	loadFactor > 1. Add exception messages.
	* java/util/Hashtable.java (Hashtable): Likewise.

2001-02-21  Bryce McKinlay  <bryce@albatross.co.nz>

	Disable libgcjx by default.
	* configure.in: Add support for --enable-java-awt configure option.
	Use --enable-java-awt=xlib to build the xlib peers (libgcjx).
	* Makefile.am: Make libgcjx conditional on XLIB_AWT, instead of NO_X.
	* Makefile.in: Rebuilt.
	* configure: Rebuilt.

2001-02-20  Tom Tromey  <tromey@redhat.com>

	* java/io/PipedWriter.java (flush): Throw exception if stream
	closed.
	* java/io/OutputStreamWriter.java (write): Throw exception if
	stream closed.
	(writeChars): Don't throw exception if stream closed.
	* java/io/CharArrayWriter.java (closed): New field.
	(close): Set it.
	(flush): Throw exception if stream closed.
	(reset): Synchronize on correct lock.  Allow stream to be
	reopened.
	(toCharArray, toString, writeTo): Synchronize.
	(write): Throwe exception if stream closed.
	* java/io/BufferedWriter.java (close): Clear `buffer'.
	(flush): Throw IOException if stream is closed.
	(write): Likewise.

2001-02-16  Tom Tromey  <tromey@cygnus.com>

	* java/lang/ThreadGroup.java (activeCount): Only include threads
	which are alive.
	(enumerate): Likewise.

2001-02-19  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/Integer.java (getInteger): Return default argument if
	property is not set. Don't call decode with null argument.
	* java/lang/Long.java (getLong): Likewise.

	* java/io/CharArrayReader.java (CharArrayReader): Throw
	IllegalArgumentException if constructor arguments are illegal.
	(ready): Return false if no more characters can be read.
	* java/io/ByteArrayInputStream.java (ByteArrayInputStream): Likewise.

2001-02-17  Mark Wielaard <mark@klomp.org>

	* java/util/TimerTask.java: New version from Classpath.

2001-02-17  Mark Wielaard <mark@klomp.org>

	Remerge with Classpath
	(changes by Bryce McKinlay  <bryce@albatross.co.nz>)
	* java/io/DataInputStream.java (readBoolean): Use convertToBoolean().
	(readByte): Use convertToByte().
	(readChar): Use convertToChar().
	(readInt): Use convertToInt().
	(readLong): Use convertToLong().
	(readShort): Use convertToShort().
	(readUnsignedByte): Use convertToUnsignedByte().
	(readUnsignedShort): Use convertToUnsignedShort().
	(readUTF): Use convertToUTF().

	(convertToBoolean): Resurrected.
	(convertToByte): Ditto.
	(convertToChar): Ditto.
	(convertToInt): Ditto.
	(convertToLong): Ditto.
	(convertToShort): Ditto.
	(convertToUnsignedByte): Ditto.
	(convertToUnsignedShort): Ditto.
	(convertToUTF): Ditto.

2001-02-17  Mark Wielaard <mark@klomp.org>

	* HACKING: new file

2001-02-17  Mark Wielaard <mark@klomp.org>

	* java/io/DataInputStream.java: update copyright notice
	* java/io/PrintWriter.java: idem
	* java/io/Reader.java: idem
	* java/io/StreamTokenizer.java: idem
	* java/io/StringReader.java: idem
	* java/lang/reflect/ReflectPermission.java: idem

2001-02-16  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/TreeSet.java (clone): Made subclass safe, use
	super.clone(), not new.
	* java/util/TreeMap.java (clone): Likewise.

	* java/util/TreeMap.java (nil): Made non-final.
	(clone): Create new nil node for copy.

	* java/util/HashSet.java (clone): Made subclass safe, use
	super.clone(), not new.

2001-02-14  Andrew Haley  <aph@redhat.com>

	* include/i386-signal.h (INIT_SEGV): Use a direct system call to
	set the handler.

2001-02-15  Anthony Green  <green@redhat.com>

	* defineclass.cc: Don't include alloca.h.
	(prepare_pool_entry): Convert alloca to __builtin_alloca.
	* interpret.cc (run_normal): Ditto.
	(continue1): Ditto.
	* java/lang/natDouble.cc (parseDouble): Ditto.

2001-02-15  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/TreeSet.java (clone): Call TreeMap.clone(), not
	Object.clone().
	* java/util/Collections.java (ReverseComparator): New static class.
	(reverseOrder): Return static instance of ReverseComparator.

	* gnu/awt/j2d/DirectRasterGraphics.java (clone): Hoist to public.
	* gnu/awt/j2d/IntegerGraphicsState.java (setClip): Call
	Rectangle.clone(), not Object.clone().

	* java/util/HashSet.java (clone): Remove try/catch.

	* java/util/AbstractSequentialList.java: Synchronize with Classpath.
	* java/util/Collection.java: Likewise.
	* java/util/Comparator.java: Likewise.
	* java/util/Dictionary.java: Likewise.
	* java/util/Iterator.java: Likewise.
	* java/util/ListIterator.java: Likewise.
	* java/util/Map.java: Likewise.
	* java/util/Set.java: Likewise.

2001-02-14  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/TreeMap.java: New file.
	* java/util/TreeSet.java: New file.
	* Makefile.am: Add TreeMap and TreeSet. Enable WeakHashMap.
	* Makefile.in: Rebuilt.
	* java/util/HashSet.java (clone): Use constructor instead of calling
	clone on itself.
	* java/util/SortedSet.java: Sync with classpath.
	* java/util/HashMap.java (hash): Use if statement instead of ternary,
	for clarity.

	* java/lang/natClass.cc (getSignature): Don't try to dereference
	param_types if it is null. Instead, take this to mean "no parameters".
	* java/lang/TreeMap.java (TreeIterator.next): Throw
	NoSuchElementException in preference to ConcurrentModificationException.
	(TreeIterator.remove): Throw IllegalStateException in preference to
	ConcurrentModificationException.
	(SubMap.firstKey): Do a better check for empty SubMap, and if it is,
	throw a NoSuchElementException.
	(SubMap.lastKey): Likewise.

2001-02-13  Tom Tromey  <tromey@redhat.com>

	* java/io/PipedReader.java (ready): Throw IOException if pipe
	closed.
	* java/io/FilterReader.java (close): Don't clear `in'.
	* java/io/CharArrayReader.java (mark): Throw IOException if stream
	closed.
	(read, ready, reset, skip): Added exception message.
	* java/io/BufferedReader.java (mark, reset, ready, read, skip):
	Perform checkStatus check inside synchronized block.

2001-02-13  Tom Tromey  <tromey@redhat.com>

	* gnu/awt/j2d/AbstractGraphicsState.java (clone): Made public.

2001-02-13  Tom Tromey  <tromey@redhat.com>

	Fix for PR libgcj/1351:
	* posix.cc (_Jv_select): Throw InterruptedIOException if thread is
	interrupted.
	Include Thread.h and InterruptedIOException.h.

2001-02-13  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/io/BlockDataException.java: Removed.
	* java/io/ObjectInputStream.java (readObject): Throw
	StreamCorruptedException, not BlockDataException.
	* Makefile.am: Remove BlockDataException.
	* Makefile.in: Rebuild.

2001-02-12  Jeff Sturm  <jeff.sturm@commerceone.com>
	    Tom Tromey  <tromey@redhat.com>

	* interpret.cc (continue1): [insn_invokevirtual] Do an explicit
	null pointer check.

2001-02-09  Tom Tromey  <tromey@redhat.com>

	* java/util/Timer.java: New version from Classpath.

2001-02-09  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/Double.java (doubleToRawLongBits): Now native.
	* java/lang/Float.java (floatToRawIntBits): Likewise.
	* java/lang/natDouble.cc (doubleToRawLongBits): New method.
	* java/lang/natFloat.cc (floatToRawIntBits): Likewise.

2001-02-09  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* java/io/File.java (java.net): Imported.
	(getAbsoluteFile): Added.
	(getCanonicalPath): Likewise.
	(toURL): Likewise.

2001-02-08  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/Byte.java: Remove redundant instanceof and null checks.
	* java/lang/Integer.java: Likewise.
	* java/lang/Long.java: Likewise.
	* java/lang/Short.java: Likewise.
	* java/lang/Double.java: Likewise.
	(doubleToRawLongBits): New method.
	* java/lang/Float.java: As above.
	(floatToRawIntBits): New method.

	* java/io/OutputStreamWriter.java: (flush, writeChars): Throw
	IOException if stream closed.

2001-02-08  Tom Tromey  <tromey@redhat.com>

	* java/lang/Float.java (parseFloat): New method.

2001-02-08  Tom Tromey  <tromey@redhat.com>

	From paul@dawa.demon.co.uk.  Fix for PR libgcj/1913:
	* java/io/InputStreamReader.java (ready, read): Throw IOException
	if stream has been closed.

2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>

	* README, gij.cc, java/lang/natClass.cc, java/lang/natSystem.cc:
	Change sources.redhat.com and sourceware.cygnus.com references to
	gcc.gnu.org.

2001-02-07  Tom Tromey  <tromey@redhat.com>

	Fix for PR libgcj/1906:
	* java/text/MessageFormat.java (setLocale): Use named class
	literals.
	(forName): Removed.
	(format(Object,StringBuffer,FieldPosition)): Special case if
	argument is an Object[].

2001-02-07  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/Arrays.java: Removed "cmp" methods.
	(qsort): Don't use "cmp".
	(med3): Likewise.

2001-02-07  Mark Benvenuto  <mcb54@columbia.edu>

	* java/util/Arrays.java (qsort): Handle N value of 7 with insertion
	sort. Fix for PR java/1895.

2001-02-03  Jeff Sturm  <jeff.sturm@commerceone.com>

	* configure.host: Use sjlj-exceptions for Alpha.

2001-02-03  Bryce McKinlay  <bryce@albatross.co.nz>

	* libgcj.spec.in: Don't force static libgcc into the executable.
	* configure.in (FORCELIBGCCSPEC): Removed.
	* configure: Rebuilt.

2001-01-31  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (LTCXXCOMPILE): New macro.

2001-01-26  Andrew Haley  <aph@redhat.com>

	(INIT_FPE): Use a direct system call to set the handler.

2001-01-27  Richard Henderson  <rth@redhat.com>

	* configure.host (alpha*-*) [libgcj_flags]: Add -mieee.

2001-01-27  Tom Tromey  <tromey@redhat.com>

	* jni.cc (_Jv_JNIFunctions): Added comment for each entry in
	native interface structure.

2001-01-27  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/io/ObjectInputStream.java (read): AND byte with 0xff to make
	result unsigned.
	(read (byte[], int, int)): Only call readNextBlock() if the block
	buffer would actually be overrun. Increment blockDataPosition.
	(callReadMethod): Propagate exceptions from invocation target.
	* java/io/ObjectOutputStream.java (callWriteMethod): Propagate
	exceptions from invocation target.

2001-01-26  Tom Tromey  <tromey@redhat.com>

	* jni.cc (_Jv_JNI_GetAnyMethodID): Rewrite signature from external
	to internal representation.
	(_Jv_JNI_GetAnyFieldID): Likewise.  Also, only use
	_Jv_FindClassFromSignature.

2001-01-26  Warren Levy  <warrenl@redhat.com>

	* java/lang/natSystem.cc (getSystemTimeZone): Only use tm_gmtoff
	and timezone if they are available on the system.

2001-01-24  Tom Tromey  <tromey@redhat.com>

	* java/lang/sf_fabs.c: Use uint32_t, not __uint32_t.

2001-01-24  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (c_source_files): Added sf_fabs.c.
	* java/lang/sf_fabs.c: New file.

2001-01-19  Warren Levy  <warrenl@redhat.com>

	* java/text/SimpleDateFormat.java (format): Compute hour for cases
	HOUR_OF_DAY1_FIELD (1-24), HOUR1_FIELD (1-12), and HOUR0_FIELD (0-11)
	correctly.  Adjust properly from 0-23 clock hour.

2001-01-17  Mark Wielaard  <mark@klomp.org>

	* java/bean/Beans.java (instantiate): enable Applet code from Classpath

2001-01-17  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/Class.h (isInterface): Move implementation from
	natClass.cc. Declare inline.
	(Class): Add default constructor.
	* java/lang/Object.h: Update comments.
	* java/lang/natClass.cc (initializeClass): Use _Jv_InitClass to
	initialize superclass, saving a call if super is already initialized.

2001-01-16  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* prims.cc (init_prim_class): Deleted.
	(DECLARE_PRIM_TYPE): Rewritten.
	* java/lang/Class.h (stdio.h): Include removed.
	(stddef.h): Included.
	(java/lang/reflect/Modifier.h): Likewise.
	(Class): Contructor now takes arguments, initializes fields.
	(initializePrim): Prototype deleted.
	* java/lang/natClass.cc (initializePrim): Deleted.

2001-01-16  Warren Levy  <warrenl@redhat.com>

	* java/math/BigInteger.java: Update Copyright year.

2001-01-16  Hans Boehm  <hans_boehm@hp.com>

	* java/math/BigInteger.java (setShiftRight): Only do negative shift
	if count != 0.

2001-01-14  Mark Wielaard  <mark@klomp.org>
	* java/net/URLDecoder.java: Thanks Edgar Villanueva (edgarvil@home.com)
	(decode): Merge comments with Classpath, don't throw Exception

2001-01-12  Tom Tromey  <tromey@redhat.com>

	* gnu/awt/gtk/natGtkComponentPeer.cc (getLocationOnScreen):
	Wrote.
	(setCursor): Wrote.
	Include Cursor.h.
	* gnu/awt/gtk/natGtkLabelPeer.cc: New file.
	* gnu/awt/gtk/natGtkButtonPeer.cc: New file.
	* gnu/awt/gtk/gtkcommon.h (class _Jv_GdkThreadLock): New class.
	* gnu/awt/gtk/GtkLabelPeer.java: New file.
	* gnu/awt/gtk/GtkButtonPeer.java: New file.

	* java/lang/natSystem.cc: Include locale.h if it exists.
	* configure: Rebuilt.
	* configure.in: Check for locale.h.

2001-01-11  Tom Tromey  <tromey@redhat.com>

	* java/awt/Cursor.java (Cursor(String)): Set type to custom.
	(Cursor(int), getPredefinedCursor): Throw exception if argument
	invalid.

2001-01-03  Tom Tromey  <tromey@redhat.com>

	* gnu/awt/gtk/natGtkComponentPeer.cc (setCursor): Wrote.
	(getLocationOnScreen): Wrote.

2001-01-11  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am: Re-enable dependencies.
	* Makefile.in: Rebuilt.

2001-01-10  Warren Levy  <warrenl@redhat.com>

	* java/math/BigDecimal.java (divide): Fixed comment.

2001-01-10  Warren Levy  <warrenl@redhat.com>

	Fix for PR libgcj/1596:
	* java/math/BigDecimal.java (divide): Check newScale for validity.
	Ensure that BigInteger.pow() is called with a non-negative value.
	(setScale (int)): New public method.
	(setScale (int,int)): New public method.

2001-01-09  Oskar Liljeblad <osk@hem.passagen.se>

	Fix for PR libgcj/1338:
	* java/io/StreamTokenizer.java (nextToken): Handle // and /* before
	commentChar.  Fixed typos in comments.

2001-01-08  Warren Levy  <warrenl@redhat.com>

	Fix for PR libgcj/1411:
	* Makefile.am: Removed java/util/natTimeZone.cc.
	* Makefile.in: Rebuilt.
	* gnu/gcj/text/LocaleData_en_US.java (zoneStringsDefault): Added
	missing localized timezone names.
	* java/lang/System.java (getDefaultTimeZoneId): New private method.
	* java/lang/natSystem.cc (getSystemTimeZone): New private method.
	(init_properties): Set user.timezone property.
	* java/text/DateFormatSymbols.java (zoneStringsDefault): Added
	default timezone names; removed non-standard ones.  Use standard
	ID names per JCL.
	* java/util/Date.java (toGMTString): Removed zoneGMT variable.
	(UTC): Ditto.
	* java/util/TimeZone.java: Add standard ID names per JCL; removed
	non-standard ones.
	(getDefaultTimeZoneId): Removed.
	(zoneGMT): Removed.
	* java/util/natTimeZone.cc: Removed.

2001-01-08  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/Class.h (_Jv_InitClass): Use __builtin_expect.
	(_Jv_NewArrayClass): Renamed from _Jv_FindArrayClass.
	(_Jv_GetArrayClass): New inline function.
	(arrayclass): New field.
	* prims.cc (_Jv_NewObjectArray): Use _Jv_GetArrayClass. Don't use
	_Jv_GetArrayElementFromElementType.
	(_Jv_NewPrimArray): Ditto.
	(_Jv_PrimClass constructor): Initialize "depth", "ancestors", and
	"idt" for completeness. Initialze "arrayclass" using _Jv_NewArrayClass.
	Set Modifier::ABSTRACT.
	* java/lang/natClassLoader.cc (_Jv_NewClass): Initialize "arrayclass".
	(_Jv_NewArrayClass): Renamed from _Jv_FindArrayClass. Now void.
	Now synchronized. Array classes are now referenced from
	elementClass->arrayclass. Don't use _Jv_FindClassInCache.
	Set array classes' accessibility flags correctly. Optimize so that
	all array classes share the same IDT.
	* java/lang/reflect/natArray.cc (newInstance): Use _Jv_GetArrayClass.
	* java/lang/reflect/natMethod.cc (_Jv_GetTypesFromSignature): Ditto.
	* java/lang/natClass.cc (_getFields): Increment offset. Prevent fields
	in superclasses from overwriting classes own fields.
	(_Jv_IsAssignableFrom): Check for NULL source idt instead of calling
	Modifier::isAbstract().
	(null_idt): New static field.
	(_Jv_PrepareConstantTimeTables): Optimize case where class implements
	no interfaces.
	(_Jv_IndexOf): Made inline.
	* boehm.cc (_Jv_MarkObj): Mark "arrayclass" field.

2001-01-08  Tom Tromey  <tromey@redhat.com>

	Fix for PR java/1586:
	* Makefile.in: Rebuilt.
	* Makefile.am (AUTOMAKE_OPTIONS): Added no-dependencies.

2001-01-08  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am: Use the new "-M -MF" option for generating dependencies
	from the c++ compiler.
	* Makefile.in: Rebuilt.

2001-01-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	All files with updated copyright.
	* prims.cc (class _Jv_PrimClass): Removed.
	(init_prim_class): New function.
	(DECLARE_PRIM_TYPE): Rewritten. `java::lang::Class' replaces
	`_Jv_PrimClass' in primitive type declarations. Assign to the
	value returned by `init_prim_class.'
	* gcj/array.h: `java::lang::Class' replaces `_Jv_PrimClass' in
	primitive type declarations.
	(JvPrimClass): Cast to `jclass' removed.
	* java/lang/Class.h (Class): New constructor.
	(Class): New copy constructor.
	(initializePrim): New prototype.
	(_Jv_PrimClass): Field removed.
	* java/lang/Object.h (struct _JvObjectPrefix): New virtuals
	nacd_1 and nacd_2 (for compatibility with the new C++ ABI.)
	(class java::lang::Object): `finalize' moved up front.
	* java/lang/natClass.cc
	(isAssignableFrom): Turned outline.
	(isInstance): Likewise.
	(isInterface): Likewise, fixed indentation.
	(initializePrim): New function.

2001-01-07  Anthony Green  <green@redhat.com>

	* Makefile.am (texinfo): Add texinfo target for generating texinfo
	documentation.
	* Makefile.in: Rebuilt.

	* scripts/TexinfoDoclet.java: New file.

	* doc/java-applet.texi, doc/java-lang-reflect.texi,
	doc/java-awt-color.texi, doc/java-lang.texi,
	doc/java-awt-datatransfer.texi, doc/java-math.texi,
	doc/java-awt-event.texi, doc/java-net.texi,
	doc/java-awt-geom.texi, doc/java-security-spec.texi,
	doc/java-awt-image.texi, doc/java-security.texi,
	doc/java-awt-peer.texi, doc/java-sql.texi, doc/java-awt.texi,
	doc/java-text.texi, doc/java-beans-beancontext.texi,
	doc/java-util-jar.texi, doc/java-beans.texi,
	doc/java-util-zip.texi, doc/java-io.texi, doc/java-util.texi,
	doc/java-lang-ref.texi: New files.

2001-01-07  Anthony Green  <green@redhat.com>

	* java/net/URLConnection.java (setDoOutput): URLConnection's may
	be used for both input and output, so don't clear doInput.

	* java/lang/StringBuffer.java: Fix comments.

2001-01-06  Anthony Green  <green@redhat.com>

	* java/beans/PropertyDescriptor.java: Fix comment.
	* java/io/PushbackReader.java: Fix comment.
	* java/io/ObjectStreamClass.java: Fix comment.
	* java/io/DataInputStream.java: Fix comment.
	* java/io/PipedInputStream.java: Fix comments.
	* java/io/PipedReader.java: Fix comments.
	* java/sql/DatabaseMetaData.java: Fix comments.

2001-01-06  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/io/PipedReader: Synchronize on "lock" instead of this.

2001-01-05  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/Thread.java: Update comment.

	* java/io/PipedInputStream: Rewrote to be simpler and more correct.
	* java/io/PipedOutputStream: Updated to match new PipedInputStream.
	* java/io/PipedReader: New implementation based on new
	PipedInputStream.
	* java/io/PipedWriter: Updated to match new PipedReader.

2001-01-03  Tom Tromey  <tromey@redhat.com>

	* java/awt/ScrollPane.java (setBlockIncrement): Throw error.
	(getViewportSize): Insets include scrollbar size.
	(doLayout): Finished.
	(getScrollPosition): Wrote.
	* java/awt/peer/ScrollPanePeer.java (setBlockIncrement): Removed.

2001-01-02  Tom Tromey  <tromey@redhat.com>

	* java/awt/ScrollPane.java: Wrote.
	* java/awt/peer/ScrollPanePeer.java (setBlockIncrement): New
	method.

	* java/awt/Panel.java (Panel()): Fixed.

	* java/awt/Component.java (isShowing): Return false if no peer
	exists, and true if component is visible and no parent exists.
	(getLocationOnScreen): Wrote.
	(getPreferredSize): Removed FIXME comment.
	(getMinimumSize): Likewise.
	(getAlignmentX, getAlignmentY): Wrote.
	(list): Wrote.
	(requestFocus): Wrote.
	(transferFocus): Wrote.
	(findNextFocusComponent): New method.
	(hasFocus()): Wrote.
	(checkImage): Wrote.
	(enableEvents): Call setEventMask on the peer.

	* java/awt/Container.java (list): Use super.list() to print self.
	(findNextFocusComponent): New method.
	(setLayout): Call invalidate.
	(findComponentAt): Wrote.

2000-12-30  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am (libgcj_la_LIBADD): Add $(THREADLIBS). This ensures that
	the correct versions of various linuxthreads functions get linked.
	* Makefile.in: Rebuilt.
	* java/lang/natThread.cc (finalize_native): New static function. Call
	_Jv_ThreadDestroyData.
	(initialize_native): Register finalizer for "data".
	* include/posix-threads.h (_Jv_ThreadInitData): New simpler prototype.
	(_Jv_ThreadDestroyData): New prototype.
	* include/win32-threads.h: Ditto.
	* include/no-threads.h: Ditto.
	* posix-threads.cc (_Jv_ThreadInitData): Implement new prototype.
	(_Jv_ThreadDestroyData): New function. Free native thread "data" and
	move mutex and condition variable destroy code from:
	(really_start): ...here.
	(_Jv_ThreadStart): Set PTHREAD_CREATE_DETACHED.
	* win32-threads.cc (_Jv_ThreadInitData): Implement new prototype.
	(_Jv_ThreadDestroyData): Implemented.
	* nogc.cc (_Jv_AllocObject): Use "void *" not "ptr_t".
	(_Jv_AllocArray): Ditto.

2000-12-27  Jeff Sturm  <jeff.sturm@commerceone.com>

	* java/sql/DriverManager.java (getConnection): Don't set user/password
	properties if null.

2000-12-27  Warren Levy  <warrenl@redhat.com>

	Fix for PR libgcj/1358:
	* java/lang/System.java: Update Copyright date properly.
	* java/util/Calendar.java: Fix typo in comment.
	(set): Set 24-hour clock hour instead of 12-hour clock hour.
	* java/util/GregorianCalendar.java (GregorianCalendar): Properly
	initialize times.  Spec says to set H:M:S values to zero only if
	a date is given.
	* java/util/TimeZone.java (getDefaultDisplayName): Casts to char
	needed for evaluating numbers '0' to '9' in printouts of GMT offsets.
	* java/util/natGregorianCalendar.cc (computeTime): Properly handle
	timezones and GMT offsets, being careful to account for units of
	milliseconds vs. seconds.

2000-12-28  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/natClass.cc (_Jv_IsAssignableFrom): Primitive TYPEs can
	not be assigned to Object.

	Fix for PR libgcj/1516:
	* java/lang/reflect/natMethod.cc (primitives): Remove void entry.
	Add boolean entry.
	(can_widen): Declared inline. Remove redundant checks for void
	arguments and char->short conversion. Add special case for boolean
	conversions.
	(ffi_type): Declared inline.
	(_Jv_CallAnyMethodA): Move unwrapping logic inside isPrimitive() block.

2000-12-26  Petter Reinholdtsen  <pere@hungry.com>

	* java/sql/SQLWarning.java: Fixed typo in comment.

2000-12-26  Tom Tromey  <tromey@redhat.com>

	* java/awt/MenuItem.java (paramString): Now protected.

	* java/awt/MenuShortcut.java: Implements Serializable.

	* java/awt/MenuBar.java: Rewrote from scratch.

	* java/awt/MenuComponent.java (removeNotify): Wrote.
	Implements Serializable.

	* java/awt/GridBagConstraints.java (GridBagConstraints): New
	constructor.

	* java/awt/CheckboxMenuItem.java: Wrote.

2000-12-25  Tom Tromey  <tromey@redhat.com>

	* java/awt/MenuContainer.java: Fixed typo.

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added SystemColor.java.
	* java/awt/SystemColor.java: New file.

	* java/awt/Color.java (rgba): Now package-private.

	* java/awt/event/InputEvent.java (isAltGraphDown): New method.

	* java/awt/event/ContainerEvent.java (getContainer): Renamed from
	getComponent.

	* java/awt/MenuItem.java (addNotify): New method.
	(MenuItem(String,MenuShortcut)): New constructor.
	(setLabel): Notify peer of change.
	(setEnabled): Likewise.

	* java/awt/GridLayout.java (toString): New method.

	* java/awt/FlowLayout.java (LEADING, TRAILING): New constants.
	(FlowLayout): Check for LEADING and TRAILING.
	(setAlignment): Likewise.
	(layoutContainer): Handle component orientation.

	* java/awt/Component.java (orientatin): New field.
	(setComponentOrientation): Wrote.
	(getComponentOrientation): Wrote.

	* java/awt/Event.java (Event): Implements Serializable.
	(consumed): New field for serialization.
	* java/awt/Dimension.java (Dimension): Implements Serializable.
	* java/awt/Cursor.java (Cursor): Implements Serializable.
	* java/awt/Container.java (Container): No longer abstract.

	* java/awt/Choice.java: Wrote.
	* java/awt/Checkbox.java: Wrote.
	* java/awt/ItemSelectable.java: Documented.
	* java/awt/CheckboxGroup.java: Wrote.

	* java/awt/CardLayout.java (layoutContainer): Directly use fields
	in other classes.
	(getSize): Likewise.

2000-12-24  Jeff Sturm  <jeff.sturm@commerceone.com>

	* java/io/FileDescriptor.java: Initialize fd to -1.
	Remove default constructor.

2000-12-23  Joseph S. Myers  <jsm28@cam.ac.uk>

	* java/lang/mprec.h: Change C9X reference to refer to C99.

2000-12-22  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/Throwable.java (trace_enabled): New static field.
	* java/lang/natThrowable.cc (fillInStackTrace): Do nothing if
	trace_enabled not set.
	* prims.cc (main_init): Turn off trace_enabled while creating
	default exception objects.

2000-12-21  Tom Tromey  <tromey@redhat.com>

	* java/beans/PropertyChangeListener.java: Extends EventListener.
	* java/beans/VetoableChangeListener.java: Extends EventListener.

	* java/util/zip/Deflater.java (update, init): Now private.

2000-12-21  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/BasicMapEntry.java: Re-added.
	* java/util/HashMap.java (Entry): Extend BasicMapEntry.
	(putAll): Test for BasicMapEntry.
	* java/util/Hashtable.java (Entry): Extend BasicMapEntry.
	(putAll): Test for BasicMapEntry.
	Change references from `HashMap.Entry' to `Entry' in various places.
	* Makefile.am: Add BasicMapEntry.java.
	* Makefile.in: Rebuilt.

2000-12-18  Warren Levy  <warrenl@redhat.com>

	* java/util/GregorianCalendar.java (GregorianCalendar): Constructors
	need to set timezone to a valid non-null value.  Partial fix for
	PR 331.

2000-12-18  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/awt/Window.java (addNotify): Remove peer casting hack now that
	gcj/312 is fixed.
	* java/awt/Button.java (addNotify): Likewise.
	* java/awt/Label.java (addNotify): Likewise.
	* java/awt/Panel.java (addNotify): Likewise.
	* java/awt/Scrollbar.java (addNotify): Likewise.
	* java/awt/Component.java (processPaintEvent): Use peer not getPeer.
	Remove redundant null checks.

2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>

	* COPYING: Update to current
	ftp://ftp.gnu.org/pub/gnu/Licenses/COPYING-2.0 (fixes references
	to 19yy as example year in copyright notice).

2000-12-18  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/zip/natInflater.cc (inflate): Treat Z_BUF_ERROR as
	end-of-stream if avail_in is 0.

2000-12-17  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/ArrayList.java (data): Declare transient.
	(serialPersistantFields): Removed.
	(readObject): Use defaultReadObject(), not readFields().
	(writeObject): Use defaultWriteObject(), not writeFields().

2000-12-17  Jeff Sturm  <jeff.sturm@commerceone.com>

	* java/util/Hashtable.java (put): Remove `last' variable.
	Link new entry to head of list.
	* java/util/HashMap.java (put): Ditto.

2000-12-15  Tom Tromey  <tromey@redhat.com>

	* java/util/ResourceBundle.java (trySomeGetBundle): Pass class
	loader to Class.forName.

2000-12-14  Tom Tromey  <tromey@redhat.com>

	* java/util/ResourceBundle.java
	(getBundle(String,Locale,ClassLoader)): New method.
	(trySomeGetBundle): Added `loader' argument.
	(partialGetBundle): Likewise.

	* java/text/NumberFormat.java (groupingUsed, parseIntegerOnly,
	maximumFractionDigits, maximumIntegerDigits,
	minimumFractionDigits, minimumIntegerDigits): Now
	package-private.

	* java/lang/Thread.java (checkAccess): Now final.

	* java/lang/RuntimePermission.java: Class now final.

	* java/io/StringWriter.java (StringWriter(int)): Now public.

	* java/io/SerializablePermission.java (legal_names): Now private.

	* java/lang/Character.java: Updated UnicodeBlock constants.
	* scripts/blocks.pl: Special case private use and surrogate
	areas.  Updated URL.

2000-12-12  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (GCJ_WITH_FLAGS): New macro, includes --encoding
	option.
	(GCJCOMPILE): Use it.
	(JAVAC): Likewise.

2000-12-11  Tom Tromey  <tromey@redhat.com>

	* gnu/gcj/runtime/FirstThread.java (Kcert, Kfile, Khttp, Kjar):
	New static final fields.

	* scripts/classes.pl (scan): Skip lines with leading `*'.
	Fix for PR libgcj/378.

2000-12-11  Bryce McKinlay  <bryce@albatross.co.nz>

	* configure.in: Remove check for -fuse-divide-subroutine.
	* configure: Rebuilt.

	* java/util/Hashtable.java (Enumerator.nextElement): Initialize `e'.

	* gcj/javaprims.h: Rebuilt CNI namespace declarations.

2000-12-11  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am: Add HashSet.java and java/lang/ref classes.
	Remove BasicMapEntry.java and Bucket.java.
	* Makefile.in: Rebuilt.
	* java/util/HashMap.java: Rewritten.
	* java/util/HashSet.java: Imported from classpath.
	* java/util/WeakHashMap.java: Imported from classpath.
	* java/util/Hashtable.java: Rewritten based on new HashMap code.
	* java/util/Bucket.java: Deleted.
	* java/util/BasicMapEntry.java: Deleted.
	* java/util/Collections.java (search): Use a for-loop, not iterator
	hasNext().
	(copy): Use a for-loop. Throw an IndexOutOfBoundsException if run out
	of elements in source.
	(max): Use a for-loop.
	(min): Ditto.
	(reverse): Keep track of positions instead of using Iterator's
	nextIndex() and previousIndex().
	(shuffle(List)): Initialize defaultRandom if required using
	double-check thread safety idiom. Call two-argument shuffle method
	using defaultRandom.
	(defaultRandom): New field.
	(shuffle(List, Random)): Use a for-loop. Keep track of pos instead of
	using previousIndex() and nextIndex().
	(singletonMap(iterator)): Use a HashMap.Entry, not BasicMapEntry.
	* java/util/AbstractCollection.java (toString): Use a StringBuffer.
	* java/util/AbstractMap.java (toString): Use StringBuffer.
	* java/lang/ref/PhantomReference.java: Imported from classpath.
	* java/lang/ref/SoftReference.java: Ditto.
	* java/lang/ref/Reference.java: Ditto.
	* java/lang/ref/WeakReference.java: Ditto.
	* java/lang/ref/ReferenceQueue.java: Ditto.

2000-12-10  Richard Henderson <rth@redhat.com>

	* configure.host: Recognize alpha*-*, not alphaev6-*.

2000-12-09  Anthony Green  <green@redhat.com>

	* configure.host: Enable interpreter for Alpha.

2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* Makefile.am (data_DATA): libgcj.jar replaces libgcj.zip.
	(ZIP): Points at fastjar instead of zip.
	(libgcj_la_DEPENDENCIES): libgcj.jar replaces libgcj.zip.
	(libgcj_la_LDFLAGS): Correctly point at libsupc++.
	(libgcjx_la_DEPENDENCIES): libgcj.jar replaces libgcj.zip.
	(libgcjx_la_LDFLAGS): Correctly point at libsupc++.
	($(java_source_files:.java=.class):): libgcj.jar replaces libgcj.zip.
	($(x_java_source_files:.java=.class):): Likewise.
	(libgcj.jar:): Replaces libgcj.zip:, builds libgcj.jar and uses
	fastar's flags.
	(CLEANFILES): libgcj.jar replaces libgcj.zip.
	(java/lang/ClassLoader.h:): Depends on libgcj.jar.
	(gnu/gcj/runtime/FirstThread.h:, java/lang/Thread.h:,
	java/lang/String.h:, java/lang/reflect/Constructor.h:,
	java/lang/reflect/Field.h:, java/lang/reflect/Method.h:,
	gnu/gcj/runtime/VMClassLoader.h:,
	java/io/ObjectInputStream$$GetField.h:,
	java/io/ObjectOutputStream$$PutField.h:, header-check:): Likewise.
	(Makefile.in): Rebuilt.

2000-12-08  Tom Tromey  <tromey@redhat.com>

	From Phil Edwards:
	* configure: Rebuilt.
	* configure.in: Use echo, not `:', to create .d files.

2000-12-08  Warren Levy  <warrenl@redhat.com>

	* java/lang/StringBuffer.java (insert(int,char[])): Avoid
	NullPointerException so proper check of offset can be done.

2000-12-08  Warren Levy  <warrenl@redhat.com>

	* java/io/FileInputStream.java (close): Check if the fd is valid.
	* java/io/RandomAccessFile.java (close): Ditto.
	* java/net/PlainDatagramSocketImpl.java (close): Ditto.
	* java/net/PlainSocketImpl.java (close): Ditto.

2000-12-06  Tom Tromey  <tromey@redhat.com>

	* java/awt/GridBagConstraints.java: Filled in values for static
	final fields.

	* java/util/BitSet.java: Updated copyright notice.

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added new file.
	* java/awt/GridBagConstraints.java: New file.

2000-12-05  Tom Tromey  <tromey@redhat.com>

	* java/text/Collator.java (decomposeCharacter, decmp, strength):
	Now package-private, not protected.
	* java/text/DateFormatSymbols.java (equals): Now private.
	* java/text/DecimalFormatSymbols.java (safeGetChar): Now private.
	* java/util/BitSet.java: Class no longer final.

2000-12-04  Warren Levy  <warrenl@redhat.com>

	* java/util/TimeZone.java (getAvailableIDs): Activated commented
	out code dependent on compiler and library changes.

2000-12-04  Warren Levy  <warrenl@redhat.com>

	* java/io/FilePermission.java: Made class final per spec.
	* java/text/DecimalFormatSymbols.java (setCurrencySymbol): Changed
	method name to match spec (fixed typo).
	* java/util/LinkedList.java: Implements List.

2000-12-04  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/natDouble.cc: Include fdlibm.h, not mprec.h. From
	Edgar Villanueva <edgarvil@home.com>.

2000-12-03  Tom Tromey  <tromey@redhat.com>

	* java/awt/geom/Point2D.java: Added protected constructor.
	(equals): New method.
	(Float.setLocation(float,float)): New method.
	* java/awt/geom/Dimension2D.java: Added protected constructor.
	* java/awt/geom/AffineTransform.java: Made all constants public.
	(concatenate): Fixed typo in name.
	* java/awt/event/WindowAdapter.java: Class now abstract.
	* java/awt/event/KeyEvent.java (CHAR_UNDEFINED): Now final.
	* java/awt/event/FocusEvent.java: Extend ComponentEvent, not
	AWTEvent.

	* java/awt/AWTError.java: Extend Error, not
	IllegalStateException.

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added new file.
	* java/awt/geom/RoundRectangle2D.java: New file.

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added new file.
	* java/awt/FlowLayout.java: New file.

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added new file.
	* java/awt/GridLayout.java: New file.

2000-12-02  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added new files.
	* java/awt/CardLayout.java: New file.
	* java/awt/AWTPermission.java: New file.

2000-12-01  Tom Tromey  <tromey@redhat.com>

	* java/util/Vector.java (insertElementAt): Unconditionally
	increment elementCount.
	(removeRange): Clear unused slots in vector.

2000-12-02  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/natMath.cc: Declare fabsf() function.
	* java/lang/mprec.h: Don't include math.h.
	* java/lang/dtoa.c: Include string.h.
	* java/lang/natString.cc (toLowerCase): Initialize `ch' to prevent
	compiler warning.

	From Adam Welc <welc@cs.purdue.edu>:
	* java/util/LinkedList.java (removeFirst): Update `first' field.
	Handle the last == first case.
	(removeLast): Update `last' field. Handle the last == first case.

2000-12-01  Warren Levy  <warrenl@cygnus.com>

	* Makefile.am: Added entries for new java.sql modules.
	* Makefile.in: Rebuilt.

2000-12-01  Warren Levy  <warrenl@cygnus.com>

	* mauve-libgcj: Turned on JDK1.2 and turned off tests for classes
	that aren't quite 1.2 compatible yet.

2000-11-30  Warren Levy  <warrenl@cygnus.com>

	* java/sql/Array.java: New file from classpath.
	* java/sql/BatchUpdateException.java: Ditto.
	* java/sql/Blob.java: Ditto.
	* java/sql/Clob.java: Ditto.
	* java/sql/Ref.java: Ditto.
	* java/sql/SQLData.java: Ditto.
	* java/sql/SQLInput.java: Ditto.
	* java/sql/SQLOutput.java: Ditto.
	* java/sql/Struct.java: Ditto.
	* java/sql/CallableStatement.java: Merged file from claspath.
	* java/sql/Connection.java: Ditto.
	* java/sql/DataTruncation.java: Ditto.
	* java/sql/DatabaseMetaData.java: Ditto.
	* java/sql/DriverManager.java: Ditto.
	* java/sql/PreparedStatement.java: Ditto.
	* java/sql/ResultSet.java: Ditto.
	* java/sql/ResultSetMetaData.java: Ditto.
	* java/sql/SQLException.java: Ditto.
	* java/sql/SQLWarning.java: Ditto.
	* java/sql/Statement.java: Ditto.
	* java/sql/Types.java: Ditto.

2000-11-29  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/natSystem.cc (init_properties): Set user.language and
	user.region.
	* configure.in: Check for setlocale.
	* configure: Rebuilt.
	* include/config.h.in: Rebuilt.

	* java/util/zip/InflaterInputStream (read): Don't return -1 unless
	the infate() call didn't deliver any output. Throw a ZipException if
	the needsDictionary() call returns true.
	* java/io/ByteArrayInputStream (read): Remove redundant bounds checks.
	* java/io/InputStreamReader: Use the default buffer size for the
	contained BufferedInputStream.

2000-11-28  Warren Levy  <warrenl@cygnus.com>

	* java/text/DateFormatSymbols.java (zoneStringsDefault): Added
	more time zone entries.
	* java/text/SimpleDateFormat.java (format): Added case for
	TIMEZONE_FIELD.

2000-11-28  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/io/DataInputStream.java: Merge classpath docs. Call in.read()
	directly rather than read() in all cases. Make primitive read
	implementations	more efficient, as defined in JDK online docs.
	(skipBytes): Behave like the JDK's implementation.
	* java/io/BufferedReader.java: Merge classpath docs. Check for a
	closed stream with checkStatus() whenever an IOException can be
	thrown.
	(checkStatus): New private method.

2000-11-27  Warren Levy  <warrenl@cygnus.com>

	* Makefile.am: Added natTimeZone.cc.
	* Makefile.in: Rebuilt.
	* gnu/gcj/text/LocaleData_en.java: Added DateFormat entries.
	* java/text/DateFormatSymbols.java (ampms): Made package private.
	(eras): Made package private.
	(months): Made package private.
	(shortMonths): Made package private.
	(shortWeekdays): Made package private.
	(weekdays): Made package private.
	(formatPrefixes): New private field.
	(localPatternCharsDefault): Made private.
	(dateFormats): New package private field.
	(timeFormats): New package private field.
	(formatsForKey): New private method.
	(DateFormatSymbols(Locale)): Set dateFormats and timeFormats.
	(DateFormatSymbols(DateFormatSymbols)): Ditto.
	* java/text/SimpleDateFormat.java: Merged with Classpath.
	* java/util/TimeZone.java: Merged with Classpath.
	* java/util/natTimeZone.cc: New file.

2000-11-27  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/Vector.java (ensureCapacity): Don't increment modCount.
	(addElement): Don't increment elementCount twice. Doh.
	* java/util/ArrayList.java (add): Only call ensureCapacity if the
	array needs to be expanded.
	(addAll): Ditto.
	* java/util/Collections.java (UnmodifiableCollection): Implement
	toString().
	(UnmodifiableList): Throw UnsupportedOperationException from
	modification methods. Set `l' from the one-parameter constructor.
	(UnmodifiableMap): Implement toString().
	(SynchronizedCollection): Ditto.
	(SynchronizedList): Set `l' from the one-parameter constructor.
	(SynchronizedSortedSet): Set `ss' from the one-parameter constructor.
	(SynchronizedMap): Implement toString().

Sun Nov 26 23:59:55 2000  Anthony Green  <green@redhat.com>

	* javax/naming/NameParser.java,
	javax/naming/directory/AttributeInUseException.java,
	javax/naming/directory/AttributeModificationException.java,
	javax/naming/directory/InvalidAttributeIdentifierException.java,
	javax/naming/directory/InvalidAttributesException.java,
	javax/naming/directory/InvalidAttributeValueException.java,
	javax/naming/directory/InvalidSearchControlsException.java,
	javax/naming/directory/InvalidSearchFilterException.java,
	javax/naming/directory/NoSuchAttributeException.java,
	javax/naming/directory/SchemaViolationException.java: New files.

Sun Nov 26 22:35:53 2000  Anthony Green  <green@redhat.com>

	* javax/naming/InitialContext.java (rebind): Implement.
	(unbind): Implement.
	(rename): Implement.
	(list): Implement.
	(listBindings): Implement.
	(destroySubcontext): Implement.
	(createSubcontext): Implement.
	(lookupLink): Implement.
	(getNameParser): Implement.
	(composeName): Implement.
	(addToEnvironment): Implement.

Sun Nov 26 21:30:25 2000  Anthony Green  <green@redhat.com>

	* javax/naming/AuthenticationException.java,
	javax/naming/AuthenticationNotSupportedException.java,
	javax/naming/CannotProceedException.java,
	javax/naming/CommunicationException.java,
	javax/naming/ConfigurationException.java,
	javax/naming/ContextNotEmptyException.java,
	javax/naming/InsufficientResourcesException.java,
	javax/naming/InterruptedNamingException.java,
	javax/naming/InvalidNameException.java,
	javax/naming/LimitExceededException.java,
	javax/naming/LinkException.java,
	javax/naming/LinkLoopException.java,
	javax/naming/MalformedLinkException.java,
	javax/naming/NameAlreadyBoundException.java,
	javax/naming/NameNotFoundException.java,
	javax/naming/NamingSecurityException.java,
	javax/naming/NoPermissionException.java,
	javax/naming/NotContextException.java,
	javax/naming/PartialResultException.java,
	javax/naming/ReferralException.java,
	javax/naming/ServiceUnavailableException.java,
	javax/naming/SizeLimitExceededException.java,
	javax/naming/TimeLimitExceededException.java: New files.

	* javax/naming/Name.java (clone): New method.
	(compareTo): New method.
	(isEmpty): New method.
	(getAll): New method.
	(getPrefix): New method.
	(getSuffix): New method.
	(startsWith): New method.
	(endsWith): New method.
	(addAll): New method.
	(addAll): New method.
	(add): New method.
	(add): New method.
	(remove): New method.

	* javax/naming/Context.java (lookup): New method.
	(rebind): New method.
	(unbind): New method.
	(rename): New method.
	(list): New method.
	(listBindings): New method.
	(destroySubcontext): New method.
	(createSubcontext): New method.
	(lookupLink): New method.
	(getNameParser): New method.
	(composeName): New method.
	(addToEnvironment): New method.
	(removeFromEnvironment): New method.
	(getEnvironment): New method.
	(close): New method.
	(getNameInNamespace): New method.

	* javax/naming/InitialContext.java (lookup): New method.
	(rebind): New method.
	(unbind): New method.
	(rename): New method.
	(list): New method.
	(listBindings): New method.
	(destroySubcontext): New method.
	(createSubcontext): New method.
	(lookupLink): New method.
	(getNameParser): New method.
	(composeName): New method.
	(addToEnvironment): New method.
	(removeFromEnvironment): New method.
	(getEnvironment): New method.
	(close): New method.
	(getNameInNamespace): New method.

2000-11-26  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (core_java_source_files): Added
	RuntimePermission.java.
	* java/lang/RuntimePermission.java: Imported from Classpath.
	* java/lang/Thread.java (getContextClassLoader): Now
	synchronized.  Added security code.
	(setContextClassLoader): Likewise.

	* prims.cc (_Jv_NewObjectArray): Use const_cast to initialize
	length field of array.
	(_Jv_NewPrimArray): Likewise.
	* gcj/array.h (__JArray): `length' field now const.  Added
	constructor.

2000-11-26  Anthony Green  <green@redhat.com>

	* javax/naming/spi/NamingManager.java,
	javax/naming/spi/ObjectFactory.java,
	javax/naming/spi/InitialContextFactory.java,
	javax/naming/spi/InitialContextFactoryBuilder.java,
	javax/naming/RefAddr.java, javax/naming/Reference.java,
	javax/naming/NamingException.java, javax/naming/Context.java,
	javax/naming/Referenceable.java,
	javax/naming/directory/InitialDirContext.java,
	javax/naming/directory/DirContext.java,
	javax/naming/directory/Attributes.java,
	javax/naming/directory/Attribute.java,
	javax/naming/StringRefAddr.java,
	javax/naming/NamingEnumeration.java, javax/naming/Name.java,
	javax/naming/InitialContext.java,
	javax/naming/NoInitialContextException.java: New files.

2000-11-25  Anthony Green  <green@redhat.com>

	* prims.cc (_Jv_NewObjectArray): Undo placement change.
	(_Jv_NewPrimArray): Likewise.
	* gcj/array.h (__JArray): Undo const change.  Removed constructor.
	(class JArray): Removed constructor.

	* java/lang/Thread.java (context_class_loader): New private data.
	(getContextClassLoader): New method.
	(setContextClassLoader): New method.
	(Thread): Initialize context_class_loader.

	* java/net/URLClassLoader.java: Import java.util.Enumeration.
	(getResource): Rename to findResource.
	(findResource): New method.  Used to be getResource.
	(getResourceAsStream): Deleted.
	(jarFileize): Extracted logic from URLClassLoader constructor into
	this new private method.
	(addURL): New protected method.
	(URLClassLoader): Call jarFileize.  Use addElement instead of
	insertElementAt.
	(findResources): New method.

	* java/lang/ClassLoader.java: Import java.util.Enumeration.
	(getResource): Implement correct logic.
	(findResource): New method.
	(getResources): New method.
	(findClass): Create a ClassNotFoundException with the name of the
	class rather than nothing at all.
	(defineClass) Only throw ClassFormatError.

	* java/lang/Class.java (forName): New method.
	* java/lang/Class.h (forName): New method.
	* java/lang/natClass.cc (forName): New method.

2000-11-24  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/System.java (setProperties): Only call init_properties()
	if properties is null.
	(getProperties): Ditto.
	(getProperty): Ditto.
	(setProperty): Call init_properties if properties are null.
	(prop_init): Remove field.
	* java/lang/natSystem.cc (init_properties): Synchronize the entire
	method. Check for null properties after synchronizing instead of
	prop_init flag. Set the properties field last for thread safety.

	* java/io/ObjectInputStream.java (ObjectInputStream): If DEBUG is set,
	test for gcj.dumpobjects property and enable object stream dumping
	if it is set.
	(dumpElement): No longer native.
	(dumpElementln): Ditto.
	(setDump): Do not define.
	* java/io/natObjectInputStream.cc (dumpElement): Removed.
	(dumpElementln): Removed.
	(setDump): Removed.

2000-11-24  Bryce McKinlay  <bryce@albatross.co.nz>

	* configure: Rebuilt.
	* Makefile.in: Rebuilt.
	* Makefile.am (built_java_source_files): Add Configuration.java.
	* configure.in: Add Configuration.java to CONFIG_FILES. Set
	LIBGCJDEBUG substitution if --enable-libgcj-debug is specified.
	Create `gnu' directory in the build tree.
	* gnu/classpath/Configuration.java.in: New file.

2000-11-24  Tom Tromey  <tromey@cygnus.com>

	* prims.cc (_Jv_NewObjectArray): Use placement new to create
	array.
	(_Jv_NewPrimArray): Likewise.
	Include <new>.
	* gcj/array.h (__JArray): `length' field now const.  Added
	constructor.
	(class JArray): Added constructor.

2000-11-23  Mark Wielaard  <mark@klomp.org>

	* name-finder.cc (lookup): Check for a NULL _Jv_argv before attempting
	lookup.

2000-11-23  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/Vector.java: Improve exception messages.
	(Vector): Check initialCapacity for IllegalArgumentException.
	(tromToSize): Don't check for elementCount == elementData.length
	case.
	(toArray): Don't try to set null marker if target array is the same
	length as the vector.

2000-11-22  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.in: Rebuilt.
	* Makefile.am (core_java_source_files): Added Collections.java.
	* java/util/List.java: Merged from classpath.
	* java/util/Vector.java: Ditto.
	* java/util/Collections.java: From classpath.
	* java/util/ArrayList.java (addAll(Collection)): Call
	addAll(int,Collection) instead of duplicating code.
	(indexOf): Clean up int initialization.
	(clear): Set cleared array entries to null, to allow garbage
	collection.
	* java/util/List.java: Minor formatting fixes.
	* java/util/SimpleTimeZone.java: ditto.

2000-11-18  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (core_java_source_files): Added new files.
	* java/lang/reflect/ReflectPermission.java: New class.
	* java/io/FileFilter.java: From Classpath
	* java/io/FilePermission.java: From Classpath.

2000-11-17  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/AccessibleObject.java (isAccessible,
	setAccessible): Now public.

	* java/lang/natString.cc: Include Locale.h.
	(toUpperCase): Added `locale' argument.  Handle locale
	sensitivity.
	(toLowerCase): Added `locale' argument.  Handle locale
	sensitivity.
	(ESSET, CAPITAL_S, SMALL_I, CAPITAL_I_WITH_DOT, SMALL_DOTLESS_I,
	CAPITAL_I): New defines.
	* java/lang/String.java (CASE_INSENSITIVE_ORDER): Now public and
	final.
	Import Locale.
	(toUpperCase, toLowerCase): New methods.  Variants which accept
	locale now native.

	* java/lang/ExceptionInInitializerError.java (printStackTrace):
	New methods.

	* java/util/PropertyPermission.java: Re-merged from Classpath.

	* java/text/RuleBasedCollator.java (getCollationElementIterator):
	New method.
	* java/text/StringCharacterIterator.java: Reindented.
	(setText): New method.

2000-11-17  Mark Wielaard  <mark@klomp.org>

	Merge with Classpath (changes by Bryce McKinlay)
	* java/util/jar/*.java: Reformat all to unofficial standard coding
	style. No changes of substance.

2000-11-17  Mark Wielaard  <mark@klomp.org>

	* java/util/zip/*.java: Javadoc updates.

2000-11-17  Tom Tromey  <tromey@cygnus.com>

	* java/text/CollationKey.java: Implement Comparable.
	(compareTo(Object)): New method.
	* java/text/Collator.java (compare(Object,Object)): New method.
	Implement Comparator.

	* java/util/zip/InflaterInputStream.java (available): New method.
	(close): New method.
	(read, available, skip, fill): Throw exception if stream closed.
	* java/util/zip/ZipInputStream.java (read, skip, readFully, fill,
	getNextEntry): Throw exception if closed.

2000-11-16  Tom Tromey  <tromey@cygnus.com>

	* java/io/PushbackReader.java: Merged with Classpath.
	* java/util/Arrays.java: Updated from Classpath.

	* scripts/blocks.pl: New file.
	* java/lang/Character.java (Subset): New class.
	(UnicodeBlock): New class.

	* java/lang/Math.java (toDegrees, toRadians): New methods.

	* java/lang/Float.java: Implement Comparable.
	(compareTo): New methods.
	* java/lang/Double.java: Implement Comparable.
	(compareTo): New methods.

2000-11-16  Warren Levy  <warrenl@cygnus.com>

	* java/beans/PropertyChangeSupport.java (propertyListeners): Made
	transient.
	(listeners): Made transient.
	(source): Renamed from 'bean'.
	(children): New field for serialization.
	(propertyChangeSupportSerializedDataVersion): Ditto.
	(serialVersionUID): Ditto.
	(writeObject): New serialization method.
	(readObject): New serialization method.
	* java/beans/VetoableChangeSupport.java (propertyListeners): Made
	transient.
	(listeners): Made transient.
	(source): Renamed from 'bean'.
	(children): New field for serialization.
	(vetoableChangeSupportSerializedDataVersion): Ditto.
	(serialVersionUID): Ditto.
	(writeObject): New serialization method.
	(readObject): New serialization method.
	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Fixed assert
	to allow constructor to have a return type (i.e. the class that the
	constructor constructs).

2000-11-14  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (libgcj.zip): Fail immediately if compilation fails
	and -k not given.

2000-11-02  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectInputStream.java (readObject): Added code to
	conditionally dump out the serialized data.
	Handle ENDBLOCKDATA case a bit more gracefully since the current
	behavior doesn't seem to work as expected.
	(readStreamHeader): Added code for serialized data dumper.
	(readNextBlock): Ditto.
	(readFields): Ditto.
	(dump): New private static field for turning on/off dumper.
	(setDump): New native method.
	(dumpElement): New native method.
	(dumpElementln): New native method.
	* java/io/natObjectInputStream.cc (setDump): New method.
	(dumpElement): New method.
	(dumpElementln): New method.

2000-11-02  Warren Levy  <warrenl@cygnus.com>

	* java/net/InetAddress.java (addr): Renamed from 'address'.
	(address): New field to match Serialized Form doc.
	(hostName): Renamed from 'hostname' to match Serialized Form doc.
	(family): New serialization field.
	(serialVersionUID): New field.
	(readObject): New method.
	(writeObject): New method.
	(getFamily): New native method.
	(InetAddress): Set family.
	* java/net/natInetAddress.cc (getFamily): New method.
	(addr): Renamed from 'address'.
	(hostName): Renamed from 'hostname' to match Serialized Form doc.
	* java/net/natPlainDatagramSocketImpl.cc (addr): Renamed from 'address'.
	* java/net/natPlainSocketImpl.cc (addr): Renamed from 'address'.

2000-11-03  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/AbstractList.java (SubList): Make it a top-level private
	class.
	* java/util/LinkedList.java (remove): Do update modCount and knownMod.
	(add): Ditto.
	* Makefile.am (ordinary_java_source_files): Add LinkedList.java.
	* Makefile.in: Rebuilt.

2000-11-02  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (install-exec-hook): Make `.la' link, not `.so'
	link.

2000-11-02  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/AbstractList.java (remove): Comment out modCount increment
	to work around compiler bug.
	(add): Ditto.

2000-11-02  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/AbstractList.java: Throw messages with
	IndexOutOfBoundsExceptions.
	 (listIterator()): Call listIterator(0).
	(size): New field. Initialize to size().
	(hasNext): Test position against size, not size().
	(remove): Increment knownMod by one instead of resetting it from
	modCount.
	(add): Ditto.
	(SubList.upMod): Removed.
	(SubList.set): Don't call upMod() or update knownMod.
	(SubList.add(int,Object)): Increment modCount instead of caling upMod().
	(SubList.remove): Ditto.
	(SubList.addAll): Don't call backingList.size(). Increment size from
	c.size().
	(SubList.iterator): New method. Call listIterator(0).
	(SubList.listIterator): New method. Restore code to return an anonymous
	listIterator implementation (with some changes).
	* java/util/AbstractSequentialList.java: Throw messages with
	IndexOutOfBoundsExceptions.
	(addAll): Add a specnote.
	* java/util/ArrayList.java (removeRange): Get the math right.
	(addAll): Increment modCount _before_ creating iterator.
	* java/util/LinkedList.java: Rewritten, mostly.

2000-11-01  Tom Tromey  <tromey@cygnus.com>

	* scripts/encodings.pl: Added `ASCII' alias.
	* Makefile.in: Rebuilt.
	* Makefile.am (convert_source_files): Added new files.
	* gnu/gcj/convert/Input_ASCII.java: New file.
	* gnu/gcj/convert/Output_ASCII.java: New file.
	* gnu/gcj/convert/Output_8859_1.java (write): Use `?' to represent
	out-of-range characters.
	* gnu/gcj/convert/natIconv.cc (iconv_init): New method.
	(read): Swap bytes if required.  Treat `count' as character count,
	not byte count.
	(write): Likewise.  Also, handle case where iconv fails on a given
	character.
	(init): Put encoding into exception.
	* gnu/gcj/convert/IOConverter.java (iconv_byte_swap): New global.
	(static): Call iconv_init.  Rebuilt alias list.
	(iconv_init): New private method.

2000-11-01  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (install-exec-hook): Only make a single symlink, and
	remove the destination before making the link.
	* configure: Rebuilt.
	* configure.in: Call AC_PROG_LN_S.

2000-10-31  Warren Levy  <warrenl@cygnus.com>

	* jni.cc: Added include of java/lang/ThreadGroup.h.
	* gcj/javaprims.h: Removed Replaceable and Resolvable from namespace
	per change of 2000-10-05.

2000-10-30  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/BitSet.java: Updated @specnote.

	* java/io/Reader.java: Merge docs from classpath.
	(skip): Synchronize on `lock'.
	* java/io/FileReader.java: Import correct implementation from
	classpath.
	* java/io/StringReader.java: Merge docs from classpath.
	(ready): Throw IOException if stream is closed.

2000-10-29  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/AbstractCollection.java (addAll): Use size() instead of
	hasNext() in iterator loop.
	(clear): Ditto.
	(contains): Ditto. Simplify loop.
	(containsAll): Ditto.
	(remove): Ditto.
	(removeAll): Ditto.
	(retainAll): Ditto.
	(toArray): Ditto.
	(toString): Ditto. Use string concatenation operators, not
	StringBuffer.
	* java/util/AbstractList.java (addAll): Use size() instead of
	hasNext() in iterator loop.
	(equals): Ditto.
	(hashCode): Ditto.
	(indexOf): Ditto. Don't take null check outside of the loop.
	(iterator): Return an AbstractListItr instead of anonymous class.
	(lastIndexOf): Use a for loop bounded by size() instead of
	hasPrevious() in iterator loop.
	(listIterator): Return an AbstractListItr.
	(removeRange): Remove bounds checking code and docs.
	(AbstractListItr): New inner class. Code moved here from
	listIterator().
	(SubList.iterator): Removed. Use default implementation from
	AbstractList instead.
	(SubList.listIterator): As above.
	* java/util/AbstractMap.java (clear): Use a for loop bounded by size()
	instead of hasNext() in iterator loop.
	(containsValue): Ditto.
	(equals): Ditto.
	(get): Ditto.
	(put): Ditto.
	(putAll): Ditto.
	(remove): Ditto.
	(toString): Ditto. Use string concatenation operators, not
	StringBuffer.
	* java/util/AbstractSequentialList.java (addAll): Use a for loop
	bounded by size() instead of hasNext() in iterator loop.
	* java/util/AbstractSet.java (hashCode): Don't catch exception as
	part of normal execution flow. Do an explicit null check instead.
	* java/util/ArrayList.java (_iSize): Rename to `size'.
	(_arData): Rename to `data'.
	(get): Check lower bounds also. Simplify IndexOutOfBoundsException
	message.
	(remove): Ditto.
	(removeRange): Make protected. Don't check bounds.
	(add): Check lower bounds also. Simplify IndexOutOfBoundsException
	message.
	(addAll (Collection)): Use a size-bounded for loop instead of hasNext()
	check.
	(addAll (int, Collection)): Check lower bounds. Simplify exception
	string.
	(clone): Clone the data array too.
	(indexOf): Inline doesEqual().
	(lastIndexOf): Ditto.
	(clear): Don't set array data to null.
	(set): Check lower bounds. Simplify exception string.
	(toArray): Correct comment.
	(trimToSize): Don't update modCount, this is not a structural change.
	Add comment.

	* java/util/BitSet.java: Merged with classpath, new JDK 1.2 methods
	implemented.
	(toString): Declare `bit' as long, not int.
	(data): Made package-private, not private.

2000-10-27  Warren Levy  <warrenl@cygnus.com>

	* java/util/natGregorianCalendar.cc (computeFields): Set the isSet__
	array elements to true.

2000-10-27  Warren Levy  <warrenl@cygnus.com>

	* Makefile.am: Added locale files from Classpath.
	* Makefile.in: Rebuilt.
	* gnu/java/locale/Calendar.java: New file.
	* gnu/java/locale/Calendar_de.java: New file.
	* gnu/java/locale/Calendar_en.java: New file.
	* gnu/java/locale/Calendar_nl.java: New file.
	* java/lang/ClassNotFoundException.java: Replaced with Classpath file.
	* java/math/BigDecimal.java (intVal): Renamed from 'num' for
	serialization compatibility.
	(scale): Made private.
	(serialVersionUID): New field.
	* java/math/BigInteger.java (ival): Made transient.
	(words): Made transient.
	(bitCount): New serialization field.
	(bitLength): Ditto.
	(firstNonzeroByteNum): Ditto.
	(lowestSetBit): Ditto.
	(magnitude): Ditto.
	(signum): Ditto.
	(serialVersionUID): New field.
	(readObject): New method.
	(writeObject): New method.
	* java/util/BitSet.java (serialVersionUID): New field.
	* java/util/Calendar.java: Replaced with Classpath file.
	* java/util/GregorianCalendar.java (GregorianCalendar): Pass result
	of getDefault() for TimeZone or Locale instead of passing nulls.
	* java/util/Locale.java (serialVersionUID): New field.
	(writeObject): New method.
	(readObject): New method.
	* java/util/SimpleTimeZone.java: Replaced with Classpath file.

2000-10-25  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am (GCJCOMPILE): Pass --tag=GCJ to libtool.
	(core_java_source_files): Put java.lang, java.io, and java.util here.
	(ordinary_java_source_files): Order so that core_java_source_files are
	built first.
	(java_source_files): Reorder so that special_java_source_files are
	built first.
	* configure.in: Don't pass -I flag to gcj.
	* Makefile.in: Rebuilt.
	* configure: Rebuilt.

2000-10-25  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (install-exec-hook): New target.

2000-10-24  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/EventObject.java: Merged from classpath.

	* java/lang/ThreadGroup.java (uncaughtException): Print thread name
	with stack dump.

2000-10-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* java/util/AbstractSet.java (equals): Re-installed original code.

2000-10-22  Rolf W. Rasmussen  <rolfwr@ii.uib.no>

	* Makefile.am: Added rules for libgcjx library.
	* Makefile.in: Rebuilt.
	* configure.in: Added check for X.
	* configure: Rebuilt.
	* gnu/awt/LightweightRedirector.java: New file.
	* gnu/awt/j2d/AbstractGraphicsState.java: New file.
	* gnu/awt/j2d/DirectRasterGraphics.java: New file.
	* gnu/awt/j2d/Graphics2DImpl.java: New file.
	* gnu/awt/j2d/IntegerGraphicsState.java: New file.
	* gnu/awt/j2d/MappedRaster.java: New file.
	* gnu/awt/xlib/XCanvasPeer.java: New file.
	* gnu/awt/xlib/XEventLoop.java: New file.
	* gnu/awt/xlib/XEventQueue.java: New file.
	* gnu/awt/xlib/XFontMetrics.java: New file.
	* gnu/awt/xlib/XFramePeer.java: New file.
	* gnu/awt/xlib/XGraphics.java: New file.
	* gnu/awt/xlib/XGraphicsConfiguration.java: New file.
	* gnu/awt/xlib/XPanelPeer.java: New file.
	* gnu/awt/xlib/XToolkit.java: New file.
	* gnu/gcj/xlib/Clip.java: New file.
	* gnu/gcj/xlib/Colormap.java: New file.
	* gnu/gcj/xlib/Display.java: New file.
	* gnu/gcj/xlib/Drawable.java: New file.
	* gnu/gcj/xlib/Font.java: New file.
	* gnu/gcj/xlib/GC.java: New file.
	* gnu/gcj/xlib/Pixmap.java: New file.
	* gnu/gcj/xlib/Screen.java: New file.
	* gnu/gcj/xlib/Visual.java: New file.
	* gnu/gcj/xlib/WMSizeHints.java: New file.
	* gnu/gcj/xlib/Window.java: New file.
	* gnu/gcj/xlib/WindowAttributes.java: New file.
	* gnu/gcj/xlib/XAnyEvent.java: New file.
	* gnu/gcj/xlib/XButtonEvent.java: New file.
	* gnu/gcj/xlib/XColor.java: New file.
	* gnu/gcj/xlib/XConfigureEvent.java: New file.
	* gnu/gcj/xlib/XConnectException.java: New file.
	* gnu/gcj/xlib/XEvent.java: New file.
	* gnu/gcj/xlib/XException.java: New file.
	* gnu/gcj/xlib/XExposeEvent.java: New file.
	* gnu/gcj/xlib/XID.java: New file.
	* gnu/gcj/xlib/XImage.java: New file.
	* gnu/gcj/xlib/XUnmapEvent.java: New file.
	* gnu/gcj/xlib/natClip.cc: New file.
	* gnu/gcj/xlib/natColormap.cc: New file.
	* gnu/gcj/xlib/natDisplay.cc: New file.
	* gnu/gcj/xlib/natDrawable.cc: New file.
	* gnu/gcj/xlib/natFont.cc: New file.
	* gnu/gcj/xlib/natGC.cc: New file.
	* gnu/gcj/xlib/natPixmap.cc: New file.
	* gnu/gcj/xlib/natScreen.cc: New file.
	* gnu/gcj/xlib/natVisual.cc: New file.
	* gnu/gcj/xlib/natWMSizeHints.cc: New file.
	* gnu/gcj/xlib/natWindow.cc: New file.
	* gnu/gcj/xlib/natWindowAttributes.cc: New file.
	* gnu/gcj/xlib/natXAnyEvent.cc: New file.
	* gnu/gcj/xlib/natXButtonEvent.cc: New file.
	* gnu/gcj/xlib/natXColor.cc: New file.
	* gnu/gcj/xlib/natXConfigureEvent.cc: New file.
	* gnu/gcj/xlib/natXException.cc: New file.
	* gnu/gcj/xlib/natXExposeEvent.cc: New file.
	* gnu/gcj/xlib/natXImage.cc: New file.
	* gnu/gcj/xlib/natXUnmapEvent.cc: New file.
	* java/awt/EventDispatchThread.java: Start thead on creation.

2000-10-20  Tom Tromey  <tromey@cygnus.com>

	From Arno J. Klaassen:
	* interpret.cc: Include <stdlib.h> for alloca.
	* defineclass.cc: Include <stdlib.h> for alloca.

	* Makefile.in: Rebuilt.
	* Makefile.am: Include deps.mk.
	(GCJCOMPILE): Added -MD, -MT, and -MF.
	($(javao_files)): Don't depend on libgcj.zip.
	(all-recursive): New target.
	(%.lo:%.cc): Do dependency tracking.
	($(nat_headers)): Don't depend on libgcj.zip.
	* configure: Rebuilt.
	* configure.in: Make .d files and deps.mk.

2000-10-13  Bryce McKinlay  <bryce@albatross.co.nz>

	* exception.cc: Don't #include "exception".
	(_Jv_eh_alloc): Call abort (), not terminate (), if malloc fails.

	* Makefile.am (libgcj_la_LDFLAGS): Link in libsupc++.
	* Makefile.in: Updated.

2000-10-11  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/awt/peer/ChoicePeer.java (addItem): Removed.
	* java/awt/peer/ComponentPeer.java (disable): Removed.
	(enable): Removed.
	(hide): Removed.
	(minimumSize): Removed.
	(preferredSize): Removed.
	(reshape): Removed.
	(show): Removed.
	* java/awt/peer/ListPeer.java (addItem): Removed.
	(clear): Removed.
	(minimumSize): Removed.
	(preferredSize): Removed.
	(setMultipleSelections): Removed.
	* java/awt/peer/MenuBarPeer.java (add): Renamed from addMenu.
	(remove): Renamed from removeMenu.
	* java/awt/peer/MenuItemPeer.java (disable): Removed.
	(enable): Removed.
	* java/awt/peer/MenuPeer.java (add): Renamed from addItem.
	(remove): Renamed from removeItem.
	* java/awt/peer/TextAreaPeer.java (insertText): Removed.
	(getMinimumSize): Removed.
	(getPreferredSize): Removed.
	(minimumSize): Removed.
	(preferredSize): Removed.
	(replaceText): Removed.
	* java/awt/peer/TextFieldPeer.java (minimumSize): Removed.
	(preferredSize): Removed.
	(getMinimumSize): Removed.
	(getPreferredSize): Removed.
	(setEchoCharacter): Removed.

2000-10-10  Warren Levy  <warrenl@cygnus.com>

	* gnu/gcj/text/LocaleData_en.java (monetarySeparator): Added.
	* java/sql/Date.java (serialVersionUID): New field.
	* java/sql/Time.java (serialVersionUID): New field.
	* java/sql/Timestamp.java (serialVersionUID): New field.
	* java/text/ChoiceFormat.java (serialVersionUID): New field.
	* java/text/DateFormat.java (getDateTimeInstance (int)): Removed.
	* java/text/DateFormatSymbols.java (serialVersionUID): New field.
	* java/text/DecimalFormat.java (serialVersionOnStream): New field.
	(readObject): New serialization method.
	* java/text/DecimalFormatSymbols.java (monetarySeparator): New field.
	(serialVersionOnStream): New field.
	(readObject): New serialization method.
	(getMonetaryDecimalSeparator): New method.
	(setMonetaryDecimalSeparator): New method.
	* java/text/NumberFormat.java (maxFractionDigits): New field.
	(maxIntegerDigits): New field.
	(minFractionDigits): New field.
	(minIntegerDigits): New field.
	(serialVersionOnStream): New field.
	(serialVersionUID): New field.
	(readObject): New serialization method.
	(writeObject): New serialization method.
	* java/text/SimpleDateFormat.java (defaultCenturyStart): Initialized.
	(serialVersionOnStream): New field.
	(serialVersionUID): New field.
	(readObject): New serialization method.

2000-10-09  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (GCJ): Avoid bogus error message when looking for
	(and not finding) gcj in the build tree.
	* configure: Rebuilt.

2000-10-09  Tom Tromey  <tromey@cygnus.com>

	* configure: Rebuilt.
	* configure.in: Include sys/types.h when checking for socklen_t.
	From Arno J. Klaassen.

2000-10-09  Bryce McKinlay  <bryce@albatross.co.nz>

	* include/jvm.h: Enable __builtin_expect().

	* name-finder.cc (lookup): Don't trust dladdr() if the address is from
	the main program. Fix for PR libgcj/341.

2000-10-07  Tom Tromey  <tromey@cygnus.com>

	* java/util/Properties.java: Merged with Classpath version.

2000-10-05  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/natField.cc (BooleanClass): Don't define.
	* java/lang/reflect/natArray.cc (BooleanClass): Don't define.
	* java/lang/Class.h (Object): Added `class$' field.
	* java/lang/Object.h (Object): Added `class$' field.
	* defineclass.cc (ClassClass): Use `class$' form.
	(ClassObject): Likewise.
	* resolve.cc (ClassObject): Use `class$' form.
	(ObjectClass): Likewise.
	* interpret.cc (ClassError): Removed.
	* java/net/natPlainDatagramSocketImpl.cc (BooleanClass): Use
	`class$' form.
	(IntegerClass): Likewise.
	* java/net/natPlainSocketImpl.cc (BooleanClass): Use `class$'
	form.
	* java/lang/natClassLoader.cc (CloneableClass): Use `class$' form.
	(ObjectClass, ClassClass, VMClassLoaderClass, ClassLoaderClass,
	SerializableClass): Likewise.
	Include Serializable.h, Cloneable.h.
	* java/lang/natSystem.cc (SystemClass): Removed.
	(init_properties): Use `class$' form.
	* java/lang/natObject.cc (CloneableClass): Removed.
	(clone): Use `class$' form.
	* java/lang/natClass.cc (CloneableClass): Use `class$' form.
	(ObjectClass, ErrorClass, ClassClass, MethodClass, FieldClass,
	ConstructorClass): Likewise.
	* java/lang/reflect/natMethod.cc (ObjectClass): Use `class$' form.
	(ClassClass, VoidClass, ByteClass, ShortClass, CharacterClass,
	IntegerClass, LongClass, FloatClass, DoubleClass): Likewise.
	* java/io/natObjectInputStream.cc (ObjectClass): Use `class$'
	form.
	(ClassClass): Likewise.
	* include/jvm.h (StringClass): Use `class$' form.
	* prims.cc (ObjectClass): Removed.
	(_Jv_RunMain): Use `class$' form.
	(_Jv_AllocObject): Likewise.
	* jni.cc (ClassClass): Use `class$' form.
	(ThrowableClass): Likewise.
	(ObjectClass): Likewise.
	(MethodClass): Likewise.
	(ThreadGroupClass): Likewise.
	(NativeThreadClass): Likewise.
	* boehm.cc (ObjectClass): Removed.
	(ClassClass): Removed.
	(_Jv_MarkObj): Use `class$' form.
	* gcj/field.h (JvFieldIsRef): Use `class$' form.
	Include RawData.h.

2000-10-05  Warren Levy  <warrenl@cygnus.com>

	* Makefile.am: Removed java/io/Replaceable.java and
	java/io/Resolvable.java.
	* Makefile.in: Rebuilt.
	* gcj/javaprims.h: Removed Replaceable and Resolvable from java.io
	namespace.
	* java/io/ObjectInputStream.java (processResolution): Fixed typo
	in method name.
	(processResolution): Handle readResolve method via reflection with
	removal of Resolvable interface.
	* java/io/ObjectOutputStream.java (writeObject): Handle writeReplace
	method via reflection with removal of Replaceable interface.
	* java/io/Replaceable.java: Removed.
	* java/io/Resolvable.java: Removed.
	* java/security/Key.java (serialVersionUID): New field.
	* java/security/Provider.java (serialVersionUID): New field.
	* java/security/interfaces/DSAPrivateKey.java (serialVersionUID):
	New field.
	* java/security/interfaces/DSAPublicKey.java (serialVersionUID):
	New field.
	* java/sql/DataTruncation.java (serialVersionUID): New field.
	* java/sql/SQLException.java (serialVersionUID): New field.
	* java/sql/SQLWarning.java (serialVersionUID): New field.
	* java/util/Date.java (serialVersionUID): New field.
	(millis): Made transient.
	(readObject): New method.
	(writeObject): New method.

2000-10-05  Tom Tromey  <tromey@cygnus.com>

	* gnu/gcj/convert/natIconv.cc (init): Terminate buffer.

2000-10-02  Bryce McKinlay  <bryce@albatross.co.nz>

	* prims.cc (_Jv_argv, _Jv_argc): New fields.
	(JvRunMain): Set _Jv_argv and _Jv_argc.
	* java/awt/Component.java: Minor fixes.
	* java/awt/Image.java (UndefinedProperty): Initialize final field.
	* java/awt/Toolkit.java (systemEventQueue): Removed.
	(getDefaultToolkit): Default to "gnu.awt.gtk.GtkToolkit".
	* java/awt/Window.java (getToolkit): Don't call super.
	* java/awt/image/BufferedImage.java: Fix definite assignment errors.
	* java/awt/peer/ContainerPeer.java (insets): Remove unused method.
	* gnu/awt/gtk/GtkComponentPeer.java: New file.
	* gnu/awt/gtk/GtkContainerPeer.java: New file.
	* gnu/awt/gtk/GtkFramePeer.java: New file.
	* gnu/awt/gtk/GtkMainThread.java: New file.
	* gnu/awt/gtk/GtkToolkit.java: New file.
	* gnu/awt/gtk/GtkWindowPeer.java: New file.
	* gnu/awt/gtk/gtkcommon.cc: New file.
	* gnu/awt/gtk/gtkcommon.h: New file.
	* gnu/awt/gtk/natGtkComponentPeer.cc: New file.
	* gnu/awt/gtk/natGtkContainerPeer.cc: New file.
	* gnu/awt/gtk/natGtkFramePeer.cc: New file.
	* gnu/awt/gtk/natGtkMainThread.cc: New file.
	* gnu/awt/gtk/natGtkToolkit.cc: New file.
	* gnu/awt/gtk/natGtkWindowPeer.cc: New file.

2000-09-30  Tom Tromey  <tromey@cygnus.com>

	* posix-threads.cc (_Jv_CondWait): Check to see if we are
	interrupted before modifying the cv's wait set.
	From Corey Minyard.

2000-09-30  Hans Boehm  <boehm@acm.org>
	    Bryce McKinlay  <bryce@albatross.co.nz>

	Implement bitmap descriptor based marking for Boehm GC.

	* configure.in: Define JC1GCSPEC. Set it if boehm-gc is used.
	* configure: Rebuilt.
	* libgcj.spec.in: Pass JC1GCSPEC to jc1.
	* include/jvm.h (struct _Jv_VTable): New field `gc_descr'. New inline
	method get_finalizer().
	(struct _Jv_ArrayVTable): Ditto. Declare method array with
	NUM_OBJECT_METHODS elements instead of NUM_OBJECT_METHODS + 1.
	(_Jv_AllocObj): Add new jclass parameter.
	(_Jv_AllocArray): Ditto.
	(_Jv_BuildGCDescr): New prototype.
	* prims.cc (_Jv_AllocObject): Rename parameter `c' to `klass'. Pass
	`klass' to _Jv_AllocObj. Don't set the new object's vtable. Use
	get_finalizer() instead of direct finalizer vtable offset.
	(_Jv_NewObjectArray): Rename parameter `clas' to `klass'. Pass
	`klass' to _Jv_AllocArray. Don't set the new array's vtable.
	(_Jv_NewPrimArray): Call _Jv_FindArrayClass before _Jv_AllocObj. Pass
	`klass' to _Jv_AllocObj. Don't set the new array's vtable.
	* resolve.cc (METHOD_NOT_THERE, METHOD_INACCESSIBLE): New #defines.
	(_Jv_ResolvePoolEntry): Use METHOD_NOT_THERE and METHOD_INACCESSIBLE.
	(_Jv_DetermineVTableIndex): Ditto.
	(_Jv_PrepareClass): Ditto. Remove offset-by-one adjustments from vtable
	calculations to account for new gc_descr field.
	* boehm.cc: #include gc_gcj.h.
	(obj_kind_x, obj_free_list): `#if 0'-ed away.
	(_Jv_MarkObj): Check that vtable doesn't point to a cleared object.
	New commentary from HB. Mark the classes vtable.
	(_Jv_MarkArray): Check that vtable doesn't point to a cleared object.
	(GC_DEFAULT_DESCR): New #define.
	(_Jv_BuildGCDescr): New function. Use GC_DEFAULT_DESCR, for now.
	(_Jv_AllocObj): New parameter `klass'. Use GC_GCJ_MALLOC ().
	(_Jv_AllocArray): New parameter `klass'. Allocate with GC_MALLOC and
	scan conservativly if size is less than min_heap_addr. Set vtable
	pointer of new object before returning.
	(_Jv_AllocBytes): Use GC_MALLOC_ATOMIC, not GC_GENERIC_MALLOC.
	(_Jv_InitGC): Call GC_init_gcj_malloc(). Don't set up marking and
	allocation for obj_kind_x.
	* nogc.cc (_Jv_BuildGCDescr): New function. Return 0.
	(_Jv_AllocObj): Set vtable on returned object.
	(_Jv_AllocArray): Ditto.
	* java/lang/Class.h (_Jv_NewObjectArray): No longer a friend.
	(_Jv_NewPrimArray): Ditto.
	(_Jv_AllocObj): Declare as a friend.
	(_Jv_AllocArray): Ditto.
	* java/lang/natClassLoader.cc (_Jv_FindArrayClass): Copy gc_descr
	from &ObjectClass into new array class. Remove offset-by-one
	adjustments from `method' size calculations to account for gc_descr
	field.

2000-09-26  Tom Tromey  <tromey@cygnus.com>

	* java/awt/Scrollbar.java (removeAdjustmentListener): Use
	`remove', not `add'.

2000-09-26  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* java/lang/natSystem.cc (file_encoding): Added return statement.

2000-09-14  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.am: Re-work shell commands that exceeded command-line
	length limits.
	* Makefile.in: Rebuilt.

	* java/lang/natRuntime.cc (lt_preloaded_symbols): Define as `extern'.

	* defineclass.cc: Include alloca.h only if HAVE_ALLOCA_H.
	* java/lang/natDouble.cc: Likewise.
	* java/lang/reflect/natMethod.cc: Likewise.
	* interpret.cc: Likewise.  Fix NULLCHECKs that tested a _Jv_word.

2000-09-13  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (LIBDATASTARTSPEC): Use `%s' to search for
	libgcjdata.a.
	(GCJ): Support single-tree builds.  Add -B`pwd`/ and -I$srcdir.
	* acinclude.m4: Arrange for automake to not bring in a new
	libtool.m4 for LT_AC_PROG_GCJ.  AC_SUBST GCJ.
	* Makefile.am: Leave it up to automake to subst GCJ.
	* aclocal.m4, configure, Makefile.in: Rebuilt.

2000-09-13  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/natArray.cc (BooleanClass): New define.
	(get): Ensure Boolean class is initialized.
	* java/lang/reflect/natField.cc (BooleanClass): New define.
	(get): Ensure Boolean class is initialized.

2000-09-13  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/String.java (CASE_INSENSITIVE_ORDER): New static field.
	Initialize with anonymous class.
	(compareToIgnoreCase): New method.

	* java/lang/ThreadGroup.java (had_uncaught_exception): New field.
	(uncaughtException): Set had_uncaught_exception.
	* prims.cc (JvRunMain): Check value of had_uncaught_exception and
	exit with error status if set.
	(_Jv_RunMain): Ditto.

2000-09-12  Alexandre Oliva  <aoliva@redhat.com>

	* configure: Rebuilt with new ../libtool.m4.

2000-09-11  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/Field.java (toString): Don't rely on
	Class.toString.

2000-09-08  Tom Tromey  <tromey@cygnus.com>

	* gnu/gcj/convert/BytesToUnicode.java (getDefaultDecoder): Let
	default decoder use iconv.
	* gnu/gcj/convert/UnicodeToBytes.java (getDefaultEncoder):
	Let default encoder use iconv.
	* configure: Rebuilt.
	* configure.in: Check for nl_langinfo and <langinfo.h>.
	* java/lang/natSystem.cc (file_encoding): New function.
	(DEFAULT_FILE_ENCODING): Define to file_encoding() if possible.

2000-09-10  Alexandre Oliva  <aoliva@redhat.com>

	* acinclude.m4: Simplify the tests for CC and CXX.
	* aclocal.m4, configure: Rebuilt.

	* acinclude.m4: Include libtool macros from the source tree.
	* aclocal.m4, configure: Rebuilt.

2000-09-08  Warren Levy  <warrenl@cygnus.com>

	* java/beans/PropertyChangeEvent.java (serialVersionUID): Added.
	* java/beans/PropertyVetoException.java (serialVersionUID): Added.
	* java/io/File.java (writeObject): Added.
	(readObject): Added.
	(serialVersionUID): Added.
	* java/io/ObjectOutputStream.java (writeObject): Initialized
	fieldsAlreadyWritten before recursion rather than after.
	* java/io/ObjectStreamClass.java (serialVersionUID): Added.
	* java/io/OptionalDataException.java (serialVersionUID): Added.
	(OptionalDataException): Made package private.
	* java/io/SyncFailedException.java (SyncFailedException): Removed
	default constructor to match spec.
	* java/lang/Boolean.java (serialVersionUID): Added.
	* java/lang/Byte.java (serialVersionUID): Added.
	* java/lang/Character.java (serialVersionUID): Added.
	* java/lang/Double.java (serialVersionUID): Added.
	* java/lang/Float.java (serialVersionUID): Added.
	* java/lang/Integer.java (serialVersionUID): Added.
	* java/lang/Long.java (serialVersionUID): Added.
	* java/lang/Number.java (serialVersionUID): Added.
	* java/lang/Short.java (serialVersionUID): Added.
	* java/lang/String.java (serialVersionUID): Added.
	* java/lang/ThreadDeath.java (ThreadDeath): Removed constructor
	to match spec.
	* java/lang/reflect/InvocationTargetException.java
	(serialVersionUID): Added.
	* java/net/URL.java (handler): Made transient.
	(hashCode): Added field for serialization, per spec. and use
	cached value if available.
	(serialVersionUID): Added.
	(URL): Initialize hashCode.
	(set): Adjust hashCode.
	(readObject): New Method to initialize the protocol handler when
	deserializing.
	(writeObject): New method.
	* java/text/BreakIterator.java: Removed 'implements Serializable'.
	* java/text/Collator.java: Removed 'implements Serializable'.
	* java/util/GregorianCalendar.java (serialVersionUID): Added.
	* java/util/Properties.java (serialVersionUID): Added.
	* java/util/Random.java (serialVersionUID): Added.
	(seed): Made private.
	(nextNextGaussian): Made private.
	(haveNextNextGaussian): Made private.
	* java/util/Stack.java (serialVersionUID): Added.
	* java/util/TimeZone.java (serialVersionUID): Added.
	* java/util/Vector.java (serialVersionUID): Added.

2000-09-07  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am (Thread.h): Don't be friends with native threads
	functions.
	* Makefile.in: Rebuilt.
	* java/lang/Thread.java (interrupt_flag): Make package-private.

2000-09-06  Jeff Sturm  <jeff.sturm@appnet.com>

	* include/jvm.h (_Jv_HashCode): Cast object ptr to `unsigned long'
	to avoid long long division.

2000-09-06  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/Constructor.java (toString): Use `getName' for
	parameter types.
	* java/lang/reflect/Method.java (toString): Use `getName' for
	return type.

	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Accept null
	`args' if method takes no parameters.

	Fix for PR java.lang/339:
	* java/lang/natPosixProcess.cc (fail): New function.
	(cleanup): New function.
	(startProcess): Use them.  Create pipe so child can communicate
	exec failure back to parent.

2000-09-05  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/net/natPlainDatagramSocketImpl.cc: Change various `JvThrow'
	calls to `throw'.
	(send): Undo last patch. Remove the label only.
	(mcastGrp): Ditto.
	* java/net/natPlainSocketImpl.cc: Change various `JvThrow' calls to
	`throw'.
	* java/net/natInetAdress.cc: Ditto.

	* java/net/natPlainDatagramSocketImpl.cc (mcastGrp): Fix typo.

2000-09-05  Tom Tromey  <tromey@cygnus.com>

	* doc/cni.sgml: Updated from master copy.

2000-09-05  Bryce McKinlay  <bryce@albatross.co.nz>

	* gnu/gcj/convert/natIconv.cc (read): Remove unused local.
	(write): Ditto.
	* gnu/gcj/runtime/FileDeleter.java (deleteOnExitNow): Check for null
	stack. Synchronize.
	* java/lang/fdlibm.h: #undef __P if previously defined.
	* java/lang/natSystem.cc (currentTimeMillis): Remove unused local.
	* java/net/natPlainDatagramSocketImpl.cc (send): Remove unreachable
	block.
	(mcastGrp): Ditto.

2000-09-04  Tom Tromey  <tromey@cygnus.com>

	* java/util/zip/ZipFile.java (ZipFile): Delete file when opened in
	DELETE mode.

2000-09-04  Anthony Green  <green@redhat.com>

	Fix for PR java.io/203:
	* java/io/File.java (createTempFile): Obey directory argument.
	Use java.io.tmpdir if needed.  Don't leave FileDescripators open.
	* java/lang/natSystem.cc (init_properties): Use TMPDIR environment
	variable to set java.io.tmpdir on non-WIN32 systems.

2000-09-04  Anthony Green  <green@redhat.com>

	* java/io/File.java (deleteOnExit): New method.
	* gnu/gcj/runtime/FileDeleter.java: New class.
	* java/lang/natRuntime.cc (exit): Call
	FileDeleter.deleteOnExitNow()
	* Makefile.am: Add FileDeleter.java.
	* Makefile.in: Rebuilt.

2000-09-02  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (GCJCOMPILE): Use -fclasspath, not the CLASSPATH
	environment variable.

2000-09-01  Andrew Haley  <aph@redhat.com>

	* java/io/StreamTokenizer.java: Don't throw a
	NumberFormatException if a field is numeric as far as the
	StreamTokenizer is concerned but not as far as Double.valueOf() is
	concerned: return a zero instead.

2000-08-30  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (AM_CXXFLAGS): Added -fdollars-in-identifiers.

2000-08-28  Tom Tromey  <tromey@cygnus.com>

	* gnu/gcj/awt/BitMaskExtent.java, gnu/gcj/awt/Buffers.java,
	gnu/gcj/awt/ComponentDataBlitOp.java,
	gnu/gcj/awt/GLightweightPeer.java, java/awt/Graphics2D.java,
	java/awt/RenderingHints.java, java/awt/color/ColorSpace.java,
	java/awt/color/ICC_ColorSpace.java,
	java/awt/color/ICC_Profile.java,
	java/awt/image/BufferedImage.java, java/awt/image/ColorModel.java,
	java/awt/image/ComponentColorModel.java,
	java/awt/image/ComponentSampleModel.java,
	java/awt/image/DataBuffer.java,
	java/awt/image/DataBufferByte.java,
	java/awt/image/DataBufferInt.java,
	java/awt/image/DataBufferUShort.java,
	java/awt/image/DirectColorModel.java,
	java/awt/image/IndexColorModel.java,
	java/awt/image/PackedColorModel.java, java/awt/image/Raster.java,
	java/awt/image/RasterOp.java, java/awt/image/SampleModel.java,
	java/awt/image/SinglePixelPackedSampleModel.java,
	java/awt/image/WritableRaster.java, java/util/zip/ZipFile.java:
	Removed Latin-1 copyright symbols.
	* java/util/zip/ZipFile.java: Indentation fixes.

2000-08-27  Mark Wielaard  <mark@klomp.org>

	* java/util/zip/ZipFile.java: Implement OPEN_DELETE mode, new
	constructor, close can delete the file, finalize calls close.
	* java/util/jar/JarFile.java: Constructor that takes mode now
	calls super.

2000-08-27  Anthony Green  <green@redhat.com>

	* java/util/ArrayList.java, java/util/Timer.java,
	java/util/LinkedList.java, java/util/TimerTask.java,
	java/util/HashMap.java, java/util/AbstractMap.java,
	java/util/SortedMap.java, java/util/AbstractSequentialList.java,
	java/util/SortedSet.java: Imported from GNU Classpath.
	* Makefile.in: Rebuilt.
	* Makefile.am: Added new files.

2000-08-26  Anthony Green  <green@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (java/lang/ClassLoader.h): Make _Jv_RunMain a
	friend.

	* prims.cc: Include ClassLoader.h.
	(_Jv_RunMain): When executing jar files, classpath must be the jar
	file only.  Lose our reference to the system ClassLoader in order
	to get a new one with the correct classpath.
	* java/lang/natSystem.cc (init_properties): When executing a jar
	file, only use the jar file for java.class.path.

	* gnu/gcj/runtime/VMClassLoader.java: Use the canonical file name
	for bytecode archives.

	* gnu/gcj/runtime/FirstThread.java: Handle case where manifest
	exists, but not Main-Class.

2000-08-23  Mark Wielaard  <mark@klomp.org>

	* java/util/zip/InflaterInputStream.java (read(byte[],int,int)):
	return -1 when fill() has no more data for the Inflater.

2000-08-23  Mark Wielaard  <mark@klomp.org>

	* java/io/PrintWriter.java (print(String)): Don't catch IOException,
	write(String) already does.

2000-08-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* gnu/gcj/jni/NativeThread.java (NativeThread): Removed assignment
	to `alive_flag', call `init'.
	(init): New native method.
	* gnu/gcj/jni/natNativeThread.cc (init): New native method
	implementation.

2000-08-21  Mark Wielaard  <mark@klomp.org>

	* Makefile.in: Rebuilt.
	* Makefile.am (java/lang/reflect/Constructor.h): Declare Class as
	a `friend class'.
	(java/lang/reflect/Field.h): Likewise.
	(java/lang/reflect/Method.h): Likewise.
	(gnu/gcj/runtime/VMClassLoader.h): Declare ClassLoader as a
	`friend class'.

2000-08-21  Tom Tromey  <tromey@cygnus.com>

	* java/util/ResourceBundle.java (trySomeGetBundle): Removed
	debugging prints.

Sun Aug 20 21:02:48 2000  Anthony Green  <green@redhat.com>

	* java/lang/natSystem.cc (init_properties): Change sourceware
	reference to sources.redhat.com.

	* include/java-props.h: Add _Jv_Jar_Class_Path.
	* prims.cc: Ditto.  Set it from	`gij -jar file' option.

	* java/lang/natSystem.cc (init_properties): Set java.class.path
	from
	{gij -jar file}:{CLASSPATH variable}:{-Djava.class.path= or .}

	* java/util/PropertyPermission.java: Import from GNU Classpath.
	* Makefile.in: Rebuilt.
	* Makefile.am: Add java/util/PropertyPermission.java.
	* java/lang/System.java: Add setProperty method.

	* gij.cc (main): Add -jar option to execute jar files.
	(help): Describe -jar option.
	* prims.cc (_Jv_RunMain): Add support for jar execution mode.
	* include/jvm.h: Add is_jar argument to _Jv_RunMain.
	* gnu/gcj/runtime/FirstThread.java (main): New method.

	* java/util/jar/Attributes.java: Correct comment spelling.

2000-08-20  Mark Wielaard  <mark@klomp.org>

	* java/util/zip/Adler32.java: Make private variables really private
	* java/util/zip/CRC32.java: Make private variables really private
	* java/util/zip/CheckedInputStream.java: skip() could skip to much
	bytes
	* java/util/zip/InflaterInputStream.java: skip() could skip to
	much bytes
	* java/util/zip/ZipEntry.java: setCompressedSize() didn't check input
	* java/util/zip/ZipFile.java: size() new 1.2 method
	* java/util/zip/ZipInputStream.java: Use createZipEntry not new
	ZipEntry.  since 1.2 available() always returns just 1 or 0 when
	closed

Sun Aug 20 12:33:43 2000  Anthony Green  <green@redhat.com>

	* java/util/jar/JarFile.java: Don't call
	java.util.zip.ZipFile.getEntry twice.  From Mark Wielaard
	<mark@klomp.org>.

Sun Aug 20 09:51:48 2000  Anthony Green  <green@redhat.com>

	* java/net/URLClassLoader.java: Find the JarEntry via the JarFile.
	Read the entire contents of the class file, not just what is
	available().

	* java/net/JarURLConnection.java: getEntry doesn't take any
	arguments.  Return null if element is null.

	* java/util/zip/ZipFile.java (getInputStream): Read the compressed
	size from the archive, not the inflated size.

	* java/util/jar/JarFile.java (getEntry): Don't recurse.  Call
	java.util.zip.ZipFile.getEntry.

	* gij.cc (help): Change sourceware reference to
	sources.redhat.com.

2000-08-19  Tom Tromey  <tromey@cygnus.com>

	* java/util/zip/ZipInputStream.java (createZipEntry):
	Implemented.

Sat Aug 19 11:00:53 2000  Anthony Green  <green@redhat.com>

	* java/util/jar/Attributes.java, java/util/jar/JarEntry.java,
	java/util/jar/JarException.java, java/util/jar/JarFile.java,
	java/util/jar/JarInputStream.java,
	java/util/jar/JarOutputStream.java, java/util/jar/Manifest.java,
	java/util/Set.java, java/util/Map.java, java/util/Bucket.java,
	java/util/AbstractSet.java, java/util/BasicMapEntry.java,
	java/security/cert/CRL.java, java/security/cert/CRLException.java,
	java/security/cert/Certificate.java,
	java/security/cert/CertificateEncodingException.java,
	java/security/cert/CertificateException.java,
	java/security/cert/CertificateExpiredException.java,
	java/security/cert/CertificateFactory.java,
	java/security/cert/CertificateFactorySpi.java,
	java/security/cert/CertificateNotYetValidException.java,
	java/security/cert/CertificateParsingException.java,
	java/security/cert/X509CRL.java,
	java/security/cert/X509CRLEntry.java,
	java/security/cert/X509Certificate.java,
	java/security/cert/X509Extension.java: Imported from Classpath.
	* java/util/Hashtable.java: Imported from Classpath.

	* java/util/zip/ZipInputStream.java: Create stub for
	createZipEntry.

	* gcj/javaprims.h: Updated class list.

	* Makefile.in, gcj/Makefile.in: Rebuilt.
	* Makefile.am (ordinary_java_source_files): Add these new classes.

2000-08-16  Rolf W. Rasmussen  <rolfwr@ii.uib.no>

	* gnu/gcj/awt/ComponentDataBlitOp.java: New file.
	* gnu/gcj/awt/GLightweightPeer.java: New file.
	* java/awt/BorderLayout.java: Implemented all methods.
	* java/awt/Button.java (actionListener, actionCommand): Renamed
	and modifier change.
	(addNotify): Call super.
	(dispatchEventImpl): New method.
	(getListeners): New method.
	(label): Made package-private, not private.
	* java/awt/Canvas.java: Implemented class body.
	* java/awt/Color.java (brighter): New method.
	(darker): New method.
	(hashCode): New method.
	* java/awt/Component.java (visible, enabled, eventMask): Set defaults.
	(getGraphicsConfiguration): Delegate to
	getGraphicsConfigurationImpl().
	(getGraphicsConfigurationImpl): New method.
	(getToolkit): Only return value from peer if not null.
	(isDisplayable): Check with parent.
	(isShowing): No parent implies not showing.
	(getForeground): Check parent property if local is null.
	(getBackground): Likewise.
	(getFont): Likewise.
	(setForeground): Inform peer.
	(setBackground): Likewise
	(setLocale): Invalidate component.
	(getColorModel): Implemented.
	(setLocation): Invalidate, or ignore if no change.
	(setSize): Invalidate, or ignore if no change.
	(setBounds): Invalidate, or ignore if no change.
	(isOpaque): By default, heavyweight implies opaque.
	(isLightweight): Implemented.
	(getMaximumSize): Implemented.
	(doLayout): Implemented, NOP.
	(validate): Implemented, NOP.
	(invalidate): Only propagate to parent if parent was valid.
	(getGraphics): Implemented.
	(getFontMetrics): Implemented.
	(update): Implemented.
	(paintAll): Implemented.
	(repaint): Implemented all repaint methods.
	(print): Implemented.
	(printAll): Implemented.
	(createImage): Implemented.
	(dispatchEvent): Give the peer a chance to handle the event.
	(dispatchEventImpl): Dispatch paint events.
	(enableEvents): Lightweights enable events on parent component.
	(coalesceEvents): Coalesce paint events, and select event type
	using a switch.
	(coalescePaintEvents): New method.
	(processEvent): Fix unfortunate ordering of statements, and call
	correct method for MOUSE_CLICKED.
	(processPaintEvent): New method.
	(addNotify): Allow container to notify children before event
	mask is set in peer.
	(addNotifyContainerChildren): New method.
	(removeNotify): Visibility should not change on removeNotify.
	(paramString): Implemented.
	(list): Implemented two of the list methods.
	* Container (myInsets): Removed, insets are managed by peer.
	(getInsets): Query peer.
	(addImpl): Fix reparenting, enable events for lightweights,
	initialize component array.
	(validate): Call doLayout in validateTree() instead.
	(validateTree): Do nothing if already valid. Call beginValidate(),
	endValidate() on peer. Call validateTree() instead of validate()
	for children that are containers. Mark valid after validation of
	children.
	(setFont): Partial implementation.
	(paint): Implemented.
	(visitChildren): New method.
	(visitChild): New method.
	(update): Implemented.
	(print): Implemented.
	(paintComponents): Implemented.
	(printComponents): Consider translation and clipping.
	(getComponentAt): Ignore invisible children. Return this if no
	child match.
	(addNotify): Call super.
	(addNotifyContainerChildren): New method.
	(paramString): Implemented.
	(list): Implemented.
	* java/awt/EventQueue (invokeAndWait): Get system event queue the
	right way.
	(invokeLater): Likewise.
	(isDispatchThread): Likewise.
	* java/awt/FontMetrics (getLeading): Formula change.
	(getDescent): Consider leading also.
	(getMaxAscent): Default to getAscent().
	(getMaxDescent): Default to getDescent.
	(getMaxAdvance): Return value signifying unknown.
	(charWidth): Both methods implemented.
	(charsWidth): Implemented.
	(bytesWidth): Implemented.
	(getWidths): Implemented.
	* java/awt/Frame.java (NORMAL, ICONIFIED, iconImage, isResizable,
	state): New fields.
	(Frame): Rearragend constuctor chaining to disallow null being
	passed as a graphics configuration.
	(getTitle): Return empty string if null.
	(dispose): Removed.
	(getIconImage): New method.
	(setIconImage): New method.
	(finalize): New method.
	(setMenuBar): Notify peer.
	(isResizable): New method.
	(setResizable): New method.
	(getState): New method.
	(getFont): Removed.
	(remove): Implemented.
	(removeNotify): New method.
	(getFrames): New method.
	* java/awt/Graphics.java: Implemented body of class.
	* java/awt/Graphics2D.java: New file.
	* java/awt/GraphicsConfiguration.java: Enabled part of the API.
	* java/awt/Image.java: Implemented body of class.
	* java/awt/Panel.java (Panel): Call correct super constructor.
	(addNotify): Implemented.
	* java/awt/Rectangle.java (isEmpty): Fixed reversed logic.
	* java/awt/RenderingHints.java: New file.
	* java/awt/Toolkit.java (createComponent): Implemented.
	(getSystemEventQueue): Delegate to getSystemEventQueueImpl().
	* java/awt/Window.java (Window): Two new constructors. Reordered
	constructor chaining.
	(getGraphicsConfigurationImpl): New method.
	(finalize): Call super.
	(addNotify): Call super.
	(pack): Do layout stuff.
	(show): Ensure that peer exists and that component is valid.
	(dispose): Dispose owned children.
	(getOwner): Simplify code, casting null pointers is valid.
	(getGraphicsConfiguration): Ask peer if local value is null.
	* java/awt/event/ActionEvent.java (getActionCommand): Renamed from
	getcmd().
	* java/awt/image/BufferedImage.java: New file.
	* java/awt/image/RasterOp.java: New file.
	* java/awt/peer/ComponentPeer.java (getGraphicsConfiguration):
	More powerful replacement for getColorModel().
	(getColorModel) Removed.
	(setEventMask) New method.
	* Makefile.am: Added new files.
	* Makefile.in: Rebuilt.

2000-08-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* java/lang/natClass.cc (finit_name): Initialized with `finit$'.
	(finit_leg_name): New global.
	(java::lang::Class::getDeclaredMethods): Test for `finit$' or
	`$finit$'. This is a backward compatibility hack.
	(java::lang::Class::_getMethods): Likewise.

2000-08-15  Andrew Haley  <aph@cygnus.com>

	* include/jvm.h (_Jv_HashCode): New hash code.

2000-08-15  Tom Tromey  <tromey@cygnus.com>

	* java/io/ByteArrayOutputStream.java: Merged with Classpath.

Sun Aug 13 19:53:01 2000  Anthony Green  <green@redhat.com>

	* THANKS: More thanks.

2000-08-10  Tom Tromey  <tromey@cygnus.com>

	* java/net/natPlainSocketImpl.cc (bind): Don't go to error case
	when errno not set.
	(connect): Likewise.
	(accept): Likewise.
	(getOption): Likewise.
	* java/net/natPlainDatagramSocketImpl.cc (bind): Don't go to error
	case when errno not set.
	(peek): Likewise.
	(send): Likewise.
	(receive): Likewise.
	(mcastGrp): Likewise.
	(setOption): Likewise.
	(getOption): Likewise.

2000-08-10  Bryce McKinlay  <bryce@albatross.co.nz>
	    John Stracke <francis@ecal.com>

	* gnu/gcj/protocol/http/Connection.java (gotHeaders): Removed.
	(connect): Don't falsely claim HTTP/1.1 compliance. Call
	getHttpHeaders().
	(disconnect): Don't unset connected flag.
	(getHeaderField (String)): Call connect() if not connected.
	(getHeaderField (int)): Ditto.
	(getHeaderFieldKey): Ditto.
	(getHttpHeaders): Don't call connect().
	* java/net/HttpURLConnection.java (instanceFollowRedirects,
	gotResponseVals): New fields.
	(getResponseCode): Call getResponseVals() conditionally.
	(getResponseMessage): Ditto.
	(getResponseVals): Call connect(). Don't throw FileNotFoundException.

2000-08-09  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am: Move beans and applet classes to awt_java_source_files.
	* Makefile.in: Rebuilt.
	* java/awt/Color.java (getTransparency): New method.
	* java/awt/Component.java: Various updates.
	* java/awt/Container.java (removeNotify): Call super.removeNotify()
	after dealing with children.
	* java/awt/Toolkit.java (changeSupport): Renamed from pcsupport.
	* java/awt/Window.java: Various new methods and updates.
	* java/awt/color/ICC_Profile.java (getNumComponents): Cast profileID
	to int for switch.
	* java/awt/event/KeyEvent.java (paramString): Initialize `r'.
	* java/awt/event/WindowEvent.java (paramString): Ditto.
	* java/awt/geom/Dimension2D.java (clone): Wrap super call with
	try/catch block.
	* java/awt/geom/Point2D.java (clone): Ditto.
	* java/awt/geom/RectangularShape.java (clone): Ditto.
	* java/awt/image/ColorModel.java (bits, cspace, transparency, hasAlpha,
	isAlphaPremultiplied): Make package-private, not private.

2000-08-08  Tom Tromey  <tromey@cygnus.com>

	* gnu/gcj/convert/Input_UTF8.java (read): Fixed handling of
	surrogate characters.
	* gnu/gcj/convert/Output_UTF8.java (standardUTF8): Default to
	true.
	(write): Correct handling of surrogate characters.

2000-08-07  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/Method.java (hashCode): Use getName().
	(toString): Likewise.
	* java/lang/reflect/natMethod.cc (getType): Initialize
	exception_types.

	* java/lang/reflect/Method.java (toString): Use Class.getName, not
	Class.toString.
	* java/lang/reflect/Field.java (toString): Correct formatting.
	From Corey Minyard.

	* java/io/PipedInputStream.java (read(byte[],int,int)): Mostly
	rewrote.
	(receive): Streamlined.

2000-08-05  Tom Tromey  <tromey@cygnus.com>

	* java/io/PrintWriter.java: Merged comments from Classpath.
	(printlnUnsynchronized): Removed.
	(println()): Print the separator.
	(println): Call println(), not printlnUnsynchronized.
	(out): Now protected, to match spec.

2000-08-04  Tom Tromey  <tromey@cygnus.com>

	* java/io/StreamTokenizer.java (TT_NONE): Now private.
	(nextToken): Handle backslashed newline.  From Oskar Liljeblad.
	For PR java.io/301.

2000-08-03  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectInputStream.java (readFields): Turn off
	readDataFromBlock while reading via GetField.
	(GetField$1.get(String, Object)): Pass Class of default value to
	getField.
	(getField): Allow for null default values.

	* java/io/ObjectOutputStream.java: Fixed typo in comment.
	(PutField$1.put): Fixed calls of checkType in most of the put
	methods to pass the correct parameter.
	(PutField$1.put(String, Object)): Allow for null value arg.
	(PutField$1.write): Turn off writeDataAsBlocks while writing via
	PutField.

	* java/io/ObjectStreamClass.java (serialPersistentFields): Fixed
	typo in spec'ed field name.
	(getSerialPersistentFields): Changed spelling of method to match
	the correct spelling of the spec'ed field name.

2000-08-03  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added new files.

2000-08-03  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am: Add new AWT stubs.
	* java/awt/Canvas.java: New placeholder class.
	* java/awt/Checkbox.java: Ditto.
	* java/awt/CheckboxMenuItem.java: Ditto.
	* java/awt/Choice.java: Ditto.
	* java/awt/Dialog.java: Ditto.
	* java/awt/FileDialog.java: Ditto.
	* java/awt/List.java: Ditto.
	* java/awt/ScrollPane.java: Ditto.
	* java/awt/TextField.java: Ditto.
	* java/awt/datatransfer/Clipboard.java: Ditto.
	* java/awt/Component.java (treeLock): Now a static String. Add comment.
	* java/awt/MenuItem.java (MenuItem): Add default constructor.
	* java/awt/Toolkit.java: Added all methods from J2SE 1.3 API docs.
	Some commented out. Partially implemented.
	* java/awt/natToolkit.cc: Removed file.

2000-08-03  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am: Make inner class CNI headers depend on libgcj.zip only.
	Fixes "make -j" builds.
	* Makefile.in: Rebuild.

2000-08-02  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (libgcj_la_SOURCES): Added posix.cc.
	* java/net/natPlainSocketImpl.cc: Include posix.h.
	(accept): Use _Jv_select.
	* java/net/natPlainDatagramSocketImpl.cc: Include posix.h.
	(receive): Use _Jv_select.
	* java/io/natFileDescriptorPosix.cc: Include posix.h.
	(available): Use _Jv_select.
	* java/lang/natSystem.cc: Include posix.h.
	(currentTimeMillis): Use _Jv_gettimeofday.
	* include/posix.h: New file.
	* posix.cc: New file.

	* scripts/encodings.pl: New file.
	* Makefile.in: Rebuilt.
	* Makefile.am (convert_source_files): Added IOConverter.java.
	* gnu/gcj/convert/UnicodeToBytes.java (UnicodeToBytes): Extend
	IOConverter.
	(getDefaultDecodingClass): Canonicalize default encoding name.
	(getEncoder): Likewise.
	* gnu/gcj/convert/BytesToUnicode.java (BytesToUnicode): Extend
	IOConverter.
	(getDefaultDecodingClass): Canonicalize default encoding name.
	(getDecoder): Likewise.
	* gnu/gcj/convert/IOConverter.java: New file.

2000-08-02  Bryce McKinlay  <bryce@albatross.co.nz>

	* interpret.cc (_Jv_InterpMethod::continue1): Type of `fun' changed
	to match C declaration in ffi.h.
	* Makefile.am: Add java/awt/Button.java.
	* Makefile.in: Rebuilt.

2000-07-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Type of the
	cast of the second argument to `ffi_raw_call' changed to match
	prototype.

2000-07-26  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* jni.cc (_Jv_JNIMethod::call): Type of the cast of the second
	argument to `ffi_raw_call' changed to match prototype.

2000-07-31  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/awt/Component.java (toString): Implemented.
	* java/awt/Container.java (addImpl): Remove FIXME. Only call
	dispatchEvent() to dispatch the event.
	(removeImpl): Ditto.

2000-07-30  Anthony Green  <green@redhat.com>

	* java/awt/Component.java: Add treeLock object.
	(getTreeLock): Implement.
	(isShowing): Implement.

2000-07-30  Tom Tromey  <tromey@cygnus.com>

	* java/awt/BorderLayout.java (BorderLayout()): New constructor.

	* java/awt/Frame.java (Frame): Pass `null' to Window constructor.

	* java/awt/Window.java (addNotify): Wrote.
	(addWindowListener): Wrote.
	(getLocale): Wrote.
	(getWarningString): Wrote.
	(processEvent): Wrote.
	(processWindowEvent): Wrote.
	(removeWindowListener): Wrote.
	(show): Call validate(), setVisible().
	(toBack): Wrote.
	(toFront): Wrote.

	* java/awt/Toolkit.java (createWindow): Declare.

	* java/awt/Frame.java (addNotify): Use getToolkit to find
	toolkit.

	* java/awt/Component.java (invalidate): Wrote.
	(isValid): Wrote.
	(getToolkit): Wrote.

	* java/awt/Container.java (addContainerListener): Removed
	unnecessary cast.
	(removeContainerListener): Likewise.
	(addImpl): Wrote.
	(add(Component)): Use it.
	(add(String,Component)): Likewise.
	(add(Component,int)): Likewise.
	(add(Component,Object)): Likewise.
	(add(Component,Object,int)): Likewise.
	(doLayout): Wrote.
	(getAlignmentX): Wrote.
	(getAlignmentY): Wrote.
	(getComponentAt): Wrote.
	(getMaximumSize): Wrote.
	(invalidate): Wrote.
	(list(PrintStream,int)): Wrote.
	(list(PrintWriter,int)): Wrote.
	(getMinimumSize): Wrote.
	(getPreferredSize): Wrote.
	(printComponents): Wrote.
	(processContainerEvent): Look at containerListener, not
	componentListener.
	(remove): Added event processing and peer destruction.
	(removeAll): Use remove.
	(removeNotify): Wrote.
	(validate): Wrote.
	(validateTree): Wrote.

	* java/awt/Scrollbar.java (addNotify): Do nothing if peer exists.
	* java/awt/Label.java (addNotify): Do nothing if peer exists.
	* java/awt/Container.java (addNotify): Don't create Container
	peer.
	* java/awt/Button.java (addNotify): Do nothing if peer exists.

2000-07-30  Tom Tromey  <tromey@cygnus.com>

	* java/awt/Container.java (remove(int)): Wrote.
	(remove(Component)): Wrote.
	(add(Component)): Wrote.
	(add(Component,int)): Wrote.
	(removeAll): Wrote.
	(addNotify): Set our own peer.
	* java/awt/Scrollbar.java (listeners): Changed type.
	(Scrollbar): Don't initialize listeners.
	(addNotify): Wrote.
	(setValue): Call setValues.
	(setMinimum): Likewise.
	(setMaxPriority): Likewise.
	(setVisibleAmount): Likewise.
	(setValues): Wrote.
	(setUnitIncrement): Forward to peer.
	(setLineIncrement): Call setUnitIncrement.
	(setPageIncrement): Call setBlockIncrement.
	(setBlockIncrement): Forward to peer.
	(addAdjustmentListener): Rewrote.
	(removeAdjustmentListener): Rewrote.
	(processAdjustmentEvent): Rewrote.
	(paramString): Wrote.
	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added Button.java.
	* java/awt/Button.java: New file.
	* java/awt/Toolkit.java (createLabel): Declare.
	(createButton): Likewise.
	(createScrollbar): Likewise.
	(createContainer): Likewise.
	* java/awt/Label.java (addNotify): Wrote.
	(setAlignment): Call setAlignment in the peer.
	(setText): Call setText in the peer.

2000-07-28  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectOutputStream.java (writeObject): Per spec, call
	NotSerializableException with just the class name.

2000-07-26  Andrew Haley  <aph@cygnus.com>

	* interpret.cc (continue1): Insert missing break into switch.

2000-07-28  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectStreamException.java: Made constructors protected.

2000-07-27  Tom Tromey  <tromey@cygnus.com>

	* java/io/OutputStreamWriter.java (close): Only flush if not
	closed.

2000-07-27  Warren Levy  <warrenl@cygnus.com>

	* mauve-libgcj: Activated serialization tests.
	* gcj/field.h (getModifiers): Mask off unknown flags.
	* gnu/java/security/provider/SHA.java (munch): Reset buffer to 0 so
	spurious bits don't cause discrepancies.
	* java/io/ObjectOutputStream.java: Fixed typo in comment.
	* java/io/ObjectStreamClass.java: Fixed typos in comments.
	(lookup): Applied patch from Brian Jones <cbj@gnu.org> to optimize.
	(hasClassInitializer): Call getDeclaredMethod instead of getMethod.
	* java/lang/Throwable.java (serialVersionUID): New field.
	* java/lang/reflect/Modifier.java (ALL_FLAGS): Preserve STRICT if used.
	* java/lang/reflect/natConstructor.cc (getModifiers): Mask off
	unknown flags.
	* java/lang/reflect/natMethod.cc: Ditto.
	* java/security/Key.java (serialVersionUID): Removed field for now.
	* java/security/interfaces/DSAPrivateKey.java (serialVersionUID): Ditto.
	* java/security/interfaces/DSAPublicKey.java (serialVersionUID): Ditto.

2000-07-22  Tom Tromey  <tromey@cygnus.com>

	* java/awt/geom/RectangularShape.java (getPathIterator):
	Wrote.

2000-07-23  Rolf W. Rasmussen  <rolfwr@ii.uib.no>

	* libjava/java/awt/image/ColorModel.java: New file, replaces the
	stub libjava/java/awt/ColorModel.java which was located in the
	wrong package.
	* libjava/java/awt/image/ComponentColorModel.java: New file.
	* libjava/java/awt/image/ComponentSampleModel.java: New file.
	* libjava/java/awt/image/DataBuffer.java: New file.
	* libjava/java/awt/image/DataBufferByte.java: New file.
	* libjava/java/awt/image/DataBufferInt.java: New file.
	* libjava/java/awt/image/DataBufferUShort.java: New file.
	* libjava/java/awt/image/DirectColorModel.java: New file.
	* libjava/java/awt/image/PackedColorModel.java: New file.
	* libjava/java/awt/image/Raster.java: New file.
	* libjava/java/awt/image/SampleModel.java: New file.
	* libjava/java/awt/image/SinglePixelPackedSampleModel.java: New
	file.
	* libjava/java/awt/image/IndexColorModel.java: New file.
	* libjava/java/awt/image/ImageConsumer.java: Removed import of
	java.awt.ColorModel stub.

	* gnu/gcj/util/BitMaskExtent.java: New file, utility class.
	* gnu/gcj/util/Buffers.java: New file, utility class.

	* libjava/Makefile.am: Updated to include new files.
	* libjava/Makefile.in: Rebuilt.

2000-07-23  Oskar Liljeblad <osk@hem.passagen.se>

	* java/io/StreamTokenizer.java: Merged with classpath.

2000-07-20  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Updated for new files.
	* java/awt/Adjustable.java (HORIZONTAL, VERTICAL): Set values.
	* java/awt/Label.java: New file.
	* java/awt/Rectangle.java (Rectangle): Extend Rectangle2D.
	(createIntersection, createUnion, getBounds2D): New methods.
	* java/awt/Scrollbar.java: New file.
	* java/awt/Shape.java: Updated to 1.2.
	* java/awt/geom/AffineTransform.java: New file.
	* java/awt/geom/Ellipse2D.java: New file.
	* java/awt/geom/NoninvertibleTransformException.java: New file.
	* java/awt/geom/PathIterator.java: New file.
	* java/awt/geom/Rectangle2D.java: New file.
	* java/awt/geom/RectangularShape.java: New file.
	* java/awt/geom/Point2D.java (Double, Float): New inner classes.
	* java/awt/geom/IllegalPathStateException.java: New file.

	* scripts/showval.java: New file.

	* scripts/classes.pl (scan): Print inner classes properly.
	* gcj/javaprims.h: Updated class list.

	* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Only
	initialize String fields for interpreted classes.  Fixes bug
	reported by Hans Boehm.

	* java/io/File.java (getParentFile): New method, from Classpath
	via Oskar Liljeblad.

	* java/util/Vector.java (remove(Object)): Implemented.

2000-07-19  Jeff Sturm  <jeff.sturm@appnet.com>

	* java/lang/natThrowable.cc (fillInStackTrace): Check for
	zero return from backtrace().

2000-07-15  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/awt/EventQueue.java (invokeAndWait): Call postEvent() within
	synchronized block.
	* java/awt/event/InvocationEvent (dispatch): Synchronize on notifier
	before calling notifyAll().

2000-07-13  Bryce McKinlay  <bryce@albatross.co.nz>

	Add missing files from last check-in:
	* java/awt/image/ImageConsumer.java: New file.
	* java/awt/image/ImageProducer.java: New file.
	* java/awt/image/ImageObserver.java: New file.

2000-07-12  Bryce McKinlay  <bryce@albatross.co.nz>

	Merged implementation of java.applet from classpath:
	* java/applet/Applet.java: New file.
	* java/applet/AppletContext.java: New file.
	* java/applet/AppletStub.java: New file.
	* java/applet/AudioClip.java: New file.

	* Makefile.am: Added new java.applet classes.
	* Makefile.in: Rebuilt.

2000-07-12  Bryce McKinlay  <bryce@albatross.co.nz>

	AWT Stuff:
	* java/util/ResourceBundle.java (getLocale): stub.
	* Makefile.am: Added new AWT classes.
	* Makefile.in: Rebuilt.
	* java/awt/AWTEvent.java: Add EVENT_MASK constants, isConsumed,
	constructors. Fix toString() and paramString().
	* java/awt/AWTEventMulticaster.java: New class. Implemented.
	* java/awt/CheckboxGroup.java: New class.
	* java/awt/ColorModel.java: New class.
	* java/awt/Component.java: Added stubs for most methods. Implemented
	event dispatch.
	* java/awt/Container.java: ditto.
	* java/awt/ComponentOrientation.java: New class. Partly implemented.
	* java/awt/Cursor.java: ditto.
	* java/awt/Event.java: Fix paramString().
	* java/awt/EventQueue.java: New class. Implemented.
	* java/awt/Font.java: Added additional stub methods. Implemented
	toString().
	* java/awt/FontMetrics.java: New class. Stubbed.
	* java/awt/GraphicsConfiguration.java: New class. Complete, except for
	Java2D parts.
	* java/awt/Insets.java: New class. Implemented.
	* java/awt/Menu.java: Add new methods. Partially implemented.
	* java/awt/MenuItem.java: Add new methods and fields. Partially
	implemented.
	* java/awt/MenuShortcut.java: New class. Implemented.
	* java/awt/Panel.java: New class. Placeholder.
	* java/awt/PopupMenu.java: New class. Stubbed.
	* java/awt/Rectangle.java: New class. Implemented.
	* java/awt/Toolkit.java: Added getSystemEventQueue() stub.
	* java/awt/event/ActionEvent.java: Implement paramString().
	* java/awt/event/AdjustmentEvent.java: Implement paramString().
	* java/awt/event/ComponentEvent.java: Implement paramString().
	* java/awt/event/ContainerEvent.java: Implement paramString().
	* java/awt/event/FocusEvent.java: Implement paramString().
	* java/awt/event/HierarchyBoundsAdapter.java: New class.
	* java/awt/event/HierarchyBoundsListener.java: New class.
	* java/awt/event/HierarchyEvent.java: New class.
	* java/awt/event/HierarchyListener.java: New class.
	* java/awt/event/InputMethodEvent.java: Implement paramString().
	* java/awt/event/InvocationEvent.java: Implement paramString(). Throw
	exception if !catchExceptions.
	* java/awt/event/ItemEvent.java: Implement paramString().
	* java/awt/event/KeyEvent.java: Implement paramString().
	* java/awt/event/MouseEvent.java: Implement paramString().
	* java/awt/event/PaintEvent.java: Implement paramString().
	* java/awt/event/TextEvent.java: Implement paramString().
	* java/awt/event/WindowEvent.java: Implement paramString().

	AWT Peer interfaces:
	* java/awt/peer/ButtonPeer.java: New file.
	* java/awt/peer/ListPeer.java: New file.
	* java/awt/peer/CanvasPeer.java: New file.
	* java/awt/peer/MenuBarPeer.java: New file.
	* java/awt/peer/CheckboxMenuItemPeer.java: New file.
	* java/awt/peer/MenuComponentPeer.java: New file.
	* java/awt/peer/CheckboxPeer.java: New file.
	* java/awt/peer/MenuItemPeer.java: New file.
	* java/awt/peer/ChoicePeer.java: New file.
	* java/awt/peer/MenuPeer.java: New file.
	* java/awt/peer/ComponentPeer.java: Implemented.
	* java/awt/peer/PanelPeer.java: New file.
	* java/awt/peer/ContainerPeer.java: Implemented.
	* java/awt/peer/PopupMenuPeer.java: New file.
	* java/awt/peer/DialogPeer.java: New file.
	* java/awt/peer/ScrollPanePeer.java: New file.
	* java/awt/peer/FileDialogPeer.java: New file.
	* java/awt/peer/ScrollbarPeer.java: New file.
	* java/awt/peer/FontPeer.java: New file.
	* java/awt/peer/TextAreaPeer.java: New file.
	* java/awt/peer/FramePeer.java: Implemented.
	* java/awt/peer/TextComponentPeer.java: New file.
	* java/awt/peer/LabelPeer.java: New file.
	* java/awt/peer/TextFieldPeer.java: New file.
	* java/awt/peer/LightweightPeer.java: New file.
	* java/awt/peer/WindowPeer.java: Implemented.

2000-07-06  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass):
	Initialize static final String fields.

2000-07-03  Tom Tromey  <tromey@cygnus.com>

	* java/io/PrintWriter.java (print): Call write(String), not
	print(String).  See PR libgcj/277.
	(print(String)): Use write, not out.write.

2000-06-30  Tom Tromey  <tromey@cygnus.com>

	* include/jni.h: Include <gcj/array.h>.  Fixes PR libgcj/270.

2000-06-27  Andrew Haley  <aph@cygnus.com>

       * java/io/File.java (createTempFile): Close the FileDescriptor
       used to create a temp file.  Fixes some of PR 203.
       * java/io/natFileDescriptorPosix.cc (open): Call garbage
       collection if we run out of file handles.

2000-06-28  Warren Levy  <warrenl@cygnus.com>

	* gnu/java/security/provider/Gnu.java: New file.
	* gnu/java/security/provider/SHA.java: New file.
	* gnu/java/security/provider/SHA1PRNG.java: New file.
	* Makefile.am: Added the above files.
	* Makefile.in: Rebuilt.

	* java/io/ObjectStreamClass.java (setUID): Use Gnu SHA instead of SHS.

2000-06-28  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/ThreadGroup.java: Added synchronized flag to many methods.
	(destroyed_flag): Removed.
	(isDestroyed, removeGroup, removeThread): Test for parent == null.
	(activeCount): Added spec note.

2000-06-27  Warren Levy  <warrenl@cygnus.com>

	* java/security/Principal.java: New file.
	* Makefile.am: Added Principal.java.
	* Makefile.in: Rebuilt.

2000-06-27  Rolf W. Rasmussen  <rolfwr@ii.uib.no>

	* java/awt/event/MouseEvent.java: Fixed coordinate space
	confusion.

2000-06-27  Tom Tromey  <tromey@cygnus.com>

	* java/io/PushbackInputStream.java (read): If there are characters
	in the buffer, don't also call super.read().
	* java/io/PushbackReader.java (read): If there are characters in
	the buffer, don't also call super.read().

	* java/lang/Double.java (valueOf): Call parseDouble().

2000-06-26  Warren Levy  <warrenl@cygnus.com>

	* java/beans/PropertyChangeEvent.java (oldVal): Renamed to oldValue.
	(newVal): Renamed to newValue.
	* java/beans/PropertyVetoException.java (changeEvent): Renamed to evt.
	* java/beans/beancontext/BeanContextServiceRevokedEvent.java
	(revokeNow): Renamed to invalidateRefs.
	* java/io/OptionalDataException.java: Updated FIXME.
	(eof): New placeholder field.
	(length); Ditto.
	* java/io/WriteAbortedException.java (message): Made transient.
	* java/lang/ClassNotFoundException.java: Updated comments for JDK 1.2.
	* java/lang/Throwable.java (stackTrace): Made transient.
	* java/net/InetAddress.java: Made Serializable.
	* java/security/KeyPair.java: Made Serializable.
	* java/security/Provider.java: Replaced with Classpath version that
	implements serialization and proper methods.
	* java/text/ChoiceFormat.java (strings): Renamed to choiceFormats.
	(limits): Renamed to choiceLimits.

2000-06-24  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natDouble.cc (parseDouble): Renamed from
	doubleValueOf.
	* java/lang/Double.java (parseDouble): Renamed from
	doubleValueOf.  Now public.

2000-06-23  Andrew Haley  <aph@cygnus.com>

	* java/lang/ieeefp.h: Handle ia64, fr30, mcore.
	* java/lang/natThrowable.cc: On IA-64, use __ia64_backtrace.

2000-06-23  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/natMethod.cc: Include <alloca.h>.
	* java/lang/natDouble.cc: Always include <alloca.h>.
	Fix for PR libgcj/267.

2000-06-21  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/ThreadGroup.java (add(Thread)): Rename to addThread() to
	comply with classpath VM spec.
	(add(Group)): Rename to addGroup().
	* java/lang/Thread.java (Thread): Use addThread().
	* java/lang/natThread.cc (finish_): Use removeThread().

2000-06-20  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/ThreadGroup.java: Merged with classpath.
	* prims.cc (_Jv_RunMain): Don't use `main_group'.
	* gnu/gcj/runtime/FirstThread.java: Remove ThreadGroup constructor
	argument.
	* java/lang/Thread.java (Thread): Bootstrap initial thread from
	ThreadGroup.root if Thread.currentThread is null. Honour the
	ThreadGroup's max priority setting.

2000-06-18  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natClass.cc (forName): Removed dead code.  Initialize
	returned class.  For PR gcj/260.

2000-06-16  Tom Tromey  <tromey@cygnus.com>

	Fix for PR libgcj/261:
	* include/win32-signal.h (MAKE_THROW_FRAME): Added `_exception'
	argument.
	* include/sparc-signal.h (MAKE_THROW_FRAME): Added `_exception'
	argument.  (This is a patch from long ago that somehow went
	missing.)

2000-06-15  Tom Tromey  <tromey@cygnus.com>

	* gnu/gcj/convert/natIconv.cc (iconv_adapter): New function.
	(read): Use it.
	(write): Likewise.

2000-06-15  Bryce McKinlay  <bryce@albatross.co.nz>

	Fix for PR java.lang/258:
	* prims.cc (_Jv_PrimClass): Set state of primitive class to
	JV_STATE_DONE, to prevent accidental initialization.
	* java/lang/natClass.cc (_Jv_IsAssignableFrom): Call
	_Jv_InterfaceAssignableFrom if target is an interface and source is an
	interface or an abstract class.	Remove redundant initializeClass calls.
	Remove duplicate if_idt test.
	(_Jv_InterfaceAssignableFrom): New function.
	* java/lang/Class.h (_Jv_InterfaceAssignableFrom): Prototype.

2000-05-31  Tom Tromey  <tromey@cygnus.com>

	* prims.cc (DECLARE_PRIM_TYPE): Define a vtable as well.
	(_Jv_PrimClass): Set `methods' by calling _Jv_FindArrayClass.
	* include/jvm.h (struct _Jv_ArrayVTable): Declare.
	(NUM_OBJECT_METHODS): New define.
	* java/lang/natClassLoader.cc (_Jv_FindArrayClass): Added
	`array_vtable' parameter.  Added assertion.
	* java/lang/Class.h (_Jv_FindArrayClass): Added `array_vtable'
	parameter.

2000-05-31  Bryce McKinlay  <bryce@albatross.co.nz>

	* gcj/cni.h: Include <string.h>.
	* defineclass.cc: Include <alloca.h>.
	* interpret.cc: Ditto.
	* gij.cc: Include <stdlib.h>.

2000-05-30  Tom Tromey  <tromey@cygnus.com>

	* include/name-finder.h: Include <sys/wait.h>.
	(_Jv_name_finder::pid): Now of type `pid_t'.
	(_Jv_name_finder::~_Jv_name_finder): Call waitpid().
	* java/lang/Throwable.java (CPlusPlusDemangler.close): Call
	`proc.waitFor()'.

2000-05-24  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectOutputStream.java (writeObject): Use component type
	when writing arrays.
	Fixed typo.

2000-05-20  Bryce McKinlay  <bryce@albatross.co.nz>

	Fix for PR libgcj/226:
	* java/lang/Class.h (_Jv_InitClass): Don't call __builtin_expect,
	since this is an installed header.

	Fix for PR libgcj/228:
	* java/util/zip/ZipFile (getInputStream): Create inflater with
	nowrapper option.

	* java/util/zip/natInflater.cc (inflate): Throw zlib's error message
	with DataFormatException.

2000-05-20  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (hack1): Removed.
	(awto_files): Likewise.
	(libgcjawt_la_SOURCES): Likewise.
	(EXTRA_libgcjawt_la_SOURCES): Likewise.
	(libgcjawt_la_DEPENDENCIES): Likewise.
	(libgcjawt_la_LIBADD): Likewise.
	(libgcjawt_la_LDFLAGS): Likewise.
	(libgcjawt_la_LINK): Likewise.
	($(awt_java_source_files:.java=.class)): Likewise.
	(libgcj.zip): Don't depend on AWT files.
	(MOSTLYCLEANFILES): Don't include AWT files.
	($(awto_files)): Removed.
	(nat_headers): Removed AWT files.
	(cond_awt_java_source_files): Removed.
	(ordinary_java_source_files): Added awt_java_source_files.
	* libgcj.spec.in (*lib): Removed -lgcjawt.
	* configure: Rebuilt.
	* configure.in: Removed --enable-java-awt option.

2000-05-20  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/zip/ZipEntry.java: Implement Cloneable, per JDK1.2 docs.
	(ZipEntry): Copy the `name' field.
	(clone): Implement JDK1.2 method.
	(setCompressedSize): ditto.
	(hashCode): ditto.

2000-05-19  Tom Tromey  <tromey@cygnus.com>

	* java/io/BufferedWriter.java: Merged with Classpath.
	* java/io/BufferedOutputStream.java: Merged with Classpath.

2000-05-16  Andrew Haley  <aph@cygnus.com>

	* sysdep/ia64.c (ia64_backtrace_helper): Pass NULL pointer to
	build_ia64_frame_state.
	* sysdep/ia64-frame.h (build_ia64_frame_state): Match with
	defintion in gcc.

2000-05-15  Warren Levy  <warrenl@cygnus.com>

	* gnu/gcj/beans/BeanInfoEmbryo.java: Removed.
	* gnu/gcj/beans/EmptyBeanInfo.java: Removed.
	* gnu/gcj/beans/ExplicitBeanInfo.java: Removed.
	* gnu/gcj/beans/IntrospectionIncubator.java: Removed.
	* gnu/gcj/beans/editors/ColorEditor.java: Removed.
	* gnu/gcj/beans/editors/FontEditor.java: Removed.
	* gnu/gcj/beans/editors/NativeBooleanEditor.java: Removed.
	* gnu/gcj/beans/editors/NativeByteEditor.java: Removed.
	* gnu/gcj/beans/editors/NativeDoubleEditor.java: Removed.
	* gnu/gcj/beans/editors/NativeFloatEditor.java: Removed.
	* gnu/gcj/beans/editors/NativeIntEditor.java: Removed.
	* gnu/gcj/beans/editors/NativeLongEditor.java: Removed.
	* gnu/gcj/beans/editors/NativeShortEditor.java: Removed.
	* gnu/gcj/beans/editors/StringEditor.java: Removed.
	* gnu/gcj/beans/info/ComponentBeanInfo.java: Removed.
	* gnu/gcj/io/ClassLoaderObjectInputStream.java: Removed.
	* gnu/gcj/io/NullOutputStream.java: Removed.
	* gnu/gcj/io/ObjectIdentityWrapper.java: Removed.
	* gnu/gcj/lang/ArrayHelper.java: Removed.
	* gnu/gcj/lang/ClassHelper.java: Removed.
	* gnu/gcj/lang/reflect/TypeSignature.java: Removed.

	* gnu/java/beans/BeanInfoEmbryo.java: New file.
	* gnu/java/beans/EmptyBeanInfo.java: New file.
	* gnu/java/beans/ExplicitBeanInfo.java: New file.
	* gnu/java/beans/IntrospectionIncubator.java: New file.
	* gnu/java/beans/editors/ColorEditor.java: New file.
	* gnu/java/beans/editors/FontEditor.java: New file.
	* gnu/java/beans/editors/NativeBooleanEditor.java: New file.
	* gnu/java/beans/editors/NativeByteEditor.java: New file.
	* gnu/java/beans/editors/NativeDoubleEditor.java: New file.
	* gnu/java/beans/editors/NativeFloatEditor.java: New file.
	* gnu/java/beans/editors/NativeIntEditor.java: New file.
	* gnu/java/beans/editors/NativeLongEditor.java: New file.
	* gnu/java/beans/editors/NativeShortEditor.java: New file.
	* gnu/java/beans/editors/StringEditor.java: New file.
	* gnu/java/beans/info/ComponentBeanInfo.java: New file.
	* gnu/java/io/ClassLoaderObjectInputStream.java: New file.
	* gnu/java/io/NullOutputStream.java: New file.
	* gnu/java/io/ObjectIdentityWrapper.java: New file.
	* gnu/java/lang/ArrayHelper.java: New file.
	* gnu/java/lang/ClassHelper.java: New file.
	* gnu/java/lang/reflect/TypeSignature.java: New file.

	* Makefile.am: Updated for moving Classpath files from gnu/gcj
	namespace back to the original Classpath gnu/java namespace.
	* Makefile.in: Rebuilt.

	* java/beans/Beans.java: Namespace change.
	* java/beans/EventSetDescriptor.java: Namespace change.
	* java/beans/Introspector.java: Namespace change.
	* java/beans/PropertyEditorManager.java: Namespace change.
	* java/io/ObjectInputStream.java: Namespace change.
	* java/io/ObjectOutputStream.java: Namespace change.
	* java/io/ObjectStreamClass.java: Namespace change.
	* java/io/ObjectStreamField.java: Namespace change.

2000-04-21  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectInputStream.java: Reverted workarounds of 2000-04-13
	now that compiler patch is available.
	Removed unneeded System.loadLibrary.
	* java/io/ObjectOutputStream.java: Removed unneeded System.loadLibrary.
	* java/io/ObjectStreamClass.java: Removed unneeded System.loadLibrary.

2000-04-19  Andrew Haley  <aph@cygnus.com>

	* java/lang/natClass.cc (_Jv_IsAssignableFrom): Make sure source
	and target classes have been initialized.

2000-04-19  Andrew Haley  <aph@cygnus.com>

	* java/lang/String.java: implement Serializable, Comparable.
	(compareTo (Object)): New method.

2000-04-19  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectStreamClass.java (getDefinedSUID): Use getDeclaredField
	instead of getField to retrieve non-public field.
	(getSerialPersistantFields): Ditto.

2000-04-18  Warren Levy  <warrenl@cygnus.com>

	* mauve-libgcj: Turned off object serialization tests temporarily
	due to compiler error.

2000-04-17  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectInputStream.java (DEBUG): Disabled unused method
	to avoid build problem.
	(DEBUGln): Ditto.
	* mauve-libgcj: Turned on object serialization tests.

2000-04-17  Tom Tromey  <tromey@cygnus.com>

	* libgcj.spec.in (*lib): Added -lgcjawt.

2000-04-17  Andrew Haley  <aph@cygnus.com>

	* Makefile.am: Add new files:
	gnu/gcj/io/SimpleSHSStream.java, gnu/gcj/io/natSimpleSHSStream.cc,
	gnu/gcj/io/shs.cc.
	* Makefile.in: Rebuilt.

	* java/lang/natClass.cc (_Jv_IsAssignableFrom): Check for an
	interface that has no implementations.
	Check for an attempt to assign an abstract class to an interface.

	* java/io/ObjectStreamClass.java (setUID): Use a SimpleSHSStream
	if we fail to find MessageDigest.getInstance ("SHA").

	* gnu/gcj/io/SimpleSHSStream.java: New file.
	* gnu/gcj/io/natSimpleSHSStream.java: New file.
	* gnu/gcj/io/shs.cc: New file.
	* gnu/gcj/io/shs.h: new file.

	* java/lang/natClassLoader.cc (_Jv_FindArrayClass): Make arrays
	serializable.

	* gnu/gcj/lang/reflect/TypeSignature.java: Don't remove
	punctuation from the classname of an array element.

	* gcj/javaprims.h: Add SimpleDigestStream.

2000-04-17  Andrew Haley  <aph@cygnus.com>

	* java/lang/natClass.cc (getPrivateField): Make recursive calls
	to getPrivateField for superclasses.

2000-04-14  Andrew Haley  <aph@cygnus.com>

	* Makefile.am: Add new files:
	java/io/ObjectOutputStream$PutField.h,
	java/io/ObjectInputStream$GetField.h,java/io/natObjectInputStream.cc,
	java/io/natObjectOutputStream.cc
	* Makefile.in: Rebuilt.
	* gcj/Makefile.in: Rebuilt.
	* include/Makefile.in: Rebuilt.
	* java/lang/Class.h (getPrivateField): New method.
	(getPrivateMethod): Ditto.
	Make java::io::ObjectOutputStream, java::io::ObjectInputStream,
	and java::io::ObjectStreamClass our friends.
	* java/lang/natClass.cc (getPrivateField): New method.
	(getPrivateMethod): Ditto.
	(_Jv_IsAssignableFrom): Return false for Interface with no IDT.
	* gcj/javaprims.h: Add serialization classes.
	* java/io/ObjectInputStream.java (setBooleanField): Rewrite in Java.
	(setByteField): Ditto.
	(setCharField): Ditto.
	(setDoubleField): Ditto.
	(setFloatField): Ditto.
	(setIntField): Ditto.
	(setLongField): Ditto.
	(setShortField): Ditto.
	(setObjectField): Ditto.
	* java/io/ObjectOutputStream.java: (getBooleanField): Rewrite in
	Java.
	(getByteField): Ditto.
	(getCharField): Ditto.
	(getDoubleField): Ditto.
	(getFloatField): Ditto.
	(getIntField): Ditto.
	(getLongField): Ditto.
	(getShortField): Ditto.
	(getObjectField): Ditto.
	* java/io/ObjectStreamClass.java (hasClassInitializer): Rewrite in
	Java.
	(getSerialPersistantFields): Ditto.
	(getDefinedSUID): Ditto.
	* java/io/natObjectOutputStream.cc: New file.
	* java/io/natObjectInputStream.cc: New file.

2000-04-13  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectInputStream.java: Temporary workarounds for compiler
	problems.  Revert to previous version to reproduce and when fixed.

2000-04-13  Warren Levy  <warrenl@cygnus.com>

	* gnu/gcj/io/ClassLoaderObjectInputStream.java: New file.
	* gnu/gcj/io/NullOutputStream.java: New file.
	* gnu/gcj/lang/reflect/TypeSignature.java: New file.
	* java/io/BlockDataException.java: New file.
	* java/io/Externalizable.java: New file.
	* java/io/InvalidClassException.java: New file.
	* java/io/InvalidObjectException.java: New file.
	* java/io/NotActiveException.java: New file.
	* java/io/NotSerializableException.java: New file.
	* java/io/ObjectInput.java: New file.
	* java/io/ObjectInputStream.java: New file.
	* java/io/ObjectInputValidation.java: New file.
	* java/io/ObjectOutput.java: New file.
	* java/io/ObjectOutputStream.java: New file.
	* java/io/ObjectStreamClass.java: New file.
	* java/io/ObjectStreamConstants.java: New file.
	* java/io/ObjectStreamField.java: New file.
	* java/io/Replaceable.java: New file.
	* java/io/Resolvable.java: New file.
	* java/io/SerializablePermission.java: New file.
	* java/io/WriteAbortedException.java: New file.
	* java/security/BasicPermission.java: New file.
	* java/security/DigestOutputStream.java: New file.
	* java/security/Guard.java: New file.
	* java/security/Permission.java: New file.
	* java/security/PermissionCollection.java: New file.
	* Makefile.am: Added above files.
	* Makefile.in: Rebuilt.

	* java/beans/Beans.java (instantiate): Activated serialization code.
	* java/lang/SecurityManager.java (checkPermission): New method.

2000-04-12  Warren Levy  <warrenl@cygnus.com>

	* gnu/gcj/beans/BeanInfoEmbryo.java: New file.
	* gnu/gcj/beans/EmptyBeanInfo.java: New file.
	* gnu/gcj/beans/ExplicitBeanInfo.java: New file.
	* gnu/gcj/beans/IntrospectionIncubator.java: New file.
	* gnu/gcj/beans/editors/ColorEditor.java: New file.
	* gnu/gcj/beans/editors/FontEditor.java: New file.
	* gnu/gcj/beans/editors/NativeBooleanEditor.java: New file.
	* gnu/gcj/beans/editors/NativeByteEditor.java: New file.
	* gnu/gcj/beans/editors/NativeDoubleEditor.java: New file.
	* gnu/gcj/beans/editors/NativeFloatEditor.java: New file.
	* gnu/gcj/beans/editors/NativeIntEditor.java: New file.
	* gnu/gcj/beans/editors/NativeLongEditor.java: New file.
	* gnu/gcj/beans/editors/NativeShortEditor.java: New file.
	* gnu/gcj/beans/editors/StringEditor.java: New file.
	* gnu/gcj/beans/info/ComponentBeanInfo.java: New file.
	* gnu/gcj/io/ObjectIdentityWrapper.java: New file.
	* gnu/gcj/lang/ArrayHelper.java: New file.
	* gnu/gcj/lang/ClassHelper.java: New file.
	* java/beans/BeanDescriptor.java: New file.
	* java/beans/BeanInfo.java: New file.
	* java/beans/Beans.java: New file.
	* java/beans/Customizer.java: New file.
	* java/beans/DesignMode.java: New file.
	* java/beans/EventSetDescriptor.java: New file.
	* java/beans/FeatureDescriptor.java: New file.
	* java/beans/IndexedPropertyDescriptor.java: New file.
	* java/beans/IntrospectionException.java: New file.
	* java/beans/Introspector.java: New file.
	* java/beans/MethodDescriptor.java: New file.
	* java/beans/ParameterDescriptor.java: New file.
	* java/beans/PropertyChangeEvent.java: New file.
	* java/beans/PropertyChangeListener.java: New file.
	* java/beans/PropertyChangeSupport.java: New file.
	* java/beans/PropertyDescriptor.java: New file.
	* java/beans/PropertyEditor.java: New file.
	* java/beans/PropertyEditorManager.java: New file.
	* java/beans/PropertyEditorSupport.java: New file.
	* java/beans/PropertyVetoException.java: New file.
	* java/beans/SimpleBeanInfo.java: New file.
	* java/beans/VetoableChangeListener.java: New file.
	* java/beans/VetoableChangeSupport.java: New file.
	* java/beans/Visibility.java: New file.
	* java/beans/beancontext/BeanContext.java: New file.
	* java/beans/beancontext/BeanContextChild.java: New file.
	* java/beans/beancontext/BeanContextChildComponentProxy.java: New file.
	* java/beans/beancontext/BeanContextChildSupport.java: New file.
	* java/beans/beancontext/BeanContextContainerProxy.java: New file.
	* java/beans/beancontext/BeanContextEvent.java: New file.
	* java/beans/beancontext/BeanContextMembershipEvent.java: New file.
	* java/beans/beancontext/BeanContextMembershipListener.java: New file.
	* java/beans/beancontext/BeanContextProxy.java: New file.
	* java/beans/beancontext/BeanContextServiceAvailableEvent.java:
	New file.
	* java/beans/beancontext/BeanContextServiceProvider.java: New file.
	* java/beans/beancontext/BeanContextServiceProviderBeanInfo.java:
	New file.
	* java/beans/beancontext/BeanContextServiceRevokedEvent.java: New file.
	* java/beans/beancontext/BeanContextServiceRevokedListener.java:
	New file.
	* java/beans/beancontext/BeanContextServices.java: New file.
	* java/beans/beancontext/BeanContextServicesListener.java: New file.
	* java/util/AbstractCollection.java: New file.
	* java/util/AbstractList.java: New file.
	* java/util/Arrays.java: New file.
	* Makefile.am: Added above files.
	* Makefile.in: Rebuilt.

2000-04-11  Warren Levy  <warrenl@cygnus.com>

	* java/awt/AWTError.java: New file.
	* java/awt/AWTEvent.java: New file.
	* java/awt/AWTException.java: New file.
	* java/awt/ActiveEvent.java: New file.
	* java/awt/Adjustable.java: New file.
	* java/awt/BorderLayout.java: New file.
	* java/awt/Color.java: New file.
	* java/awt/Component.java: New file.
	* java/awt/Container.java: New file.
	* java/awt/Dimension.java: New file.
	* java/awt/Event.java: New file.
	* java/awt/Font.java: New file.
	* java/awt/Frame.java: New file.
	* java/awt/Graphics.java: New file.
	* java/awt/IllegalComponentStateException.java: New file.
	* java/awt/Image.java: New file.
	* java/awt/ItemSelectable.java: New file.
	* java/awt/LayoutManager.java: New file.
	* java/awt/LayoutManager2.java: New file.
	* java/awt/Menu.java: New file.
	* java/awt/MenuBar.java: New file.
	* java/awt/MenuComponent.java: New file.
	* java/awt/MenuContainer.java: New file.
	* java/awt/MenuItem.java: New file.
	* java/awt/Paint.java: New file.
	* java/awt/PaintContext.java: New file.
	* java/awt/Point.java: New file.
	* java/awt/Rectangle.java: New file.
	* java/awt/Shape.java: New file.
	* java/awt/TextArea.java: New file.
	* java/awt/TextComponent.java: New file.
	* java/awt/Toolkit.java: New file.
	* java/awt/Transparency.java: New file.
	* java/awt/Window.java: New file.
	* java/awt/natToolkit.cc: New file.
	* java/awt/event/AWTEventListener.java: New file.
	* java/awt/event/ActionEvent.java: New file.
	* java/awt/event/ActionListener.java: New file.
	* java/awt/event/AdjustmentEvent.java: New file.
	* java/awt/event/AdjustmentListener.java: New file.
	* java/awt/event/ComponentAdapter.java: New file.
	* java/awt/event/ComponentEvent.java: New file.
	* java/awt/event/ComponentListener.java: New file.
	* java/awt/event/ContainerAdapter.java: New file.
	* java/awt/event/ContainerEvent.java: New file.
	* java/awt/event/ContainerListener.java: New file.
	* java/awt/event/FocusAdapter.java: New file.
	* java/awt/event/FocusEvent.java: New file.
	* java/awt/event/FocusListener.java: New file.
	* java/awt/event/InputEvent.java: New file.
	* java/awt/event/InputMethodEvent.java: New file.
	* java/awt/event/InputMethodListener.java: New file.
	* java/awt/event/InvocationEvent.java: New file.
	* java/awt/event/ItemEvent.java: New file.
	* java/awt/event/ItemListener.java: New file.
	* java/awt/event/KeyAdapter.java: New file.
	* java/awt/event/KeyEvent.java: New file.
	* java/awt/event/KeyListener.java: New file.
	* java/awt/event/MouseAdapter.java: New file.
	* java/awt/event/MouseEvent.java: New file.
	* java/awt/event/MouseListener.java: New file.
	* java/awt/event/MouseMotionAdapter.java: New file.
	* java/awt/event/MouseMotionListener.java: New file.
	* java/awt/event/PaintEvent.java: New file.
	* java/awt/event/TextEvent.java: New file.
	* java/awt/event/TextListener.java: New file.
	* java/awt/event/WindowAdapter.java: New file.
	* java/awt/event/WindowEvent.java: New file.
	* java/awt/event/WindowListener.java: New file.
	* java/awt/geom/Dimension2D.java: New file.
	* java/awt/geom/Point2D.java: New file.
	* java/awt/peer/ComponentPeer.java: New file.
	* java/awt/peer/ContainerPeer.java: New file.
	* java/awt/peer/FramePeer.java: New file.
	* java/awt/peer/WindowPeer.java: New file.
	* java/util/Collection.java: New file.
	* java/util/Comparator.java: New file.
	* java/util/Iterator.java: New file.
	* java/util/List.java: New file.
	* java/util/ListIterator.java: New file.
	* Makefile.am: Added above files.
	* Makefile.in: Rebuilt.

2000-04-10  Warren Levy  <warrenl@cygnus.com>

	* gnu/gcj/runtime/MethodInvocation.java: Fixed copyright.
	* java/lang/FirstThread.java: Ditto.
	* java/lang/StringBuffer.java: Ditto.
	* mauve-libgcj: Turned on java.math, java.sql and java.security tests.

	* gnu/gcj/math/MPN.java (rshift): Undid Boehm's patch of 03-14.
	Special case handled in java.math.BigInteger.
	* java/math/BigInteger.java (divide): Handle the special case when
	dividing by 1 and the high bit of the dividend is set.
	(setShiftRight): Handle case when count == 0.

2000-04-05  Andrew Haley  <aph@cygnus.com>

	* java/net/URL.java (setURLStreamHandler): Make "file" protocol a
	special case.

2000-04-05  Andrew Haley  <aph@cygnus.com>

	* sysdep/ia64.c (rse_address_add): Delete.
	(IS_NaT_COLLECTION_ADDR): Delete.
	(ia64_backtrace_helper): check for null unwind_info.

	* sysdep/ia64-frame.h: add calc_caller_bsp.

	* java/lang/natThrowable.cc (printRawStackTrace): Flush
	PrintWriter.

	* prims.cc (_Jv_divI): Use _Jv_ThrowSignal.
	(_Jv_remI): Likewise.
	(_Jv_divJ): Likewise.
	(_Jv_remJ): Likewise.

	* interpret.cc (continue1): Use divide subroutines to guarantee
	correct Java standard behaviour.
	Floating-point division should not abort; make it so.

2000-03-29  Tom Tromey  <tromey@cygnus.com>

	* configure: Rebuilt.
	* configure.in: Test against `libgcj_sjlj', not
	`enable_sjlj_exceptions'.  Rearranged code to allow SYSDEP_SOURCES
	to be set even when using sjlj.

2000-03-24  Andrew Haley  <aph@cygnus.com>

	* Makefile.am: Add file addr2name.awk.
	* Makefile.in: Rebuilt.
	* addr2name.awk: New file.
	* name-finder.cc (_Jv_name_finder): Call addr2name.awk to do name
	lookups on ia64.
	* java/lang/natThrowable.cc(printRawStackTrace): Don't print out a
	blank line.

2000-03-22  Andrew Haley  <aph@cygnus.com>

	* configure.host: Add -funwind-tables for IA64.
	* Makefile.am (c_source_files): Add SYSDEP_SORCES.
	* Makefile.in: Rebuilt.
	* java/lang/natThrowable.cc (fillInStackTrace): Add ia64 case.
	* sysdep/ia64.c: New file.
	* sysdep/ia64-frame.h: New file.
	* configure.in: Add sysdep/ia64.c for ia64.
	* configure: Rebuilt.

2000-03-17  Andrew Haley  <aph@cygnus.com>

	* java/lang/natString.cc: Remove `register' keyword.
	interpret.cc: ditto.

2000-03-16  Andrew Haley  <aph@cygnus.com>

	* configure.host (ia64): Enable interpreter.

2000-03-14  Hans Boehm  <boehm@acm.org>

	* gnu/gcj/math/MPN.java (rshift): Handle shift 32 specially.

2000-03-14  Andrew Haley  <aph@cygnus.com>

	* include/default-signal.h (MAKE_THROW_FRAME): Add arg
	`_exception'.

2000-03-10  Andrew Haley  <aph@cygnus.com>

	* java/lang/ieeefp.h: Import latest version from fdlibm.

2000-03-14  Andrew Haley  <aph@cygnus.com>

	* prims.cc (_Jv_ThrowSignal): New function.
	(catch_segv): Add arg `_exception' to MAKE_THROW_FRAME.
	(catch_fpe): Ditto.
	* include/sparc-signal.h (MAKE_THROW_FRAME): Ditto
	* include/i386-signal.h (MAKE_THROW_FRAME): Ditto.
	* include/ppc-signal.h: New file.

2000-05-18  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/Thread.java: Declare `data' as Object, not RawData.
	* java/lang/natThread.java (initialize_native): Cast `data' to
	jobject.
	* gnu/gcj/RawData.java: Clarify documentation.

	From Gregory R. Warnes <warnes@biostat.washington.edu>:
	* gnu/gcj/protocol/jar/Connection.java (getJarFile): Test for null
	`jarFile', not `jarFileURL'.

2000-05-15  Andrew Haley  <aph@cygnus.com>

	* include/ppc-signal.h: New file.

2000-05-11  Tom Tromey  <tromey@cygnus.com>

	* java/util/zip/ZipInputStream.java (getNextEntry): When reading
	file headers, don't include `size' in the skip call.

2000-05-10  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/StringBuffer.java (delete): Call arrayCopy() correctly.
	Avoid arrayCopy() call where possible. Update `count' _after_ calling
	arrayCopy().
	(replace): Reimplemented. Fix javadoc.
	(reverse): Call ensureCapacity_unsynchronized().
	(StringBuffer (String)): Use DEFAULT_CAPACITY.

	(replace): Calculate length for arraycopy() correctly.

2000-05-09  Tom Tromey  <tromey@cygnus.com>

	* java/lang/StringBuffer.java (toString): Don't mark buffer as
	shared.
	(insert(int,char[],int,int): New method.
	(delete): New method from Classpath.
	(deleteCharAt): Likewise.
	(substring): Likewise.
	(shared): No longer private.
	Added JavaDoc comments from Classpath.
	* java/lang/String.java (String(StringBuffer)): Ensure `buffer' is
	shared.

2000-05-07  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (LIBLINK): New macro.
	(libgcj_la_LINK): Use it.
	(libgcjawt_la_LINK): Likewise.

2000-05-06  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (libgcj.zip): Don't pass -L to javac.

2000-05-05  Tom Tromey  <tromey@cygnus.com>

	Fix for PR libgcj/220:
	* Makefile.in: Rebuilt.
	* Makefile.am (gij_LDFLAGS): Don't use libstdc++.
	(jv_convert_LDFLAGS): Likewise.
	(libgcj_la_LDFLAGS): Likewise.
	(GCJLINK): New macro.
	(jv_convert_LINK): Use it.
	(gij_LINK): Likewise.
	(libgcj_la_LINK): New macro.
	(libgcjawt_la_LINK): Likewise.

2000-05-04  Tom Tromey  <tromey@cygnus.com>

	* gcj/field.h (JvFieldIsRef): Return false for gnu.gcj.RawData
	field.
	* boehm.cc (_Jv_MarkObj): Removed dead code.  Use `STATIC', not
	`0x0008'.
	Include Modifier.h.

2000-05-05  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/natClass.cc (isInstance): Use __builtin_expect.
	(_Jv_IsAssignableFrom): Ditto.
	(_Jv_IsInstanceOf): Ditto.
	(_Jv_CheckCast): Ditto.
	(_Jv_CheckArrayStore): Ditto.
	* java/lang/Class.h (_Jv_InitClass): Ditto.
	* java/lang/natObject.cc (_Jv_MonitorEnter): __builtin_expect `false',
	not `0'.
	(notify): Ditto.
	(notifyAll): Ditto.
	(wait): Ditto.
	(_Jv_MonitorExit): Ditto.
	* boehm.cc (_Jv_MarkObj): Ditto.
	(_Jv_MarkObj): Ditto.
	(_Jv_MarkArray): Ditto.
	* prims.cc (_Jv_AllocObject): Ditto.
	(_Jv_NewObjectArray): Ditto.
	(_Jv_NewPrimArray): Ditto.
	(_Jv_Malloc): Ditto.
	(_Jv_Realloc): Ditto.
	(_Jv_MallocUnchecked): Ditto.
	(_Jv_divI): Ditto.
	(_Jv_remI): Ditto.
	(_Jv_divJ): Ditto.
	(_Jv_remJ): Ditto.

2000-05-04  Tom Tromey  <tromey@cygnus.com>

	* java/util/Locale.java (Locale): Don't explicitly check for
	null.
	* java/util/Hashtable.java (containsKey): Don't explicitly check
	for null.
	(get): Likewise.
	* java/util/BitSet.java (and, or, xor): Don't explicitly check for
	null.
	* java/util/zip/ZipEntry.java (ZipEntry): Don't explicitly check
	for null.
	* java/text/StringCharacterIterator.java
	(StringCharacterIterator): Don't check for null.
	* java/text/ChoiceFormat.java (setChoices): Don't explicitly check
	for null pointer.
	* java/net/MulticastSocket.java (joinGroup): Don't explicitly
	check for null pointer.
	(leaveGroup): Likewise.
	* java/net/DatagramPacket.java (DatagramPacket): Removed erroneous
	comment.
	(setData): Likewise.
	* java/lang/ThreadGroup.java (ThreadGroup): Don't explicitly check
	for `p==null'.

2000-04-28  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.am (GCJCOMPILE, JCFLAGS, JF1CLAGS, jv_convert_LINK,
	gij_LINK, libgcj.zip, .java=.class): Move -L option out of FLAGS.
	(libgcj_la_LDFLAGS): Add -L../libstdc++ for in-gcc builds.
	(jv_convert_LDFLAGS, gij_LDFLAGS): Add `pwd`/../libstdc++ to
	-rpath for in-gcc builds.
	* Makefile.in: Rebuilt.

2000-04-28  Tom Tromey  <tromey@cygnus.com>

	* libgcj.spec.in (*jc1): Added -fasynchronous-exceptions.
	Fix for PR gcj/218.

2000-04-28  Bryce McKinlay  <bryce@albatross.co.nz>

	* libjava/java/lang/String.java (toString): Remove `final' hack.

2000-04-05  Tom Tromey  <tromey@cygnus.com>

	Runtime support for PR gcj/2:
	* prims.cc (_Jv_ThrowNullPointerException): New function.
	* include/jvm.h (_Jv_ThrowNullPointerException): Declare.

2000-04-27  Bryce McKinlay  <bryce@albatross.co.nz>

	* prims.cc (_Jv_NewObjectArray): Fix typo.

2000-04-26  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (AM_CXXFLAGS): Added -fasynchronous-exceptions.

2000-04-24  Jeff Sturm  <jsturm@sigma6.com>

	* gnu/gcj/runtime/natFirstThread.cc (run): Initialize class before
	calling main.

2000-04-22  Anthony Green  <green@cygnus.com>

	* include/jvm.h (__builtin_expect): Define as unused for now.
	* java/lang/natObject.cc (_Jv_MonitorEnter): Add __builtin_expect.
	(notify): Ditto.
	(notifyAll): Ditto.
	(wait): Ditto.
	(_Jv_MonitorExit): Ditto.
	* boehm.cc (_Jv_MarkObj): Ditto.
	(_Jv_MarkObj): Ditto.
	(_Jv_MarkArray): Ditto.
	(_Jv_AllocBytes): Ditto.
	* prims.cc (_Jv_AllocObject): Ditto.
	(_Jv_NewObjectArray): Ditto.
	(_Jv_NewPrimArray): Ditto.
	(_Jv_Malloc): Ditto.
	(_Jv_Realloc): Ditto.
	(_Jv_MallocUnchecked): Ditto.
	(_Jv_divI): Ditto.
	(_Jv_remI): Ditto.
	(_Jv_divJ): Ditto.
	(_Jv_remJ): Ditto.

	* include/Makefile.in: Rebuilt.
	* include/Makefile.am (include_HEADERS): Add jvmpi.h.

2000-04-21  Tom Tromey  <tromey@cygnus.com>

	* java/io/PipedInputStream.java, java/io/PipedOutputStream.java:
	Yet another new version from Classpath.

	Fix for PR libgcj/15:
	* java/util/natGregorianCalendar.cc (_REENTRANT,
	_POSIX_PTHREAD_SEMANTICS): Don't define.
	* java/net/natInetAddress.cc (_REENTRANT): Don't define.
	* java/lang/natSystem.cc (_REENTRANT, _POSIX_PTHREAD_SEMANTICS):
	Don't define.
	* java/io/natFile.cc (_REENTRANT, _POSIX_PTHREAD_SEMANTICS): Don't
	define.
	* configure: Rebuilt.
	* configure.in: If using POSIX threads, define _REENTRANT if
	needed.  Define _POSIX_PTHREAD_SEMANTICS.  Don't define
	GETHOSTBYNAME_R_NEEDS_REENTRANT.

	* java/io/PipedInputStream.java, java/io/PipedReader.java,
	java/io/PipedOutputStream.java, java/io/PipedWriter.java: New
	version from Classpath.

	Fix for PR libgcj/213:
	* Makefile.in: Rebuilt.
	* Makefile.am (gij_SOURCES): Added gij.cc.
	(EXTRA_gij_SOURCES): Removed.
	(gij_LDADD): Removed gij.lo.
	(gij_DEPENDENCIES): Likewise.
	($(gij_OBJECTS)): Depend on nat_headers.

	* gnu/gcj/protocol/file/Handler.java (openConnection): Use
	`setURL', not `url.set'.

2000-04-20  Tom Tromey  <tromey@cygnus.com>

	Fix for PR java.io/204:
	* java/io/PipedInputStream.java, java/io/PipedReader.java,
	java/io/PipedOutputStream.java, java/io/PipedWriter.java: Imported
	from Classpath.

	Fix for PR libgcj/212:
	* gcj/javaprims.h (_Jv_word, _Jv_word2): Removed definitions.
	* include/jvm.h (_Jv_word, _Jv_word2): Define.
	* java/lang/Class.h (_Jv_word): Declare.

	* jni.cc (_Jv_JNI_PopSystemFrame): Clear `env->ex'.

2000-04-19  Tom Tromey  <tromey@cygnus.com>

	* jni.cc (_Jv_JNI_FindClass): Use system class loader if class
	doesn't have a loader.

2000-04-19  Bryce McKinlay  <bryce@albatross.co.nz>

	* boehm.cc: (_Jv_MarkObj, _Jv_MarkArray): Cast pointers for
	MAYBE_MARK to ptr_t, for compatibility with new GC version.

2000-04-16  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/io/natFileDescriptorPosix.cc (open): Use mode 0666. Fix for PR
	libgcj/202.
	(available): Initialize `where' to prevent bogus compiler warning.

2000-04-12  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natString.cc (intern): Temporarily disable finalizer
	registration.

	* java/lang/natString.cc (unintern): Added `obj' argument.
	(intern): Register finalizer for string.
	* java/lang/String.java (unintern): Now static; added obj
	argument.

2000-04-11  Tom Tromey  <tromey@cygnus.com>

	* java/util/Vector.java (VectorEnumeration): Now `final'.
	* java/util/Hashtable.java (HashtableEntry): Now `final'.
	(HashtableEnumeration): Likewise.
	* java/util/zip/ZipFile.java (ZipEnumeration): Now `final'.
	* java/text/RuleBasedCollator.java (RBCElement): Now `final'.

2000-04-10  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectStreamException.java: New file.
	* java/io/OptionalDataException.java: New file.
	* java/io/StreamCorruptedException.java: New file.
	* java/math/BigDecimal.java: New file.
	* java/sql/CallableStatement.java: New file.
	* java/sql/Connection.java: New file.
	* java/sql/DataTruncation.java: New file.
	* java/sql/DatabaseMetaData.java: New file.
	* java/sql/Date.java: New file.
	* java/sql/Driver.java: New file.
	* java/sql/DriverManager.java: New file.
	* java/sql/DriverPropertyInfo.java: New file.
	* java/sql/PreparedStatement.java: New file.
	* java/sql/ResultSet.java: New file.
	* java/sql/ResultSetMetaData.java: New file.
	* java/sql/SQLException.java: New file.
	* java/sql/SQLWarning.java: New file.
	* java/sql/Statement.java: New file.
	* java/sql/Time.java: New file.
	* java/sql/Timestamp.java: New file.
	* java/sql/Types.java: New file.
	* Makefile.am: Added above new files.
	* Makefile.in: Rebuilt.

	* mauve-libgcj: Turned on java.math, java.sql and java.security tests.
	* java/net/MulticastSocket.java (MulticastSocket): Pass values a la
	DatagramSocket constructor instead of null.

2000-04-08  Anthony Green  <green@cygnus.com>

	* include/posix-threads.h (_Jv_MutexUnlock): Replace
	_JV_NOT_OWNER.

2000-04-08  Anthony Green  <green@cygnus.com>

	* posix-threads.cc (_Jv_MutexLock): Moved back to posix-threads.h.
	(_Jv_MutexUnlock): Ditto.
	* include/posix-threads.h (_Jv_MutexLock): From posix-threads.cc.
	(_Jv_MutexUnlock): Ditto.

2000-04-08  Anthony Green  <green@cygnus.com>

	* java/lang/StringBuffer.java (ensureCapacity): Don't call Math::max.
	(ensureCapacity_unsynchronized): New private method.
	(append): Use ensureCapacity_unsynchronized.

2000-04-08  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added new files.
	* java/awt/IllegalComponentStateException.java: New file.
	* java/awt/ItemSelectable.java: New file.
	* java/awt/event/WindowEvent.java: Finished.
	* java/awt/event/TextEvent.java: Finished.
	* java/awt/event/ContainerEvent.java: New file.
	* java/awt/Component.java (getX, getY): New methods.
	* java/awt/event/PaintEvent.java: New file.
	* java/awt/event/MouseEvent.java: New file.
	* java/awt/ActiveEvent.java: New file.
	* java/awt/event/KeyEvent.java: Finished.
	* java/awt/event/ItemEvent.java: New file.
	* java/awt/Adjustable.java: New file.
	* java/awt/event/InputMethodEvent.java: New file.
	* java/awt/event/InputEvent.java: Finished.
	* java/awt/event/FocusEvent.java: New file.
	* java/awt/event/MouseMotionAdapter.java: New file.
	* java/awt/event/MouseAdapter.java: New file.
	* java/awt/event/KeyAdapter.java: New file.
	* java/awt/event/FocusAdapter.java: New file.
	* java/awt/event/ContainerAdapter.java: New file.
	* java/awt/event/ComponentEvent.java: Finished.
	* java/awt/event/AdjustmentEvent.java: New file.
	* java/awt/event/ComponentAdapter.java: New file.
	* java/awt/event/ActionEvent.java: Finished.
	* java/awt/event/MouseMotionListener.java: New file.
	* java/awt/event/MouseListener.java: New file.
	* java/awt/event/ItemListener.java: New file.
	* java/awt/event/InputMethodListener.java: New file.
	* java/awt/event/ContainerListener.java: New file.
	* java/awt/event/FocusListener.java: New file.
	* java/awt/event/ComponentListener.java: New file.
	* java/awt/event/AWTEventListener.java: New file.
	* java/awt/event/AdjustmentListener.java: New file.

2000-04-08  Anthony Green  <green@cygnus.com>

	* java/lang/natObject.cc (_Jv_MonitorEnter): Only perform null
	check when we have to.

	* gcj/array.h: Mark elements(JArray<T>& x) and elements(JArray<T>*
	x) as `inline'.

	* java/util/StringTokenizer.java: Minor optimization.  Eliminates
	one method call.

	* java/util/Vector.java (VectorEnumeration.nextElement): Manually
	inline hasMoreElements.

2000-04-05  Tom Tromey  <tromey@cygnus.com>

	* configure: Rebuilt.
	* configure.in: Recognize --enable-java-awt.
	(AWT): New conditional.
	* Makefile.in: Rebuilt.
	* Makefile.am (toolexeclib_LTLIBRARIES): Build libgcjawt.la if
	requested.
	(libgcjawt_la_SOURCES): New macro.
	(EXTRA_libgcjawt_la_SOURCES): Likewise.
	(libgcjawt_la_DEPENDENCIES): Likewise.
	(libgcjawt_la_LIBADD): Likewise.
	(libgcjawt_la_LDFLAGS): Likewise.
	(libgcj.zip): Depend on cond_java_awt_source_files
	(cond_awt_java_source_files): New macro.
	(MOSTLYCLEANFILES): Added awto_files.
	(awto_files): New macro.  Use where javao_files used.
	(nat_headers): Use cond_awt_java_source_files.

2000-04-04  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added AWTException.java.
	* java/awt/AWTException.java: New file.

2000-04-03  Tom Tromey  <tromey@cygnus.com>

	* include/jvm.h (_Jv_GetArrayElementFromElementType): More
	commentary from Alex.

	* Makefile.in: Rebuilt.
	* Makefile.am ($(javao_files)): Depend on libgcj.zip.
	From H.J. Lu.

Sun Apr  2 08:27:18 2000  Anthony Green  <green@redhat.com>

	* configure: Rebuilt.
	* configure.in: Add --disable-jvmpi.
	* include/config.h.in: Rebuilt.
	* acconfig.h: Add ENABLE_JVMPI.

	* include/jvm.h: Declare _Jv_DisableGC and _Jv_EnableGC.
	(_Jv_JVMPI_Notify_OBJECT_ALLOC): New define.
	(_Jv_JVMPI_Notify_THREAD_END): New define.
	(_Jv_JVMPI_Notify_THREAD_END): New define.
	* prims.cc (_Jv_JVMPI_Notify_OBJECT_ALLOC): Declare.
	(_Jv_JVMPI_Notify_THREAD_END): Declare.
	(_Jv_JVMPI_Notify_THREAD_END): Declare.

	* prims.cc (_Jv_AllocObject): Generate JVMPI object allocation
	events.

	* java/lang/natThread.cc: Include JVMPI headers if necessary.
	(finish_): Generate JVMPI thread end events.
	(run_): Generate JVMPI thread start events.
	* gnu/gcj/runtime/natFirstThread.cc (run): Call JNI_OnLoad for any
	preloaded JNI library.
	Include JVMPI headers if necessary.
	(run): Generate JVMPI thread start events.

	* boehm.cc: Define GC_disable and GC_enable.
	(_Jv_DisableGC): New function.
	(_Jv_EnableGC): New function.
	(disable_gc_mutex): Declare.
	* nogc.cc (_Jv_DisableGC): New function.
	(_Jv_EnableGC): New function.

	* jni.cc (_Jv_JNI_GetEnv): Handle JVMPI interface requests.
	(_Jv_JVMPI_Interface): Define.
	(jvmpiEnableEvent): New function.
	(_Jv_JNI_Init): Initialize _Jv_JVMPI_Interface.

	* include/jvmpi.h: New file.

2000-03-27  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.in: New #defines and friends for Thread.h.
	* Makefile.am: Ditto.
	* posix-threads.cc: (struct starter): Remove `object'.
	(_Jv_CondWait): Use interruptable condition variables and new
	recursive mutexes. New return codes on interrupt or non-ownership
	of mutex.
	(_Jv_CondNotify): Ditto.
	(_Jv_CondNotifyAll): Ditto.
	(_Jv_ThreadInterrupt): Set thread interrupt flag directly. Interrupt
	the target thread by signaling its wait condition.
	(_Jv_ThreadInitData): Set `thread_obj' in the thread data struct,
	not the starter struct. Initialize wait_mutex and wait_cond.
	(_Jv_MutexLock): New recursive mutex implementation. Moved from
	posix-threads.h.
	(_Jv_MutexUnlock): Ditto.
	(really_start): Set info->data->thread from pthread_self() to work
	around a race condition. Destroy wait_mutex and wait_cond when run()
	returns.
	* java/lang/Thread.java: (isInterrupted_): Renamed to overloaded
	`isInterrupted(boolean)'. Clear interrupted flag if clear_flag is
	set.
	startable_flag: New private field.
	(Thread): Initialize `startable_flag'.
	(toString): Check for null thread group.
	* java/lang/natThread.cc: (struct natThread): New fields
	`join_mutex', `join_cond'. Removed fields `joiner', `next'.
	(class locker): Removed.
	(initialize_native): Initialize `join_cond' and `join_mutex'.
	(interrupt): Now just calls _Jv_ThreadInterrupt().
	(join): Simplified. Just wait on the target thread's join condition.
	(finish_): Remove join list code. Unset thread group. Signal
	potential joiners by notifying the dying threads join_cond.
	(start): Check for illegal restarts.
	* java/lang/natObject.cc: Check for return value of _Jv_CondWait and
	act appropriatly.
	* include/posix-threads.h: Remove all HAVE_RECURSIVE_MUTEX related
	#defines and #ifdefs.
	(struct _Jv_Thread_t): New fields `thread_obj', `wait_cond',
	`wait_mutex', `next'.
	(struct _Jv_ConditionVariable_t): Define as a struct instead of
	directly mapping to pthread_cond_t.
	(struct _Jv_Mutex_t): New recursive implementation.
	(_Jv_PthreadCheckMonitor): Reimplemented. Simple `owner' check.
	_Jv_HaveCondDestroy: Never define this for posix-threads.
	(_Jv_CondNotify): Remove inline implementation(s), prototype instead.
	(_Jv_CondNotifyAll): Ditto.
	(_Jv_MutexLock): Ditto.
	(_Jv_MutexUnlock): Ditto.
	(_Jv_MutexInit): Changed to reflect new mutex implementation.
	(_Jv_MutexDestroy): Ditto.
	(_Jv_CondDestroy): Removed.
	(_Jv_PthreadGetMutex): Removed.
	* include/win32-threads.h: (_Jv_CondNotify): Guess _JV_NOT_OWNER on an
	error. Add a FIXME about this.
	(_Jv_CondNotifyAll): Ditto.
	* win32-threads.cc: (_Jv_CondWait): Return 0 on a timeout. Guess
	_JV_NOT_OWNER on other errors. Add FIXME.

2000-03-26  Tom Tromey  <tromey@cygnus.com>

	* jni.cc (_Jv_JNI_PopSystemFrame): If environment has exception
	set, throw it.
	(call): Don't throw exception here.

2000-03-26  Tom Tromey  <tromey@cygnus.com>

	* java/lang/mprec.h: Use SIZEOF_VOID_P.
	* interpret.cc: Use SIZEOF_VOID_P.
	* include/java-cpool.h (_Jv_storeLong): Use SIZEOF_VOID_P.
	(_Jv_loadLong): Likewise.
	(_Jv_storeDouble): Likewise.
	* configure: Rebuilt.
	* configure.in: Check size of void*.

	* resolve.cc (ncode): Use FFI_PREP_RAW_CLOSURE and FFI_RAW_SIZE.

2000-03-26  Hans Boehm  <boehm@acm.org>

	* include/java-cpool.h (_Jv_storeLong, _Jv_loadLong,
	_Jv_storeDouble, _Jv_loadDouble): Define differently on 64 bit
	machine.
	* java/lang/ieeefp.h: Define __IEEE_BIG_ENDIAN or
	__IEEE_LITTLE_ENDIAN appropriately on IA64.
	* java/lang/mprec.h: Don't define Pack_32 on 64 bit machine.
	* javaprims.h (_Jv_word): Added `l' and `d' entries in 64 bit
	case.
	* resolve.cc (FFI_PREP_RAW_CLOSURE): New define.
	(FFI_RAW_SIZE): Likewise.
	(_Jv_InterpMethod::ncode): Use them.
	* interpret.cc (PUSHL, PUSHD, POPL, POPD, LOADL, LOADD, STOREL,
	STORED): Define differently on a 64 bit machine.
	(continue1): Use ffi_java_raw_call when appropriate.

2000-03-24  Warren Levy  <warrenl@cygnus.com>

	* java/math/BigInteger.java(divide): Handle the special case when
	dividing by 1 and the high bit of the dividend is set.
	(setShiftRight): Handle case when count == 0.

2000-03-24  Warren Levy  <warrenl@cygnus.com>

	* java/awt/Font.java(isBold): Fix syntax error.
	(isItalic): ditto.
	* java/awt/Frame.java(postEvent): ditto.
	* java/awt/Menu.java(postEvent): ditto.
	* java/awt/MenuBar.java(postEvent): ditto.
	* java/awt/Toolkit.java(init): Included a stub.

2000-03-21  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/awt/Event.java: Add all the event type constants.
	(Event): Implemented constructors.
	(controlDown): Implemented.
	(metaDown): Implemented.
	(paramString): Stubbed.
	(shiftDown): Implemented.
	(toString): Implemented.
	(translate): Implemented.

2000-03-21  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/natClass.cc (isInstance): Initialize `this'.
	(isAssignableFrom): Initialize `this' and `klass'.
	(_Jv_IsAssignableFrom): If an interface has no idt, it is not
	implemented by any loaded class, so return false.
	* java/lang/natClass.cc (isInstance): Use _Jv_IsAssignableFrom(),
	not Class.isAssignableFrom(). Use JV_CLASS, not getClass().

2000-03-19  Warren Levy  <warrenl@cygnus.com>

	* java/awt/Color.java: Specified java.io for Serializable.
	* java/awt/Toolkit.java: Imported java.net.URL.

2000-03-19  Warren Levy  <warrenl@cygnus.com>

	* java/awt/Color.java: Rewrote to be more memory efficient (& compile).

2000-03-16  Warren Levy  <warrenl@cygnus.com>

	* java/awt/Color.java: New file.
	* java/awt/Graphics.java: New file.
	* java/awt/Image.java: New file.
	* java/awt/Paint.java: New file.
	* java/awt/PaintContext.java: New file.
	* java/awt/Transparency.java: New file.
	* java/util/Collection.java: New file.
	* java/util/Comparator.java: New file.
	* java/util/Iterator.java: New file.
	* java/util/List.java: New file.
	* java/util/ListIterator.java: New file.
	* Makefile.am: Added above new files.
	* Makefile.in: Rebuilt.

	* java/awt/Font.java (PLAIN): New field.
	(BOLD): New field.
	(ITALIC): New field.
	(ROMAN_BASELINE): New field.
	(CENTER_BASELINE): New field.
	(HANGING_BASELINE): New field.
	(name): New field.
	(style): New field.
	(size): New field.
	(pointSize): New field.
	(Font): Implemented constructor.
	(isPlain): Implemented method.
	(isBold): Implemented method.
	(isItalic): Implemented method.
	(getName): Implemented method.
	(getStyle): Implemented method.
	(getSize): Implemented method.
	(getSize2D): Implemented method.
	(decode): Stubbed.
	* java/awt/Frame.java (getFont): Stubbed.
	(postEvent): Stubbed.
	(remove): Stubbed.
	* java/awt/Menu.java (postEvent): Stubbed.
	* java/awt/MenuBar.java (getFont): Stubbed.
	(postEvent): Stubbed.
	* java/awt/Toolkit.java (getImage): Added abstract method.

2000-03-15  Tom Tromey  <tromey@cygnus.com>

	* java/io/natFileDescriptorWin32.cc (winerr): Now static.

	* prims.cc (win32_exception_handler): Reformatted.

	* include/win32-threads.h (_Jv_HaveCondDestroy): New define.
	(_Jv_HaveMutexDestroy): Likewise.

2000-03-15 Jon Beniston <jb7216@bristol.ac.uk>

	* java/io/natFileDescriptorWin32.cc: New file.
	* java/io/natFileWin32.cc: New file.
	* java/net/natInetAddress.cc: Added conditional inclusion of
	Windows / Winsock headers.
	* java/net/natPlainDatagramSocketImpl.cc: Added conditional
	inclusion of Windows / Winsock headers.
	* java/net/natPlainSocketImpl.cc: Added conditional inclusion of
	Windows / Winsock headers.
	* include/win32-signal.h: New file.
	* include/win32-threads.h: New file.
	* win32-threads.cc: New file.
	* exception.cc (win32_get_restart_frame): New function.
	* prims.cc (win32_exception_handler): New function.
	(main_init) Performs Winsock initialisation.
	(main_init) Installs exeception handler.

2000-03-14  Tom Tromey  <tromey@cygnus.com>

	* jni.cc (mangled_name): Fixed assertion.
	(JNI_GetCreatedJavaVMs): Don't comment out `buf_len' argument;
	turned assert into actual failure.

2000-03-09  Warren Levy  <warrenl@cygnus.com>

	* java/security/Key.java(serialVersionUID): Set to 0 for now.
	* java/security/interfaces/DSAPrivateKey.java(serialVersionUID): Ditto.
	* java/security/interfaces/DSAPublicKey.java(serialVersionUID): Ditto.

2000-03-09  Warren Levy  <warrenl@cygnus.com>

	* java/security/AlgorithmParameterGeneratorSpi.java: New file.
	* java/security/DigestException.java: New file.
	* java/security/GeneralSecurityException.java: New file.
	* java/security/InvalidAlgorithmParameterException.java: New file.
	* java/security/InvalidKeyException.java: New file.
	* java/security/InvalidParameterException.java: New file.
	* java/security/Key.java: New file.
	* java/security/KeyException.java: New file.
	* java/security/KeyPair.java: New file.
	* java/security/KeyPairGenerator.java: New file.
	* java/security/KeyPairGeneratorSpi.java: New file.
	* java/security/NoSuchProviderException.java: New file.
	* java/security/PrivateKey.java: New file.
	* java/security/Provider.java: New file.
	* java/security/PublicKey.java: New file.
	* java/security/SecureRandom.java: New file.
	* java/security/Security.java: New file.
	* java/security/Signature.java: New file.
	* java/security/SignatureException.java: New file.
	* java/security/interfaces/DSAKey.java: New file.
	* java/security/interfaces/DSAParams.java: New file.
	* java/security/interfaces/DSAPrivateKey.java: New file.
	* java/security/interfaces/DSAPublicKey.java: New file.
	* java/security/interfaces/RSAPrivateCrtKey.java: New file.
	* java/security/interfaces/RSAPrivateKey.java: New file.
	* java/security/interfaces/RSAPublicKey.java: New file.
	* java/security/spec/AlgorithmParameterSpec.java: New file.
	* java/security/spec/InvalidKeySpecException.java: New file.
	* java/security/spec/InvalidParameterSpecException.java: New file.
	* java/security/spec/KeySpec.java: New file.
	* java/security/spec/RSAPrivateCrtKeySpec.java: New file.
	* java/security/spec/RSAPrivateKeySpec.java: New file.
	* java/security/spec/RSAPublicKeySpec.java: New file.
	* Makefile.am: Added above java.security files.
	* Makefile.in: Rebuilt.

	* java/security/MessageDigest.java: Rewritten.
	* java/security/SecureClassLoader.java: Added JDK1.2 comment.

2000-03-09  Bryce McKinlay  <bryce@albatross.co.nz>

	* README: Updated.

2000-03-09  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/natClassLoader.cc (_Jv_FindArrayClass): Call
	_Jv_PrepareConstantTimeTables.
	* java/lang/natClass.cc (_Jv_PrepareConstantTimeTables): Array
	classes should have an IDT, so don't return if klass is an array
	class.

2000-03-08  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/natArray.cc (newInstance): Don't allow array
	of `void' to be created.

2000-03-08  Warren Levy  <warrenl@cygnus.com>

	* java/math/BigInteger.java(signum): Handle zero properly.

2000-03-07  Tom Tromey  <tromey@cygnus.com>

	* All files: Updated copyright information.
	* COPYING: New file.
	* COPYING.LIB: Removed.
	* LIBGCJ_LICENSE: We now use GPL + special exception.

2000-03-07  Bryce McKinlay  <bryce@albatross.co.nz>

	* resolve.cc (_Jv_SearchMethodInClass): New function.
	(_Jv_ResolvePoolEntry): Search superinterfaces for interface methods.
	* java/lang/Class.h (_Jv_SearchMethodInClass): New prototype.

2000-03-07  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/Class.h (union _Jv_IDispatchTable): New declaration.
	(struct _Jv_ifaces): New declaration.
	JV_CLASS: New macro definition.
	(getComponentType): Relocate below isArray() for inlining.
	(getModifiers): Declare `inline'.
	(getSuperclass): Ditto.
	(isArray): Ditto.
	(isPrimitive): Ditto.
	(_Jv_IsAssignableFrom): New prototype.
	(_Jv_LookupInterfaceMethodIdx): New prototype. Predeclare with "C"
	linkage.
	(_Jv_InitClass): Move from natClass.cc. Declare `inline'.
	Check for JV_STATE_DONE before invoking initializeClass().
	(_Jv_PrepareConstantTimeTables): New prototype.
	(_Jv_GetInterfaces): Ditto.
	(_Jv_GenerateITable): Ditto.
	(_Jv_GetMethodString): Ditto.
	(_Jv_AppendPartialITable): Ditto.
	(_Jv_FindIIndex): Ditto.
	depth, ancestors, idt: New class fields.

	* java/lang/natClass.cc (isAssignableFrom): Move functionality to
	inline function `_Jv_IsAssignableFrom'. Use that function.
	(isInstance): Declare `inline'.
	(initializeClass): Get lock on class before checking `state'. Unlock
	before calling resolveClass0. Call _Jv_PrepareConstantTimeTables with
	the lock held.
	(_Jv_LookupInterfaceMethod): Use _Jv_GetMessageString.
	(_Jv_IsAssignableFrom): New inline function. Test assignability using
	class->depth and ancestor table.
	(_Jv_IsInstanceOf): Use _Jv_IsAssignableFrom.
	(_Jv_CheckCast): Move from prims.cc. Use JV_CLASS and
	_Jv_IsAssignableFrom.
	(_Jv_CheckArrayStore): Ditto.
	(_Jv_LookupInterfaceMethodIdx): New function.
	INITIAL_IOFFSETS_LEN, INITIAL_IFACES_LEN: New #defines.
	(_Jv_PrepareConstantTimeTables): New function.
	(_Jv_IndexOf): Ditto.
	(_Jv_GetInterfaces): Ditto.
	(_Jv_GenerateITable): Ditto.
	(_Jv_GetMethodString): Ditto.
	(_Jv_AppendPartialITable): Ditto.
	iindex_mutex, iindex_mutex_initialized: New static fields.
	(_Jv_FindIIndex): New function.

	* java/lang/natClassLoader.cc (_Jv_NewClass): Set new jclass fields.

	* prims.cc (_Jv_CheckCast): Moved to natClass.cc.
	(_Jv_CheckArrayStore): Ditto.
	(JvNewCharArray, JvNewBooleanArray, JvNewByteArray, JvNewShortArray,
	JvNewIntArray, JvNewLongArray, JvNewFloatArray, JvNewDoubleArray):
	Moved to gcj/array.h.
	(_Jv_Realloc): New function.

	* gcj/cni.h: Move _Jv_PrimClass definitions to gcj/array.h.

	* gcj/array.h: _Jv_PrimClass definitions moved from gcj/cni.h.
	(JvNewCharArray, JvNewBooleanArray, JvNewByteArray,
	JvNewShortArray, JvNewIntArray, JvNewLongArray, JvNewFloatArray,
	JvNewDoubleArray): Implementations moved from prims.cc and
	declared `inline'.

	* gcj/javaprims.h (_Jv_Realloc): Prototype.

	* include/jvm.h (_Jv_LookupInterfaceMethodIdx): Prototype.

2000-03-06  Tom Tromey  <tromey@cygnus.com>

	* jni.cc (MARK_NONE): New define.
	(MARK_USER): Likewise.
	(MARK_SYSTEM): Likewise.
	(struct _Jv_JNI_LocalFrame): Made `marker' bigger and `size'
	smaller.
	(_Jv_JNI_DeleteLocalRef): Use MARK_NONE in assert.
	(_Jv_JNI_EnsureLocalCapacity): Use MARK_NONE.
	(_Jv_JNI_PushLocalFrame): Use MARK_USER.
	(_Jv_JNI_PopLocalFrame): New version with additional `stop'
	argument.
	(call): Use MARK_SYSTEM.
	(_Jv_GetJNIEnvNewFrame): New function.
	(_Jv_LookupJNIMethod): New function.
	(_Jv_JNI_PopSystemFrame): New function.
	(call): Use _Jv_JNI_PopSystemFrame and _Jv_LookupJNIMethod.

2000-03-05  Tom Tromey  <tromey@cygnus.com>

	Fix for PR libgcj/43:
	* include/Makefile.in: Rebuilt.
	* include/Makefile.am (include_HEADERS): New define.

2000-03-05  Anthony Green  <green@redhat.com>

	* gcj/javaprims.h ("Java"): Remove FirstThread.

	* configure.host: Fix __NO_MATH_INLNES botch.

	* Makefile.in: Rebuilt.
	* Makefile.am (nat_source_files): Move natFirstThread.cc.
	(gnu/gcj/runtime/FirstThread.h): Moved.
	(ordinary_java_source_files): Move FirstThread.java.
	* prims.cc: Deal with FirstThread movement.
	(JvRunMain): Ditto.
	(_Jv_RunMain): Ditto.

	* gnu/gcj/runtime/FirstThread.java: Moved from java/lang.
	* gnu/gcj/runtime/natFirstThread.cc: Ditto.

2000-03-05  Warren Levy  <warrenl@cygnus.com>

	* java/net/DatagramSocket.java(DatagramSocket(int,InetAddress)):
	  Handle null addresses.

2000-03-04  Anthony Green  <green@redhat.com>

	* configure.host (libgcj_flags): Define __NO_MATH_INLINES.
	See PR gcj/151.

2000-03-04  Anthony Green  <green@redhat.com>

	* configure: Rebuilt.
	* configure.in (ZLIBTESTSPEC): New macro.
	(GCTESTSPEC): New macro.
	(LIBGCJTESTSPEC): New macro.
	* libgcj-test.spec.in: New file.

2000-03-02  Tom Tromey  <tromey@cygnus.com>

	* include/java-interp.h: Don't include MethodInvocation.h.
	(class _Jv_InterpMethod): Don't make MethodInvocation a friend.
	* Makefile.in: Rebuilt.
	* Makefile.am (gnu/gcj/runtime/MethodInvocation.h): Removed.
	(ordinary_java_source_files): Don't mention
	MethodInvocation.java.
	* gnu/gcj/runtime/MethodInvocation.java: Removed.
	* interpret.cc (MethodInvocation::continue1): Removed.
	(run): Handle exceptions here.
	* java/lang/ClassLoader.java (defineClass1, defineClass2):
	Removed.
	* java/lang/natClassLoader.cc (defineClass0): Catch exceptions
	here.
	(defineClass2): Removed.

	* java/lang/reflect/Method.java (hack_trampoline, hack_call):
	Removed.
	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Catch
	exceptions here.
	(hack_call): Removed.

	* java/lang/Class.h (Class): Removed hackRunInitializers,
	hackTrampoline.
	* java/lang/natClass.cc (hackRunInitializers): Removed.
	(initializeClass): Catch exceptions here.
	Include ExceptionInInitializerError.h.
	* java/lang/Class.java (hackTrampoline, hackRunInitializers):
	Removed.

	* java/lang/Object.h (Object): Don't mention hack12_6.
	* java/lang/natObject.cc (_Jv_FinalizeObject): Catch exceptions
	here.
	* java/lang/Object.java (hack12_6): Removed.

	* java/lang/natThread.cc (run_): Renamed.  Catch exceptions here.
	(start): Use run_, not run__.
	* java/lang/Thread.java (run_): Renamed from run__; old run_
	removed.

	* jni.cc (_Jv_JNI_FindClass): Handle exceptions.
	(_Jv_JNI_EnsureLocalCapacity): Likewise.
	(_Jv_JNI_DefineClass): Likewise.
	(_Jv_JNI_ThrowNew): Likewise.
	(_Jv_JNI_AllocObject): Likewise.
	(_Jv_JNI_GetAnyMethodID): Likewise.
	(_Jv_JNI_CallAnyMethodV): Likewise.
	(_Jv_JNI_CallAnyMethodA): Likewise.
	(_Jv_JNI_CallAnyVoidMethodV): Likewise.
	(_Jv_JNI_CallAnyVoidMethodA): Likewise.
	(_Jv_JNI_GetAnyFieldID): Likewise.
	(_Jv_JNI_NewString): Likewise.
	(_Jv_JNI_NewStringUTF): Likewise.
	(_Jv_JNI_GetStringUTFChars): Likewise.
	(_Jv_JNI_NewObjectArray): Likewise.
	(_Jv_JNI_NewPrimitiveArray): Likewise.
	(_Jv_JNI_GetPrimitiveArrayRegion): Likewise.
	(_Jv_JNI_GetStringRegion): Likewise.
	(_Jv_JNI_GetStringUTFRegion): Likewise.
	(_Jv_JNI_SetPrimitiveArrayRegion): Likewise.
	(_Jv_JNI_MonitorEnter): Likewise.
	(_Jv_JNI_MonitorExit): Likewise.
	(_Jv_JNI_ToReflectedField): Likewise.
	(_Jv_JNI_ToReflectedMethod): Likewise.
	(_Jv_JNI_RegisterNatives): Likewise.
	(_Jv_JNI_AttachCurrentThread): Likewise.
	(_Jv_JNI_DestroyJavaVM): Likewise.

2000-02-28  Mo DeJong  <mdejong@cygnus.com>

	* java/util/zip/ZipOutputStream.java(closeEntry) : Fixed
	error caused by the incorrect casting of a long to an int.

2000-02-28  Mo DeJong  <mdejong@cygnus.com>

	* java/util/zip/ZipOutputStream.java(write_entry) : Fixed
	SIGSEV caused by use of the wrong instance variable.

2000-02-27  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/io/File.java (File(String, String)): For dirPath, treat an
	empty String the same as `null'.

2000-02-26  Anthony Green  <green@cygnus.com>

	* gnu/gcj/io/MimeTypes.java: Test for null.

	* jni.cc (_Jv_JNI_AttachCurrentThread): Minor cleanup.
	(JNI_GetCreatedJavaVMs): Remove compiler warning.

	* java/net/URLConnection.java: Update copyright notice.

2000-02-25  Tom Tromey  <tromey@cygnus.com>

	* jni.cc (_Jv_JNI_RegisterNatives): Conditionalize body on
	`INTERPRETER'.

2000-02-25  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/net/URLConnection.java (initializeDateFormats): New
	private method.
	(getHeaderFieldDate): Call initializeDateFormats if required.
	locale, dateFormat1, dateFormat2, dateFormat3: Don't initialize
	these.
	Fix for PR libgcj/38.

2000-02-24  Warren Levy  <warrenl@cygnus.com>

	* java/math/BigInteger.java(ival): Made private.
	(words): Ditto.
	(neg): Ditto.

2000-02-20  Anthony Green  <green@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (ordinary_java_source_files): Add
	gnu/gcj/io/DefaultMimeTypes.java and gnu/gcj/io/MimeTypes.java

	* scripts/MakeDefaultMimeTypes.java: New file.
	* scripts/mime.types: New file.
	* scripts/classes.pl: Moved from top level.
	* classes.pl: Moved to scripts directory.

	* java/net/URLConnection.java: Implement guessContentTypeFromName.

	* gnu/gcj/io/MimeTypes.java: New file.
	* gnu/gcj/io/DefaultMimeTypes.java: New file.

2000-02-20  Tom Tromey  <tromey@cygnus.com>

	* boehm.cc (_Jv_AllocBytes): Clear returned memory.

2000-02-19  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/zip/ZipEntry.java (setCrc): Fix overflow.
	(setSize): ditto.

2000-02-18  Tom Tromey  <tromey@cygnus.com>

	* include/jvm.h (_Jv_GetJavaVM): Declare.
	* include/java-interp.h (_Jv_GetFirstMethod): New function.
	(_Jv_MethodBase::get_method): New method.
	(_Jv_JNIMethod::set_function): New method.
	* jni.cc (_Jv_JNI_UnregisterNatives): New function.
	(_Jv_JNI_RegisterNatives): New function.
	(_Jv_JNIFunctions): Updated for new functions.
	(_Jv_GetJavaVM): New function.
	(_Jv_JNI_GetJavaVM): Use it.  Now static.
	(_Jv_JNI_AttachCurrentThread): Create a new JNIEnv if this thread
	is already a Java thread but does not have a JNIEnv yet.

	* java/lang/natRuntime.cc (_load): Pass the JavaVM to the onload
	function.

2000-02-17  Tom Tromey  <tromey@cygnus.com>

	* gcj/field.h (_Jv_Field::getClass): Don't use JvAssert.
	Fixes PR gcj/152.

2000-02-16  Tom Tromey  <tromey@cygnus.com>

	* jni.cc (_Jv_JNI_CallStaticMethodV): Added some assertions.

	* jni.cc (_Jv_JNI_NewObjectV): Corrected assertion.
	(_Jv_JNI_NewObject): Likewise.
	(_Jv_JNI_NewObjectA): Likewise.
	(_Jv_JNI_CallAnyMethodV): In constructor case, pass correct value
	as "return" type to _Jv_CallAnyMethodA.
	(_Jv_JNI_CallAnyMethodA): Likewise.
	(_Jv_JNI_CallAnyVoidMethodV): Likewise.

	* jni.cc (_Jv_JNI_FindClass): Use ClassLoader.loadClass, not
	findClass.

2000-02-15  Tom Tromey  <tromey@cygnus.com>

	* resolve.cc (ncode): Set args_raw_size.  Compute jni_cif and
	jni_arg_types.
	(init_cif): Added `rtype_p' argument.
	* include/java-interp.h (class _Jv_MethodBase): Added
	args_raw_size.
	(class _Jv_InterpMethod): Removed args_raw_size.
	(class _Jv_JNIMethod): Added jni_cif and jni_arg_types fields.
	* jni.cc (call): Pass JNIEnv and (for static methods only) the
	class pointer as well as the ordinary arguments.

	* jni.cc (mangled_name): Skip leading `(' in signature.

	* jni.cc (add_char): Added missing `else'.

	* jni.cc (_Jv_JNI_AttachCurrentThread): Return error if malloc
	fails.

2000-02-15  Bryce McKinlay  <bryce@albatross.co.nz>

	* NEWS: Updated.

	* java/lang/natRuntime.cc (_load): Include library path with
	exception message.

	* java/lang/natSystem.cc (init_properties): set java.lang.classpath
	property.

	* java/lang/natThread.cc (dumpStack): Removed.
	* java/lang/Thread.java (dumpStack): Implemented.

2000-02-15  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natRuntime.cc (_load): On Unix, prefix library name
	with `lib' for loadLibrary.  Fixes PR gcj/150.

2000-02-14  Warren Levy  <warrenl@cygnus.com>

	* gnu/gcj/math/MPN.java(findLowestBit): Made methods public.

	* java/math/BigInteger.java(BigInteger(int,int,java.util.Random):
	  New constructor.
	(min): Implemented.
	(max): Implemented.
	(modPow): Rewritten to not use the naive, slow, brute force approach.
	(isProbablePrime): Implemented.
	(testBit): Implemented.
	(flipBit): Implemented.
	(getLowestSetBit): Implemented.

2000-02-16  Anthony Green  <green@redhat.com>

	* configure.host: Use the same options for i386 and i486 as we do
	for i586 and i686.

2000-02-12  Tom Tromey  <tromey@cygnus.com>

	* java/io/File.java (createTempFile): Use low bits from counter,
	not high bits.

Fri Feb 11 19:48:08 2000  Anthony Green  <green@cygnus.com>

	* THANKS: More thanks.

2000-02-11  Tom Tromey  <tromey@cygnus.com>

	* interpret.cc (continue1): Use STOREA, not STOREI, to implement
	astore instruction.  From Hans Boehm.

2000-02-11  Warren Levy  <warrenl@cygnus.com>

	* java/math/BigInteger.java(BigInteger(String, int)): New constructor.
	(BigInteger(String)): New constructor.
	(not): Rewritten using version from Kawa's BitOps class.
	(valueOf): New private methods from Kawa's BitOps class.
	(swappedOp): ditto.
	(bitOp): ditto.
	(setBitOp): ditto.
	(and): Implemented.
	(or): Implemented.
	(xor): Implemented.
	(andNot): Implemented.
	(clearBit): Implemented.
	(setBit): Implemented.
	(bitCount): Implemented.
	(toByteArray): Implemented.

2000-02-11  Tom Tromey  <tromey@cygnus.com>

	* java/io/File.java (nextValue): Now synchronized.

2000-02-10  Tom Tromey  <tromey@cygnus.com>

	* java/io/natFileDescriptorPosix.cc (open): Recognize EXCL flag.
	* java/io/FileDescriptor.java (EXCL): New static field.
	* java/io/File.java (tmpdir): New static field.
	(createTempFile): New method.
	(nextValue): New method.
	* java/lang/natSystem.cc (init_properties): Set java.io.tmpdir
	property.

	* include/jni.h (JNI_FALSE): Renamed from JNI_TRUE; oops.
	(jboolean): Declare as an attributed int, not a bool.
	(_Jv_func): Declare differently for C.

	* gnu/gcj/jni/natNativeThread.cc: New file.
	* gnu/gcj/jni/NativeThread.java: New file.
	* java/lang/Thread.java (data): Now a RawData.
	* include/jvm.h (_Jv_GetCurrentJNIEnv, _Jv_SetCurrentJNIEnv):
	Declare.
	* Makefile.in: Rebuilt.
	* Makefile.am (java/lang/Thread.h): New target.
	(ordinary_java_source_files): Added NativeThread.java.
	(nat_source_files): Added natNativeThread.cc.
	* java/lang/natThread.cc: Include <jni.h>
	(struct natThread): Added `jni_env' field.
	(_Jv_GetCurrentJNIEnv): New function.
	(_Jv_SetCurrentJNIEnv): Likewise.
	(initialize_native): Initialize jni_env.
	Include RawData.h.
	* jni.cc (ThreadGroupClass): New define.
	(_Jv_JNI_InvokeFunctions): New structure.
	(JNI_GetCreatedJavaVMs): New function.
	(the_vm): New global.
	(JNI_GetDefaultJavaVMInitArgs): New function.
	Include NativeThread.h.
	(NativeThreadClass): New define.
	(_Jv_JNI_EnsureLocalCapacity): Return JNI_ERR, not -1.
	(_Jv_JNI_DestroyJavaVM): New function.
	(_Jv_JNI_AttachCurrentThread): New function.
	(_Jv_JNI_DetachCurrentThread): New function.
	(_Jv_JNI_GetEnv): New function.
	(JNI_CreateJavaVM): New function.
	(_Jv_JNI_GetJavaVM): New function.
	(_Jv_JNIFunctions): Added entry for GetJavaVM.
	* include/jni.h (JavaVMAttachArgs): New structure.
	(JNI_EDETACHED): New define.
	(JNI_EVERSION): Likewise.
	(JavaVM): Define properly.
	(struct JNIInvokeInterface): New structure.
	(class _Jv_JavaVM): New class.
	(JNI_OnLoad, JNI_OnUnload): Declare.
	(JNI_GetDefaultJavaVMInitArgs, JNI_CreateJavaVM,
	JNI_GetCreatedJavaVMs): Declare.
	(JavaVMInitArgs): New typedef.
	(JavaVMOption): Likewise.
	(JNI_ERR): New define.
	(JNI_OK): Likewise.

2000-02-10  Andrew Haley  <aph@cygnus.com>

	* interpret.cc: Don't include fdlibm.h.
	Replace #if with #ifdef throughout.
	Declare extern __ieee754_fmod.
	(continue1): Remove op_getfield, op_getstatic, op_putfield,
	op_putstatic insns.
	* resolve.cc (_Jv_PrepareClass): Use imeth as method pointer.
	Search class hierarchy for superclass vtable.

	* java/lang/natClassLoader.cc (_Jv_UnregisterClass): Don't fall
	off the end of a pointer list.

	* java/lang/natThread.cc (stop): Don't abort, throw an exception
	instead.
	(suspend): Ditto.

2000-02-09  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natRuntime.cc (_load): Call add_library.
	(loadLibraryInternal): Likewise.

	* gnu/gcj/convert/natIconv.cc (Input_iconv::finalize): Call
	iconv_close when handle is not NULL.  Thanks to Andrew Haley.
	(Output_iconv::finalize): Likewise.

2000-02-08  Tom Tromey  <tromey@cygnus.com>

	* java/util/Properties.java (setProperty): New method.
	(store): New method.

2000-02-07  Tom Tromey  <tromey@cygnus.com>

	* java/lang/Runtime.java (_load): Declare.
	(load, loadLibrary): Wrote in terms of _load.
	* java/lang/natRuntime.cc (load): Call JNI_OnLoad if it appears in
	library.
	(loadLibrary): Likewise.
	Include <jni.h>.
	(_load): New method.
	(loadLibrary, load): Removed.

	* jni.cc (ThrowableClass): New define.
	(_Jv_JNI_Throw): Check argument.
	(_Jv_JNI_ThrowNew): Likewise.
	(wrap_value): Don't wrap object if it is NULL.
	(_Jv_JNI_DefineClass): Use wrap_value.
	(_Jv_JNI_FindClass): Likewise.
	(_Jv_JNI_GetSuperclass): Likewise.
	(_Jv_JNI_ExceptionOccurred): Likewise.
	(_Jv_JNI_AllocObject): Likewise.
	(_Jv_JNI_GetObjectClass): Likewise.
	(_Jv_JNI_NewString): Likewise.
	(_Jv_JNI_NewStringUTF): Likewise.
	(_Jv_JNI_NewObjectArray): Likewise.
	(_Jv_JNI_GetObjectArrayElement): Likewise.
	(_Jv_JNI_NewPrimitiveArray): Likewise.
	(_Jv_JNI_ToReflectedField): Likewise.
	(_Jv_JNI_ToReflectedMethod): Likewise.
	(_Jv_JNI_AllocObject): Check argument.
	(_Jv_JNI_NewObjectV): Likewise.
	(_Jv_JNI_NewObject): Likewise.
	(_Jv_JNI_NewObjectA): Likewise.
	(_Jv_JNI_GetObjectClass): Likewise.
	(_Jv_JNI_GetField): Likewise.
	(_Jv_JNI_SetField): Likewise.

	* interpret.cc (PUSHL): Don't use expression statement.
	(PUSHD): Likewise.
	(LOADL): Likewise.
	(STOREL): Likewise.

	* jni.cc (add_char): Conditional on INTERPRETER.
	(mangled_name): Likewise.
	(call): Likewise.
	* include/java-interp.h (class _Jv_MethodBase): Conditional on
	INTERPRETER.
	(class _Jv_JNIMethod): Likewise.

2000-02-04  Warren Levy  <warrenl@cygnus.com>

	* Makefile.am: Added MPN.java and BigInteger.java.
	* Makefile.in: Rebuilt.
	* gnu/gcj/math/MPN.java: New file.  From Kawa by Per Bothner
	<per@bothner.com>.
	* java/math/BigInteger.java: New file.  Based primarily on
	Kawa's IntNum.java by Per Bothner <per@bothner.com>.

2000-02-04  Tom Tromey  <tromey@cygnus.com>

	* defineclass.cc (handleMethodsBegin): Allocate _Jv_MethodBase
	pointers.
	(handleMethodsEnd): Fixed error messages.  Create a _Jv_JNIMethod
	if the method is native.
	* resolve.cc (ncode): Don't handle native methods.
	(_Jv_JNIMethod::ncode): New method.
	(_Jv_PrepareClass): Handle native methods.
	* jni.cc (call): Renamed from _Jv_JNI_conversion_call.
	Include AbstractMethodError.h.
	(add_char): New function.
	(mangled_name): Likewise.
	* include/java-interp.h (class _Jv_JNIMethod): New class.
	(class _Jv_MethodBase): New class.
	(class _Jv_InterpMethod): Derive from _Jv_MethodBase.
	(_Jv_InterpClass): Changed `interpreted_methods' field to type
	`_Jv_MethodBase'.

	* include/jvm.h (_Jv_FindSymbolInExecutable): Declare.
	* java/lang/natRuntime.cc (libraries_size, libraries_count,
	libraries): New globals.
	(add_library): New function.
	(_Jv_FindSymbolInExecutable): New function.

	* java/lang/natClassLoader.cc (initiated_classes, loaded_classes):
	Now static.

2000-02-04  Andrew Haley  <aph@cygnus.com>

	* java/lang/Throwable.java (CPlusPlusDemangler): New class.
	(printStackTrace): Use a CPlusPlusDemangler to demangle names.
	* java/lang/natThrowable.cc (printRawStackTrace): Rename
	printStackTrace to printRawStackTrace.

2000-02-03  Tom Tromey  <tromey@cygnus.com>

	* java/util/Calendar.java (toString): New method.
	* java/util/SimpleTimeZone.java (clone): New method.
	(toString): New method.
	* java/util/TimeZone.java (clone): New method.
	* java/text/SimpleDateFormat.java (clone): New method.
	* java/text/NumberFormat.java (clone): New method.
	(equals): New method.
	* java/text/Format.java (clone): New method.
	* java/text/DateFormatSymbols.java (DateFormatSymbols): New
	constructor.
	(clone): New method.
	* java/text/DateFormat.java (clone): New method.
	* java/text/Collator.java (clone): New method.

2000-02-03  Tom Tromey  <tromey@cygnus.com>

	* java/io/PipedOutputStream.java (write(byte[], int, int)): New
	method.

2000-02-01  Tom Tromey  <tromey@cygnus.com>

	* include/java-interp.h (_Jv_JNI_conversion_call): Declare.
	* resolve.cc (ncode): Use _Jv_JNI_conversion_call when
	constructing the closure if the function is native.
	* jni.cc (_Jv_JNI_conversion_call): Now returns `void'.  No longer
	a template function, #if'd out, or static.
	Include <java-interp.h>.

	* include/jni.h (class _Jv_JNIEnv): Corrected calls using `...'.

	* include/jni.h (class _Jv_JNIEnv): Added all C++ inline methods.

	* jni.cc (_Jv_JNI_PopLocalFrame): Leave loop when `n == NULL'.
	(_Jv_JNI_conversion_call): _Jv_JNI_PopLocalFrame will never leave
	`locals == NULL'.
	(wrap_value): New function.
	(_Jv_JNI_CallAnyMethodV): Use it.
	(_Jv_JNI_CallAnyMethodA): Likewise.
	(_Jv_JNI_GetField): Use wrap_value; removed specialized version.
	(_Jv_JNI_GetStaticField): Likewise.

	* jni.cc (_Jv_JNI_GetField): Specialize for jobject.
	(_Jv_JNI_GetStaticField): Likewise.

2000-01-31  Tom Tromey  <tromey@cygnus.com>

	* prims.cc (_Jv_MallocUnchecked): New function.
	(main_init): Call _Jv_JNI_Init.
	* include/jvm.h (_Jv_MallocUnchecked): Declare.
	(_Jv_JNI_Init): Declare.
	* jni.cc: Include Hashtable.h, OutOfMemoryError.h, Integer.h,
	<string.h>.
	(_Jv_JNI_NewGlobalRef): New function.
	(_Jv_JNI_DeleteGlobalRef): New function.
	(_Jv_JNI_DeleteLocalRef): New function.
	(_Jv_JNI_conversion_call): Initialize and clear local reference
	frame.
	(_Jv_JNI_NewLocalRef): New function.
	(struct _Jv_JNI_LocalFrame): New structure.
	(_Jv_JNI_PushLocalFrame): New function.
	(_Jv_JNI_EnsureLocalCapacity): New function.
	(FRAME_SIZE): New define.
	(_Jv_JNI_GetStringChars): Mark string, not characters.
	(_Jv_JNI_ReleaseStringChars): Unmark string, not characters.
	(_Jv_JNI_GetPrimitiveArrayElements): Mark array, not elements.
	(_Jv_JNI_ReleasePrimitiveArrayElements): Unmark array, not
	elements.
	(_Jv_JNI_DefineClass): Make return value a local ref.
	(_Jv_JNI_FindClass): Likewise.
	(_Jv_JNI_GetSuperclass): Likewise.
	(_Jv_JNI_ExceptionOccurred): Likewise.
	(_Jv_JNI_AllocObject): Likewise.
	(_Jv_JNI_GetObjectClass): Likewise.
	(_Jv_JNI_CallAnyMethodV): Likewise.
	(_Jv_JNI_NewString): Likewise.
	(_Jv_JNI_NewStringUTF): Likewise.
	(_Jv_JNI_NewObjectArray): Likewise.
	(_Jv_JNI_GetObjectArrayElement): Likewise.
	(_Jv_JNI_ToReflectedField): Likewise.
	(_Jv_JNI_ToReflectedMethod): Likewise.
	(_Jv_JNIFunctions): Updated table for new functions.
	(_Jv_JNI_Init): New function.
	(mark_for_gc): Wrote.
	(unmark_for_gc): Wrote.
	* include/jni.h (struct JNINativeInterface): Removed name from
	PopLocalFrame parameter.
	(class _Jv_JNIEnv): Added `locals' field.

Mon Jan 31 00:43:15 2000  Anthony Green  <green@redhat.com>

	* gnu/gcj/convert/natIconv.cc (read): Minor fixes.
	(write): Ditto.

2000-01-30  Tom Tromey  <tromey@cygnus.com>

	* include/config.h.in: Rebuilt.
	* acconfig.h (HAVE_ICONV): Define.
	* configure: Rebuilt.
	* configure.in: Check for `iconv' function.
	* gnu/gcj/convert/BytesToUnicode.java (getDecoder): Try iconv if
	no specific encoder exists.
	* gnu/gcj/convert/UnicodeToBytes.java (getEncoder): Try iconv if
	no specific encoder exists.
	* Makefile.in: Rebuilt.
	* Makefile.am (convert_source_files): Mention Input_iconv.java and
	Output_iconv.java.
	(nat_source_files): Added natIconv.cc.
	* gnu/gcj/convert/natIconv.cc: New file.
	* gnu/gcj/convert/Input_iconv.java: New file.
	* gnu/gcj/convert/Output_iconv.java: New file.

2000-01-28  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (LIBFFIINCS): Added MULTIBUILDTOP.

2000-01-26  Tom Tromey  <tromey@cygnus.com>

	* gcj/method.h (JvNumMethods): Moved from Class.h.
	(JvGetFirstMethod): Likewise.
	* java/lang/Class.h (Object): Updated decl of
	_Jv_JNI_ToReflectedField.
	(Object): Added _Jv_JNI_ToReflectedMethod as a friend.
	* Makefile.in: Rebuilt.
	* Makefile.am (java/lang/reflect/Field.h): Added `jboolean'
	argument of _Jv_JNI_ToReflectedField.
	(java/lang/reflect/Constructor.h): Added _Jv_JNI_ToReflectedMethod
	as a friend.
	(java/lang/reflect/Method.h): Likewise.
	* include/jni.h (class _Jv_JNIEnv): Added `klass' member.  Use
	__GCJ_JNI_IMPL__.
	(jweak): New typedef.
	(struct JNINativeInterface): Correctly declare remaining entries.
	* jni.cc: Include Class.h, ClassLoader.h.
	(_Jv_JNI_FindClass): New function.
	(_Jv_JNI_DefineClass): New function.
	(_Jv_JNI_conversion_call): New function.
	(_Jv_JNI_FindClass): Use current class loader to find class.
	(_Jv_JNI_ExceptionCheck): New function.
	(_Jv_JNI_FromReflectedField): Now static.
	(MethodClass): New define.
	(_Jv_JNI_FromReflectedMethod): New function.
	(_Jv_JNI_ToReflectedMethod): Likewise.
	Include Method.h.
	(_Jv_JNI_IsAssignableFrom): Renamed.
	(_Jv_JNI_GetStringRegion): New function.
	Include StringIndexOutOfBoundsException.h.
	(_Jv_JNI_GetStringUTFRegion): New function.
	(_Jv_JNIFunctions): Updated for new functions.
	(_Jv_JNI_GetPrimitiveArrayCritical): New function
	(_Jv_JNI_ReleasePrimitiveArrayCritical): Likewise.
	(_Jv_JNI_GetStringCritical): New function.
	(_Jv_JNI_ReleaseStringCritical): Likewise.
	(get_throwable): Removed.
	(GCJ_JV_JNIENV_FRIEND): Removed.
	(__GCJ_JNI_IMPL__): Define.
	Include method.h.

	* resolve.cc (get_ffi_type_from_signature): Handle case where
	boolean is an int.

Tue Jan 25 08:51:16 2000  Tom Tromey  <tromey@ferrule.cygnus.com>

	* interpret.cc (run): Don't call println.
	Don't include PrintStream.h.

	* gcj/field.h (struct _Jv_Field): Use "jshort" as type for
	nameIndex.  Use "jint" as type for boffset.
	* java/lang/Class.h (struct _Jv_Method): Made accflags a
	_Jv_ushort.
	(Class): Likewise.  Also changed type of method_count,
	vtable_method_count, size_in_bytes, field_count,
	static_field_count, interface_count.
	* gcj/array.h (__JArray): Made `length' a const jsize, not an
	int.

2000-01-21  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/natConstructor.cc (newInstance): Use
	_Jv_CallAnyMethodA.
	* include/jvm.h: Declare _Jv_CallAnyMethodA.
	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Renamed
	from _Jv_CallNonvirtualMethodA.  Changed interface; overloaded.
	Include <jni.h>.
	(COPY): Removed.
	(invoke): Use _Jv_CallAnyMethodA.
	(VAL): Redefined.
	* java/lang/Class.h (Class): Declare JvGetFirstStaticField,
	JvNumStaticFields, JvNumMethods, and JvGetFirstMethod as friend
	functions.
	(struct _Jv_Method): Added getNextMethod method.
	(JvNumMethods): New function.
	(JvGetFirstMethod): Likewise.
	* gcj/field.h (JvGetFirstStaticField): New function.
	(JvNumStaticFields): Likewise.
	(getNextField): Renamed from getNextInstanceField.
	(struct _Jv_Field): New method getClass.
	* jni.cc: Wrote many new functions.
	* include/jni.h (JNI_TRUE): Define.
	(JNI_FALSE): Likewise.
	(jobject, jclass, jstring, jarray, jthrowable, jobjectArray,
	jbyteArray, jshortArray, jintArray, jlongArray, jbooleanArray,
	jcharArray, jfloatArray, jdoubleArray): New typedefs.
	(jfieldID, jmethodID): Likewise.
	(JNI_COMMIT, JNI_ABORT): New defines.
	(JNINativeMethod): New struct.
	(struct JNINativeInterface): Correctly declared more entries.
	(class _Jv_JNIEnv): Added `ex' member.
	(JNI_VERSION_1_1): New define.
	(JNI_VERSION_1_2): Likewise.

	* boehm.cc (_Jv_MarkObj): Use getNextField, not
	getNextInstanceField.

2000-01-20  Tom Tromey  <tromey@cygnus.com>

	* resolve.cc (StringClass): Removed.
	* defineclass.cc (StringClass): Removed.

2000-01-19  Bryce McKinlay  <bryce@albatross.co.nz>

	* NEWS: updated.

2000-01-19  Tom Tromey  <tromey@cygnus.com>

	* interpret.cc (PC_REGISTER_ASM): Removed.

	* java/lang/natThrowable.cc: Don't use `#pragma implementation'.
	From Bryce McKinlay.

	* All files: Updated copyright to reflect Cygnus purchase.

2000-01-18  Bryce McKinlay <bryce@albatross.co.nz>

	* configure: Rebuilt.
	* configure.in: Recognize --disable-interpreter.

2000-01-18  Andrew Haley  <aph@cygnus.com>

	* name-finder.cc (lookup): Check for dladdr function.
	acconfig.h (HAVE_DLADDR): Add.
	configure.in: Check for HAVE_DLADDR
	configure: Rebuilt.
	include/config.h.in:  Rebuilt.

2000-01-17  Andrew Haley  <aph@cygnus.com>

	* prims.cc (_Jv_RunMain): Set the name of this executable.

2000-01-17  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natThrowable.cc (fillInStackTrace): Return `this' even
	when backtrace can't be computed.

	* configure: Rebuilt.
	* configure.in: Fixed typo in AC_CONFIG_SUBDIRS call.

	* java/lang/Runtime.java (loadLibraryInternal): Declare.
	* java/lang/natClassLoader.cc (_Jv_FindClass): Removed dead copy.
	(_Jv_FindClassInCache): Likewise.
	(_Jv_FindClass): Don't conditionalize body on INTERPRETER.
	(findSystemClass): Try to load class from compiled module.
	Include Runtime.h.
	* java/lang/natRuntime.cc (load): Use UTF-8 copy of filename.
	(loadLibrary): Likewise.
	(lt_preloaded_symbols): Define.
	(loadLibraryInternal): New method.
	* include/config.h.in: Rebuilt.
	* acconfig.h (USE_LTDL): Added.
	* Makefile.am (SUBDIRS): Added $(DIRLTDL).
	(INCLUDES): Added $(INCLTDL).
	(libgcj_la_DEPENDENCIES): Added $(LIBLTDL).
	(libgcj_la_LIBADD): Likewise.
	* aclocal.m4, configure: Rebuilt.
	* configure.in: Added libltdl support.

2000-01-15  Tom Tromey  <tromey@cygnus.com>

	* prims.cc (_Jv_PrimClass): Use `JV_STATE_NOTHING', not `0'.

2000-01-14  Andrew Haley  <aph@cygnus.com>

	* java/lang/natThrowable.cc: New file.

	* java/lang/Throwable.java (fillInStackTrace): Make native.
	(printStackTrace): Call native method to do this.
	(Throwable): Call fillInStackTrace.
	(stackTrace): New variable.

	* include/jvm.h: Add _Jv_ThisExecutable functions.

	* prims.cc: (_Jv_execName): New variable.
	(catch_segv): Call fillInStackTrace.
	(catch_fpe): Ditto.
	(_Jv_ThisExecutable): New functions.
	(JvRunMain): Set the name of this executable.

	* Makefile.am: Add java/lang/natThrowable.cc.
	Add name-finder.cc.
	* Makefile.in: Rebuilt.

	* acconfig.h: Add HAVE_PROC_SELF_EXE.

	* configure.in: Force link with __frame_state_for in
	FORCELIBGCCSPEC.  Add new checks for backtrace.
	* include/config.h.in: Rebuilt.

	* name-finder.cc: New file.
	* include/name-finder.h: New file.

2000-01-16  Anthony Green  <green@cygnus.com>

	* java/lang/StringBuffer.java (StringBuffer): Don't special case
	null argument.

2000-01-16  Jeff Sturm  <jsturm@sigma6.com>

	* java/io/StreamTokenizer.java (nextToken): Avoid unread(TT_EOF).

2000-01-13  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natClassLoader.cc (_Jv_FindClass): Register `loader',
	not system loader, as initiating loader.

2000-01-11  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natSystem.cc (getpwuid_adaptor): New adaptor for
	HP/UX.  From David Scott Urban.

2000-01-10  Jeff Sturm  <jsturm@sigma6.com>

	* java/lang/natMath.cc (pow): Cast args to `double', not
	`jdouble'.
	(atan2): Likewise.
	(IEEEremainder): Likewise.
	* java/lang/mprec.h: Don't wrap includes in `extern "C"'.
	* java/lang/fdlibm.h: Don't wrap includes in `extern "C"'.

2000-01-09  Anthony Green  <green@cygnus.com>

	* java/lang/natString.cc (init): Test for overflow condition
	during out of bounds check.
	(getChars): Throw StringIndexOutOfBoundsException, not
	ArrayIndexOutOfBoundsException.
	(getBytes): Ditto.
	(regionMatches): Obey case option during string comparison.

	* configure.host (ligcj_interpreter): New variable.  Enable
	interpreter by default on IA-32.
	* configure.in:  Examine libgcj_interpreter.
	* configure: Rebuilt.

2000-01-07  Tom Tromey  <tromey@cygnus.com>

	* mauve-libgcj: Don't disable ClassTest.

	* java/lang/natClass.cc (getClasses): Wrote.

2000-01-06  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natClass.cc (_getConstructors): Correctly check
	whether method name is the init name.
	(getMethod): Look at accflags on method in `klass', not `this'.

2000-01-05  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natClass.cc (getMethod): Compute offset relative to
	`klass's methods table, not `this's table.

	* java/lang/reflect/natMethod.cc (_Jv_CallNonvirtualMethodA):
	In unwrapping/widening case, check whether `k' is null, not
	whether it is primitive.  Initialize `num' from `argelts', not
	`paramelts'.  Correct create and pass arguments to ffi_call.
	Don't let presence of `this' argument affect index used to look in
	argument arrays.
	(COPY): Set appropriate element in `values' vector.

	* java/lang/natClass.cc: Include <gcj/method.h>.

	* java/lang/Class.h (_getMethods): Correctly declare as private,
	not public.

	* java/lang/Class.h (_getMethods): Declare.
	* java/lang/Class.java (_getMethods): Declare.
	* java/lang/natClass.cc (getDeclaringClass): Always return NULL.
	(getDeclaredClasses): Always return empty array.
	(_getMethods): New method.
	(getMethods): Wrote.
	(getDeclaredMethod): Return `rmethod'.
	(finit_name): New global.
	(getDeclaredMethods): Check for finit_name.
	(_getMethods): Likewise.
	(getMethod): Only return public methods.

	* java/lang/reflect/natMethod.cc (get_ffi_type): Test size of
	jboolean and select correct ffi type on that basis.
	(_Jv_CallNonvirtualMethodA): Handle `void' return type.
	Constructor call always has `void' return type.

2000-01-04  Tom Tromey  <tromey@cygnus.com>

	* java/lang/Class.h (getSignature): Updated.
	* java/lang/Class.java (getSignature): Updated.
	* java/lang/natClass.cc (getSignature): Added `is_constructor'
	argument.
	(getConstructor): Ensure constructor is public.
	(_getConstructors): Check for public-ness of constructor when
	`declared' is false, not when it is true.

2000-01-04  Warren Levy  <warrenl@cygnus.com>

	* java/net/natPlainDatagramSocketImpl.cc (peek): Removed unnecesary
	comment.
	(receive): Set the sender's address in the DatagramPacket.

2000-01-04  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/natConstructor.cc (newInstance): Pass
	declaring class as return_type argument to
	_Jv_CallNonvirtualMethodA.
	* java/lang/reflect/natMethod.cc (_Jv_CallNonvirtualMethodA): In
	constructor case, create object and use it as `this' argument.
	* java/lang/Class.h (_getConstructors): Declare.
	(_getFields): Declare.
	* java/lang/Class.java (getConstructors): Wrote.
	(_getConstructors): New native method.
	(getDeclaredConstructors): Wrote.
	(_getFields): Declare new native method.
	* java/lang/natClass.cc (_Jv_LookupInterfaceMethod): Removed
	incorrect comment.
	(getMethod): Work correctly when class is primitive.
	(getDeclaredMethods): Likewise.  Compute offset using `method',
	not `mptr'.
	(getDeclaredMethod): Likewise.
	(getConstructor): Wrote.
	(ConstructorClass): New define.
	(getDeclaredConstructor): Wrote.
	(_getConstructors): New method.
	(_getFields): New method.
	(getFields): Wrote.

	* Makefile.in: Rebuilt.
	* Makefile.am (AM_CXXFLAGS): Added -D_GNU_SOURCE.

	* prims.cc: Remove `#pragma implementation'.
	* gcj/array.h: Remove `#pragma interface'.

	* prims.cc (_Jv_equaln): New function.
	* java/lang/Class.java (getSignature): Declare.
	* resolve.cc (_Jv_LookupDeclaredMethod): Moved to natClass.cc.
	* java/lang/natClass.cc (_Jv_LookupDeclaredMethod): Moved from
	resolve.cc.
	(getSignature): New method.
	(getDeclaredMethod): Wrote.
	(getMethod): Wrote.
	Include StringBuffer.h.
	* java/lang/Class.h (Class): Added _Jv_FromReflectedConstructor
	as a friend.  Unconditionally declare _Jv_LookupDeclaredMethod as
	a friend.
	(getSignature): Declare.
	* include/jvm.h (_Jv_GetTypesFromSignature): Declare.
	(_Jv_equaln): Declare.
	(_Jv_CallNonvirtualMethodA): Declare.
	* Makefile.in: Rebuilt.
	* Makefile.am (nat_source_files): Added natConstructor.cc.
	(java/lang/reflect/Constructor.h): New target.
	* java/lang/reflect/natConstructor.cc: New file.
	* java/lang/reflect/Constructor.java (newInstance): Now native.
	(declaringClass): Renamed from decl_class.
	(offset): Renamed from index.
	(getType): New native method.
	(getModifiers): Now native.
	(getParameterTypes): Call getType if required.
	(hashCode): Include hash code from declaring class.
	(modifiers): Removed.
	(toString): Call getType if required.
	* gcj/method.h (_Jv_FromReflectedConstructor): New function.
	* java/lang/reflect/natMethod.cc (hack_call): New method.
	Removed `#if 0' around FFI code.
	Include <gnu/gcj/RawData.h>.
	(invoke): Use _Jv_CallNonvirtualMethodA.  Throw
	IllegalArgumentException when argument object and class disagree.
	(_Jv_GetTypesFromSignature): New function.
	(getType): Use it.
	(ObjectClass): New define.
	(_Jv_CallNonvirtualMethodA): New function.
	* java/lang/reflect/Method.java (hack_trampoline): New method.
	(hack_call): New native method.
