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.

2001-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.

