2000-12-30  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am (libgcj_la_LIBADD): Add $(THREADLIBS). This ensures that
	the correct versions of various linuxthreads functions get linked.
	* Makefile.in: Rebuilt.
	* java/lang/natThread.cc (finalize_native): New static function. Call
	_Jv_ThreadDestroyData.
	(initialize_native): Register finalizer for "data".
	* include/posix-threads.h (_Jv_ThreadInitData): New simpler prototype.
	(_Jv_ThreadDestroyData): New prototype.
	* include/win32-threads.h: Ditto.
	* include/no-threads.h: Ditto.
	* posix-threads.cc (_Jv_ThreadInitData): Implement new prototype.
	(_Jv_ThreadDestroyData): New function. Free native thread "data" and
	move mutex and condition variable destroy code from:
	(really_start): ...here.
	(_Jv_ThreadStart): Set PTHREAD_CREATE_DETACHED.
	* win32-threads.cc (_Jv_ThreadInitData): Implement new prototype.
	(_Jv_ThreadDestroyData): Implemented.
	* nogc.cc (_Jv_AllocObject): Use "void *" not "ptr_t".
	(_Jv_AllocArray): Ditto.

2000-12-27  Jeff Sturm  <jeff.sturm@commerceone.com>

	* java/sql/DriverManager.java (getConnection): Don't set user/password
	properties if null.

2000-12-27  Warren Levy  <warrenl@redhat.com>

	Fix for PR libgcj/1358:
	* java/lang/System.java: Update Copyright date properly.
	* java/util/Calendar.java: Fix typo in comment.
	(set): Set 24-hour clock hour instead of 12-hour clock hour.
	* java/util/GregorianCalendar.java (GregorianCalendar): Properly
	initialize times.  Spec says to set H:M:S values to zero only if
	a date is given.
	* java/util/TimeZone.java (getDefaultDisplayName): Casts to char
	needed for evaluating numbers '0' to '9' in printouts of GMT offsets.
	* java/util/natGregorianCalendar.cc (computeTime): Properly handle
	timezones and GMT offsets, being careful to account for units of
	milliseconds vs. seconds.

2000-12-28  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/natClass.cc (_Jv_IsAssignableFrom): Primitive TYPEs can
	not be assigned to Object.

	Fix for PR libgcj/1516:
	* java/lang/reflect/natMethod.cc (primitives): Remove void entry.
	Add boolean entry.
	(can_widen): Declared inline. Remove redundant checks for void
	arguments and char->short conversion. Add special case for boolean
	conversions.
	(ffi_type): Declared inline.
	(_Jv_CallAnyMethodA): Move unwrapping logic inside isPrimitive() block.

2000-12-26  Petter Reinholdtsen  <pere@hungry.com>

	* java/sql/SQLWarning.java: Fixed typo in comment.

2000-12-26  Tom Tromey  <tromey@redhat.com>

	* java/awt/MenuItem.java (paramString): Now protected.

	* java/awt/MenuShortcut.java: Implements Serializable.

	* java/awt/MenuBar.java: Rewrote from scratch.

	* java/awt/MenuComponent.java (removeNotify): Wrote.
	Implements Serializable.

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

	* java/awt/CheckboxMenuItem.java: Wrote.

2000-12-25  Tom Tromey  <tromey@redhat.com>

	* java/awt/MenuContainer.java: Fixed typo.

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

	* java/awt/Color.java (rgba): Now package-private.

	* java/awt/event/InputEvent.java (isAltGraphDown): New method.

	* java/awt/event/ContainerEvent.java (getContainer): Renamed from
	getComponent.

	* java/awt/MenuItem.java (addNotify): New method.
	(MenuItem(String,MenuShortcut)): New constructor.
	(setLabel): Notify peer of change.
	(setEnabled): Likewise.

	* java/awt/GridLayout.java (toString): New method.

	* java/awt/FlowLayout.java (LEADING, TRAILING): New constants.
	(FlowLayout): Check for LEADING and TRAILING.
	(setAlignment): Likewise.
	(layoutContainer): Handle component orientation.

	* java/awt/Component.java (orientatin): New field.
	(setComponentOrientation): Wrote.
	(getComponentOrientation): Wrote.

	* java/awt/Event.java (Event): Implements Serializable.
	(consumed): New field for serialization.
	* java/awt/Dimension.java (Dimension): Implements Serializable.
	* java/awt/Cursor.java (Cursor): Implements Serializable.
	* java/awt/Container.java (Container): No longer abstract.

	* java/awt/Choice.java: Wrote.
	* java/awt/Checkbox.java: Wrote.
	* java/awt/ItemSelectable.java: Documented.
	* java/awt/CheckboxGroup.java: Wrote.

	* java/awt/CardLayout.java (layoutContainer): Directly use fields
	in other classes.
	(getSize): Likewise.

2000-12-24  Jeff Sturm  <jeff.sturm@commerceone.com>

	* java/io/FileDescriptor.java: Initialize fd to -1.
	Remove default constructor.

2000-12-23  Joseph S. Myers  <jsm28@cam.ac.uk>

	* java/lang/mprec.h: Change C9X reference to refer to C99.

2000-12-22  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/Throwable.java (trace_enabled): New static field.
	* java/lang/natThrowable.cc (fillInStackTrace): Do nothing if
	trace_enabled not set.
	* prims.cc (main_init): Turn off trace_enabled while creating
	default exception objects.

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

	* java/beans/PropertyChangeListener.java: Extends EventListener.
	* java/beans/VetoableChangeListener.java: Extends EventListener.

	* java/util/zip/Deflater.java (update, init): Now private.

2000-12-21  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/BasicMapEntry.java: Re-added.
	* java/util/HashMap.java (Entry): Extend BasicMapEntry.
	(putAll): Test for BasicMapEntry.
	* java/util/Hashtable.java (Entry): Extend BasicMapEntry.
	(putAll): Test for BasicMapEntry.
	Change references from `HashMap.Entry' to `Entry' in various places.
	* Makefile.am: Add BasicMapEntry.java.
	* Makefile.in: Rebuilt.

2000-12-18  Warren Levy  <warrenl@redhat.com>

	* java/util/GregorianCalendar.java (GregorianCalendar): Constructors
	need to set timezone to a valid non-null value.  Partial fix for
	PR 331.

2000-12-18  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/awt/Window.java (addNotify): Remove peer casting hack now that
	gcj/312 is fixed.
	* java/awt/Button.java (addNotify): Likewise.
	* java/awt/Label.java (addNotify): Likewise.
	* java/awt/Panel.java (addNotify): Likewise.
	* java/awt/Scrollbar.java (addNotify): Likewise.
	* java/awt/Component.java (processPaintEvent): Use peer not getPeer.
	Remove redundant null checks.

2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>

	* COPYING: Update to current
	ftp://ftp.gnu.org/pub/gnu/Licenses/COPYING-2.0 (fixes references
	to 19yy as example year in copyright notice).

2000-12-18  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/zip/natInflater.cc (inflate): Treat Z_BUF_ERROR as
	end-of-stream if avail_in is 0.

2000-12-17  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/ArrayList.java (data): Declare transient.
	(serialPersistantFields): Removed.
	(readObject): Use defaultReadObject(), not readFields().
	(writeObject): Use defaultWriteObject(), not writeFields().

2000-12-17  Jeff Sturm  <jeff.sturm@commerceone.com>

	* java/util/Hashtable.java (put): Remove `last' variable.
	Link new entry to head of list.
	* java/util/HashMap.java (put): Ditto.

2000-12-15  Tom Tromey  <tromey@redhat.com>

	* java/util/ResourceBundle.java (trySomeGetBundle): Pass class
	loader to Class.forName.

2000-12-14  Tom Tromey  <tromey@redhat.com>

	* java/util/ResourceBundle.java
	(getBundle(String,Locale,ClassLoader)): New method.
	(trySomeGetBundle): Added `loader' argument.
	(partialGetBundle): Likewise.

	* java/text/NumberFormat.java (groupingUsed, parseIntegerOnly,
	maximumFractionDigits, maximumIntegerDigits,
	minimumFractionDigits, minimumIntegerDigits): Now
	package-private.

	* java/lang/Thread.java (checkAccess): Now final.

	* java/lang/RuntimePermission.java: Class now final.

	* java/io/StringWriter.java (StringWriter(int)): Now public.

	* java/io/SerializablePermission.java (legal_names): Now private.

	* java/lang/Character.java: Updated UnicodeBlock constants.
	* scripts/blocks.pl: Special case private use and surrogate
	areas.  Updated URL.

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

	* Makefile.in: Rebuilt.
	* Makefile.am (GCJ_WITH_FLAGS): New macro, includes --encoding
	option.
	(GCJCOMPILE): Use it.
	(JAVAC): Likewise.

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

	* gnu/gcj/runtime/FirstThread.java (Kcert, Kfile, Khttp, Kjar):
	New static final fields.

	* scripts/classes.pl (scan): Skip lines with leading `*'.
	Fix for PR libgcj/378.

2000-12-11  Bryce McKinlay  <bryce@albatross.co.nz>

	* configure.in: Remove check for -fuse-divide-subroutine.
	* configure: Rebuilt.

	* java/util/Hashtable.java (Enumerator.nextElement): Initialize `e'.

	* gcj/javaprims.h: Rebuilt CNI namespace declarations.

2000-12-11  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am: Add HashSet.java and java/lang/ref classes.
	Remove BasicMapEntry.java and Bucket.java.
	* Makefile.in: Rebuilt.
	* java/util/HashMap.java: Rewritten.
	* java/util/HashSet.java: Imported from classpath.
	* java/util/WeakHashMap.java: Imported from classpath.
	* java/util/Hashtable.java: Rewritten based on new HashMap code.
	* java/util/Bucket.java: Deleted.
	* java/util/BasicMapEntry.java: Deleted.
	* java/util/Collections.java (search): Use a for-loop, not iterator
	hasNext().
	(copy): Use a for-loop. Throw an IndexOutOfBoundsException if run out
	of elements in source.
	(max): Use a for-loop.
	(min): Ditto.
	(reverse): Keep track of positions instead of using Iterator's
	nextIndex() and previousIndex().
	(shuffle(List)): Initialize defaultRandom if required using
	double-check thread safety idiom. Call two-argument shuffle method
	using defaultRandom.
	(defaultRandom): New field.
	(shuffle(List, Random)): Use a for-loop. Keep track of pos instead of
	using previousIndex() and nextIndex().
	(singletonMap(iterator)): Use a HashMap.Entry, not BasicMapEntry.
	* java/util/AbstractCollection.java (toString): Use a StringBuffer.
	* java/util/AbstractMap.java (toString): Use StringBuffer.
	* java/lang/ref/PhantomReference.java: Imported from classpath.
	* java/lang/ref/SoftReference.java: Ditto.
	* java/lang/ref/Reference.java: Ditto.
	* java/lang/ref/WeakReference.java: Ditto.
	* java/lang/ref/ReferenceQueue.java: Ditto.

2000-12-10  Richard Henderson <rth@redhat.com>

	* configure.host: Recognize alpha*-*, not alphaev6-*.

2000-12-09  Anthony Green  <green@redhat.com>

	* configure.host: Enable interpreter for Alpha.

2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* Makefile.am (data_DATA): libgcj.jar replaces libgcj.zip.
	(ZIP): Points at fastjar instead of zip.
	(libgcj_la_DEPENDENCIES): libgcj.jar replaces libgcj.zip.
	(libgcj_la_LDFLAGS): Correctly point at libsupc++.
	(libgcjx_la_DEPENDENCIES): libgcj.jar replaces libgcj.zip.
	(libgcjx_la_LDFLAGS): Correctly point at libsupc++.
	($(java_source_files:.java=.class):): libgcj.jar replaces libgcj.zip.
	($(x_java_source_files:.java=.class):): Likewise.
	(libgcj.jar:): Replaces libgcj.zip:, builds libgcj.jar and uses
	fastar's flags.
	(CLEANFILES): libgcj.jar replaces libgcj.zip.
	(java/lang/ClassLoader.h:): Depends on libgcj.jar.
	(gnu/gcj/runtime/FirstThread.h:, java/lang/Thread.h:,
	java/lang/String.h:, java/lang/reflect/Constructor.h:,
	java/lang/reflect/Field.h:, java/lang/reflect/Method.h:,
	gnu/gcj/runtime/VMClassLoader.h:,
	java/io/ObjectInputStream$$GetField.h:,
	java/io/ObjectOutputStream$$PutField.h:, header-check:): Likewise.
	(Makefile.in): Rebuilt.

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

	From Phil Edwards:
	* configure: Rebuilt.
	* configure.in: Use echo, not `:', to create .d files.

2000-12-08  Warren Levy  <warrenl@redhat.com>

	* java/lang/StringBuffer.java (insert(int,char[])): Avoid
	NullPointerException so proper check of offset can be done.

2000-12-08  Warren Levy  <warrenl@redhat.com>

	* java/io/FileInputStream.java (close): Check if the fd is valid.
	* java/io/RandomAccessFile.java (close): Ditto.
	* java/net/PlainDatagramSocketImpl.java (close): Ditto.
	* java/net/PlainSocketImpl.java (close): Ditto.

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

	* java/awt/GridBagConstraints.java: Filled in values for static
	final fields.

	* java/util/BitSet.java: Updated copyright notice.

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

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

	* java/text/Collator.java (decomposeCharacter, decmp, strength):
	Now package-private, not protected.
	* java/text/DateFormatSymbols.java (equals): Now private.
	* java/text/DecimalFormatSymbols.java (safeGetChar): Now private.
	* java/util/BitSet.java: Class no longer final.

2000-12-04  Warren Levy  <warrenl@redhat.com>

	* java/util/TimeZone.java (getAvailableIDs): Activated commented
	out code dependent on compiler and library changes.

2000-12-04  Warren Levy  <warrenl@redhat.com>

	* java/io/FilePermission.java: Made class final per spec.
	* java/text/DecimalFormatSymbols.java (setCurrencySymbol): Changed
	method name to match spec (fixed typo).
	* java/util/LinkedList.java: Implements List.

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

	* java/lang/natDouble.cc: Include fdlibm.h, not mprec.h. From
	Edgar Villanueva <edgarvil@home.com>.

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

	* java/awt/geom/Point2D.java: Added protected constructor.
	(equals): New method.
	(Float.setLocation(float,float)): New method.
	* java/awt/geom/Dimension2D.java: Added protected constructor.
	* java/awt/geom/AffineTransform.java: Made all constants public.
	(concatenate): Fixed typo in name.
	* java/awt/event/WindowAdapter.java: Class now abstract.
	* java/awt/event/KeyEvent.java (CHAR_UNDEFINED): Now final.
	* java/awt/event/FocusEvent.java: Extend ComponentEvent, not
	AWTEvent.

	* java/awt/AWTError.java: Extend Error, not
	IllegalStateException.

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

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

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

2000-12-02  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added new files.
	* java/awt/CardLayout.java: New file.
	* java/awt/AWTPermission.java: New file.

2000-12-01  Tom Tromey  <tromey@redhat.com>

	* java/util/Vector.java (insertElementAt): Unconditionally
	increment elementCount.
	(removeRange): Clear unused slots in vector.

2000-12-02  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/natMath.cc: Declare fabsf() function.
	* java/lang/mprec.h: Don't include math.h.
	* java/lang/dtoa.c: Include string.h.
	* java/lang/natString.cc (toLowerCase): Initialize `ch' to prevent
	compiler warning.

	From Adam Welc <welc@cs.purdue.edu>:
	* java/util/LinkedList.java (removeFirst): Update `first' field.
	Handle the last == first case.
	(removeLast): Update `last' field. Handle the last == first case.

2000-12-01  Warren Levy  <warrenl@cygnus.com>

	* Makefile.am: Added entries for new java.sql modules.
	* Makefile.in: Rebuilt.

2000-12-01  Warren Levy  <warrenl@cygnus.com>

	* mauve-libgcj: Turned on JDK1.2 and turned off tests for classes
	that aren't quite 1.2 compatible yet.

2000-11-30  Warren Levy  <warrenl@cygnus.com>

	* java/sql/Array.java: New file from classpath.
	* java/sql/BatchUpdateException.java: Ditto.
	* java/sql/Blob.java: Ditto.
	* java/sql/Clob.java: Ditto.
	* java/sql/Ref.java: Ditto.
	* java/sql/SQLData.java: Ditto.
	* java/sql/SQLInput.java: Ditto.
	* java/sql/SQLOutput.java: Ditto.
	* java/sql/Struct.java: Ditto.
	* java/sql/CallableStatement.java: Merged file from claspath.
	* java/sql/Connection.java: Ditto.
	* java/sql/DataTruncation.java: Ditto.
	* java/sql/DatabaseMetaData.java: Ditto.
	* java/sql/DriverManager.java: Ditto.
	* java/sql/PreparedStatement.java: Ditto.
	* java/sql/ResultSet.java: Ditto.
	* java/sql/ResultSetMetaData.java: Ditto.
	* java/sql/SQLException.java: Ditto.
	* java/sql/SQLWarning.java: Ditto.
	* java/sql/Statement.java: Ditto.
	* java/sql/Types.java: Ditto.

2000-11-29  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/natSystem.cc (init_properties): Set user.language and
	user.region.
	* configure.in: Check for setlocale.
	* configure: Rebuilt.
	* include/config.h.in: Rebuilt.

	* java/util/zip/InflaterInputStream (read): Don't return -1 unless
	the infate() call didn't deliver any output. Throw a ZipException if
	the needsDictionary() call returns true.
	* java/io/ByteArrayInputStream (read): Remove redundant bounds checks.
	* java/io/InputStreamReader: Use the default buffer size for the
	contained BufferedInputStream.

2000-11-28  Warren Levy  <warrenl@cygnus.com>

	* java/text/DateFormatSymbols.java (zoneStringsDefault): Added
	more time zone entries.
	* java/text/SimpleDateFormat.java (format): Added case for
	TIMEZONE_FIELD.

2000-11-28  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/io/DataInputStream.java: Merge classpath docs. Call in.read()
	directly rather than read() in all cases. Make primitive read
	implementations	more efficient, as defined in JDK online docs.
	(skipBytes): Behave like the JDK's implementation.
	* java/io/BufferedReader.java: Merge classpath docs. Check for a
	closed stream with checkStatus() whenever an IOException can be
	thrown.
	(checkStatus): New private method.

2000-11-27  Warren Levy  <warrenl@cygnus.com>

	* Makefile.am: Added natTimeZone.cc.
	* Makefile.in: Rebuilt.
	* gnu/gcj/text/LocaleData_en.java: Added DateFormat entries.
	* java/text/DateFormatSymbols.java (ampms): Made package private.
	(eras): Made package private.
	(months): Made package private.
	(shortMonths): Made package private.
	(shortWeekdays): Made package private.
	(weekdays): Made package private.
	(formatPrefixes): New private field.
	(localPatternCharsDefault): Made private.
	(dateFormats): New package private field.
	(timeFormats): New package private field.
	(formatsForKey): New private method.
	(DateFormatSymbols(Locale)): Set dateFormats and timeFormats.
	(DateFormatSymbols(DateFormatSymbols)): Ditto.
	* java/text/SimpleDateFormat.java: Merged with Classpath.
	* java/util/TimeZone.java: Merged with Classpath.
	* java/util/natTimeZone.cc: New file.

2000-11-27  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/Vector.java (ensureCapacity): Don't increment modCount.
	(addElement): Don't increment elementCount twice. Doh.
	* java/util/ArrayList.java (add): Only call ensureCapacity if the
	array needs to be expanded.
	(addAll): Ditto.
	* java/util/Collections.java (UnmodifiableCollection): Implement
	toString().
	(UnmodifiableList): Throw UnsupportedOperationException from
	modification methods. Set `l' from the one-parameter constructor.
	(UnmodifiableMap): Implement toString().
	(SynchronizedCollection): Ditto.
	(SynchronizedList): Set `l' from the one-parameter constructor.
	(SynchronizedSortedSet): Set `ss' from the one-parameter constructor.
	(SynchronizedMap): Implement toString().

Sun Nov 26 23:59:55 2000  Anthony Green  <green@redhat.com>

	* javax/naming/NameParser.java,
	javax/naming/directory/AttributeInUseException.java,
	javax/naming/directory/AttributeModificationException.java,
	javax/naming/directory/InvalidAttributeIdentifierException.java,
	javax/naming/directory/InvalidAttributesException.java,
	javax/naming/directory/InvalidAttributeValueException.java,
	javax/naming/directory/InvalidSearchControlsException.java,
	javax/naming/directory/InvalidSearchFilterException.java,
	javax/naming/directory/NoSuchAttributeException.java,
	javax/naming/directory/SchemaViolationException.java: New files.

Sun Nov 26 22:35:53 2000  Anthony Green  <green@redhat.com>

	* javax/naming/InitialContext.java (rebind): Implement.
	(unbind): Implement.
	(rename): Implement.
	(list): Implement.
	(listBindings): Implement.
	(destroySubcontext): Implement.
	(createSubcontext): Implement.
	(lookupLink): Implement.
	(getNameParser): Implement.
	(composeName): Implement.
	(addToEnvironment): Implement.

Sun Nov 26 21:30:25 2000  Anthony Green  <green@redhat.com>

	* javax/naming/AuthenticationException.java,
	javax/naming/AuthenticationNotSupportedException.java,
	javax/naming/CannotProceedException.java,
	javax/naming/CommunicationException.java,
	javax/naming/ConfigurationException.java,
	javax/naming/ContextNotEmptyException.java,
	javax/naming/InsufficientResourcesException.java,
	javax/naming/InterruptedNamingException.java,
	javax/naming/InvalidNameException.java,
	javax/naming/LimitExceededException.java,
	javax/naming/LinkException.java,
	javax/naming/LinkLoopException.java,
	javax/naming/MalformedLinkException.java,
	javax/naming/NameAlreadyBoundException.java,
	javax/naming/NameNotFoundException.java,
	javax/naming/NamingSecurityException.java,
	javax/naming/NoPermissionException.java,
	javax/naming/NotContextException.java,
	javax/naming/PartialResultException.java,
	javax/naming/ReferralException.java,
	javax/naming/ServiceUnavailableException.java,
	javax/naming/SizeLimitExceededException.java,
	javax/naming/TimeLimitExceededException.java: New files.

	* javax/naming/Name.java (clone): New method.
	(compareTo): New method.
	(isEmpty): New method.
	(getAll): New method.
	(getPrefix): New method.
	(getSuffix): New method.
	(startsWith): New method.
	(endsWith): New method.
	(addAll): New method.
	(addAll): New method.
	(add): New method.
	(add): New method.
	(remove): New method.

	* javax/naming/Context.java (lookup): New method.
	(rebind): New method.
	(unbind): New method.
	(rename): New method.
	(list): New method.
	(listBindings): New method.
	(destroySubcontext): New method.
	(createSubcontext): New method.
	(lookupLink): New method.
	(getNameParser): New method.
	(composeName): New method.
	(addToEnvironment): New method.
	(removeFromEnvironment): New method.
	(getEnvironment): New method.
	(close): New method.
	(getNameInNamespace): New method.

	* javax/naming/InitialContext.java (lookup): New method.
	(rebind): New method.
	(unbind): New method.
	(rename): New method.
	(list): New method.
	(listBindings): New method.
	(destroySubcontext): New method.
	(createSubcontext): New method.
	(lookupLink): New method.
	(getNameParser): New method.
	(composeName): New method.
	(addToEnvironment): New method.
	(removeFromEnvironment): New method.
	(getEnvironment): New method.
	(close): New method.
	(getNameInNamespace): New method.

2000-11-26  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (core_java_source_files): Added
	RuntimePermission.java.
	* java/lang/RuntimePermission.java: Imported from Classpath.
	* java/lang/Thread.java (getContextClassLoader): Now
	synchronized.  Added security code.
	(setContextClassLoader): Likewise.

	* prims.cc (_Jv_NewObjectArray): Use const_cast to initialize
	length field of array.
	(_Jv_NewPrimArray): Likewise.
	* gcj/array.h (__JArray): `length' field now const.  Added
	constructor.

2000-11-26  Anthony Green  <green@redhat.com>

	* javax/naming/spi/NamingManager.java,
	javax/naming/spi/ObjectFactory.java,
	javax/naming/spi/InitialContextFactory.java,
	javax/naming/spi/InitialContextFactoryBuilder.java,
	javax/naming/RefAddr.java, javax/naming/Reference.java,
	javax/naming/NamingException.java, javax/naming/Context.java,
	javax/naming/Referenceable.java,
	javax/naming/directory/InitialDirContext.java,
	javax/naming/directory/DirContext.java,
	javax/naming/directory/Attributes.java,
	javax/naming/directory/Attribute.java,
	javax/naming/StringRefAddr.java,
	javax/naming/NamingEnumeration.java, javax/naming/Name.java,
	javax/naming/InitialContext.java,
	javax/naming/NoInitialContextException.java: New files.

2000-11-25  Anthony Green  <green@redhat.com>

	* prims.cc (_Jv_NewObjectArray): Undo placement change.
	(_Jv_NewPrimArray): Likewise.
	* gcj/array.h (__JArray): Undo const change.  Removed constructor.
	(class JArray): Removed constructor.

	* java/lang/Thread.java (context_class_loader): New private data.
	(getContextClassLoader): New method.
	(setContextClassLoader): New method.
	(Thread): Initialize context_class_loader.

	* java/net/URLClassLoader.java: Import java.util.Enumeration.
	(getResource): Rename to findResource.
	(findResource): New method.  Used to be getResource.
	(getResourceAsStream): Deleted.
	(jarFileize): Extracted logic from URLClassLoader constructor into
	this new private method.
	(addURL): New protected method.
	(URLClassLoader): Call jarFileize.  Use addElement instead of
	insertElementAt.
	(findResources): New method.

	* java/lang/ClassLoader.java: Import java.util.Enumeration.
	(getResource): Implement correct logic.
	(findResource): New method.
	(getResources): New method.
	(findClass): Create a ClassNotFoundException with the name of the
	class rather than nothing at all.
	(defineClass) Only throw ClassFormatError.

	* java/lang/Class.java (forName): New method.
	* java/lang/Class.h (forName): New method.
	* java/lang/natClass.cc (forName): New method.

2000-11-24  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/System.java (setProperties): Only call init_properties()
	if properties is null.
	(getProperties): Ditto.
	(getProperty): Ditto.
	(setProperty): Call init_properties if properties are null.
	(prop_init): Remove field.
	* java/lang/natSystem.cc (init_properties): Synchronize the entire
	method. Check for null properties after synchronizing instead of
	prop_init flag. Set the properties field last for thread safety.

	* java/io/ObjectInputStream.java (ObjectInputStream): If DEBUG is set,
	test for gcj.dumpobjects property and enable object stream dumping
	if it is set.
	(dumpElement): No longer native.
	(dumpElementln): Ditto.
	(setDump): Do not define.
	* java/io/natObjectInputStream.cc (dumpElement): Removed.
	(dumpElementln): Removed.
	(setDump): Removed.

2000-11-24  Bryce McKinlay  <bryce@albatross.co.nz>

	* configure: Rebuilt.
	* Makefile.in: Rebuilt.
	* Makefile.am (built_java_source_files): Add Configuration.java.
	* configure.in: Add Configuration.java to CONFIG_FILES. Set
	LIBGCJDEBUG substitution if --enable-libgcj-debug is specified.
	Create `gnu' directory in the build tree.
	* gnu/classpath/Configuration.java.in: New file.

2000-11-24  Tom Tromey  <tromey@cygnus.com>

	* prims.cc (_Jv_NewObjectArray): Use placement new to create
	array.
	(_Jv_NewPrimArray): Likewise.
	Include <new>.
	* gcj/array.h (__JArray): `length' field now const.  Added
	constructor.
	(class JArray): Added constructor.

2000-11-23  Mark Wielaard  <mark@klomp.org>

	* name-finder.cc (lookup): Check for a NULL _Jv_argv before attempting
	lookup.

2000-11-23  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/Vector.java: Improve exception messages.
	(Vector): Check initialCapacity for IllegalArgumentException.
	(tromToSize): Don't check for elementCount == elementData.length
	case.
	(toArray): Don't try to set null marker if target array is the same
	length as the vector.

2000-11-22  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.in: Rebuilt.
	* Makefile.am (core_java_source_files): Added Collections.java.
	* java/util/List.java: Merged from classpath.
	* java/util/Vector.java: Ditto.
	* java/util/Collections.java: From classpath.
	* java/util/ArrayList.java (addAll(Collection)): Call
	addAll(int,Collection) instead of duplicating code.
	(indexOf): Clean up int initialization.
	(clear): Set cleared array entries to null, to allow garbage
	collection.
	* java/util/List.java: Minor formatting fixes.
	* java/util/SimpleTimeZone.java: ditto.

2000-11-18  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (core_java_source_files): Added new files.
	* java/lang/reflect/ReflectPermission.java: New class.
	* java/io/FileFilter.java: From Classpath
	* java/io/FilePermission.java: From Classpath.

2000-11-17  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/AccessibleObject.java (isAccessible,
	setAccessible): Now public.

	* java/lang/natString.cc: Include Locale.h.
	(toUpperCase): Added `locale' argument.  Handle locale
	sensitivity.
	(toLowerCase): Added `locale' argument.  Handle locale
	sensitivity.
	(ESSET, CAPITAL_S, SMALL_I, CAPITAL_I_WITH_DOT, SMALL_DOTLESS_I,
	CAPITAL_I): New defines.
	* java/lang/String.java (CASE_INSENSITIVE_ORDER): Now public and
	final.
	Import Locale.
	(toUpperCase, toLowerCase): New methods.  Variants which accept
	locale now native.

	* java/lang/ExceptionInInitializerError.java (printStackTrace):
	New methods.

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

	* java/text/RuleBasedCollator.java (getCollationElementIterator):
	New method.
	* java/text/StringCharacterIterator.java: Reindented.
	(setText): New method.

2000-11-17  Mark Wielaard  <mark@klomp.org>

	Merge with Classpath (changes by Bryce McKinlay)
	* java/util/jar/*.java: Reformat all to unofficial standard coding
	style. No changes of substance.

2000-11-17  Mark Wielaard  <mark@klomp.org>

	* java/util/zip/*.java: Javadoc updates.

2000-11-17  Tom Tromey  <tromey@cygnus.com>

	* java/text/CollationKey.java: Implement Comparable.
	(compareTo(Object)): New method.
	* java/text/Collator.java (compare(Object,Object)): New method.
	Implement Comparator.

	* java/util/zip/InflaterInputStream.java (available): New method.
	(close): New method.
	(read, available, skip, fill): Throw exception if stream closed.
	* java/util/zip/ZipInputStream.java (read, skip, readFully, fill,
	getNextEntry): Throw exception if closed.

2000-11-16  Tom Tromey  <tromey@cygnus.com>

	* java/io/PushbackReader.java: Merged with Classpath.
	* java/util/Arrays.java: Updated from Classpath.

	* scripts/blocks.pl: New file.
	* java/lang/Character.java (Subset): New class.
	(UnicodeBlock): New class.

	* java/lang/Math.java (toDegrees, toRadians): New methods.

	* java/lang/Float.java: Implement Comparable.
	(compareTo): New methods.
	* java/lang/Double.java: Implement Comparable.
	(compareTo): New methods.

2000-11-16  Warren Levy  <warrenl@cygnus.com>

	* java/beans/PropertyChangeSupport.java (propertyListeners): Made
	transient.
	(listeners): Made transient.
	(source): Renamed from 'bean'.
	(children): New field for serialization.
	(propertyChangeSupportSerializedDataVersion): Ditto.
	(serialVersionUID): Ditto.
	(writeObject): New serialization method.
	(readObject): New serialization method.
	* java/beans/VetoableChangeSupport.java (propertyListeners): Made
	transient.
	(listeners): Made transient.
	(source): Renamed from 'bean'.
	(children): New field for serialization.
	(vetoableChangeSupportSerializedDataVersion): Ditto.
	(serialVersionUID): Ditto.
	(writeObject): New serialization method.
	(readObject): New serialization method.
	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Fixed assert
	to allow constructor to have a return type (i.e. the class that the
	constructor constructs).

2000-11-14  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (libgcj.zip): Fail immediately if compilation fails
	and -k not given.

2000-11-02  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectInputStream.java (readObject): Added code to
	conditionally dump out the serialized data.
	Handle ENDBLOCKDATA case a bit more gracefully since the current
	behavior doesn't seem to work as expected.
	(readStreamHeader): Added code for serialized data dumper.
	(readNextBlock): Ditto.
	(readFields): Ditto.
	(dump): New private static field for turning on/off dumper.
	(setDump): New native method.
	(dumpElement): New native method.
	(dumpElementln): New native method.
	* java/io/natObjectInputStream.cc (setDump): New method.
	(dumpElement): New method.
	(dumpElementln): New method.

2000-11-02  Warren Levy  <warrenl@cygnus.com>

	* java/net/InetAddress.java (addr): Renamed from 'address'.
	(address): New field to match Serialized Form doc.
	(hostName): Renamed from 'hostname' to match Serialized Form doc.
	(family): New serialization field.
	(serialVersionUID): New field.
	(readObject): New method.
	(writeObject): New method.
	(getFamily): New native method.
	(InetAddress): Set family.
	* java/net/natInetAddress.cc (getFamily): New method.
	(addr): Renamed from 'address'.
	(hostName): Renamed from 'hostname' to match Serialized Form doc.
	* java/net/natPlainDatagramSocketImpl.cc (addr): Renamed from 'address'.
	* java/net/natPlainSocketImpl.cc (addr): Renamed from 'address'.

2000-11-03  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/AbstractList.java (SubList): Make it a top-level private
	class.
	* java/util/LinkedList.java (remove): Do update modCount and knownMod.
	(add): Ditto.
	* Makefile.am (ordinary_java_source_files): Add LinkedList.java.
	* Makefile.in: Rebuilt.

2000-11-02  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (install-exec-hook): Make `.la' link, not `.so'
	link.

2000-11-02  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/AbstractList.java (remove): Comment out modCount increment
	to work around compiler bug.
	(add): Ditto.

2000-11-02  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/AbstractList.java: Throw messages with
	IndexOutOfBoundsExceptions.
	 (listIterator()): Call listIterator(0).
	(size): New field. Initialize to size().
	(hasNext): Test position against size, not size().
	(remove): Increment knownMod by one instead of resetting it from
	modCount.
	(add): Ditto.
	(SubList.upMod): Removed.
	(SubList.set): Don't call upMod() or update knownMod.
	(SubList.add(int,Object)): Increment modCount instead of caling upMod().
	(SubList.remove): Ditto.
	(SubList.addAll): Don't call backingList.size(). Increment size from
	c.size().
	(SubList.iterator): New method. Call listIterator(0).
	(SubList.listIterator): New method. Restore code to return an anonymous
	listIterator implementation (with some changes).
	* java/util/AbstractSequentialList.java: Throw messages with
	IndexOutOfBoundsExceptions.
	(addAll): Add a specnote.
	* java/util/ArrayList.java (removeRange): Get the math right.
	(addAll): Increment modCount _before_ creating iterator.
	* java/util/LinkedList.java: Rewritten, mostly.

2000-11-01  Tom Tromey  <tromey@cygnus.com>

	* scripts/encodings.pl: Added `ASCII' alias.
	* Makefile.in: Rebuilt.
	* Makefile.am (convert_source_files): Added new files.
	* gnu/gcj/convert/Input_ASCII.java: New file.
	* gnu/gcj/convert/Output_ASCII.java: New file.
	* gnu/gcj/convert/Output_8859_1.java (write): Use `?' to represent
	out-of-range characters.
	* gnu/gcj/convert/natIconv.cc (iconv_init): New method.
	(read): Swap bytes if required.  Treat `count' as character count,
	not byte count.
	(write): Likewise.  Also, handle case where iconv fails on a given
	character.
	(init): Put encoding into exception.
	* gnu/gcj/convert/IOConverter.java (iconv_byte_swap): New global.
	(static): Call iconv_init.  Rebuilt alias list.
	(iconv_init): New private method.

2000-11-01  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (install-exec-hook): Only make a single symlink, and
	remove the destination before making the link.
	* configure: Rebuilt.
	* configure.in: Call AC_PROG_LN_S.

2000-10-31  Warren Levy  <warrenl@cygnus.com>

	* jni.cc: Added include of java/lang/ThreadGroup.h.
	* gcj/javaprims.h: Removed Replaceable and Resolvable from namespace
	per change of 2000-10-05.

2000-10-30  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/BitSet.java: Updated @specnote.

	* java/io/Reader.java: Merge docs from classpath.
	(skip): Synchronize on `lock'.
	* java/io/FileReader.java: Import correct implementation from
	classpath.
	* java/io/StringReader.java: Merge docs from classpath.
	(ready): Throw IOException if stream is closed.

2000-10-29  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/AbstractCollection.java (addAll): Use size() instead of
	hasNext() in iterator loop.
	(clear): Ditto.
	(contains): Ditto. Simplify loop.
	(containsAll): Ditto.
	(remove): Ditto.
	(removeAll): Ditto.
	(retainAll): Ditto.
	(toArray): Ditto.
	(toString): Ditto. Use string concatenation operators, not
	StringBuffer.
	* java/util/AbstractList.java (addAll): Use size() instead of
	hasNext() in iterator loop.
	(equals): Ditto.
	(hashCode): Ditto.
	(indexOf): Ditto. Don't take null check outside of the loop.
	(iterator): Return an AbstractListItr instead of anonymous class.
	(lastIndexOf): Use a for loop bounded by size() instead of
	hasPrevious() in iterator loop.
	(listIterator): Return an AbstractListItr.
	(removeRange): Remove bounds checking code and docs.
	(AbstractListItr): New inner class. Code moved here from
	listIterator().
	(SubList.iterator): Removed. Use default implementation from
	AbstractList instead.
	(SubList.listIterator): As above.
	* java/util/AbstractMap.java (clear): Use a for loop bounded by size()
	instead of hasNext() in iterator loop.
	(containsValue): Ditto.
	(equals): Ditto.
	(get): Ditto.
	(put): Ditto.
	(putAll): Ditto.
	(remove): Ditto.
	(toString): Ditto. Use string concatenation operators, not
	StringBuffer.
	* java/util/AbstractSequentialList.java (addAll): Use a for loop
	bounded by size() instead of hasNext() in iterator loop.
	* java/util/AbstractSet.java (hashCode): Don't catch exception as
	part of normal execution flow. Do an explicit null check instead.
	* java/util/ArrayList.java (_iSize): Rename to `size'.
	(_arData): Rename to `data'.
	(get): Check lower bounds also. Simplify IndexOutOfBoundsException
	message.
	(remove): Ditto.
	(removeRange): Make protected. Don't check bounds.
	(add): Check lower bounds also. Simplify IndexOutOfBoundsException
	message.
	(addAll (Collection)): Use a size-bounded for loop instead of hasNext()
	check.
	(addAll (int, Collection)): Check lower bounds. Simplify exception
	string.
	(clone): Clone the data array too.
	(indexOf): Inline doesEqual().
	(lastIndexOf): Ditto.
	(clear): Don't set array data to null.
	(set): Check lower bounds. Simplify exception string.
	(toArray): Correct comment.
	(trimToSize): Don't update modCount, this is not a structural change.
	Add comment.

	* java/util/BitSet.java: Merged with classpath, new JDK 1.2 methods
	implemented.
	(toString): Declare `bit' as long, not int.
	(data): Made package-private, not private.

2000-10-27  Warren Levy  <warrenl@cygnus.com>

	* java/util/natGregorianCalendar.cc (computeFields): Set the isSet__
	array elements to true.

2000-10-27  Warren Levy  <warrenl@cygnus.com>

	* Makefile.am: Added locale files from Classpath.
	* Makefile.in: Rebuilt.
	* gnu/java/locale/Calendar.java: New file.
	* gnu/java/locale/Calendar_de.java: New file.
	* gnu/java/locale/Calendar_en.java: New file.
	* gnu/java/locale/Calendar_nl.java: New file.
	* java/lang/ClassNotFoundException.java: Replaced with Classpath file.
	* java/math/BigDecimal.java (intVal): Renamed from 'num' for
	serialization compatibility.
	(scale): Made private.
	(serialVersionUID): New field.
	* java/math/BigInteger.java (ival): Made transient.
	(words): Made transient.
	(bitCount): New serialization field.
	(bitLength): Ditto.
	(firstNonzeroByteNum): Ditto.
	(lowestSetBit): Ditto.
	(magnitude): Ditto.
	(signum): Ditto.
	(serialVersionUID): New field.
	(readObject): New method.
	(writeObject): New method.
	* java/util/BitSet.java (serialVersionUID): New field.
	* java/util/Calendar.java: Replaced with Classpath file.
	* java/util/GregorianCalendar.java (GregorianCalendar): Pass result
	of getDefault() for TimeZone or Locale instead of passing nulls.
	* java/util/Locale.java (serialVersionUID): New field.
	(writeObject): New method.
	(readObject): New method.
	* java/util/SimpleTimeZone.java: Replaced with Classpath file.

2000-10-25  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am (GCJCOMPILE): Pass --tag=GCJ to libtool.
	(core_java_source_files): Put java.lang, java.io, and java.util here.
	(ordinary_java_source_files): Order so that core_java_source_files are
	built first.
	(java_source_files): Reorder so that special_java_source_files are
	built first.
	* configure.in: Don't pass -I flag to gcj.
	* Makefile.in: Rebuilt.
	* configure: Rebuilt.

2000-10-25  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (install-exec-hook): New target.

2000-10-24  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/EventObject.java: Merged from classpath.

	* java/lang/ThreadGroup.java (uncaughtException): Print thread name
	with stack dump.

2000-10-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* java/util/AbstractSet.java (equals): Re-installed original code.

2000-10-22  Rolf W. Rasmussen  <rolfwr@ii.uib.no>

	* Makefile.am: Added rules for libgcjx library.
	* Makefile.in: Rebuilt.
	* configure.in: Added check for X.
	* configure: Rebuilt.
	* gnu/awt/LightweightRedirector.java: New file.
	* gnu/awt/j2d/AbstractGraphicsState.java: New file.
	* gnu/awt/j2d/DirectRasterGraphics.java: New file.
	* gnu/awt/j2d/Graphics2DImpl.java: New file.
	* gnu/awt/j2d/IntegerGraphicsState.java: New file.
	* gnu/awt/j2d/MappedRaster.java: New file.
	* gnu/awt/xlib/XCanvasPeer.java: New file.
	* gnu/awt/xlib/XEventLoop.java: New file.
	* gnu/awt/xlib/XEventQueue.java: New file.
	* gnu/awt/xlib/XFontMetrics.java: New file.
	* gnu/awt/xlib/XFramePeer.java: New file.
	* gnu/awt/xlib/XGraphics.java: New file.
	* gnu/awt/xlib/XGraphicsConfiguration.java: New file.
	* gnu/awt/xlib/XPanelPeer.java: New file.
	* gnu/awt/xlib/XToolkit.java: New file.
	* gnu/gcj/xlib/Clip.java: New file.
	* gnu/gcj/xlib/Colormap.java: New file.
	* gnu/gcj/xlib/Display.java: New file.
	* gnu/gcj/xlib/Drawable.java: New file.
	* gnu/gcj/xlib/Font.java: New file.
	* gnu/gcj/xlib/GC.java: New file.
	* gnu/gcj/xlib/Pixmap.java: New file.
	* gnu/gcj/xlib/Screen.java: New file.
	* gnu/gcj/xlib/Visual.java: New file.
	* gnu/gcj/xlib/WMSizeHints.java: New file.
	* gnu/gcj/xlib/Window.java: New file.
	* gnu/gcj/xlib/WindowAttributes.java: New file.
	* gnu/gcj/xlib/XAnyEvent.java: New file.
	* gnu/gcj/xlib/XButtonEvent.java: New file.
	* gnu/gcj/xlib/XColor.java: New file.
	* gnu/gcj/xlib/XConfigureEvent.java: New file.
	* gnu/gcj/xlib/XConnectException.java: New file.
	* gnu/gcj/xlib/XEvent.java: New file.
	* gnu/gcj/xlib/XException.java: New file.
	* gnu/gcj/xlib/XExposeEvent.java: New file.
	* gnu/gcj/xlib/XID.java: New file.
	* gnu/gcj/xlib/XImage.java: New file.
	* gnu/gcj/xlib/XUnmapEvent.java: New file.
	* gnu/gcj/xlib/natClip.cc: New file.
	* gnu/gcj/xlib/natColormap.cc: New file.
	* gnu/gcj/xlib/natDisplay.cc: New file.
	* gnu/gcj/xlib/natDrawable.cc: New file.
	* gnu/gcj/xlib/natFont.cc: New file.
	* gnu/gcj/xlib/natGC.cc: New file.
	* gnu/gcj/xlib/natPixmap.cc: New file.
	* gnu/gcj/xlib/natScreen.cc: New file.
	* gnu/gcj/xlib/natVisual.cc: New file.
	* gnu/gcj/xlib/natWMSizeHints.cc: New file.
	* gnu/gcj/xlib/natWindow.cc: New file.
	* gnu/gcj/xlib/natWindowAttributes.cc: New file.
	* gnu/gcj/xlib/natXAnyEvent.cc: New file.
	* gnu/gcj/xlib/natXButtonEvent.cc: New file.
	* gnu/gcj/xlib/natXColor.cc: New file.
	* gnu/gcj/xlib/natXConfigureEvent.cc: New file.
	* gnu/gcj/xlib/natXException.cc: New file.
	* gnu/gcj/xlib/natXExposeEvent.cc: New file.
	* gnu/gcj/xlib/natXImage.cc: New file.
	* gnu/gcj/xlib/natXUnmapEvent.cc: New file.
	* java/awt/EventDispatchThread.java: Start thead on creation.

2000-10-20  Tom Tromey  <tromey@cygnus.com>

	From Arno J. Klaassen:
	* interpret.cc: Include <stdlib.h> for alloca.
	* defineclass.cc: Include <stdlib.h> for alloca.

	* Makefile.in: Rebuilt.
	* Makefile.am: Include deps.mk.
	(GCJCOMPILE): Added -MD, -MT, and -MF.
	($(javao_files)): Don't depend on libgcj.zip.
	(all-recursive): New target.
	(%.lo:%.cc): Do dependency tracking.
	($(nat_headers)): Don't depend on libgcj.zip.
	* configure: Rebuilt.
	* configure.in: Make .d files and deps.mk.

2000-10-13  Bryce McKinlay  <bryce@albatross.co.nz>

	* exception.cc: Don't #include "exception".
	(_Jv_eh_alloc): Call abort (), not terminate (), if malloc fails.

	* Makefile.am (libgcj_la_LDFLAGS): Link in libsupc++.
	* Makefile.in: Updated.

2000-10-11  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/awt/peer/ChoicePeer.java (addItem): Removed.
	* java/awt/peer/ComponentPeer.java (disable): Removed.
	(enable): Removed.
	(hide): Removed.
	(minimumSize): Removed.
	(preferredSize): Removed.
	(reshape): Removed.
	(show): Removed.
	* java/awt/peer/ListPeer.java (addItem): Removed.
	(clear): Removed.
	(minimumSize): Removed.
	(preferredSize): Removed.
	(setMultipleSelections): Removed.
	* java/awt/peer/MenuBarPeer.java (add): Renamed from addMenu.
	(remove): Renamed from removeMenu.
	* java/awt/peer/MenuItemPeer.java (disable): Removed.
	(enable): Removed.
	* java/awt/peer/MenuPeer.java (add): Renamed from addItem.
	(remove): Renamed from removeItem.
	* java/awt/peer/TextAreaPeer.java (insertText): Removed.
	(getMinimumSize): Removed.
	(getPreferredSize): Removed.
	(minimumSize): Removed.
	(preferredSize): Removed.
	(replaceText): Removed.
	* java/awt/peer/TextFieldPeer.java (minimumSize): Removed.
	(preferredSize): Removed.
	(getMinimumSize): Removed.
	(getPreferredSize): Removed.
	(setEchoCharacter): Removed.

2000-10-10  Warren Levy  <warrenl@cygnus.com>

	* gnu/gcj/text/LocaleData_en.java (monetarySeparator): Added.
	* java/sql/Date.java (serialVersionUID): New field.
	* java/sql/Time.java (serialVersionUID): New field.
	* java/sql/Timestamp.java (serialVersionUID): New field.
	* java/text/ChoiceFormat.java (serialVersionUID): New field.
	* java/text/DateFormat.java (getDateTimeInstance (int)): Removed.
	* java/text/DateFormatSymbols.java (serialVersionUID): New field.
	* java/text/DecimalFormat.java (serialVersionOnStream): New field.
	(readObject): New serialization method.
	* java/text/DecimalFormatSymbols.java (monetarySeparator): New field.
	(serialVersionOnStream): New field.
	(readObject): New serialization method.
	(getMonetaryDecimalSeparator): New method.
	(setMonetaryDecimalSeparator): New method.
	* java/text/NumberFormat.java (maxFractionDigits): New field.
	(maxIntegerDigits): New field.
	(minFractionDigits): New field.
	(minIntegerDigits): New field.
	(serialVersionOnStream): New field.
	(serialVersionUID): New field.
	(readObject): New serialization method.
	(writeObject): New serialization method.
	* java/text/SimpleDateFormat.java (defaultCenturyStart): Initialized.
	(serialVersionOnStream): New field.
	(serialVersionUID): New field.
	(readObject): New serialization method.

2000-10-09  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (GCJ): Avoid bogus error message when looking for
	(and not finding) gcj in the build tree.
	* configure: Rebuilt.

2000-10-09  Tom Tromey  <tromey@cygnus.com>

	* configure: Rebuilt.
	* configure.in: Include sys/types.h when checking for socklen_t.
	From Arno J. Klaassen.

2000-10-09  Bryce McKinlay  <bryce@albatross.co.nz>

	* include/jvm.h: Enable __builtin_expect().

	* name-finder.cc (lookup): Don't trust dladdr() if the address is from
	the main program. Fix for PR libgcj/341.

2000-10-07  Tom Tromey  <tromey@cygnus.com>

	* java/util/Properties.java: Merged with Classpath version.

2000-10-05  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/natField.cc (BooleanClass): Don't define.
	* java/lang/reflect/natArray.cc (BooleanClass): Don't define.
	* java/lang/Class.h (Object): Added `class$' field.
	* java/lang/Object.h (Object): Added `class$' field.
	* defineclass.cc (ClassClass): Use `class$' form.
	(ClassObject): Likewise.
	* resolve.cc (ClassObject): Use `class$' form.
	(ObjectClass): Likewise.
	* interpret.cc (ClassError): Removed.
	* java/net/natPlainDatagramSocketImpl.cc (BooleanClass): Use
	`class$' form.
	(IntegerClass): Likewise.
	* java/net/natPlainSocketImpl.cc (BooleanClass): Use `class$'
	form.
	* java/lang/natClassLoader.cc (CloneableClass): Use `class$' form.
	(ObjectClass, ClassClass, VMClassLoaderClass, ClassLoaderClass,
	SerializableClass): Likewise.
	Include Serializable.h, Cloneable.h.
	* java/lang/natSystem.cc (SystemClass): Removed.
	(init_properties): Use `class$' form.
	* java/lang/natObject.cc (CloneableClass): Removed.
	(clone): Use `class$' form.
	* java/lang/natClass.cc (CloneableClass): Use `class$' form.
	(ObjectClass, ErrorClass, ClassClass, MethodClass, FieldClass,
	ConstructorClass): Likewise.
	* java/lang/reflect/natMethod.cc (ObjectClass): Use `class$' form.
	(ClassClass, VoidClass, ByteClass, ShortClass, CharacterClass,
	IntegerClass, LongClass, FloatClass, DoubleClass): Likewise.
	* java/io/natObjectInputStream.cc (ObjectClass): Use `class$'
	form.
	(ClassClass): Likewise.
	* include/jvm.h (StringClass): Use `class$' form.
	* prims.cc (ObjectClass): Removed.
	(_Jv_RunMain): Use `class$' form.
	(_Jv_AllocObject): Likewise.
	* jni.cc (ClassClass): Use `class$' form.
	(ThrowableClass): Likewise.
	(ObjectClass): Likewise.
	(MethodClass): Likewise.
	(ThreadGroupClass): Likewise.
	(NativeThreadClass): Likewise.
	* boehm.cc (ObjectClass): Removed.
	(ClassClass): Removed.
	(_Jv_MarkObj): Use `class$' form.
	* gcj/field.h (JvFieldIsRef): Use `class$' form.
	Include RawData.h.

2000-10-05  Warren Levy  <warrenl@cygnus.com>

	* Makefile.am: Removed java/io/Replaceable.java and
	java/io/Resolvable.java.
	* Makefile.in: Rebuilt.
	* gcj/javaprims.h: Removed Replaceable and Resolvable from java.io
	namespace.
	* java/io/ObjectInputStream.java (processResolution): Fixed typo
	in method name.
	(processResolution): Handle readResolve method via reflection with
	removal of Resolvable interface.
	* java/io/ObjectOutputStream.java (writeObject): Handle writeReplace
	method via reflection with removal of Replaceable interface.
	* java/io/Replaceable.java: Removed.
	* java/io/Resolvable.java: Removed.
	* java/security/Key.java (serialVersionUID): New field.
	* java/security/Provider.java (serialVersionUID): New field.
	* java/security/interfaces/DSAPrivateKey.java (serialVersionUID):
	New field.
	* java/security/interfaces/DSAPublicKey.java (serialVersionUID):
	New field.
	* java/sql/DataTruncation.java (serialVersionUID): New field.
	* java/sql/SQLException.java (serialVersionUID): New field.
	* java/sql/SQLWarning.java (serialVersionUID): New field.
	* java/util/Date.java (serialVersionUID): New field.
	(millis): Made transient.
	(readObject): New method.
	(writeObject): New method.

2000-10-05  Tom Tromey  <tromey@cygnus.com>

	* gnu/gcj/convert/natIconv.cc (init): Terminate buffer.

2000-10-02  Bryce McKinlay  <bryce@albatross.co.nz>

	* prims.cc (_Jv_argv, _Jv_argc): New fields.
	(JvRunMain): Set _Jv_argv and _Jv_argc.
	* java/awt/Component.java: Minor fixes.
	* java/awt/Image.java (UndefinedProperty): Initialize final field.
	* java/awt/Toolkit.java (systemEventQueue): Removed.
	(getDefaultToolkit): Default to "gnu.awt.gtk.GtkToolkit".
	* java/awt/Window.java (getToolkit): Don't call super.
	* java/awt/image/BufferedImage.java: Fix definite assignment errors.
	* java/awt/peer/ContainerPeer.java (insets): Remove unused method.
	* gnu/awt/gtk/GtkComponentPeer.java: New file.
	* gnu/awt/gtk/GtkContainerPeer.java: New file.
	* gnu/awt/gtk/GtkFramePeer.java: New file.
	* gnu/awt/gtk/GtkMainThread.java: New file.
	* gnu/awt/gtk/GtkToolkit.java: New file.
	* gnu/awt/gtk/GtkWindowPeer.java: New file.
	* gnu/awt/gtk/gtkcommon.cc: New file.
	* gnu/awt/gtk/gtkcommon.h: New file.
	* gnu/awt/gtk/natGtkComponentPeer.cc: New file.
	* gnu/awt/gtk/natGtkContainerPeer.cc: New file.
	* gnu/awt/gtk/natGtkFramePeer.cc: New file.
	* gnu/awt/gtk/natGtkMainThread.cc: New file.
	* gnu/awt/gtk/natGtkToolkit.cc: New file.
	* gnu/awt/gtk/natGtkWindowPeer.cc: New file.

2000-09-30  Tom Tromey  <tromey@cygnus.com>

	* posix-threads.cc (_Jv_CondWait): Check to see if we are
	interrupted before modifying the cv's wait set.
	From Corey Minyard.

2000-09-30  Hans Boehm  <boehm@acm.org>
	    Bryce McKinlay  <bryce@albatross.co.nz>

	Implement bitmap descriptor based marking for Boehm GC.

	* configure.in: Define JC1GCSPEC. Set it if boehm-gc is used.
	* configure: Rebuilt.
	* libgcj.spec.in: Pass JC1GCSPEC to jc1.
	* include/jvm.h (struct _Jv_VTable): New field `gc_descr'. New inline
	method get_finalizer().
	(struct _Jv_ArrayVTable): Ditto. Declare method array with
	NUM_OBJECT_METHODS elements instead of NUM_OBJECT_METHODS + 1.
	(_Jv_AllocObj): Add new jclass parameter.
	(_Jv_AllocArray): Ditto.
	(_Jv_BuildGCDescr): New prototype.
	* prims.cc (_Jv_AllocObject): Rename parameter `c' to `klass'. Pass
	`klass' to _Jv_AllocObj. Don't set the new object's vtable. Use
	get_finalizer() instead of direct finalizer vtable offset.
	(_Jv_NewObjectArray): Rename parameter `clas' to `klass'. Pass
	`klass' to _Jv_AllocArray. Don't set the new array's vtable.
	(_Jv_NewPrimArray): Call _Jv_FindArrayClass before _Jv_AllocObj. Pass
	`klass' to _Jv_AllocObj. Don't set the new array's vtable.
	* resolve.cc (METHOD_NOT_THERE, METHOD_INACCESSIBLE): New #defines.
	(_Jv_ResolvePoolEntry): Use METHOD_NOT_THERE and METHOD_INACCESSIBLE.
	(_Jv_DetermineVTableIndex): Ditto.
	(_Jv_PrepareClass): Ditto. Remove offset-by-one adjustments from vtable
	calculations to account for new gc_descr field.
	* boehm.cc: #include gc_gcj.h.
	(obj_kind_x, obj_free_list): `#if 0'-ed away.
	(_Jv_MarkObj): Check that vtable doesn't point to a cleared object.
	New commentary from HB. Mark the classes vtable.
	(_Jv_MarkArray): Check that vtable doesn't point to a cleared object.
	(GC_DEFAULT_DESCR): New #define.
	(_Jv_BuildGCDescr): New function. Use GC_DEFAULT_DESCR, for now.
	(_Jv_AllocObj): New parameter `klass'. Use GC_GCJ_MALLOC ().
	(_Jv_AllocArray): New parameter `klass'. Allocate with GC_MALLOC and
	scan conservativly if size is less than min_heap_addr. Set vtable
	pointer of new object before returning.
	(_Jv_AllocBytes): Use GC_MALLOC_ATOMIC, not GC_GENERIC_MALLOC.
	(_Jv_InitGC): Call GC_init_gcj_malloc(). Don't set up marking and
	allocation for obj_kind_x.
	* nogc.cc (_Jv_BuildGCDescr): New function. Return 0.
	(_Jv_AllocObj): Set vtable on returned object.
	(_Jv_AllocArray): Ditto.
	* java/lang/Class.h (_Jv_NewObjectArray): No longer a friend.
	(_Jv_NewPrimArray): Ditto.
	(_Jv_AllocObj): Declare as a friend.
	(_Jv_AllocArray): Ditto.
	* java/lang/natClassLoader.cc (_Jv_FindArrayClass): Copy gc_descr
	from &ObjectClass into new array class. Remove offset-by-one
	adjustments from `method' size calculations to account for gc_descr
	field.

2000-09-26  Tom Tromey  <tromey@cygnus.com>

	* java/awt/Scrollbar.java (removeAdjustmentListener): Use
	`remove', not `add'.

2000-09-26  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* java/lang/natSystem.cc (file_encoding): Added return statement.

2000-09-14  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.am: Re-work shell commands that exceeded command-line
	length limits.
	* Makefile.in: Rebuilt.

	* java/lang/natRuntime.cc (lt_preloaded_symbols): Define as `extern'.

	* defineclass.cc: Include alloca.h only if HAVE_ALLOCA_H.
	* java/lang/natDouble.cc: Likewise.
	* java/lang/reflect/natMethod.cc: Likewise.
	* interpret.cc: Likewise.  Fix NULLCHECKs that tested a _Jv_word.

2000-09-13  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (LIBDATASTARTSPEC): Use `%s' to search for
	libgcjdata.a.
	(GCJ): Support single-tree builds.  Add -B`pwd`/ and -I$srcdir.
	* acinclude.m4: Arrange for automake to not bring in a new
	libtool.m4 for LT_AC_PROG_GCJ.  AC_SUBST GCJ.
	* Makefile.am: Leave it up to automake to subst GCJ.
	* aclocal.m4, configure, Makefile.in: Rebuilt.

2000-09-13  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/natArray.cc (BooleanClass): New define.
	(get): Ensure Boolean class is initialized.
	* java/lang/reflect/natField.cc (BooleanClass): New define.
	(get): Ensure Boolean class is initialized.

2000-09-13  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/String.java (CASE_INSENSITIVE_ORDER): New static field.
	Initialize with anonymous class.
	(compareToIgnoreCase): New method.

	* java/lang/ThreadGroup.java (had_uncaught_exception): New field.
	(uncaughtException): Set had_uncaught_exception.
	* prims.cc (JvRunMain): Check value of had_uncaught_exception and
	exit with error status if set.
	(_Jv_RunMain): Ditto.

2000-09-12  Alexandre Oliva  <aoliva@redhat.com>

	* configure: Rebuilt with new ../libtool.m4.

2000-09-11  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/Field.java (toString): Don't rely on
	Class.toString.

2000-09-08  Tom Tromey  <tromey@cygnus.com>

	* gnu/gcj/convert/BytesToUnicode.java (getDefaultDecoder): Let
	default decoder use iconv.
	* gnu/gcj/convert/UnicodeToBytes.java (getDefaultEncoder):
	Let default encoder use iconv.
	* configure: Rebuilt.
	* configure.in: Check for nl_langinfo and <langinfo.h>.
	* java/lang/natSystem.cc (file_encoding): New function.
	(DEFAULT_FILE_ENCODING): Define to file_encoding() if possible.

2000-09-10  Alexandre Oliva  <aoliva@redhat.com>

	* acinclude.m4: Simplify the tests for CC and CXX.
	* aclocal.m4, configure: Rebuilt.

	* acinclude.m4: Include libtool macros from the source tree.
	* aclocal.m4, configure: Rebuilt.

2000-09-08  Warren Levy  <warrenl@cygnus.com>

	* java/beans/PropertyChangeEvent.java (serialVersionUID): Added.
	* java/beans/PropertyVetoException.java (serialVersionUID): Added.
	* java/io/File.java (writeObject): Added.
	(readObject): Added.
	(serialVersionUID): Added.
	* java/io/ObjectOutputStream.java (writeObject): Initialized
	fieldsAlreadyWritten before recursion rather than after.
	* java/io/ObjectStreamClass.java (serialVersionUID): Added.
	* java/io/OptionalDataException.java (serialVersionUID): Added.
	(OptionalDataException): Made package private.
	* java/io/SyncFailedException.java (SyncFailedException): Removed
	default constructor to match spec.
	* java/lang/Boolean.java (serialVersionUID): Added.
	* java/lang/Byte.java (serialVersionUID): Added.
	* java/lang/Character.java (serialVersionUID): Added.
	* java/lang/Double.java (serialVersionUID): Added.
	* java/lang/Float.java (serialVersionUID): Added.
	* java/lang/Integer.java (serialVersionUID): Added.
	* java/lang/Long.java (serialVersionUID): Added.
	* java/lang/Number.java (serialVersionUID): Added.
	* java/lang/Short.java (serialVersionUID): Added.
	* java/lang/String.java (serialVersionUID): Added.
	* java/lang/ThreadDeath.java (ThreadDeath): Removed constructor
	to match spec.
	* java/lang/reflect/InvocationTargetException.java
	(serialVersionUID): Added.
	* java/net/URL.java (handler): Made transient.
	(hashCode): Added field for serialization, per spec. and use
	cached value if available.
	(serialVersionUID): Added.
	(URL): Initialize hashCode.
	(set): Adjust hashCode.
	(readObject): New Method to initialize the protocol handler when
	deserializing.
	(writeObject): New method.
	* java/text/BreakIterator.java: Removed 'implements Serializable'.
	* java/text/Collator.java: Removed 'implements Serializable'.
	* java/util/GregorianCalendar.java (serialVersionUID): Added.
	* java/util/Properties.java (serialVersionUID): Added.
	* java/util/Random.java (serialVersionUID): Added.
	(seed): Made private.
	(nextNextGaussian): Made private.
	(haveNextNextGaussian): Made private.
	* java/util/Stack.java (serialVersionUID): Added.
	* java/util/TimeZone.java (serialVersionUID): Added.
	* java/util/Vector.java (serialVersionUID): Added.

2000-09-07  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am (Thread.h): Don't be friends with native threads
	functions.
	* Makefile.in: Rebuilt.
	* java/lang/Thread.java (interrupt_flag): Make package-private.

2000-09-06  Jeff Sturm  <jeff.sturm@appnet.com>

	* include/jvm.h (_Jv_HashCode): Cast object ptr to `unsigned long'
	to avoid long long division.

2000-09-06  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/Constructor.java (toString): Use `getName' for
	parameter types.
	* java/lang/reflect/Method.java (toString): Use `getName' for
	return type.

	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Accept null
	`args' if method takes no parameters.

	Fix for PR java.lang/339:
	* java/lang/natPosixProcess.cc (fail): New function.
	(cleanup): New function.
	(startProcess): Use them.  Create pipe so child can communicate
	exec failure back to parent.

2000-09-05  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/net/natPlainDatagramSocketImpl.cc: Change various `JvThrow'
	calls to `throw'.
	(send): Undo last patch. Remove the label only.
	(mcastGrp): Ditto.
	* java/net/natPlainSocketImpl.cc: Change various `JvThrow' calls to
	`throw'.
	* java/net/natInetAdress.cc: Ditto.

	* java/net/natPlainDatagramSocketImpl.cc (mcastGrp): Fix typo.

2000-09-05  Tom Tromey  <tromey@cygnus.com>

	* doc/cni.sgml: Updated from master copy.

2000-09-05  Bryce McKinlay  <bryce@albatross.co.nz>

	* gnu/gcj/convert/natIconv.cc (read): Remove unused local.
	(write): Ditto.
	* gnu/gcj/runtime/FileDeleter.java (deleteOnExitNow): Check for null
	stack. Synchronize.
	* java/lang/fdlibm.h: #undef __P if previously defined.
	* java/lang/natSystem.cc (currentTimeMillis): Remove unused local.
	* java/net/natPlainDatagramSocketImpl.cc (send): Remove unreachable
	block.
	(mcastGrp): Ditto.

2000-09-04  Tom Tromey  <tromey@cygnus.com>

	* java/util/zip/ZipFile.java (ZipFile): Delete file when opened in
	DELETE mode.

2000-09-04  Anthony Green  <green@redhat.com>

	Fix for PR java.io/203:
	* java/io/File.java (createTempFile): Obey directory argument.
	Use java.io.tmpdir if needed.  Don't leave FileDescripators open.
	* java/lang/natSystem.cc (init_properties): Use TMPDIR environment
	variable to set java.io.tmpdir on non-WIN32 systems.

2000-09-04  Anthony Green  <green@redhat.com>

	* java/io/File.java (deleteOnExit): New method.
	* gnu/gcj/runtime/FileDeleter.java: New class.
	* java/lang/natRuntime.cc (exit): Call
	FileDeleter.deleteOnExitNow()
	* Makefile.am: Add FileDeleter.java.
	* Makefile.in: Rebuilt.

2000-09-02  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (GCJCOMPILE): Use -fclasspath, not the CLASSPATH
	environment variable.

2000-09-01  Andrew Haley  <aph@redhat.com>

	* java/io/StreamTokenizer.java: Don't throw a
	NumberFormatException if a field is numeric as far as the
	StreamTokenizer is concerned but not as far as Double.valueOf() is
	concerned: return a zero instead.

2000-08-30  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (AM_CXXFLAGS): Added -fdollars-in-identifiers.

2000-08-28  Tom Tromey  <tromey@cygnus.com>

	* gnu/gcj/awt/BitMaskExtent.java, gnu/gcj/awt/Buffers.java,
	gnu/gcj/awt/ComponentDataBlitOp.java,
	gnu/gcj/awt/GLightweightPeer.java, java/awt/Graphics2D.java,
	java/awt/RenderingHints.java, java/awt/color/ColorSpace.java,
	java/awt/color/ICC_ColorSpace.java,
	java/awt/color/ICC_Profile.java,
	java/awt/image/BufferedImage.java, java/awt/image/ColorModel.java,
	java/awt/image/ComponentColorModel.java,
	java/awt/image/ComponentSampleModel.java,
	java/awt/image/DataBuffer.java,
	java/awt/image/DataBufferByte.java,
	java/awt/image/DataBufferInt.java,
	java/awt/image/DataBufferUShort.java,
	java/awt/image/DirectColorModel.java,
	java/awt/image/IndexColorModel.java,
	java/awt/image/PackedColorModel.java, java/awt/image/Raster.java,
	java/awt/image/RasterOp.java, java/awt/image/SampleModel.java,
	java/awt/image/SinglePixelPackedSampleModel.java,
	java/awt/image/WritableRaster.java, java/util/zip/ZipFile.java:
	Removed Latin-1 copyright symbols.
	* java/util/zip/ZipFile.java: Indentation fixes.

2000-08-27  Mark Wielaard  <mark@klomp.org>

	* java/util/zip/ZipFile.java: Implement OPEN_DELETE mode, new
	constructor, close can delete the file, finalize calls close.
	* java/util/jar/JarFile.java: Constructor that takes mode now
	calls super.

2000-08-27  Anthony Green  <green@redhat.com>

	* java/util/ArrayList.java, java/util/Timer.java,
	java/util/LinkedList.java, java/util/TimerTask.java,
	java/util/HashMap.java, java/util/AbstractMap.java,
	java/util/SortedMap.java, java/util/AbstractSequentialList.java,
	java/util/SortedSet.java: Imported from GNU Classpath.
	* Makefile.in: Rebuilt.
	* Makefile.am: Added new files.

2000-08-26  Anthony Green  <green@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (java/lang/ClassLoader.h): Make _Jv_RunMain a
	friend.

	* prims.cc: Include ClassLoader.h.
	(_Jv_RunMain): When executing jar files, classpath must be the jar
	file only.  Lose our reference to the system ClassLoader in order
	to get a new one with the correct classpath.
	* java/lang/natSystem.cc (init_properties): When executing a jar
	file, only use the jar file for java.class.path.

	* gnu/gcj/runtime/VMClassLoader.java: Use the canonical file name
	for bytecode archives.

	* gnu/gcj/runtime/FirstThread.java: Handle case where manifest
	exists, but not Main-Class.

2000-08-23  Mark Wielaard  <mark@klomp.org>

	* java/util/zip/InflaterInputStream.java (read(byte[],int,int)):
	return -1 when fill() has no more data for the Inflater.

2000-08-23  Mark Wielaard  <mark@klomp.org>

	* java/io/PrintWriter.java (print(String)): Don't catch IOException,
	write(String) already does.

2000-08-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* gnu/gcj/jni/NativeThread.java (NativeThread): Removed assignment
	to `alive_flag', call `init'.
	(init): New native method.
	* gnu/gcj/jni/natNativeThread.cc (init): New native method
	implementation.

2000-08-21  Mark Wielaard  <mark@klomp.org>

	* Makefile.in: Rebuilt.
	* Makefile.am (java/lang/reflect/Constructor.h): Declare Class as
	a `friend class'.
	(java/lang/reflect/Field.h): Likewise.
	(java/lang/reflect/Method.h): Likewise.
	(gnu/gcj/runtime/VMClassLoader.h): Declare ClassLoader as a
	`friend class'.

2000-08-21  Tom Tromey  <tromey@cygnus.com>

	* java/util/ResourceBundle.java (trySomeGetBundle): Removed
	debugging prints.

Sun Aug 20 21:02:48 2000  Anthony Green  <green@redhat.com>

	* java/lang/natSystem.cc (init_properties): Change sourceware
	reference to sources.redhat.com.

	* include/java-props.h: Add _Jv_Jar_Class_Path.
	* prims.cc: Ditto.  Set it from	`gij -jar file' option.

	* java/lang/natSystem.cc (init_properties): Set java.class.path
	from
	{gij -jar file}:{CLASSPATH variable}:{-Djava.class.path= or .}

	* java/util/PropertyPermission.java: Import from GNU Classpath.
	* Makefile.in: Rebuilt.
	* Makefile.am: Add java/util/PropertyPermission.java.
	* java/lang/System.java: Add setProperty method.

	* gij.cc (main): Add -jar option to execute jar files.
	(help): Describe -jar option.
	* prims.cc (_Jv_RunMain): Add support for jar execution mode.
	* include/jvm.h: Add is_jar argument to _Jv_RunMain.
	* gnu/gcj/runtime/FirstThread.java (main): New method.

	* java/util/jar/Attributes.java: Correct comment spelling.

2000-08-20  Mark Wielaard  <mark@klomp.org>

	* java/util/zip/Adler32.java: Make private variables really private
	* java/util/zip/CRC32.java: Make private variables really private
	* java/util/zip/CheckedInputStream.java: skip() could skip to much
	bytes
	* java/util/zip/InflaterInputStream.java: skip() could skip to
	much bytes
	* java/util/zip/ZipEntry.java: setCompressedSize() didn't check input
	* java/util/zip/ZipFile.java: size() new 1.2 method
	* java/util/zip/ZipInputStream.java: Use createZipEntry not new
	ZipEntry.  since 1.2 available() always returns just 1 or 0 when
	closed

Sun Aug 20 12:33:43 2000  Anthony Green  <green@redhat.com>

	* java/util/jar/JarFile.java: Don't call
	java.util.zip.ZipFile.getEntry twice.  From Mark Wielaard
	<mark@klomp.org>.

Sun Aug 20 09:51:48 2000  Anthony Green  <green@redhat.com>

	* java/net/URLClassLoader.java: Find the JarEntry via the JarFile.
	Read the entire contents of the class file, not just what is
	available().

	* java/net/JarURLConnection.java: getEntry doesn't take any
	arguments.  Return null if element is null.

	* java/util/zip/ZipFile.java (getInputStream): Read the compressed
	size from the archive, not the inflated size.

	* java/util/jar/JarFile.java (getEntry): Don't recurse.  Call
	java.util.zip.ZipFile.getEntry.

	* gij.cc (help): Change sourceware reference to
	sources.redhat.com.

2000-08-19  Tom Tromey  <tromey@cygnus.com>

	* java/util/zip/ZipInputStream.java (createZipEntry):
	Implemented.

Sat Aug 19 11:00:53 2000  Anthony Green  <green@redhat.com>

	* java/util/jar/Attributes.java, java/util/jar/JarEntry.java,
	java/util/jar/JarException.java, java/util/jar/JarFile.java,
	java/util/jar/JarInputStream.java,
	java/util/jar/JarOutputStream.java, java/util/jar/Manifest.java,
	java/util/Set.java, java/util/Map.java, java/util/Bucket.java,
	java/util/AbstractSet.java, java/util/BasicMapEntry.java,
	java/security/cert/CRL.java, java/security/cert/CRLException.java,
	java/security/cert/Certificate.java,
	java/security/cert/CertificateEncodingException.java,
	java/security/cert/CertificateException.java,
	java/security/cert/CertificateExpiredException.java,
	java/security/cert/CertificateFactory.java,
	java/security/cert/CertificateFactorySpi.java,
	java/security/cert/CertificateNotYetValidException.java,
	java/security/cert/CertificateParsingException.java,
	java/security/cert/X509CRL.java,
	java/security/cert/X509CRLEntry.java,
	java/security/cert/X509Certificate.java,
	java/security/cert/X509Extension.java: Imported from Classpath.
	* java/util/Hashtable.java: Imported from Classpath.

	* java/util/zip/ZipInputStream.java: Create stub for
	createZipEntry.

	* gcj/javaprims.h: Updated class list.

	* Makefile.in, gcj/Makefile.in: Rebuilt.
	* Makefile.am (ordinary_java_source_files): Add these new classes.

2000-08-16  Rolf W. Rasmussen  <rolfwr@ii.uib.no>

	* gnu/gcj/awt/ComponentDataBlitOp.java: New file.
	* gnu/gcj/awt/GLightweightPeer.java: New file.
	* java/awt/BorderLayout.java: Implemented all methods.
	* java/awt/Button.java (actionListener, actionCommand): Renamed
	and modifier change.
	(addNotify): Call super.
	(dispatchEventImpl): New method.
	(getListeners): New method.
	(label): Made package-private, not private.
	* java/awt/Canvas.java: Implemented class body.
	* java/awt/Color.java (brighter): New method.
	(darker): New method.
	(hashCode): New method.
	* java/awt/Component.java (visible, enabled, eventMask): Set defaults.
	(getGraphicsConfiguration): Delegate to
	getGraphicsConfigurationImpl().
	(getGraphicsConfigurationImpl): New method.
	(getToolkit): Only return value from peer if not null.
	(isDisplayable): Check with parent.
	(isShowing): No parent implies not showing.
	(getForeground): Check parent property if local is null.
	(getBackground): Likewise.
	(getFont): Likewise.
	(setForeground): Inform peer.
	(setBackground): Likewise
	(setLocale): Invalidate component.
	(getColorModel): Implemented.
	(setLocation): Invalidate, or ignore if no change.
	(setSize): Invalidate, or ignore if no change.
	(setBounds): Invalidate, or ignore if no change.
	(isOpaque): By default, heavyweight implies opaque.
	(isLightweight): Implemented.
	(getMaximumSize): Implemented.
	(doLayout): Implemented, NOP.
	(validate): Implemented, NOP.
	(invalidate): Only propagate to parent if parent was valid.
	(getGraphics): Implemented.
	(getFontMetrics): Implemented.
	(update): Implemented.
	(paintAll): Implemented.
	(repaint): Implemented all repaint methods.
	(print): Implemented.
	(printAll): Implemented.
	(createImage): Implemented.
	(dispatchEvent): Give the peer a chance to handle the event.
	(dispatchEventImpl): Dispatch paint events.
	(enableEvents): Lightweights enable events on parent component.
	(coalesceEvents): Coalesce paint events, and select event type
	using a switch.
	(coalescePaintEvents): New method.
	(processEvent): Fix unfortunate ordering of statements, and call
	correct method for MOUSE_CLICKED.
	(processPaintEvent): New method.
	(addNotify): Allow container to notify children before event
	mask is set in peer.
	(addNotifyContainerChildren): New method.
	(removeNotify): Visibility should not change on removeNotify.
	(paramString): Implemented.
	(list): Implemented two of the list methods.
	* Container (myInsets): Removed, insets are managed by peer.
	(getInsets): Query peer.
	(addImpl): Fix reparenting, enable events for lightweights,
	initialize component array.
	(validate): Call doLayout in validateTree() instead.
	(validateTree): Do nothing if already valid. Call beginValidate(),
	endValidate() on peer. Call validateTree() instead of validate()
	for children that are containers. Mark valid after validation of
	children.
	(setFont): Partial implementation.
	(paint): Implemented.
	(visitChildren): New method.
	(visitChild): New method.
	(update): Implemented.
	(print): Implemented.
	(paintComponents): Implemented.
	(printComponents): Consider translation and clipping.
	(getComponentAt): Ignore invisible children. Return this if no
	child match.
	(addNotify): Call super.
	(addNotifyContainerChildren): New method.
	(paramString): Implemented.
	(list): Implemented.
	* java/awt/EventQueue (invokeAndWait): Get system event queue the
	right way.
	(invokeLater): Likewise.
	(isDispatchThread): Likewise.
	* java/awt/FontMetrics (getLeading): Formula change.
	(getDescent): Consider leading also.
	(getMaxAscent): Default to getAscent().
	(getMaxDescent): Default to getDescent.
	(getMaxAdvance): Return value signifying unknown.
	(charWidth): Both methods implemented.
	(charsWidth): Implemented.
	(bytesWidth): Implemented.
	(getWidths): Implemented.
	* java/awt/Frame.java (NORMAL, ICONIFIED, iconImage, isResizable,
	state): New fields.
	(Frame): Rearragend constuctor chaining to disallow null being
	passed as a graphics configuration.
	(getTitle): Return empty string if null.
	(dispose): Removed.
	(getIconImage): New method.
	(setIconImage): New method.
	(finalize): New method.
	(setMenuBar): Notify peer.
	(isResizable): New method.
	(setResizable): New method.
	(getState): New method.
	(getFont): Removed.
	(remove): Implemented.
	(removeNotify): New method.
	(getFrames): New method.
	* java/awt/Graphics.java: Implemented body of class.
	* java/awt/Graphics2D.java: New file.
	* java/awt/GraphicsConfiguration.java: Enabled part of the API.
	* java/awt/Image.java: Implemented body of class.
	* java/awt/Panel.java (Panel): Call correct super constructor.
	(addNotify): Implemented.
	* java/awt/Rectangle.java (isEmpty): Fixed reversed logic.
	* java/awt/RenderingHints.java: New file.
	* java/awt/Toolkit.java (createComponent): Implemented.
	(getSystemEventQueue): Delegate to getSystemEventQueueImpl().
	* java/awt/Window.java (Window): Two new constructors. Reordered
	constructor chaining.
	(getGraphicsConfigurationImpl): New method.
	(finalize): Call super.
	(addNotify): Call super.
	(pack): Do layout stuff.
	(show): Ensure that peer exists and that component is valid.
	(dispose): Dispose owned children.
	(getOwner): Simplify code, casting null pointers is valid.
	(getGraphicsConfiguration): Ask peer if local value is null.
	* java/awt/event/ActionEvent.java (getActionCommand): Renamed from
	getcmd().
	* java/awt/image/BufferedImage.java: New file.
	* java/awt/image/RasterOp.java: New file.
	* java/awt/peer/ComponentPeer.java (getGraphicsConfiguration):
	More powerful replacement for getColorModel().
	(getColorModel) Removed.
	(setEventMask) New method.
	* Makefile.am: Added new files.
	* Makefile.in: Rebuilt.

2000-08-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* java/lang/natClass.cc (finit_name): Initialized with `finit$'.
	(finit_leg_name): New global.
	(java::lang::Class::getDeclaredMethods): Test for `finit$' or
	`$finit$'. This is a backward compatibility hack.
	(java::lang::Class::_getMethods): Likewise.

2000-08-15  Andrew Haley  <aph@cygnus.com>

	* include/jvm.h (_Jv_HashCode): New hash code.

2000-08-15  Tom Tromey  <tromey@cygnus.com>

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

Sun Aug 13 19:53:01 2000  Anthony Green  <green@redhat.com>

	* THANKS: More thanks.

2000-08-10  Tom Tromey  <tromey@cygnus.com>

	* java/net/natPlainSocketImpl.cc (bind): Don't go to error case
	when errno not set.
	(connect): Likewise.
	(accept): Likewise.
	(getOption): Likewise.
	* java/net/natPlainDatagramSocketImpl.cc (bind): Don't go to error
	case when errno not set.
	(peek): Likewise.
	(send): Likewise.
	(receive): Likewise.
	(mcastGrp): Likewise.
	(setOption): Likewise.
	(getOption): Likewise.

2000-08-10  Bryce McKinlay  <bryce@albatross.co.nz>
	    John Stracke <francis@ecal.com>

	* gnu/gcj/protocol/http/Connection.java (gotHeaders): Removed.
	(connect): Don't falsely claim HTTP/1.1 compliance. Call
	getHttpHeaders().
	(disconnect): Don't unset connected flag.
	(getHeaderField (String)): Call connect() if not connected.
	(getHeaderField (int)): Ditto.
	(getHeaderFieldKey): Ditto.
	(getHttpHeaders): Don't call connect().
	* java/net/HttpURLConnection.java (instanceFollowRedirects,
	gotResponseVals): New fields.
	(getResponseCode): Call getResponseVals() conditionally.
	(getResponseMessage): Ditto.
	(getResponseVals): Call connect(). Don't throw FileNotFoundException.

2000-08-09  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am: Move beans and applet classes to awt_java_source_files.
	* Makefile.in: Rebuilt.
	* java/awt/Color.java (getTransparency): New method.
	* java/awt/Component.java: Various updates.
	* java/awt/Container.java (removeNotify): Call super.removeNotify()
	after dealing with children.
	* java/awt/Toolkit.java (changeSupport): Renamed from pcsupport.
	* java/awt/Window.java: Various new methods and updates.
	* java/awt/color/ICC_Profile.java (getNumComponents): Cast profileID
	to int for switch.
	* java/awt/event/KeyEvent.java (paramString): Initialize `r'.
	* java/awt/event/WindowEvent.java (paramString): Ditto.
	* java/awt/geom/Dimension2D.java (clone): Wrap super call with
	try/catch block.
	* java/awt/geom/Point2D.java (clone): Ditto.
	* java/awt/geom/RectangularShape.java (clone): Ditto.
	* java/awt/image/ColorModel.java (bits, cspace, transparency, hasAlpha,
	isAlphaPremultiplied): Make package-private, not private.

2000-08-08  Tom Tromey  <tromey@cygnus.com>

	* gnu/gcj/convert/Input_UTF8.java (read): Fixed handling of
	surrogate characters.
	* gnu/gcj/convert/Output_UTF8.java (standardUTF8): Default to
	true.
	(write): Correct handling of surrogate characters.

2000-08-07  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/Method.java (hashCode): Use getName().
	(toString): Likewise.
	* java/lang/reflect/natMethod.cc (getType): Initialize
	exception_types.

	* java/lang/reflect/Method.java (toString): Use Class.getName, not
	Class.toString.
	* java/lang/reflect/Field.java (toString): Correct formatting.
	From Corey Minyard.

	* java/io/PipedInputStream.java (read(byte[],int,int)): Mostly
	rewrote.
	(receive): Streamlined.

2000-08-05  Tom Tromey  <tromey@cygnus.com>

	* java/io/PrintWriter.java: Merged comments from Classpath.
	(printlnUnsynchronized): Removed.
	(println()): Print the separator.
	(println): Call println(), not printlnUnsynchronized.
	(out): Now protected, to match spec.

2000-08-04  Tom Tromey  <tromey@cygnus.com>

	* java/io/StreamTokenizer.java (TT_NONE): Now private.
	(nextToken): Handle backslashed newline.  From Oskar Liljeblad.
	For PR java.io/301.

2000-08-03  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectInputStream.java (readFields): Turn off
	readDataFromBlock while reading via GetField.
	(GetField$1.get(String, Object)): Pass Class of default value to
	getField.
	(getField): Allow for null default values.

	* java/io/ObjectOutputStream.java: Fixed typo in comment.
	(PutField$1.put): Fixed calls of checkType in most of the put
	methods to pass the correct parameter.
	(PutField$1.put(String, Object)): Allow for null value arg.
	(PutField$1.write): Turn off writeDataAsBlocks while writing via
	PutField.

	* java/io/ObjectStreamClass.java (serialPersistentFields): Fixed
	typo in spec'ed field name.
	(getSerialPersistentFields): Changed spelling of method to match
	the correct spelling of the spec'ed field name.

2000-08-03  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added new files.

2000-08-03  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am: Add new AWT stubs.
	* java/awt/Canvas.java: New placeholder class.
	* java/awt/Checkbox.java: Ditto.
	* java/awt/CheckboxMenuItem.java: Ditto.
	* java/awt/Choice.java: Ditto.
	* java/awt/Dialog.java: Ditto.
	* java/awt/FileDialog.java: Ditto.
	* java/awt/List.java: Ditto.
	* java/awt/ScrollPane.java: Ditto.
	* java/awt/TextField.java: Ditto.
	* java/awt/datatransfer/Clipboard.java: Ditto.
	* java/awt/Component.java (treeLock): Now a static String. Add comment.
	* java/awt/MenuItem.java (MenuItem): Add default constructor.
	* java/awt/Toolkit.java: Added all methods from J2SE 1.3 API docs.
	Some commented out. Partially implemented.
	* java/awt/natToolkit.cc: Removed file.

2000-08-03  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am: Make inner class CNI headers depend on libgcj.zip only.
	Fixes "make -j" builds.
	* Makefile.in: Rebuild.

2000-08-02  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (libgcj_la_SOURCES): Added posix.cc.
	* java/net/natPlainSocketImpl.cc: Include posix.h.
	(accept): Use _Jv_select.
	* java/net/natPlainDatagramSocketImpl.cc: Include posix.h.
	(receive): Use _Jv_select.
	* java/io/natFileDescriptorPosix.cc: Include posix.h.
	(available): Use _Jv_select.
	* java/lang/natSystem.cc: Include posix.h.
	(currentTimeMillis): Use _Jv_gettimeofday.
	* include/posix.h: New file.
	* posix.cc: New file.

	* scripts/encodings.pl: New file.
	* Makefile.in: Rebuilt.
	* Makefile.am (convert_source_files): Added IOConverter.java.
	* gnu/gcj/convert/UnicodeToBytes.java (UnicodeToBytes): Extend
	IOConverter.
	(getDefaultDecodingClass): Canonicalize default encoding name.
	(getEncoder): Likewise.
	* gnu/gcj/convert/BytesToUnicode.java (BytesToUnicode): Extend
	IOConverter.
	(getDefaultDecodingClass): Canonicalize default encoding name.
	(getDecoder): Likewise.
	* gnu/gcj/convert/IOConverter.java: New file.

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

	* interpret.cc (_Jv_InterpMethod::continue1): Type of `fun' changed
	to match C declaration in ffi.h.
	* Makefile.am: Add java/awt/Button.java.
	* Makefile.in: Rebuilt.

2000-07-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Type of the
	cast of the second argument to `ffi_raw_call' changed to match
	prototype.

2000-07-26  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* jni.cc (_Jv_JNIMethod::call): Type of the cast of the second
	argument to `ffi_raw_call' changed to match prototype.

2000-07-31  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/awt/Component.java (toString): Implemented.
	* java/awt/Container.java (addImpl): Remove FIXME. Only call
	dispatchEvent() to dispatch the event.
	(removeImpl): Ditto.

2000-07-30  Anthony Green  <green@redhat.com>

	* java/awt/Component.java: Add treeLock object.
	(getTreeLock): Implement.
	(isShowing): Implement.

2000-07-30  Tom Tromey  <tromey@cygnus.com>

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

	* java/awt/Frame.java (Frame): Pass `null' to Window constructor.

	* java/awt/Window.java (addNotify): Wrote.
	(addWindowListener): Wrote.
	(getLocale): Wrote.
	(getWarningString): Wrote.
	(processEvent): Wrote.
	(processWindowEvent): Wrote.
	(removeWindowListener): Wrote.
	(show): Call validate(), setVisible().
	(toBack): Wrote.
	(toFront): Wrote.

	* java/awt/Toolkit.java (createWindow): Declare.

	* java/awt/Frame.java (addNotify): Use getToolkit to find
	toolkit.

	* java/awt/Component.java (invalidate): Wrote.
	(isValid): Wrote.
	(getToolkit): Wrote.

	* java/awt/Container.java (addContainerListener): Removed
	unnecessary cast.
	(removeContainerListener): Likewise.
	(addImpl): Wrote.
	(add(Component)): Use it.
	(add(String,Component)): Likewise.
	(add(Component,int)): Likewise.
	(add(Component,Object)): Likewise.
	(add(Component,Object,int)): Likewise.
	(doLayout): Wrote.
	(getAlignmentX): Wrote.
	(getAlignmentY): Wrote.
	(getComponentAt): Wrote.
	(getMaximumSize): Wrote.
	(invalidate): Wrote.
	(list(PrintStream,int)): Wrote.
	(list(PrintWriter,int)): Wrote.
	(getMinimumSize): Wrote.
	(getPreferredSize): Wrote.
	(printComponents): Wrote.
	(processContainerEvent): Look at containerListener, not
	componentListener.
	(remove): Added event processing and peer destruction.
	(removeAll): Use remove.
	(removeNotify): Wrote.
	(validate): Wrote.
	(validateTree): Wrote.

	* java/awt/Scrollbar.java (addNotify): Do nothing if peer exists.
	* java/awt/Label.java (addNotify): Do nothing if peer exists.
	* java/awt/Container.java (addNotify): Don't create Container
	peer.
	* java/awt/Button.java (addNotify): Do nothing if peer exists.

2000-07-30  Tom Tromey  <tromey@cygnus.com>

	* java/awt/Container.java (remove(int)): Wrote.
	(remove(Component)): Wrote.
	(add(Component)): Wrote.
	(add(Component,int)): Wrote.
	(removeAll): Wrote.
	(addNotify): Set our own peer.
	* java/awt/Scrollbar.java (listeners): Changed type.
	(Scrollbar): Don't initialize listeners.
	(addNotify): Wrote.
	(setValue): Call setValues.
	(setMinimum): Likewise.
	(setMaxPriority): Likewise.
	(setVisibleAmount): Likewise.
	(setValues): Wrote.
	(setUnitIncrement): Forward to peer.
	(setLineIncrement): Call setUnitIncrement.
	(setPageIncrement): Call setBlockIncrement.
	(setBlockIncrement): Forward to peer.
	(addAdjustmentListener): Rewrote.
	(removeAdjustmentListener): Rewrote.
	(processAdjustmentEvent): Rewrote.
	(paramString): Wrote.
	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added Button.java.
	* java/awt/Button.java: New file.
	* java/awt/Toolkit.java (createLabel): Declare.
	(createButton): Likewise.
	(createScrollbar): Likewise.
	(createContainer): Likewise.
	* java/awt/Label.java (addNotify): Wrote.
	(setAlignment): Call setAlignment in the peer.
	(setText): Call setText in the peer.

2000-07-28  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectOutputStream.java (writeObject): Per spec, call
	NotSerializableException with just the class name.

2000-07-26  Andrew Haley  <aph@cygnus.com>

	* interpret.cc (continue1): Insert missing break into switch.

2000-07-28  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectStreamException.java: Made constructors protected.

2000-07-27  Tom Tromey  <tromey@cygnus.com>

	* java/io/OutputStreamWriter.java (close): Only flush if not
	closed.

2000-07-27  Warren Levy  <warrenl@cygnus.com>

	* mauve-libgcj: Activated serialization tests.
	* gcj/field.h (getModifiers): Mask off unknown flags.
	* gnu/java/security/provider/SHA.java (munch): Reset buffer to 0 so
	spurious bits don't cause discrepancies.
	* java/io/ObjectOutputStream.java: Fixed typo in comment.
	* java/io/ObjectStreamClass.java: Fixed typos in comments.
	(lookup): Applied patch from Brian Jones <cbj@gnu.org> to optimize.
	(hasClassInitializer): Call getDeclaredMethod instead of getMethod.
	* java/lang/Throwable.java (serialVersionUID): New field.
	* java/lang/reflect/Modifier.java (ALL_FLAGS): Preserve STRICT if used.
	* java/lang/reflect/natConstructor.cc (getModifiers): Mask off
	unknown flags.
	* java/lang/reflect/natMethod.cc: Ditto.
	* java/security/Key.java (serialVersionUID): Removed field for now.
	* java/security/interfaces/DSAPrivateKey.java (serialVersionUID): Ditto.
	* java/security/interfaces/DSAPublicKey.java (serialVersionUID): Ditto.

2000-07-22  Tom Tromey  <tromey@cygnus.com>

	* java/awt/geom/RectangularShape.java (getPathIterator):
	Wrote.

2000-07-23  Rolf W. Rasmussen  <rolfwr@ii.uib.no>

	* libjava/java/awt/image/ColorModel.java: New file, replaces the
	stub libjava/java/awt/ColorModel.java which was located in the
	wrong package.
	* libjava/java/awt/image/ComponentColorModel.java: New file.
	* libjava/java/awt/image/ComponentSampleModel.java: New file.
	* libjava/java/awt/image/DataBuffer.java: New file.
	* libjava/java/awt/image/DataBufferByte.java: New file.
	* libjava/java/awt/image/DataBufferInt.java: New file.
	* libjava/java/awt/image/DataBufferUShort.java: New file.
	* libjava/java/awt/image/DirectColorModel.java: New file.
	* libjava/java/awt/image/PackedColorModel.java: New file.
	* libjava/java/awt/image/Raster.java: New file.
	* libjava/java/awt/image/SampleModel.java: New file.
	* libjava/java/awt/image/SinglePixelPackedSampleModel.java: New
	file.
	* libjava/java/awt/image/IndexColorModel.java: New file.
	* libjava/java/awt/image/ImageConsumer.java: Removed import of
	java.awt.ColorModel stub.

	* gnu/gcj/util/BitMaskExtent.java: New file, utility class.
	* gnu/gcj/util/Buffers.java: New file, utility class.

	* libjava/Makefile.am: Updated to include new files.
	* libjava/Makefile.in: Rebuilt.

2000-07-23  Oskar Liljeblad <osk@hem.passagen.se>

	* java/io/StreamTokenizer.java: Merged with classpath.

2000-07-20  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Updated for new files.
	* java/awt/Adjustable.java (HORIZONTAL, VERTICAL): Set values.
	* java/awt/Label.java: New file.
	* java/awt/Rectangle.java (Rectangle): Extend Rectangle2D.
	(createIntersection, createUnion, getBounds2D): New methods.
	* java/awt/Scrollbar.java: New file.
	* java/awt/Shape.java: Updated to 1.2.
	* java/awt/geom/AffineTransform.java: New file.
	* java/awt/geom/Ellipse2D.java: New file.
	* java/awt/geom/NoninvertibleTransformException.java: New file.
	* java/awt/geom/PathIterator.java: New file.
	* java/awt/geom/Rectangle2D.java: New file.
	* java/awt/geom/RectangularShape.java: New file.
	* java/awt/geom/Point2D.java (Double, Float): New inner classes.
	* java/awt/geom/IllegalPathStateException.java: New file.

	* scripts/showval.java: New file.

	* scripts/classes.pl (scan): Print inner classes properly.
	* gcj/javaprims.h: Updated class list.

	* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Only
	initialize String fields for interpreted classes.  Fixes bug
	reported by Hans Boehm.

	* java/io/File.java (getParentFile): New method, from Classpath
	via Oskar Liljeblad.

	* java/util/Vector.java (remove(Object)): Implemented.

2000-07-19  Jeff Sturm  <jeff.sturm@appnet.com>

	* java/lang/natThrowable.cc (fillInStackTrace): Check for
	zero return from backtrace().

2000-07-15  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/awt/EventQueue.java (invokeAndWait): Call postEvent() within
	synchronized block.
	* java/awt/event/InvocationEvent (dispatch): Synchronize on notifier
	before calling notifyAll().

2000-07-13  Bryce McKinlay  <bryce@albatross.co.nz>

	Add missing files from last check-in:
	* java/awt/image/ImageConsumer.java: New file.
	* java/awt/image/ImageProducer.java: New file.
	* java/awt/image/ImageObserver.java: New file.

2000-07-12  Bryce McKinlay  <bryce@albatross.co.nz>

	Merged implementation of java.applet from classpath:
	* java/applet/Applet.java: New file.
	* java/applet/AppletContext.java: New file.
	* java/applet/AppletStub.java: New file.
	* java/applet/AudioClip.java: New file.

	* Makefile.am: Added new java.applet classes.
	* Makefile.in: Rebuilt.

2000-07-12  Bryce McKinlay  <bryce@albatross.co.nz>

	AWT Stuff:
	* java/util/ResourceBundle.java (getLocale): stub.
	* Makefile.am: Added new AWT classes.
	* Makefile.in: Rebuilt.
	* java/awt/AWTEvent.java: Add EVENT_MASK constants, isConsumed,
	constructors. Fix toString() and paramString().
	* java/awt/AWTEventMulticaster.java: New class. Implemented.
	* java/awt/CheckboxGroup.java: New class.
	* java/awt/ColorModel.java: New class.
	* java/awt/Component.java: Added stubs for most methods. Implemented
	event dispatch.
	* java/awt/Container.java: ditto.
	* java/awt/ComponentOrientation.java: New class. Partly implemented.
	* java/awt/Cursor.java: ditto.
	* java/awt/Event.java: Fix paramString().
	* java/awt/EventQueue.java: New class. Implemented.
	* java/awt/Font.java: Added additional stub methods. Implemented
	toString().
	* java/awt/FontMetrics.java: New class. Stubbed.
	* java/awt/GraphicsConfiguration.java: New class. Complete, except for
	Java2D parts.
	* java/awt/Insets.java: New class. Implemented.
	* java/awt/Menu.java: Add new methods. Partially implemented.
	* java/awt/MenuItem.java: Add new methods and fields. Partially
	implemented.
	* java/awt/MenuShortcut.java: New class. Implemented.
	* java/awt/Panel.java: New class. Placeholder.
	* java/awt/PopupMenu.java: New class. Stubbed.
	* java/awt/Rectangle.java: New class. Implemented.
	* java/awt/Toolkit.java: Added getSystemEventQueue() stub.
	* java/awt/event/ActionEvent.java: Implement paramString().
	* java/awt/event/AdjustmentEvent.java: Implement paramString().
	* java/awt/event/ComponentEvent.java: Implement paramString().
	* java/awt/event/ContainerEvent.java: Implement paramString().
	* java/awt/event/FocusEvent.java: Implement paramString().
	* java/awt/event/HierarchyBoundsAdapter.java: New class.
	* java/awt/event/HierarchyBoundsListener.java: New class.
	* java/awt/event/HierarchyEvent.java: New class.
	* java/awt/event/HierarchyListener.java: New class.
	* java/awt/event/InputMethodEvent.java: Implement paramString().
	* java/awt/event/InvocationEvent.java: Implement paramString(). Throw
	exception if !catchExceptions.
	* java/awt/event/ItemEvent.java: Implement paramString().
	* java/awt/event/KeyEvent.java: Implement paramString().
	* java/awt/event/MouseEvent.java: Implement paramString().
	* java/awt/event/PaintEvent.java: Implement paramString().
	* java/awt/event/TextEvent.java: Implement paramString().
	* java/awt/event/WindowEvent.java: Implement paramString().

	AWT Peer interfaces:
	* java/awt/peer/ButtonPeer.java: New file.
	* java/awt/peer/ListPeer.java: New file.
	* java/awt/peer/CanvasPeer.java: New file.
	* java/awt/peer/MenuBarPeer.java: New file.
	* java/awt/peer/CheckboxMenuItemPeer.java: New file.
	* java/awt/peer/MenuComponentPeer.java: New file.
	* java/awt/peer/CheckboxPeer.java: New file.
	* java/awt/peer/MenuItemPeer.java: New file.
	* java/awt/peer/ChoicePeer.java: New file.
	* java/awt/peer/MenuPeer.java: New file.
	* java/awt/peer/ComponentPeer.java: Implemented.
	* java/awt/peer/PanelPeer.java: New file.
	* java/awt/peer/ContainerPeer.java: Implemented.
	* java/awt/peer/PopupMenuPeer.java: New file.
	* java/awt/peer/DialogPeer.java: New file.
	* java/awt/peer/ScrollPanePeer.java: New file.
	* java/awt/peer/FileDialogPeer.java: New file.
	* java/awt/peer/ScrollbarPeer.java: New file.
	* java/awt/peer/FontPeer.java: New file.
	* java/awt/peer/TextAreaPeer.java: New file.
	* java/awt/peer/FramePeer.java: Implemented.
	* java/awt/peer/TextComponentPeer.java: New file.
	* java/awt/peer/LabelPeer.java: New file.
	* java/awt/peer/TextFieldPeer.java: New file.
	* java/awt/peer/LightweightPeer.java: New file.
	* java/awt/peer/WindowPeer.java: Implemented.

2000-07-06  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass):
	Initialize static final String fields.

2000-07-03  Tom Tromey  <tromey@cygnus.com>

	* java/io/PrintWriter.java (print): Call write(String), not
	print(String).  See PR libgcj/277.
	(print(String)): Use write, not out.write.

2000-06-30  Tom Tromey  <tromey@cygnus.com>

	* include/jni.h: Include <gcj/array.h>.  Fixes PR libgcj/270.

2000-06-27  Andrew Haley  <aph@cygnus.com>

       * java/io/File.java (createTempFile): Close the FileDescriptor
       used to create a temp file.  Fixes some of PR 203.
       * java/io/natFileDescriptorPosix.cc (open): Call garbage
       collection if we run out of file handles.

2000-06-28  Warren Levy  <warrenl@cygnus.com>

	* gnu/java/security/provider/Gnu.java: New file.
	* gnu/java/security/provider/SHA.java: New file.
	* gnu/java/security/provider/SHA1PRNG.java: New file.
	* Makefile.am: Added the above files.
	* Makefile.in: Rebuilt.

	* java/io/ObjectStreamClass.java (setUID): Use Gnu SHA instead of SHS.

2000-06-28  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/ThreadGroup.java: Added synchronized flag to many methods.
	(destroyed_flag): Removed.
	(isDestroyed, removeGroup, removeThread): Test for parent == null.
	(activeCount): Added spec note.

2000-06-27  Warren Levy  <warrenl@cygnus.com>

	* java/security/Principal.java: New file.
	* Makefile.am: Added Principal.java.
	* Makefile.in: Rebuilt.

2000-06-27  Rolf W. Rasmussen  <rolfwr@ii.uib.no>

	* java/awt/event/MouseEvent.java: Fixed coordinate space
	confusion.

2000-06-27  Tom Tromey  <tromey@cygnus.com>

	* java/io/PushbackInputStream.java (read): If there are characters
	in the buffer, don't also call super.read().
	* java/io/PushbackReader.java (read): If there are characters in
	the buffer, don't also call super.read().

	* java/lang/Double.java (valueOf): Call parseDouble().

2000-06-26  Warren Levy  <warrenl@cygnus.com>

	* java/beans/PropertyChangeEvent.java (oldVal): Renamed to oldValue.
	(newVal): Renamed to newValue.
	* java/beans/PropertyVetoException.java (changeEvent): Renamed to evt.
	* java/beans/beancontext/BeanContextServiceRevokedEvent.java
	(revokeNow): Renamed to invalidateRefs.
	* java/io/OptionalDataException.java: Updated FIXME.
	(eof): New placeholder field.
	(length); Ditto.
	* java/io/WriteAbortedException.java (message): Made transient.
	* java/lang/ClassNotFoundException.java: Updated comments for JDK 1.2.
	* java/lang/Throwable.java (stackTrace): Made transient.
	* java/net/InetAddress.java: Made Serializable.
	* java/security/KeyPair.java: Made Serializable.
	* java/security/Provider.java: Replaced with Classpath version that
	implements serialization and proper methods.
	* java/text/ChoiceFormat.java (strings): Renamed to choiceFormats.
	(limits): Renamed to choiceLimits.

2000-06-24  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natDouble.cc (parseDouble): Renamed from
	doubleValueOf.
	* java/lang/Double.java (parseDouble): Renamed from
	doubleValueOf.  Now public.

2000-06-23  Andrew Haley  <aph@cygnus.com>

	* java/lang/ieeefp.h: Handle ia64, fr30, mcore.
	* java/lang/natThrowable.cc: On IA-64, use __ia64_backtrace.

2000-06-23  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/natMethod.cc: Include <alloca.h>.
	* java/lang/natDouble.cc: Always include <alloca.h>.
	Fix for PR libgcj/267.

2000-06-21  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/ThreadGroup.java (add(Thread)): Rename to addThread() to
	comply with classpath VM spec.
	(add(Group)): Rename to addGroup().
	* java/lang/Thread.java (Thread): Use addThread().
	* java/lang/natThread.cc (finish_): Use removeThread().

2000-06-20  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/ThreadGroup.java: Merged with classpath.
	* prims.cc (_Jv_RunMain): Don't use `main_group'.
	* gnu/gcj/runtime/FirstThread.java: Remove ThreadGroup constructor
	argument.
	* java/lang/Thread.java (Thread): Bootstrap initial thread from
	ThreadGroup.root if Thread.currentThread is null. Honour the
	ThreadGroup's max priority setting.

2000-06-18  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natClass.cc (forName): Removed dead code.  Initialize
	returned class.  For PR gcj/260.

2000-06-16  Tom Tromey  <tromey@cygnus.com>

	Fix for PR libgcj/261:
	* include/win32-signal.h (MAKE_THROW_FRAME): Added `_exception'
	argument.
	* include/sparc-signal.h (MAKE_THROW_FRAME): Added `_exception'
	argument.  (This is a patch from long ago that somehow went
	missing.)

2000-06-15  Tom Tromey  <tromey@cygnus.com>

	* gnu/gcj/convert/natIconv.cc (iconv_adapter): New function.
	(read): Use it.
	(write): Likewise.

2000-06-15  Bryce McKinlay  <bryce@albatross.co.nz>

	Fix for PR java.lang/258:
	* prims.cc (_Jv_PrimClass): Set state of primitive class to
	JV_STATE_DONE, to prevent accidental initialization.
	* java/lang/natClass.cc (_Jv_IsAssignableFrom): Call
	_Jv_InterfaceAssignableFrom if target is an interface and source is an
	interface or an abstract class.	Remove redundant initializeClass calls.
	Remove duplicate if_idt test.
	(_Jv_InterfaceAssignableFrom): New function.
	* java/lang/Class.h (_Jv_InterfaceAssignableFrom): Prototype.

2000-05-31  Tom Tromey  <tromey@cygnus.com>

	* prims.cc (DECLARE_PRIM_TYPE): Define a vtable as well.
	(_Jv_PrimClass): Set `methods' by calling _Jv_FindArrayClass.
	* include/jvm.h (struct _Jv_ArrayVTable): Declare.
	(NUM_OBJECT_METHODS): New define.
	* java/lang/natClassLoader.cc (_Jv_FindArrayClass): Added
	`array_vtable' parameter.  Added assertion.
	* java/lang/Class.h (_Jv_FindArrayClass): Added `array_vtable'
	parameter.

2000-05-31  Bryce McKinlay  <bryce@albatross.co.nz>

	* gcj/cni.h: Include <string.h>.
	* defineclass.cc: Include <alloca.h>.
	* interpret.cc: Ditto.
	* gij.cc: Include <stdlib.h>.

2000-05-30  Tom Tromey  <tromey@cygnus.com>

	* include/name-finder.h: Include <sys/wait.h>.
	(_Jv_name_finder::pid): Now of type `pid_t'.
	(_Jv_name_finder::~_Jv_name_finder): Call waitpid().
	* java/lang/Throwable.java (CPlusPlusDemangler.close): Call
	`proc.waitFor()'.

2000-05-24  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectOutputStream.java (writeObject): Use component type
	when writing arrays.
	Fixed typo.

2000-05-20  Bryce McKinlay  <bryce@albatross.co.nz>

	Fix for PR libgcj/226:
	* java/lang/Class.h (_Jv_InitClass): Don't call __builtin_expect,
	since this is an installed header.

	Fix for PR libgcj/228:
	* java/util/zip/ZipFile (getInputStream): Create inflater with
	nowrapper option.

	* java/util/zip/natInflater.cc (inflate): Throw zlib's error message
	with DataFormatException.

2000-05-20  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (hack1): Removed.
	(awto_files): Likewise.
	(libgcjawt_la_SOURCES): Likewise.
	(EXTRA_libgcjawt_la_SOURCES): Likewise.
	(libgcjawt_la_DEPENDENCIES): Likewise.
	(libgcjawt_la_LIBADD): Likewise.
	(libgcjawt_la_LDFLAGS): Likewise.
	(libgcjawt_la_LINK): Likewise.
	($(awt_java_source_files:.java=.class)): Likewise.
	(libgcj.zip): Don't depend on AWT files.
	(MOSTLYCLEANFILES): Don't include AWT files.
	($(awto_files)): Removed.
	(nat_headers): Removed AWT files.
	(cond_awt_java_source_files): Removed.
	(ordinary_java_source_files): Added awt_java_source_files.
	* libgcj.spec.in (*lib): Removed -lgcjawt.
	* configure: Rebuilt.
	* configure.in: Removed --enable-java-awt option.

2000-05-20  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/util/zip/ZipEntry.java: Implement Cloneable, per JDK1.2 docs.
	(ZipEntry): Copy the `name' field.
	(clone): Implement JDK1.2 method.
	(setCompressedSize): ditto.
	(hashCode): ditto.

2000-05-19  Tom Tromey  <tromey@cygnus.com>

	* java/io/BufferedWriter.java: Merged with Classpath.
	* java/io/BufferedOutputStream.java: Merged with Classpath.

2000-05-16  Andrew Haley  <aph@cygnus.com>

	* sysdep/ia64.c (ia64_backtrace_helper): Pass NULL pointer to
	build_ia64_frame_state.
	* sysdep/ia64-frame.h (build_ia64_frame_state): Match with
	defintion in gcc.

2000-05-15  Warren Levy  <warrenl@cygnus.com>

	* gnu/gcj/beans/BeanInfoEmbryo.java: Removed.
	* gnu/gcj/beans/EmptyBeanInfo.java: Removed.
	* gnu/gcj/beans/ExplicitBeanInfo.java: Removed.
	* gnu/gcj/beans/IntrospectionIncubator.java: Removed.
	* gnu/gcj/beans/editors/ColorEditor.java: Removed.
	* gnu/gcj/beans/editors/FontEditor.java: Removed.
	* gnu/gcj/beans/editors/NativeBooleanEditor.java: Removed.
	* gnu/gcj/beans/editors/NativeByteEditor.java: Removed.
	* gnu/gcj/beans/editors/NativeDoubleEditor.java: Removed.
	* gnu/gcj/beans/editors/NativeFloatEditor.java: Removed.
	* gnu/gcj/beans/editors/NativeIntEditor.java: Removed.
	* gnu/gcj/beans/editors/NativeLongEditor.java: Removed.
	* gnu/gcj/beans/editors/NativeShortEditor.java: Removed.
	* gnu/gcj/beans/editors/StringEditor.java: Removed.
	* gnu/gcj/beans/info/ComponentBeanInfo.java: Removed.
	* gnu/gcj/io/ClassLoaderObjectInputStream.java: Removed.
	* gnu/gcj/io/NullOutputStream.java: Removed.
	* gnu/gcj/io/ObjectIdentityWrapper.java: Removed.
	* gnu/gcj/lang/ArrayHelper.java: Removed.
	* gnu/gcj/lang/ClassHelper.java: Removed.
	* gnu/gcj/lang/reflect/TypeSignature.java: Removed.

	* gnu/java/beans/BeanInfoEmbryo.java: New file.
	* gnu/java/beans/EmptyBeanInfo.java: New file.
	* gnu/java/beans/ExplicitBeanInfo.java: New file.
	* gnu/java/beans/IntrospectionIncubator.java: New file.
	* gnu/java/beans/editors/ColorEditor.java: New file.
	* gnu/java/beans/editors/FontEditor.java: New file.
	* gnu/java/beans/editors/NativeBooleanEditor.java: New file.
	* gnu/java/beans/editors/NativeByteEditor.java: New file.
	* gnu/java/beans/editors/NativeDoubleEditor.java: New file.
	* gnu/java/beans/editors/NativeFloatEditor.java: New file.
	* gnu/java/beans/editors/NativeIntEditor.java: New file.
	* gnu/java/beans/editors/NativeLongEditor.java: New file.
	* gnu/java/beans/editors/NativeShortEditor.java: New file.
	* gnu/java/beans/editors/StringEditor.java: New file.
	* gnu/java/beans/info/ComponentBeanInfo.java: New file.
	* gnu/java/io/ClassLoaderObjectInputStream.java: New file.
	* gnu/java/io/NullOutputStream.java: New file.
	* gnu/java/io/ObjectIdentityWrapper.java: New file.
	* gnu/java/lang/ArrayHelper.java: New file.
	* gnu/java/lang/ClassHelper.java: New file.
	* gnu/java/lang/reflect/TypeSignature.java: New file.

	* Makefile.am: Updated for moving Classpath files from gnu/gcj
	namespace back to the original Classpath gnu/java namespace.
	* Makefile.in: Rebuilt.

	* java/beans/Beans.java: Namespace change.
	* java/beans/EventSetDescriptor.java: Namespace change.
	* java/beans/Introspector.java: Namespace change.
	* java/beans/PropertyEditorManager.java: Namespace change.
	* java/io/ObjectInputStream.java: Namespace change.
	* java/io/ObjectOutputStream.java: Namespace change.
	* java/io/ObjectStreamClass.java: Namespace change.
	* java/io/ObjectStreamField.java: Namespace change.

2000-04-21  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectInputStream.java: Reverted workarounds of 2000-04-13
	now that compiler patch is available.
	Removed unneeded System.loadLibrary.
	* java/io/ObjectOutputStream.java: Removed unneeded System.loadLibrary.
	* java/io/ObjectStreamClass.java: Removed unneeded System.loadLibrary.

2000-04-19  Andrew Haley  <aph@cygnus.com>

	* java/lang/natClass.cc (_Jv_IsAssignableFrom): Make sure source
	and target classes have been initialized.

2000-04-19  Andrew Haley  <aph@cygnus.com>

	* java/lang/String.java: implement Serializable, Comparable.
	(compareTo (Object)): New method.

2000-04-19  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectStreamClass.java (getDefinedSUID): Use getDeclaredField
	instead of getField to retrieve non-public field.
	(getSerialPersistantFields): Ditto.

2000-04-18  Warren Levy  <warrenl@cygnus.com>

	* mauve-libgcj: Turned off object serialization tests temporarily
	due to compiler error.

2000-04-17  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectInputStream.java (DEBUG): Disabled unused method
	to avoid build problem.
	(DEBUGln): Ditto.
	* mauve-libgcj: Turned on object serialization tests.

2000-04-17  Tom Tromey  <tromey@cygnus.com>

	* libgcj.spec.in (*lib): Added -lgcjawt.

2000-04-17  Andrew Haley  <aph@cygnus.com>

	* Makefile.am: Add new files:
	gnu/gcj/io/SimpleSHSStream.java, gnu/gcj/io/natSimpleSHSStream.cc,
	gnu/gcj/io/shs.cc.
	* Makefile.in: Rebuilt.

	* java/lang/natClass.cc (_Jv_IsAssignableFrom): Check for an
	interface that has no implementations.
	Check for an attempt to assign an abstract class to an interface.

	* java/io/ObjectStreamClass.java (setUID): Use a SimpleSHSStream
	if we fail to find MessageDigest.getInstance ("SHA").

	* gnu/gcj/io/SimpleSHSStream.java: New file.
	* gnu/gcj/io/natSimpleSHSStream.java: New file.
	* gnu/gcj/io/shs.cc: New file.
	* gnu/gcj/io/shs.h: new file.

	* java/lang/natClassLoader.cc (_Jv_FindArrayClass): Make arrays
	serializable.

	* gnu/gcj/lang/reflect/TypeSignature.java: Don't remove
	punctuation from the classname of an array element.

	* gcj/javaprims.h: Add SimpleDigestStream.

2000-04-17  Andrew Haley  <aph@cygnus.com>

	* java/lang/natClass.cc (getPrivateField): Make recursive calls
	to getPrivateField for superclasses.

2000-04-14  Andrew Haley  <aph@cygnus.com>

	* Makefile.am: Add new files:
	java/io/ObjectOutputStream$PutField.h,
	java/io/ObjectInputStream$GetField.h,java/io/natObjectInputStream.cc,
	java/io/natObjectOutputStream.cc
	* Makefile.in: Rebuilt.
	* gcj/Makefile.in: Rebuilt.
	* include/Makefile.in: Rebuilt.
	* java/lang/Class.h (getPrivateField): New method.
	(getPrivateMethod): Ditto.
	Make java::io::ObjectOutputStream, java::io::ObjectInputStream,
	and java::io::ObjectStreamClass our friends.
	* java/lang/natClass.cc (getPrivateField): New method.
	(getPrivateMethod): Ditto.
	(_Jv_IsAssignableFrom): Return false for Interface with no IDT.
	* gcj/javaprims.h: Add serialization classes.
	* java/io/ObjectInputStream.java (setBooleanField): Rewrite in Java.
	(setByteField): Ditto.
	(setCharField): Ditto.
	(setDoubleField): Ditto.
	(setFloatField): Ditto.
	(setIntField): Ditto.
	(setLongField): Ditto.
	(setShortField): Ditto.
	(setObjectField): Ditto.
	* java/io/ObjectOutputStream.java: (getBooleanField): Rewrite in
	Java.
	(getByteField): Ditto.
	(getCharField): Ditto.
	(getDoubleField): Ditto.
	(getFloatField): Ditto.
	(getIntField): Ditto.
	(getLongField): Ditto.
	(getShortField): Ditto.
	(getObjectField): Ditto.
	* java/io/ObjectStreamClass.java (hasClassInitializer): Rewrite in
	Java.
	(getSerialPersistantFields): Ditto.
	(getDefinedSUID): Ditto.
	* java/io/natObjectOutputStream.cc: New file.
	* java/io/natObjectInputStream.cc: New file.

2000-04-13  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectInputStream.java: Temporary workarounds for compiler
	problems.  Revert to previous version to reproduce and when fixed.

2000-04-13  Warren Levy  <warrenl@cygnus.com>

	* gnu/gcj/io/ClassLoaderObjectInputStream.java: New file.
	* gnu/gcj/io/NullOutputStream.java: New file.
	* gnu/gcj/lang/reflect/TypeSignature.java: New file.
	* java/io/BlockDataException.java: New file.
	* java/io/Externalizable.java: New file.
	* java/io/InvalidClassException.java: New file.
	* java/io/InvalidObjectException.java: New file.
	* java/io/NotActiveException.java: New file.
	* java/io/NotSerializableException.java: New file.
	* java/io/ObjectInput.java: New file.
	* java/io/ObjectInputStream.java: New file.
	* java/io/ObjectInputValidation.java: New file.
	* java/io/ObjectOutput.java: New file.
	* java/io/ObjectOutputStream.java: New file.
	* java/io/ObjectStreamClass.java: New file.
	* java/io/ObjectStreamConstants.java: New file.
	* java/io/ObjectStreamField.java: New file.
	* java/io/Replaceable.java: New file.
	* java/io/Resolvable.java: New file.
	* java/io/SerializablePermission.java: New file.
	* java/io/WriteAbortedException.java: New file.
	* java/security/BasicPermission.java: New file.
	* java/security/DigestOutputStream.java: New file.
	* java/security/Guard.java: New file.
	* java/security/Permission.java: New file.
	* java/security/PermissionCollection.java: New file.
	* Makefile.am: Added above files.
	* Makefile.in: Rebuilt.

	* java/beans/Beans.java (instantiate): Activated serialization code.
	* java/lang/SecurityManager.java (checkPermission): New method.

2000-04-12  Warren Levy  <warrenl@cygnus.com>

	* gnu/gcj/beans/BeanInfoEmbryo.java: New file.
	* gnu/gcj/beans/EmptyBeanInfo.java: New file.
	* gnu/gcj/beans/ExplicitBeanInfo.java: New file.
	* gnu/gcj/beans/IntrospectionIncubator.java: New file.
	* gnu/gcj/beans/editors/ColorEditor.java: New file.
	* gnu/gcj/beans/editors/FontEditor.java: New file.
	* gnu/gcj/beans/editors/NativeBooleanEditor.java: New file.
	* gnu/gcj/beans/editors/NativeByteEditor.java: New file.
	* gnu/gcj/beans/editors/NativeDoubleEditor.java: New file.
	* gnu/gcj/beans/editors/NativeFloatEditor.java: New file.
	* gnu/gcj/beans/editors/NativeIntEditor.java: New file.
	* gnu/gcj/beans/editors/NativeLongEditor.java: New file.
	* gnu/gcj/beans/editors/NativeShortEditor.java: New file.
	* gnu/gcj/beans/editors/StringEditor.java: New file.
	* gnu/gcj/beans/info/ComponentBeanInfo.java: New file.
	* gnu/gcj/io/ObjectIdentityWrapper.java: New file.
	* gnu/gcj/lang/ArrayHelper.java: New file.
	* gnu/gcj/lang/ClassHelper.java: New file.
	* java/beans/BeanDescriptor.java: New file.
	* java/beans/BeanInfo.java: New file.
	* java/beans/Beans.java: New file.
	* java/beans/Customizer.java: New file.
	* java/beans/DesignMode.java: New file.
	* java/beans/EventSetDescriptor.java: New file.
	* java/beans/FeatureDescriptor.java: New file.
	* java/beans/IndexedPropertyDescriptor.java: New file.
	* java/beans/IntrospectionException.java: New file.
	* java/beans/Introspector.java: New file.
	* java/beans/MethodDescriptor.java: New file.
	* java/beans/ParameterDescriptor.java: New file.
	* java/beans/PropertyChangeEvent.java: New file.
	* java/beans/PropertyChangeListener.java: New file.
	* java/beans/PropertyChangeSupport.java: New file.
	* java/beans/PropertyDescriptor.java: New file.
	* java/beans/PropertyEditor.java: New file.
	* java/beans/PropertyEditorManager.java: New file.
	* java/beans/PropertyEditorSupport.java: New file.
	* java/beans/PropertyVetoException.java: New file.
	* java/beans/SimpleBeanInfo.java: New file.
	* java/beans/VetoableChangeListener.java: New file.
	* java/beans/VetoableChangeSupport.java: New file.
	* java/beans/Visibility.java: New file.
	* java/beans/beancontext/BeanContext.java: New file.
	* java/beans/beancontext/BeanContextChild.java: New file.
	* java/beans/beancontext/BeanContextChildComponentProxy.java: New file.
	* java/beans/beancontext/BeanContextChildSupport.java: New file.
	* java/beans/beancontext/BeanContextContainerProxy.java: New file.
	* java/beans/beancontext/BeanContextEvent.java: New file.
	* java/beans/beancontext/BeanContextMembershipEvent.java: New file.
	* java/beans/beancontext/BeanContextMembershipListener.java: New file.
	* java/beans/beancontext/BeanContextProxy.java: New file.
	* java/beans/beancontext/BeanContextServiceAvailableEvent.java:
	New file.
	* java/beans/beancontext/BeanContextServiceProvider.java: New file.
	* java/beans/beancontext/BeanContextServiceProviderBeanInfo.java:
	New file.
	* java/beans/beancontext/BeanContextServiceRevokedEvent.java: New file.
	* java/beans/beancontext/BeanContextServiceRevokedListener.java:
	New file.
	* java/beans/beancontext/BeanContextServices.java: New file.
	* java/beans/beancontext/BeanContextServicesListener.java: New file.
	* java/util/AbstractCollection.java: New file.
	* java/util/AbstractList.java: New file.
	* java/util/Arrays.java: New file.
	* Makefile.am: Added above files.
	* Makefile.in: Rebuilt.

2000-04-11  Warren Levy  <warrenl@cygnus.com>

	* java/awt/AWTError.java: New file.
	* java/awt/AWTEvent.java: New file.
	* java/awt/AWTException.java: New file.
	* java/awt/ActiveEvent.java: New file.
	* java/awt/Adjustable.java: New file.
	* java/awt/BorderLayout.java: New file.
	* java/awt/Color.java: New file.
	* java/awt/Component.java: New file.
	* java/awt/Container.java: New file.
	* java/awt/Dimension.java: New file.
	* java/awt/Event.java: New file.
	* java/awt/Font.java: New file.
	* java/awt/Frame.java: New file.
	* java/awt/Graphics.java: New file.
	* java/awt/IllegalComponentStateException.java: New file.
	* java/awt/Image.java: New file.
	* java/awt/ItemSelectable.java: New file.
	* java/awt/LayoutManager.java: New file.
	* java/awt/LayoutManager2.java: New file.
	* java/awt/Menu.java: New file.
	* java/awt/MenuBar.java: New file.
	* java/awt/MenuComponent.java: New file.
	* java/awt/MenuContainer.java: New file.
	* java/awt/MenuItem.java: New file.
	* java/awt/Paint.java: New file.
	* java/awt/PaintContext.java: New file.
	* java/awt/Point.java: New file.
	* java/awt/Rectangle.java: New file.
	* java/awt/Shape.java: New file.
	* java/awt/TextArea.java: New file.
	* java/awt/TextComponent.java: New file.
	* java/awt/Toolkit.java: New file.
	* java/awt/Transparency.java: New file.
	* java/awt/Window.java: New file.
	* java/awt/natToolkit.cc: New file.
	* java/awt/event/AWTEventListener.java: New file.
	* java/awt/event/ActionEvent.java: New file.
	* java/awt/event/ActionListener.java: New file.
	* java/awt/event/AdjustmentEvent.java: New file.
	* java/awt/event/AdjustmentListener.java: New file.
	* java/awt/event/ComponentAdapter.java: New file.
	* java/awt/event/ComponentEvent.java: New file.
	* java/awt/event/ComponentListener.java: New file.
	* java/awt/event/ContainerAdapter.java: New file.
	* java/awt/event/ContainerEvent.java: New file.
	* java/awt/event/ContainerListener.java: New file.
	* java/awt/event/FocusAdapter.java: New file.
	* java/awt/event/FocusEvent.java: New file.
	* java/awt/event/FocusListener.java: New file.
	* java/awt/event/InputEvent.java: New file.
	* java/awt/event/InputMethodEvent.java: New file.
	* java/awt/event/InputMethodListener.java: New file.
	* java/awt/event/InvocationEvent.java: New file.
	* java/awt/event/ItemEvent.java: New file.
	* java/awt/event/ItemListener.java: New file.
	* java/awt/event/KeyAdapter.java: New file.
	* java/awt/event/KeyEvent.java: New file.
	* java/awt/event/KeyListener.java: New file.
	* java/awt/event/MouseAdapter.java: New file.
	* java/awt/event/MouseEvent.java: New file.
	* java/awt/event/MouseListener.java: New file.
	* java/awt/event/MouseMotionAdapter.java: New file.
	* java/awt/event/MouseMotionListener.java: New file.
	* java/awt/event/PaintEvent.java: New file.
	* java/awt/event/TextEvent.java: New file.
	* java/awt/event/TextListener.java: New file.
	* java/awt/event/WindowAdapter.java: New file.
	* java/awt/event/WindowEvent.java: New file.
	* java/awt/event/WindowListener.java: New file.
	* java/awt/geom/Dimension2D.java: New file.
	* java/awt/geom/Point2D.java: New file.
	* java/awt/peer/ComponentPeer.java: New file.
	* java/awt/peer/ContainerPeer.java: New file.
	* java/awt/peer/FramePeer.java: New file.
	* java/awt/peer/WindowPeer.java: New file.
	* java/util/Collection.java: New file.
	* java/util/Comparator.java: New file.
	* java/util/Iterator.java: New file.
	* java/util/List.java: New file.
	* java/util/ListIterator.java: New file.
	* Makefile.am: Added above files.
	* Makefile.in: Rebuilt.

2000-04-10  Warren Levy  <warrenl@cygnus.com>

	* gnu/gcj/runtime/MethodInvocation.java: Fixed copyright.
	* java/lang/FirstThread.java: Ditto.
	* java/lang/StringBuffer.java: Ditto.
	* mauve-libgcj: Turned on java.math, java.sql and java.security tests.

	* gnu/gcj/math/MPN.java (rshift): Undid Boehm's patch of 03-14.
	Special case handled in java.math.BigInteger.
	* java/math/BigInteger.java (divide): Handle the special case when
	dividing by 1 and the high bit of the dividend is set.
	(setShiftRight): Handle case when count == 0.

2000-04-05  Andrew Haley  <aph@cygnus.com>

	* java/net/URL.java (setURLStreamHandler): Make "file" protocol a
	special case.

2000-04-05  Andrew Haley  <aph@cygnus.com>

	* sysdep/ia64.c (rse_address_add): Delete.
	(IS_NaT_COLLECTION_ADDR): Delete.
	(ia64_backtrace_helper): check for null unwind_info.

	* sysdep/ia64-frame.h: add calc_caller_bsp.

	* java/lang/natThrowable.cc (printRawStackTrace): Flush
	PrintWriter.

	* prims.cc (_Jv_divI): Use _Jv_ThrowSignal.
	(_Jv_remI): Likewise.
	(_Jv_divJ): Likewise.
	(_Jv_remJ): Likewise.

	* interpret.cc (continue1): Use divide subroutines to guarantee
	correct Java standard behaviour.
	Floating-point division should not abort; make it so.

2000-03-29  Tom Tromey  <tromey@cygnus.com>

	* configure: Rebuilt.
	* configure.in: Test against `libgcj_sjlj', not
	`enable_sjlj_exceptions'.  Rearranged code to allow SYSDEP_SOURCES
	to be set even when using sjlj.

2000-03-24  Andrew Haley  <aph@cygnus.com>

	* Makefile.am: Add file addr2name.awk.
	* Makefile.in: Rebuilt.
	* addr2name.awk: New file.
	* name-finder.cc (_Jv_name_finder): Call addr2name.awk to do name
	lookups on ia64.
	* java/lang/natThrowable.cc(printRawStackTrace): Don't print out a
	blank line.

2000-03-22  Andrew Haley  <aph@cygnus.com>

	* configure.host: Add -funwind-tables for IA64.
	* Makefile.am (c_source_files): Add SYSDEP_SORCES.
	* Makefile.in: Rebuilt.
	* java/lang/natThrowable.cc (fillInStackTrace): Add ia64 case.
	* sysdep/ia64.c: New file.
	* sysdep/ia64-frame.h: New file.
	* configure.in: Add sysdep/ia64.c for ia64.
	* configure: Rebuilt.

2000-03-17  Andrew Haley  <aph@cygnus.com>

	* java/lang/natString.cc: Remove `register' keyword.
	interpret.cc: ditto.

2000-03-16  Andrew Haley  <aph@cygnus.com>

	* configure.host (ia64): Enable interpreter.

2000-03-14  Hans Boehm  <boehm@acm.org>

	* gnu/gcj/math/MPN.java (rshift): Handle shift 32 specially.

2000-03-14  Andrew Haley  <aph@cygnus.com>

	* include/default-signal.h (MAKE_THROW_FRAME): Add arg
	`_exception'.

2000-03-10  Andrew Haley  <aph@cygnus.com>

	* java/lang/ieeefp.h: Import latest version from fdlibm.

2000-03-14  Andrew Haley  <aph@cygnus.com>

	* prims.cc (_Jv_ThrowSignal): New function.
	(catch_segv): Add arg `_exception' to MAKE_THROW_FRAME.
	(catch_fpe): Ditto.
	* include/sparc-signal.h (MAKE_THROW_FRAME): Ditto
	* include/i386-signal.h (MAKE_THROW_FRAME): Ditto.
	* include/ppc-signal.h: New file.

2000-05-18  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/Thread.java: Declare `data' as Object, not RawData.
	* java/lang/natThread.java (initialize_native): Cast `data' to
	jobject.
	* gnu/gcj/RawData.java: Clarify documentation.

	From Gregory R. Warnes <warnes@biostat.washington.edu>:
	* gnu/gcj/protocol/jar/Connection.java (getJarFile): Test for null
	`jarFile', not `jarFileURL'.

2000-05-15  Andrew Haley  <aph@cygnus.com>

	* include/ppc-signal.h: New file.

2000-05-11  Tom Tromey  <tromey@cygnus.com>

	* java/util/zip/ZipInputStream.java (getNextEntry): When reading
	file headers, don't include `size' in the skip call.

2000-05-10  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/StringBuffer.java (delete): Call arrayCopy() correctly.
	Avoid arrayCopy() call where possible. Update `count' _after_ calling
	arrayCopy().
	(replace): Reimplemented. Fix javadoc.
	(reverse): Call ensureCapacity_unsynchronized().
	(StringBuffer (String)): Use DEFAULT_CAPACITY.

	(replace): Calculate length for arraycopy() correctly.

2000-05-09  Tom Tromey  <tromey@cygnus.com>

	* java/lang/StringBuffer.java (toString): Don't mark buffer as
	shared.
	(insert(int,char[],int,int): New method.
	(delete): New method from Classpath.
	(deleteCharAt): Likewise.
	(substring): Likewise.
	(shared): No longer private.
	Added JavaDoc comments from Classpath.
	* java/lang/String.java (String(StringBuffer)): Ensure `buffer' is
	shared.

2000-05-07  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (LIBLINK): New macro.
	(libgcj_la_LINK): Use it.
	(libgcjawt_la_LINK): Likewise.

2000-05-06  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (libgcj.zip): Don't pass -L to javac.

2000-05-05  Tom Tromey  <tromey@cygnus.com>

	Fix for PR libgcj/220:
	* Makefile.in: Rebuilt.
	* Makefile.am (gij_LDFLAGS): Don't use libstdc++.
	(jv_convert_LDFLAGS): Likewise.
	(libgcj_la_LDFLAGS): Likewise.
	(GCJLINK): New macro.
	(jv_convert_LINK): Use it.
	(gij_LINK): Likewise.
	(libgcj_la_LINK): New macro.
	(libgcjawt_la_LINK): Likewise.

2000-05-04  Tom Tromey  <tromey@cygnus.com>

	* gcj/field.h (JvFieldIsRef): Return false for gnu.gcj.RawData
	field.
	* boehm.cc (_Jv_MarkObj): Removed dead code.  Use `STATIC', not
	`0x0008'.
	Include Modifier.h.

2000-05-05  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/natClass.cc (isInstance): Use __builtin_expect.
	(_Jv_IsAssignableFrom): Ditto.
	(_Jv_IsInstanceOf): Ditto.
	(_Jv_CheckCast): Ditto.
	(_Jv_CheckArrayStore): Ditto.
	* java/lang/Class.h (_Jv_InitClass): Ditto.
	* java/lang/natObject.cc (_Jv_MonitorEnter): __builtin_expect `false',
	not `0'.
	(notify): Ditto.
	(notifyAll): Ditto.
	(wait): Ditto.
	(_Jv_MonitorExit): Ditto.
	* boehm.cc (_Jv_MarkObj): Ditto.
	(_Jv_MarkObj): Ditto.
	(_Jv_MarkArray): Ditto.
	* prims.cc (_Jv_AllocObject): Ditto.
	(_Jv_NewObjectArray): Ditto.
	(_Jv_NewPrimArray): Ditto.
	(_Jv_Malloc): Ditto.
	(_Jv_Realloc): Ditto.
	(_Jv_MallocUnchecked): Ditto.
	(_Jv_divI): Ditto.
	(_Jv_remI): Ditto.
	(_Jv_divJ): Ditto.
	(_Jv_remJ): Ditto.

2000-05-04  Tom Tromey  <tromey@cygnus.com>

	* java/util/Locale.java (Locale): Don't explicitly check for
	null.
	* java/util/Hashtable.java (containsKey): Don't explicitly check
	for null.
	(get): Likewise.
	* java/util/BitSet.java (and, or, xor): Don't explicitly check for
	null.
	* java/util/zip/ZipEntry.java (ZipEntry): Don't explicitly check
	for null.
	* java/text/StringCharacterIterator.java
	(StringCharacterIterator): Don't check for null.
	* java/text/ChoiceFormat.java (setChoices): Don't explicitly check
	for null pointer.
	* java/net/MulticastSocket.java (joinGroup): Don't explicitly
	check for null pointer.
	(leaveGroup): Likewise.
	* java/net/DatagramPacket.java (DatagramPacket): Removed erroneous
	comment.
	(setData): Likewise.
	* java/lang/ThreadGroup.java (ThreadGroup): Don't explicitly check
	for `p==null'.

2000-04-28  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.am (GCJCOMPILE, JCFLAGS, JF1CLAGS, jv_convert_LINK,
	gij_LINK, libgcj.zip, .java=.class): Move -L option out of FLAGS.
	(libgcj_la_LDFLAGS): Add -L../libstdc++ for in-gcc builds.
	(jv_convert_LDFLAGS, gij_LDFLAGS): Add `pwd`/../libstdc++ to
	-rpath for in-gcc builds.
	* Makefile.in: Rebuilt.

2000-04-28  Tom Tromey  <tromey@cygnus.com>

	* libgcj.spec.in (*jc1): Added -fasynchronous-exceptions.
	Fix for PR gcj/218.

2000-04-28  Bryce McKinlay  <bryce@albatross.co.nz>

	* libjava/java/lang/String.java (toString): Remove `final' hack.

2000-04-05  Tom Tromey  <tromey@cygnus.com>

	Runtime support for PR gcj/2:
	* prims.cc (_Jv_ThrowNullPointerException): New function.
	* include/jvm.h (_Jv_ThrowNullPointerException): Declare.

2000-04-27  Bryce McKinlay  <bryce@albatross.co.nz>

	* prims.cc (_Jv_NewObjectArray): Fix typo.

2000-04-26  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (AM_CXXFLAGS): Added -fasynchronous-exceptions.

2000-04-24  Jeff Sturm  <jsturm@sigma6.com>

	* gnu/gcj/runtime/natFirstThread.cc (run): Initialize class before
	calling main.

2000-04-22  Anthony Green  <green@cygnus.com>

	* include/jvm.h (__builtin_expect): Define as unused for now.
	* java/lang/natObject.cc (_Jv_MonitorEnter): Add __builtin_expect.
	(notify): Ditto.
	(notifyAll): Ditto.
	(wait): Ditto.
	(_Jv_MonitorExit): Ditto.
	* boehm.cc (_Jv_MarkObj): Ditto.
	(_Jv_MarkObj): Ditto.
	(_Jv_MarkArray): Ditto.
	(_Jv_AllocBytes): Ditto.
	* prims.cc (_Jv_AllocObject): Ditto.
	(_Jv_NewObjectArray): Ditto.
	(_Jv_NewPrimArray): Ditto.
	(_Jv_Malloc): Ditto.
	(_Jv_Realloc): Ditto.
	(_Jv_MallocUnchecked): Ditto.
	(_Jv_divI): Ditto.
	(_Jv_remI): Ditto.
	(_Jv_divJ): Ditto.
	(_Jv_remJ): Ditto.

	* include/Makefile.in: Rebuilt.
	* include/Makefile.am (include_HEADERS): Add jvmpi.h.

2000-04-21  Tom Tromey  <tromey@cygnus.com>

	* java/io/PipedInputStream.java, java/io/PipedOutputStream.java:
	Yet another new version from Classpath.

	Fix for PR libgcj/15:
	* java/util/natGregorianCalendar.cc (_REENTRANT,
	_POSIX_PTHREAD_SEMANTICS): Don't define.
	* java/net/natInetAddress.cc (_REENTRANT): Don't define.
	* java/lang/natSystem.cc (_REENTRANT, _POSIX_PTHREAD_SEMANTICS):
	Don't define.
	* java/io/natFile.cc (_REENTRANT, _POSIX_PTHREAD_SEMANTICS): Don't
	define.
	* configure: Rebuilt.
	* configure.in: If using POSIX threads, define _REENTRANT if
	needed.  Define _POSIX_PTHREAD_SEMANTICS.  Don't define
	GETHOSTBYNAME_R_NEEDS_REENTRANT.

	* java/io/PipedInputStream.java, java/io/PipedReader.java,
	java/io/PipedOutputStream.java, java/io/PipedWriter.java: New
	version from Classpath.

	Fix for PR libgcj/213:
	* Makefile.in: Rebuilt.
	* Makefile.am (gij_SOURCES): Added gij.cc.
	(EXTRA_gij_SOURCES): Removed.
	(gij_LDADD): Removed gij.lo.
	(gij_DEPENDENCIES): Likewise.
	($(gij_OBJECTS)): Depend on nat_headers.

	* gnu/gcj/protocol/file/Handler.java (openConnection): Use
	`setURL', not `url.set'.

2000-04-20  Tom Tromey  <tromey@cygnus.com>

	Fix for PR java.io/204:
	* java/io/PipedInputStream.java, java/io/PipedReader.java,
	java/io/PipedOutputStream.java, java/io/PipedWriter.java: Imported
	from Classpath.

	Fix for PR libgcj/212:
	* gcj/javaprims.h (_Jv_word, _Jv_word2): Removed definitions.
	* include/jvm.h (_Jv_word, _Jv_word2): Define.
	* java/lang/Class.h (_Jv_word): Declare.

	* jni.cc (_Jv_JNI_PopSystemFrame): Clear `env->ex'.

2000-04-19  Tom Tromey  <tromey@cygnus.com>

	* jni.cc (_Jv_JNI_FindClass): Use system class loader if class
	doesn't have a loader.

2000-04-19  Bryce McKinlay  <bryce@albatross.co.nz>

	* boehm.cc: (_Jv_MarkObj, _Jv_MarkArray): Cast pointers for
	MAYBE_MARK to ptr_t, for compatibility with new GC version.

2000-04-16  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/io/natFileDescriptorPosix.cc (open): Use mode 0666. Fix for PR
	libgcj/202.
	(available): Initialize `where' to prevent bogus compiler warning.

2000-04-12  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natString.cc (intern): Temporarily disable finalizer
	registration.

	* java/lang/natString.cc (unintern): Added `obj' argument.
	(intern): Register finalizer for string.
	* java/lang/String.java (unintern): Now static; added obj
	argument.

2000-04-11  Tom Tromey  <tromey@cygnus.com>

	* java/util/Vector.java (VectorEnumeration): Now `final'.
	* java/util/Hashtable.java (HashtableEntry): Now `final'.
	(HashtableEnumeration): Likewise.
	* java/util/zip/ZipFile.java (ZipEnumeration): Now `final'.
	* java/text/RuleBasedCollator.java (RBCElement): Now `final'.

2000-04-10  Warren Levy  <warrenl@cygnus.com>

	* java/io/ObjectStreamException.java: New file.
	* java/io/OptionalDataException.java: New file.
	* java/io/StreamCorruptedException.java: New file.
	* java/math/BigDecimal.java: New file.
	* java/sql/CallableStatement.java: New file.
	* java/sql/Connection.java: New file.
	* java/sql/DataTruncation.java: New file.
	* java/sql/DatabaseMetaData.java: New file.
	* java/sql/Date.java: New file.
	* java/sql/Driver.java: New file.
	* java/sql/DriverManager.java: New file.
	* java/sql/DriverPropertyInfo.java: New file.
	* java/sql/PreparedStatement.java: New file.
	* java/sql/ResultSet.java: New file.
	* java/sql/ResultSetMetaData.java: New file.
	* java/sql/SQLException.java: New file.
	* java/sql/SQLWarning.java: New file.
	* java/sql/Statement.java: New file.
	* java/sql/Time.java: New file.
	* java/sql/Timestamp.java: New file.
	* java/sql/Types.java: New file.
	* Makefile.am: Added above new files.
	* Makefile.in: Rebuilt.

	* mauve-libgcj: Turned on java.math, java.sql and java.security tests.
	* java/net/MulticastSocket.java (MulticastSocket): Pass values a la
	DatagramSocket constructor instead of null.

2000-04-08  Anthony Green  <green@cygnus.com>

	* include/posix-threads.h (_Jv_MutexUnlock): Replace
	_JV_NOT_OWNER.

2000-04-08  Anthony Green  <green@cygnus.com>

	* posix-threads.cc (_Jv_MutexLock): Moved back to posix-threads.h.
	(_Jv_MutexUnlock): Ditto.
	* include/posix-threads.h (_Jv_MutexLock): From posix-threads.cc.
	(_Jv_MutexUnlock): Ditto.

2000-04-08  Anthony Green  <green@cygnus.com>

	* java/lang/StringBuffer.java (ensureCapacity): Don't call Math::max.
	(ensureCapacity_unsynchronized): New private method.
	(append): Use ensureCapacity_unsynchronized.

2000-04-08  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added new files.
	* java/awt/IllegalComponentStateException.java: New file.
	* java/awt/ItemSelectable.java: New file.
	* java/awt/event/WindowEvent.java: Finished.
	* java/awt/event/TextEvent.java: Finished.
	* java/awt/event/ContainerEvent.java: New file.
	* java/awt/Component.java (getX, getY): New methods.
	* java/awt/event/PaintEvent.java: New file.
	* java/awt/event/MouseEvent.java: New file.
	* java/awt/ActiveEvent.java: New file.
	* java/awt/event/KeyEvent.java: Finished.
	* java/awt/event/ItemEvent.java: New file.
	* java/awt/Adjustable.java: New file.
	* java/awt/event/InputMethodEvent.java: New file.
	* java/awt/event/InputEvent.java: Finished.
	* java/awt/event/FocusEvent.java: New file.
	* java/awt/event/MouseMotionAdapter.java: New file.
	* java/awt/event/MouseAdapter.java: New file.
	* java/awt/event/KeyAdapter.java: New file.
	* java/awt/event/FocusAdapter.java: New file.
	* java/awt/event/ContainerAdapter.java: New file.
	* java/awt/event/ComponentEvent.java: Finished.
	* java/awt/event/AdjustmentEvent.java: New file.
	* java/awt/event/ComponentAdapter.java: New file.
	* java/awt/event/ActionEvent.java: Finished.
	* java/awt/event/MouseMotionListener.java: New file.
	* java/awt/event/MouseListener.java: New file.
	* java/awt/event/ItemListener.java: New file.
	* java/awt/event/InputMethodListener.java: New file.
	* java/awt/event/ContainerListener.java: New file.
	* java/awt/event/FocusListener.java: New file.
	* java/awt/event/ComponentListener.java: New file.
	* java/awt/event/AWTEventListener.java: New file.
	* java/awt/event/AdjustmentListener.java: New file.

2000-04-08  Anthony Green  <green@cygnus.com>

	* java/lang/natObject.cc (_Jv_MonitorEnter): Only perform null
	check when we have to.

	* gcj/array.h: Mark elements(JArray<T>& x) and elements(JArray<T>*
	x) as `inline'.

	* java/util/StringTokenizer.java: Minor optimization.  Eliminates
	one method call.

	* java/util/Vector.java (VectorEnumeration.nextElement): Manually
	inline hasMoreElements.

2000-04-05  Tom Tromey  <tromey@cygnus.com>

	* configure: Rebuilt.
	* configure.in: Recognize --enable-java-awt.
	(AWT): New conditional.
	* Makefile.in: Rebuilt.
	* Makefile.am (toolexeclib_LTLIBRARIES): Build libgcjawt.la if
	requested.
	(libgcjawt_la_SOURCES): New macro.
	(EXTRA_libgcjawt_la_SOURCES): Likewise.
	(libgcjawt_la_DEPENDENCIES): Likewise.
	(libgcjawt_la_LIBADD): Likewise.
	(libgcjawt_la_LDFLAGS): Likewise.
	(libgcj.zip): Depend on cond_java_awt_source_files
	(cond_awt_java_source_files): New macro.
	(MOSTLYCLEANFILES): Added awto_files.
	(awto_files): New macro.  Use where javao_files used.
	(nat_headers): Use cond_awt_java_source_files.

2000-04-04  Tom Tromey  <tromey@cygnus.com>

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

2000-04-03  Tom Tromey  <tromey@cygnus.com>

	* include/jvm.h (_Jv_GetArrayElementFromElementType): More
	commentary from Alex.

	* Makefile.in: Rebuilt.
	* Makefile.am ($(javao_files)): Depend on libgcj.zip.
	From H.J. Lu.

Sun Apr  2 08:27:18 2000  Anthony Green  <green@redhat.com>

	* configure: Rebuilt.
	* configure.in: Add --disable-jvmpi.
	* include/config.h.in: Rebuilt.
	* acconfig.h: Add ENABLE_JVMPI.

	* include/jvm.h: Declare _Jv_DisableGC and _Jv_EnableGC.
	(_Jv_JVMPI_Notify_OBJECT_ALLOC): New define.
	(_Jv_JVMPI_Notify_THREAD_END): New define.
	(_Jv_JVMPI_Notify_THREAD_END): New define.
	* prims.cc (_Jv_JVMPI_Notify_OBJECT_ALLOC): Declare.
	(_Jv_JVMPI_Notify_THREAD_END): Declare.
	(_Jv_JVMPI_Notify_THREAD_END): Declare.

	* prims.cc (_Jv_AllocObject): Generate JVMPI object allocation
	events.

	* java/lang/natThread.cc: Include JVMPI headers if necessary.
	(finish_): Generate JVMPI thread end events.
	(run_): Generate JVMPI thread start events.
	* gnu/gcj/runtime/natFirstThread.cc (run): Call JNI_OnLoad for any
	preloaded JNI library.
	Include JVMPI headers if necessary.
	(run): Generate JVMPI thread start events.

	* boehm.cc: Define GC_disable and GC_enable.
	(_Jv_DisableGC): New function.
	(_Jv_EnableGC): New function.
	(disable_gc_mutex): Declare.
	* nogc.cc (_Jv_DisableGC): New function.
	(_Jv_EnableGC): New function.

	* jni.cc (_Jv_JNI_GetEnv): Handle JVMPI interface requests.
	(_Jv_JVMPI_Interface): Define.
	(jvmpiEnableEvent): New function.
	(_Jv_JNI_Init): Initialize _Jv_JVMPI_Interface.

	* include/jvmpi.h: New file.

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

	* Makefile.in: New #defines and friends for Thread.h.
	* Makefile.am: Ditto.
	* posix-threads.cc: (struct starter): Remove `object'.
	(_Jv_CondWait): Use interruptable condition variables and new
	recursive mutexes. New return codes on interrupt or non-ownership
	of mutex.
	(_Jv_CondNotify): Ditto.
	(_Jv_CondNotifyAll): Ditto.
	(_Jv_ThreadInterrupt): Set thread interrupt flag directly. Interrupt
	the target thread by signaling its wait condition.
	(_Jv_ThreadInitData): Set `thread_obj' in the thread data struct,
	not the starter struct. Initialize wait_mutex and wait_cond.
	(_Jv_MutexLock): New recursive mutex implementation. Moved from
	posix-threads.h.
	(_Jv_MutexUnlock): Ditto.
	(really_start): Set info->data->thread from pthread_self() to work
	around a race condition. Destroy wait_mutex and wait_cond when run()
	returns.
	* java/lang/Thread.java: (isInterrupted_): Renamed to overloaded
	`isInterrupted(boolean)'. Clear interrupted flag if clear_flag is
	set.
	startable_flag: New private field.
	(Thread): Initialize `startable_flag'.
	(toString): Check for null thread group.
	* java/lang/natThread.cc: (struct natThread): New fields
	`join_mutex', `join_cond'. Removed fields `joiner', `next'.
	(class locker): Removed.
	(initialize_native): Initialize `join_cond' and `join_mutex'.
	(interrupt): Now just calls _Jv_ThreadInterrupt().
	(join): Simplified. Just wait on the target thread's join condition.
	(finish_): Remove join list code. Unset thread group. Signal
	potential joiners by notifying the dying threads join_cond.
	(start): Check for illegal restarts.
	* java/lang/natObject.cc: Check for return value of _Jv_CondWait and
	act appropriatly.
	* include/posix-threads.h: Remove all HAVE_RECURSIVE_MUTEX related
	#defines and #ifdefs.
	(struct _Jv_Thread_t): New fields `thread_obj', `wait_cond',
	`wait_mutex', `next'.
	(struct _Jv_ConditionVariable_t): Define as a struct instead of
	directly mapping to pthread_cond_t.
	(struct _Jv_Mutex_t): New recursive implementation.
	(_Jv_PthreadCheckMonitor): Reimplemented. Simple `owner' check.
	_Jv_HaveCondDestroy: Never define this for posix-threads.
	(_Jv_CondNotify): Remove inline implementation(s), prototype instead.
	(_Jv_CondNotifyAll): Ditto.
	(_Jv_MutexLock): Ditto.
	(_Jv_MutexUnlock): Ditto.
	(_Jv_MutexInit): Changed to reflect new mutex implementation.
	(_Jv_MutexDestroy): Ditto.
	(_Jv_CondDestroy): Removed.
	(_Jv_PthreadGetMutex): Removed.
	* include/win32-threads.h: (_Jv_CondNotify): Guess _JV_NOT_OWNER on an
	error. Add a FIXME about this.
	(_Jv_CondNotifyAll): Ditto.
	* win32-threads.cc: (_Jv_CondWait): Return 0 on a timeout. Guess
	_JV_NOT_OWNER on other errors. Add FIXME.

2000-03-26  Tom Tromey  <tromey@cygnus.com>

	* jni.cc (_Jv_JNI_PopSystemFrame): If environment has exception
	set, throw it.
	(call): Don't throw exception here.

2000-03-26  Tom Tromey  <tromey@cygnus.com>

	* java/lang/mprec.h: Use SIZEOF_VOID_P.
	* interpret.cc: Use SIZEOF_VOID_P.
	* include/java-cpool.h (_Jv_storeLong): Use SIZEOF_VOID_P.
	(_Jv_loadLong): Likewise.
	(_Jv_storeDouble): Likewise.
	* configure: Rebuilt.
	* configure.in: Check size of void*.

	* resolve.cc (ncode): Use FFI_PREP_RAW_CLOSURE and FFI_RAW_SIZE.

2000-03-26  Hans Boehm  <boehm@acm.org>

	* include/java-cpool.h (_Jv_storeLong, _Jv_loadLong,
	_Jv_storeDouble, _Jv_loadDouble): Define differently on 64 bit
	machine.
	* java/lang/ieeefp.h: Define __IEEE_BIG_ENDIAN or
	__IEEE_LITTLE_ENDIAN appropriately on IA64.
	* java/lang/mprec.h: Don't define Pack_32 on 64 bit machine.
	* javaprims.h (_Jv_word): Added `l' and `d' entries in 64 bit
	case.
	* resolve.cc (FFI_PREP_RAW_CLOSURE): New define.
	(FFI_RAW_SIZE): Likewise.
	(_Jv_InterpMethod::ncode): Use them.
	* interpret.cc (PUSHL, PUSHD, POPL, POPD, LOADL, LOADD, STOREL,
	STORED): Define differently on a 64 bit machine.
	(continue1): Use ffi_java_raw_call when appropriate.

2000-03-24  Warren Levy  <warrenl@cygnus.com>

	* java/math/BigInteger.java(divide): Handle the special case when
	dividing by 1 and the high bit of the dividend is set.
	(setShiftRight): Handle case when count == 0.

2000-03-24  Warren Levy  <warrenl@cygnus.com>

	* java/awt/Font.java(isBold): Fix syntax error.
	(isItalic): ditto.
	* java/awt/Frame.java(postEvent): ditto.
	* java/awt/Menu.java(postEvent): ditto.
	* java/awt/MenuBar.java(postEvent): ditto.
	* java/awt/Toolkit.java(init): Included a stub.

2000-03-21  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/awt/Event.java: Add all the event type constants.
	(Event): Implemented constructors.
	(controlDown): Implemented.
	(metaDown): Implemented.
	(paramString): Stubbed.
	(shiftDown): Implemented.
	(toString): Implemented.
	(translate): Implemented.

2000-03-21  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/natClass.cc (isInstance): Initialize `this'.
	(isAssignableFrom): Initialize `this' and `klass'.
	(_Jv_IsAssignableFrom): If an interface has no idt, it is not
	implemented by any loaded class, so return false.
	* java/lang/natClass.cc (isInstance): Use _Jv_IsAssignableFrom(),
	not Class.isAssignableFrom(). Use JV_CLASS, not getClass().

2000-03-19  Warren Levy  <warrenl@cygnus.com>

	* java/awt/Color.java: Specified java.io for Serializable.
	* java/awt/Toolkit.java: Imported java.net.URL.

2000-03-19  Warren Levy  <warrenl@cygnus.com>

	* java/awt/Color.java: Rewrote to be more memory efficient (& compile).

2000-03-16  Warren Levy  <warrenl@cygnus.com>

	* java/awt/Color.java: New file.
	* java/awt/Graphics.java: New file.
	* java/awt/Image.java: New file.
	* java/awt/Paint.java: New file.
	* java/awt/PaintContext.java: New file.
	* java/awt/Transparency.java: New file.
	* java/util/Collection.java: New file.
	* java/util/Comparator.java: New file.
	* java/util/Iterator.java: New file.
	* java/util/List.java: New file.
	* java/util/ListIterator.java: New file.
	* Makefile.am: Added above new files.
	* Makefile.in: Rebuilt.

	* java/awt/Font.java (PLAIN): New field.
	(BOLD): New field.
	(ITALIC): New field.
	(ROMAN_BASELINE): New field.
	(CENTER_BASELINE): New field.
	(HANGING_BASELINE): New field.
	(name): New field.
	(style): New field.
	(size): New field.
	(pointSize): New field.
	(Font): Implemented constructor.
	(isPlain): Implemented method.
	(isBold): Implemented method.
	(isItalic): Implemented method.
	(getName): Implemented method.
	(getStyle): Implemented method.
	(getSize): Implemented method.
	(getSize2D): Implemented method.
	(decode): Stubbed.
	* java/awt/Frame.java (getFont): Stubbed.
	(postEvent): Stubbed.
	(remove): Stubbed.
	* java/awt/Menu.java (postEvent): Stubbed.
	* java/awt/MenuBar.java (getFont): Stubbed.
	(postEvent): Stubbed.
	* java/awt/Toolkit.java (getImage): Added abstract method.

2000-03-15  Tom Tromey  <tromey@cygnus.com>

	* java/io/natFileDescriptorWin32.cc (winerr): Now static.

	* prims.cc (win32_exception_handler): Reformatted.

	* include/win32-threads.h (_Jv_HaveCondDestroy): New define.
	(_Jv_HaveMutexDestroy): Likewise.

2000-03-15 Jon Beniston <jb7216@bristol.ac.uk>

	* java/io/natFileDescriptorWin32.cc: New file.
	* java/io/natFileWin32.cc: New file.
	* java/net/natInetAddress.cc: Added conditional inclusion of
	Windows / Winsock headers.
	* java/net/natPlainDatagramSocketImpl.cc: Added conditional
	inclusion of Windows / Winsock headers.
	* java/net/natPlainSocketImpl.cc: Added conditional inclusion of
	Windows / Winsock headers.
	* include/win32-signal.h: New file.
	* include/win32-threads.h: New file.
	* win32-threads.cc: New file.
	* exception.cc (win32_get_restart_frame): New function.
	* prims.cc (win32_exception_handler): New function.
	(main_init) Performs Winsock initialisation.
	(main_init) Installs exeception handler.

2000-03-14  Tom Tromey  <tromey@cygnus.com>

	* jni.cc (mangled_name): Fixed assertion.
	(JNI_GetCreatedJavaVMs): Don't comment out `buf_len' argument;
	turned assert into actual failure.

2000-03-09  Warren Levy  <warrenl@cygnus.com>

	* java/security/Key.java(serialVersionUID): Set to 0 for now.
	* java/security/interfaces/DSAPrivateKey.java(serialVersionUID): Ditto.
	* java/security/interfaces/DSAPublicKey.java(serialVersionUID): Ditto.

2000-03-09  Warren Levy  <warrenl@cygnus.com>

	* java/security/AlgorithmParameterGeneratorSpi.java: New file.
	* java/security/DigestException.java: New file.
	* java/security/GeneralSecurityException.java: New file.
	* java/security/InvalidAlgorithmParameterException.java: New file.
	* java/security/InvalidKeyException.java: New file.
	* java/security/InvalidParameterException.java: New file.
	* java/security/Key.java: New file.
	* java/security/KeyException.java: New file.
	* java/security/KeyPair.java: New file.
	* java/security/KeyPairGenerator.java: New file.
	* java/security/KeyPairGeneratorSpi.java: New file.
	* java/security/NoSuchProviderException.java: New file.
	* java/security/PrivateKey.java: New file.
	* java/security/Provider.java: New file.
	* java/security/PublicKey.java: New file.
	* java/security/SecureRandom.java: New file.
	* java/security/Security.java: New file.
	* java/security/Signature.java: New file.
	* java/security/SignatureException.java: New file.
	* java/security/interfaces/DSAKey.java: New file.
	* java/security/interfaces/DSAParams.java: New file.
	* java/security/interfaces/DSAPrivateKey.java: New file.
	* java/security/interfaces/DSAPublicKey.java: New file.
	* java/security/interfaces/RSAPrivateCrtKey.java: New file.
	* java/security/interfaces/RSAPrivateKey.java: New file.
	* java/security/interfaces/RSAPublicKey.java: New file.
	* java/security/spec/AlgorithmParameterSpec.java: New file.
	* java/security/spec/InvalidKeySpecException.java: New file.
	* java/security/spec/InvalidParameterSpecException.java: New file.
	* java/security/spec/KeySpec.java: New file.
	* java/security/spec/RSAPrivateCrtKeySpec.java: New file.
	* java/security/spec/RSAPrivateKeySpec.java: New file.
	* java/security/spec/RSAPublicKeySpec.java: New file.
	* Makefile.am: Added above java.security files.
	* Makefile.in: Rebuilt.

	* java/security/MessageDigest.java: Rewritten.
	* java/security/SecureClassLoader.java: Added JDK1.2 comment.

2000-03-09  Bryce McKinlay  <bryce@albatross.co.nz>

	* README: Updated.

2000-03-09  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/natClassLoader.cc (_Jv_FindArrayClass): Call
	_Jv_PrepareConstantTimeTables.
	* java/lang/natClass.cc (_Jv_PrepareConstantTimeTables): Array
	classes should have an IDT, so don't return if klass is an array
	class.

2000-03-08  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/natArray.cc (newInstance): Don't allow array
	of `void' to be created.

2000-03-08  Warren Levy  <warrenl@cygnus.com>

	* java/math/BigInteger.java(signum): Handle zero properly.

2000-03-07  Tom Tromey  <tromey@cygnus.com>

	* All files: Updated copyright information.
	* COPYING: New file.
	* COPYING.LIB: Removed.
	* LIBGCJ_LICENSE: We now use GPL + special exception.

2000-03-07  Bryce McKinlay  <bryce@albatross.co.nz>

	* resolve.cc (_Jv_SearchMethodInClass): New function.
	(_Jv_ResolvePoolEntry): Search superinterfaces for interface methods.
	* java/lang/Class.h (_Jv_SearchMethodInClass): New prototype.

2000-03-07  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/Class.h (union _Jv_IDispatchTable): New declaration.
	(struct _Jv_ifaces): New declaration.
	JV_CLASS: New macro definition.
	(getComponentType): Relocate below isArray() for inlining.
	(getModifiers): Declare `inline'.
	(getSuperclass): Ditto.
	(isArray): Ditto.
	(isPrimitive): Ditto.
	(_Jv_IsAssignableFrom): New prototype.
	(_Jv_LookupInterfaceMethodIdx): New prototype. Predeclare with "C"
	linkage.
	(_Jv_InitClass): Move from natClass.cc. Declare `inline'.
	Check for JV_STATE_DONE before invoking initializeClass().
	(_Jv_PrepareConstantTimeTables): New prototype.
	(_Jv_GetInterfaces): Ditto.
	(_Jv_GenerateITable): Ditto.
	(_Jv_GetMethodString): Ditto.
	(_Jv_AppendPartialITable): Ditto.
	(_Jv_FindIIndex): Ditto.
	depth, ancestors, idt: New class fields.

	* java/lang/natClass.cc (isAssignableFrom): Move functionality to
	inline function `_Jv_IsAssignableFrom'. Use that function.
	(isInstance): Declare `inline'.
	(initializeClass): Get lock on class before checking `state'. Unlock
	before calling resolveClass0. Call _Jv_PrepareConstantTimeTables with
	the lock held.
	(_Jv_LookupInterfaceMethod): Use _Jv_GetMessageString.
	(_Jv_IsAssignableFrom): New inline function. Test assignability using
	class->depth and ancestor table.
	(_Jv_IsInstanceOf): Use _Jv_IsAssignableFrom.
	(_Jv_CheckCast): Move from prims.cc. Use JV_CLASS and
	_Jv_IsAssignableFrom.
	(_Jv_CheckArrayStore): Ditto.
	(_Jv_LookupInterfaceMethodIdx): New function.
	INITIAL_IOFFSETS_LEN, INITIAL_IFACES_LEN: New #defines.
	(_Jv_PrepareConstantTimeTables): New function.
	(_Jv_IndexOf): Ditto.
	(_Jv_GetInterfaces): Ditto.
	(_Jv_GenerateITable): Ditto.
	(_Jv_GetMethodString): Ditto.
	(_Jv_AppendPartialITable): Ditto.
	iindex_mutex, iindex_mutex_initialized: New static fields.
	(_Jv_FindIIndex): New function.

	* java/lang/natClassLoader.cc (_Jv_NewClass): Set new jclass fields.

	* prims.cc (_Jv_CheckCast): Moved to natClass.cc.
	(_Jv_CheckArrayStore): Ditto.
	(JvNewCharArray, JvNewBooleanArray, JvNewByteArray, JvNewShortArray,
	JvNewIntArray, JvNewLongArray, JvNewFloatArray, JvNewDoubleArray):
	Moved to gcj/array.h.
	(_Jv_Realloc): New function.

	* gcj/cni.h: Move _Jv_PrimClass definitions to gcj/array.h.

	* gcj/array.h: _Jv_PrimClass definitions moved from gcj/cni.h.
	(JvNewCharArray, JvNewBooleanArray, JvNewByteArray,
	JvNewShortArray, JvNewIntArray, JvNewLongArray, JvNewFloatArray,
	JvNewDoubleArray): Implementations moved from prims.cc and
	declared `inline'.

	* gcj/javaprims.h (_Jv_Realloc): Prototype.

	* include/jvm.h (_Jv_LookupInterfaceMethodIdx): Prototype.

2000-03-06  Tom Tromey  <tromey@cygnus.com>

	* jni.cc (MARK_NONE): New define.
	(MARK_USER): Likewise.
	(MARK_SYSTEM): Likewise.
	(struct _Jv_JNI_LocalFrame): Made `marker' bigger and `size'
	smaller.
	(_Jv_JNI_DeleteLocalRef): Use MARK_NONE in assert.
	(_Jv_JNI_EnsureLocalCapacity): Use MARK_NONE.
	(_Jv_JNI_PushLocalFrame): Use MARK_USER.
	(_Jv_JNI_PopLocalFrame): New version with additional `stop'
	argument.
	(call): Use MARK_SYSTEM.
	(_Jv_GetJNIEnvNewFrame): New function.
	(_Jv_LookupJNIMethod): New function.
	(_Jv_JNI_PopSystemFrame): New function.
	(call): Use _Jv_JNI_PopSystemFrame and _Jv_LookupJNIMethod.

2000-03-05  Tom Tromey  <tromey@cygnus.com>

	Fix for PR libgcj/43:
	* include/Makefile.in: Rebuilt.
	* include/Makefile.am (include_HEADERS): New define.

2000-03-05  Anthony Green  <green@redhat.com>

	* gcj/javaprims.h ("Java"): Remove FirstThread.

	* configure.host: Fix __NO_MATH_INLNES botch.

	* Makefile.in: Rebuilt.
	* Makefile.am (nat_source_files): Move natFirstThread.cc.
	(gnu/gcj/runtime/FirstThread.h): Moved.
	(ordinary_java_source_files): Move FirstThread.java.
	* prims.cc: Deal with FirstThread movement.
	(JvRunMain): Ditto.
	(_Jv_RunMain): Ditto.

	* gnu/gcj/runtime/FirstThread.java: Moved from java/lang.
	* gnu/gcj/runtime/natFirstThread.cc: Ditto.

2000-03-05  Warren Levy  <warrenl@cygnus.com>

	* java/net/DatagramSocket.java(DatagramSocket(int,InetAddress)):
	  Handle null addresses.

2000-03-04  Anthony Green  <green@redhat.com>

	* configure.host (libgcj_flags): Define __NO_MATH_INLINES.
	See PR gcj/151.

2000-03-04  Anthony Green  <green@redhat.com>

	* configure: Rebuilt.
	* configure.in (ZLIBTESTSPEC): New macro.
	(GCTESTSPEC): New macro.
	(LIBGCJTESTSPEC): New macro.
	* libgcj-test.spec.in: New file.

2000-03-02  Tom Tromey  <tromey@cygnus.com>

	* include/java-interp.h: Don't include MethodInvocation.h.
	(class _Jv_InterpMethod): Don't make MethodInvocation a friend.
	* Makefile.in: Rebuilt.
	* Makefile.am (gnu/gcj/runtime/MethodInvocation.h): Removed.
	(ordinary_java_source_files): Don't mention
	MethodInvocation.java.
	* gnu/gcj/runtime/MethodInvocation.java: Removed.
	* interpret.cc (MethodInvocation::continue1): Removed.
	(run): Handle exceptions here.
	* java/lang/ClassLoader.java (defineClass1, defineClass2):
	Removed.
	* java/lang/natClassLoader.cc (defineClass0): Catch exceptions
	here.
	(defineClass2): Removed.

	* java/lang/reflect/Method.java (hack_trampoline, hack_call):
	Removed.
	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Catch
	exceptions here.
	(hack_call): Removed.

	* java/lang/Class.h (Class): Removed hackRunInitializers,
	hackTrampoline.
	* java/lang/natClass.cc (hackRunInitializers): Removed.
	(initializeClass): Catch exceptions here.
	Include ExceptionInInitializerError.h.
	* java/lang/Class.java (hackTrampoline, hackRunInitializers):
	Removed.

	* java/lang/Object.h (Object): Don't mention hack12_6.
	* java/lang/natObject.cc (_Jv_FinalizeObject): Catch exceptions
	here.
	* java/lang/Object.java (hack12_6): Removed.

	* java/lang/natThread.cc (run_): Renamed.  Catch exceptions here.
	(start): Use run_, not run__.
	* java/lang/Thread.java (run_): Renamed from run__; old run_
	removed.

	* jni.cc (_Jv_JNI_FindClass): Handle exceptions.
	(_Jv_JNI_EnsureLocalCapacity): Likewise.
	(_Jv_JNI_DefineClass): Likewise.
	(_Jv_JNI_ThrowNew): Likewise.
	(_Jv_JNI_AllocObject): Likewise.
	(_Jv_JNI_GetAnyMethodID): Likewise.
	(_Jv_JNI_CallAnyMethodV): Likewise.
	(_Jv_JNI_CallAnyMethodA): Likewise.
	(_Jv_JNI_CallAnyVoidMethodV): Likewise.
	(_Jv_JNI_CallAnyVoidMethodA): Likewise.
	(_Jv_JNI_GetAnyFieldID): Likewise.
	(_Jv_JNI_NewString): Likewise.
	(_Jv_JNI_NewStringUTF): Likewise.
	(_Jv_JNI_GetStringUTFChars): Likewise.
	(_Jv_JNI_NewObjectArray): Likewise.
	(_Jv_JNI_NewPrimitiveArray): Likewise.
	(_Jv_JNI_GetPrimitiveArrayRegion): Likewise.
	(_Jv_JNI_GetStringRegion): Likewise.
	(_Jv_JNI_GetStringUTFRegion): Likewise.
	(_Jv_JNI_SetPrimitiveArrayRegion): Likewise.
	(_Jv_JNI_MonitorEnter): Likewise.
	(_Jv_JNI_MonitorExit): Likewise.
	(_Jv_JNI_ToReflectedField): Likewise.
	(_Jv_JNI_ToReflectedMethod): Likewise.
	(_Jv_JNI_RegisterNatives): Likewise.
	(_Jv_JNI_AttachCurrentThread): Likewise.
	(_Jv_JNI_DestroyJavaVM): Likewise.

2000-02-28  Mo DeJong  <mdejong@cygnus.com>

	* java/util/zip/ZipOutputStream.java(closeEntry) : Fixed
	error caused by the incorrect casting of a long to an int.

2000-02-28  Mo DeJong  <mdejong@cygnus.com>

	* java/util/zip/ZipOutputStream.java(write_entry) : Fixed
	SIGSEV caused by use of the wrong instance variable.

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

	* java/io/File.java (File(String, String)): For dirPath, treat an
	empty String the same as `null'.

2000-02-26  Anthony Green  <green@cygnus.com>

	* gnu/gcj/io/MimeTypes.java: Test for null.

	* jni.cc (_Jv_JNI_AttachCurrentThread): Minor cleanup.
	(JNI_GetCreatedJavaVMs): Remove compiler warning.

	* java/net/URLConnection.java: Update copyright notice.

2000-02-25  Tom Tromey  <tromey@cygnus.com>

	* jni.cc (_Jv_JNI_RegisterNatives): Conditionalize body on
	`INTERPRETER'.

2000-02-25  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/net/URLConnection.java (initializeDateFormats): New
	private method.
	(getHeaderFieldDate): Call initializeDateFormats if required.
	locale, dateFormat1, dateFormat2, dateFormat3: Don't initialize
	these.
	Fix for PR libgcj/38.

2000-02-24  Warren Levy  <warrenl@cygnus.com>

	* java/math/BigInteger.java(ival): Made private.
	(words): Ditto.
	(neg): Ditto.

2000-02-20  Anthony Green  <green@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (ordinary_java_source_files): Add
	gnu/gcj/io/DefaultMimeTypes.java and gnu/gcj/io/MimeTypes.java

	* scripts/MakeDefaultMimeTypes.java: New file.
	* scripts/mime.types: New file.
	* scripts/classes.pl: Moved from top level.
	* classes.pl: Moved to scripts directory.

	* java/net/URLConnection.java: Implement guessContentTypeFromName.

	* gnu/gcj/io/MimeTypes.java: New file.
	* gnu/gcj/io/DefaultMimeTypes.java: New file.

2000-02-20  Tom Tromey  <tromey@cygnus.com>

	* boehm.cc (_Jv_AllocBytes): Clear returned memory.

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

	* java/util/zip/ZipEntry.java (setCrc): Fix overflow.
	(setSize): ditto.

2000-02-18  Tom Tromey  <tromey@cygnus.com>

	* include/jvm.h (_Jv_GetJavaVM): Declare.
	* include/java-interp.h (_Jv_GetFirstMethod): New function.
	(_Jv_MethodBase::get_method): New method.
	(_Jv_JNIMethod::set_function): New method.
	* jni.cc (_Jv_JNI_UnregisterNatives): New function.
	(_Jv_JNI_RegisterNatives): New function.
	(_Jv_JNIFunctions): Updated for new functions.
	(_Jv_GetJavaVM): New function.
	(_Jv_JNI_GetJavaVM): Use it.  Now static.
	(_Jv_JNI_AttachCurrentThread): Create a new JNIEnv if this thread
	is already a Java thread but does not have a JNIEnv yet.

	* java/lang/natRuntime.cc (_load): Pass the JavaVM to the onload
	function.

2000-02-17  Tom Tromey  <tromey@cygnus.com>

	* gcj/field.h (_Jv_Field::getClass): Don't use JvAssert.
	Fixes PR gcj/152.

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

	* jni.cc (_Jv_JNI_CallStaticMethodV): Added some assertions.

	* jni.cc (_Jv_JNI_NewObjectV): Corrected assertion.
	(_Jv_JNI_NewObject): Likewise.
	(_Jv_JNI_NewObjectA): Likewise.
	(_Jv_JNI_CallAnyMethodV): In constructor case, pass correct value
	as "return" type to _Jv_CallAnyMethodA.
	(_Jv_JNI_CallAnyMethodA): Likewise.
	(_Jv_JNI_CallAnyVoidMethodV): Likewise.

	* jni.cc (_Jv_JNI_FindClass): Use ClassLoader.loadClass, not
	findClass.

2000-02-15  Tom Tromey  <tromey@cygnus.com>

	* resolve.cc (ncode): Set args_raw_size.  Compute jni_cif and
	jni_arg_types.
	(init_cif): Added `rtype_p' argument.
	* include/java-interp.h (class _Jv_MethodBase): Added
	args_raw_size.
	(class _Jv_InterpMethod): Removed args_raw_size.
	(class _Jv_JNIMethod): Added jni_cif and jni_arg_types fields.
	* jni.cc (call): Pass JNIEnv and (for static methods only) the
	class pointer as well as the ordinary arguments.

	* jni.cc (mangled_name): Skip leading `(' in signature.

	* jni.cc (add_char): Added missing `else'.

	* jni.cc (_Jv_JNI_AttachCurrentThread): Return error if malloc
	fails.

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

	* NEWS: Updated.

	* java/lang/natRuntime.cc (_load): Include library path with
	exception message.

	* java/lang/natSystem.cc (init_properties): set java.lang.classpath
	property.

	* java/lang/natThread.cc (dumpStack): Removed.
	* java/lang/Thread.java (dumpStack): Implemented.

2000-02-15  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natRuntime.cc (_load): On Unix, prefix library name
	with `lib' for loadLibrary.  Fixes PR gcj/150.

2000-02-14  Warren Levy  <warrenl@cygnus.com>

	* gnu/gcj/math/MPN.java(findLowestBit): Made methods public.

	* java/math/BigInteger.java(BigInteger(int,int,java.util.Random):
	  New constructor.
	(min): Implemented.
	(max): Implemented.
	(modPow): Rewritten to not use the naive, slow, brute force approach.
	(isProbablePrime): Implemented.
	(testBit): Implemented.
	(flipBit): Implemented.
	(getLowestSetBit): Implemented.

2000-02-16  Anthony Green  <green@redhat.com>

	* configure.host: Use the same options for i386 and i486 as we do
	for i586 and i686.

2000-02-12  Tom Tromey  <tromey@cygnus.com>

	* java/io/File.java (createTempFile): Use low bits from counter,
	not high bits.

Fri Feb 11 19:48:08 2000  Anthony Green  <green@cygnus.com>

	* THANKS: More thanks.

2000-02-11  Tom Tromey  <tromey@cygnus.com>

	* interpret.cc (continue1): Use STOREA, not STOREI, to implement
	astore instruction.  From Hans Boehm.

2000-02-11  Warren Levy  <warrenl@cygnus.com>

	* java/math/BigInteger.java(BigInteger(String, int)): New constructor.
	(BigInteger(String)): New constructor.
	(not): Rewritten using version from Kawa's BitOps class.
	(valueOf): New private methods from Kawa's BitOps class.
	(swappedOp): ditto.
	(bitOp): ditto.
	(setBitOp): ditto.
	(and): Implemented.
	(or): Implemented.
	(xor): Implemented.
	(andNot): Implemented.
	(clearBit): Implemented.
	(setBit): Implemented.
	(bitCount): Implemented.
	(toByteArray): Implemented.

2000-02-11  Tom Tromey  <tromey@cygnus.com>

	* java/io/File.java (nextValue): Now synchronized.

2000-02-10  Tom Tromey  <tromey@cygnus.com>

	* java/io/natFileDescriptorPosix.cc (open): Recognize EXCL flag.
	* java/io/FileDescriptor.java (EXCL): New static field.
	* java/io/File.java (tmpdir): New static field.
	(createTempFile): New method.
	(nextValue): New method.
	* java/lang/natSystem.cc (init_properties): Set java.io.tmpdir
	property.

	* include/jni.h (JNI_FALSE): Renamed from JNI_TRUE; oops.
	(jboolean): Declare as an attributed int, not a bool.
	(_Jv_func): Declare differently for C.

	* gnu/gcj/jni/natNativeThread.cc: New file.
	* gnu/gcj/jni/NativeThread.java: New file.
	* java/lang/Thread.java (data): Now a RawData.
	* include/jvm.h (_Jv_GetCurrentJNIEnv, _Jv_SetCurrentJNIEnv):
	Declare.
	* Makefile.in: Rebuilt.
	* Makefile.am (java/lang/Thread.h): New target.
	(ordinary_java_source_files): Added NativeThread.java.
	(nat_source_files): Added natNativeThread.cc.
	* java/lang/natThread.cc: Include <jni.h>
	(struct natThread): Added `jni_env' field.
	(_Jv_GetCurrentJNIEnv): New function.
	(_Jv_SetCurrentJNIEnv): Likewise.
	(initialize_native): Initialize jni_env.
	Include RawData.h.
	* jni.cc (ThreadGroupClass): New define.
	(_Jv_JNI_InvokeFunctions): New structure.
	(JNI_GetCreatedJavaVMs): New function.
	(the_vm): New global.
	(JNI_GetDefaultJavaVMInitArgs): New function.
	Include NativeThread.h.
	(NativeThreadClass): New define.
	(_Jv_JNI_EnsureLocalCapacity): Return JNI_ERR, not -1.
	(_Jv_JNI_DestroyJavaVM): New function.
	(_Jv_JNI_AttachCurrentThread): New function.
	(_Jv_JNI_DetachCurrentThread): New function.
	(_Jv_JNI_GetEnv): New function.
	(JNI_CreateJavaVM): New function.
	(_Jv_JNI_GetJavaVM): New function.
	(_Jv_JNIFunctions): Added entry for GetJavaVM.
	* include/jni.h (JavaVMAttachArgs): New structure.
	(JNI_EDETACHED): New define.
	(JNI_EVERSION): Likewise.
	(JavaVM): Define properly.
	(struct JNIInvokeInterface): New structure.
	(class _Jv_JavaVM): New class.
	(JNI_OnLoad, JNI_OnUnload): Declare.
	(JNI_GetDefaultJavaVMInitArgs, JNI_CreateJavaVM,
	JNI_GetCreatedJavaVMs): Declare.
	(JavaVMInitArgs): New typedef.
	(JavaVMOption): Likewise.
	(JNI_ERR): New define.
	(JNI_OK): Likewise.

2000-02-10  Andrew Haley  <aph@cygnus.com>

	* interpret.cc: Don't include fdlibm.h.
	Replace #if with #ifdef throughout.
	Declare extern __ieee754_fmod.
	(continue1): Remove op_getfield, op_getstatic, op_putfield,
	op_putstatic insns.
	* resolve.cc (_Jv_PrepareClass): Use imeth as method pointer.
	Search class hierarchy for superclass vtable.

	* java/lang/natClassLoader.cc (_Jv_UnregisterClass): Don't fall
	off the end of a pointer list.

	* java/lang/natThread.cc (stop): Don't abort, throw an exception
	instead.
	(suspend): Ditto.

2000-02-09  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natRuntime.cc (_load): Call add_library.
	(loadLibraryInternal): Likewise.

	* gnu/gcj/convert/natIconv.cc (Input_iconv::finalize): Call
	iconv_close when handle is not NULL.  Thanks to Andrew Haley.
	(Output_iconv::finalize): Likewise.

2000-02-08  Tom Tromey  <tromey@cygnus.com>

	* java/util/Properties.java (setProperty): New method.
	(store): New method.

2000-02-07  Tom Tromey  <tromey@cygnus.com>

	* java/lang/Runtime.java (_load): Declare.
	(load, loadLibrary): Wrote in terms of _load.
	* java/lang/natRuntime.cc (load): Call JNI_OnLoad if it appears in
	library.
	(loadLibrary): Likewise.
	Include <jni.h>.
	(_load): New method.
	(loadLibrary, load): Removed.

	* jni.cc (ThrowableClass): New define.
	(_Jv_JNI_Throw): Check argument.
	(_Jv_JNI_ThrowNew): Likewise.
	(wrap_value): Don't wrap object if it is NULL.
	(_Jv_JNI_DefineClass): Use wrap_value.
	(_Jv_JNI_FindClass): Likewise.
	(_Jv_JNI_GetSuperclass): Likewise.
	(_Jv_JNI_ExceptionOccurred): Likewise.
	(_Jv_JNI_AllocObject): Likewise.
	(_Jv_JNI_GetObjectClass): Likewise.
	(_Jv_JNI_NewString): Likewise.
	(_Jv_JNI_NewStringUTF): Likewise.
	(_Jv_JNI_NewObjectArray): Likewise.
	(_Jv_JNI_GetObjectArrayElement): Likewise.
	(_Jv_JNI_NewPrimitiveArray): Likewise.
	(_Jv_JNI_ToReflectedField): Likewise.
	(_Jv_JNI_ToReflectedMethod): Likewise.
	(_Jv_JNI_AllocObject): Check argument.
	(_Jv_JNI_NewObjectV): Likewise.
	(_Jv_JNI_NewObject): Likewise.
	(_Jv_JNI_NewObjectA): Likewise.
	(_Jv_JNI_GetObjectClass): Likewise.
	(_Jv_JNI_GetField): Likewise.
	(_Jv_JNI_SetField): Likewise.

	* interpret.cc (PUSHL): Don't use expression statement.
	(PUSHD): Likewise.
	(LOADL): Likewise.
	(STOREL): Likewise.

	* jni.cc (add_char): Conditional on INTERPRETER.
	(mangled_name): Likewise.
	(call): Likewise.
	* include/java-interp.h (class _Jv_MethodBase): Conditional on
	INTERPRETER.
	(class _Jv_JNIMethod): Likewise.

2000-02-04  Warren Levy  <warrenl@cygnus.com>

	* Makefile.am: Added MPN.java and BigInteger.java.
	* Makefile.in: Rebuilt.
	* gnu/gcj/math/MPN.java: New file.  From Kawa by Per Bothner
	<per@bothner.com>.
	* java/math/BigInteger.java: New file.  Based primarily on
	Kawa's IntNum.java by Per Bothner <per@bothner.com>.

2000-02-04  Tom Tromey  <tromey@cygnus.com>

	* defineclass.cc (handleMethodsBegin): Allocate _Jv_MethodBase
	pointers.
	(handleMethodsEnd): Fixed error messages.  Create a _Jv_JNIMethod
	if the method is native.
	* resolve.cc (ncode): Don't handle native methods.
	(_Jv_JNIMethod::ncode): New method.
	(_Jv_PrepareClass): Handle native methods.
	* jni.cc (call): Renamed from _Jv_JNI_conversion_call.
	Include AbstractMethodError.h.
	(add_char): New function.
	(mangled_name): Likewise.
	* include/java-interp.h (class _Jv_JNIMethod): New class.
	(class _Jv_MethodBase): New class.
	(class _Jv_InterpMethod): Derive from _Jv_MethodBase.
	(_Jv_InterpClass): Changed `interpreted_methods' field to type
	`_Jv_MethodBase'.

	* include/jvm.h (_Jv_FindSymbolInExecutable): Declare.
	* java/lang/natRuntime.cc (libraries_size, libraries_count,
	libraries): New globals.
	(add_library): New function.
	(_Jv_FindSymbolInExecutable): New function.

	* java/lang/natClassLoader.cc (initiated_classes, loaded_classes):
	Now static.

2000-02-04  Andrew Haley  <aph@cygnus.com>

	* java/lang/Throwable.java (CPlusPlusDemangler): New class.
	(printStackTrace): Use a CPlusPlusDemangler to demangle names.
	* java/lang/natThrowable.cc (printRawStackTrace): Rename
	printStackTrace to printRawStackTrace.

2000-02-03  Tom Tromey  <tromey@cygnus.com>

	* java/util/Calendar.java (toString): New method.
	* java/util/SimpleTimeZone.java (clone): New method.
	(toString): New method.
	* java/util/TimeZone.java (clone): New method.
	* java/text/SimpleDateFormat.java (clone): New method.
	* java/text/NumberFormat.java (clone): New method.
	(equals): New method.
	* java/text/Format.java (clone): New method.
	* java/text/DateFormatSymbols.java (DateFormatSymbols): New
	constructor.
	(clone): New method.
	* java/text/DateFormat.java (clone): New method.
	* java/text/Collator.java (clone): New method.

2000-02-03  Tom Tromey  <tromey@cygnus.com>

	* java/io/PipedOutputStream.java (write(byte[], int, int)): New
	method.

2000-02-01  Tom Tromey  <tromey@cygnus.com>

	* include/java-interp.h (_Jv_JNI_conversion_call): Declare.
	* resolve.cc (ncode): Use _Jv_JNI_conversion_call when
	constructing the closure if the function is native.
	* jni.cc (_Jv_JNI_conversion_call): Now returns `void'.  No longer
	a template function, #if'd out, or static.
	Include <java-interp.h>.

	* include/jni.h (class _Jv_JNIEnv): Corrected calls using `...'.

	* include/jni.h (class _Jv_JNIEnv): Added all C++ inline methods.

	* jni.cc (_Jv_JNI_PopLocalFrame): Leave loop when `n == NULL'.
	(_Jv_JNI_conversion_call): _Jv_JNI_PopLocalFrame will never leave
	`locals == NULL'.
	(wrap_value): New function.
	(_Jv_JNI_CallAnyMethodV): Use it.
	(_Jv_JNI_CallAnyMethodA): Likewise.
	(_Jv_JNI_GetField): Use wrap_value; removed specialized version.
	(_Jv_JNI_GetStaticField): Likewise.

	* jni.cc (_Jv_JNI_GetField): Specialize for jobject.
	(_Jv_JNI_GetStaticField): Likewise.

2000-01-31  Tom Tromey  <tromey@cygnus.com>

	* prims.cc (_Jv_MallocUnchecked): New function.
	(main_init): Call _Jv_JNI_Init.
	* include/jvm.h (_Jv_MallocUnchecked): Declare.
	(_Jv_JNI_Init): Declare.
	* jni.cc: Include Hashtable.h, OutOfMemoryError.h, Integer.h,
	<string.h>.
	(_Jv_JNI_NewGlobalRef): New function.
	(_Jv_JNI_DeleteGlobalRef): New function.
	(_Jv_JNI_DeleteLocalRef): New function.
	(_Jv_JNI_conversion_call): Initialize and clear local reference
	frame.
	(_Jv_JNI_NewLocalRef): New function.
	(struct _Jv_JNI_LocalFrame): New structure.
	(_Jv_JNI_PushLocalFrame): New function.
	(_Jv_JNI_EnsureLocalCapacity): New function.
	(FRAME_SIZE): New define.
	(_Jv_JNI_GetStringChars): Mark string, not characters.
	(_Jv_JNI_ReleaseStringChars): Unmark string, not characters.
	(_Jv_JNI_GetPrimitiveArrayElements): Mark array, not elements.
	(_Jv_JNI_ReleasePrimitiveArrayElements): Unmark array, not
	elements.
	(_Jv_JNI_DefineClass): Make return value a local ref.
	(_Jv_JNI_FindClass): Likewise.
	(_Jv_JNI_GetSuperclass): Likewise.
	(_Jv_JNI_ExceptionOccurred): Likewise.
	(_Jv_JNI_AllocObject): Likewise.
	(_Jv_JNI_GetObjectClass): Likewise.
	(_Jv_JNI_CallAnyMethodV): Likewise.
	(_Jv_JNI_NewString): Likewise.
	(_Jv_JNI_NewStringUTF): Likewise.
	(_Jv_JNI_NewObjectArray): Likewise.
	(_Jv_JNI_GetObjectArrayElement): Likewise.
	(_Jv_JNI_ToReflectedField): Likewise.
	(_Jv_JNI_ToReflectedMethod): Likewise.
	(_Jv_JNIFunctions): Updated table for new functions.
	(_Jv_JNI_Init): New function.
	(mark_for_gc): Wrote.
	(unmark_for_gc): Wrote.
	* include/jni.h (struct JNINativeInterface): Removed name from
	PopLocalFrame parameter.
	(class _Jv_JNIEnv): Added `locals' field.

Mon Jan 31 00:43:15 2000  Anthony Green  <green@redhat.com>

	* gnu/gcj/convert/natIconv.cc (read): Minor fixes.
	(write): Ditto.

2000-01-30  Tom Tromey  <tromey@cygnus.com>

	* include/config.h.in: Rebuilt.
	* acconfig.h (HAVE_ICONV): Define.
	* configure: Rebuilt.
	* configure.in: Check for `iconv' function.
	* gnu/gcj/convert/BytesToUnicode.java (getDecoder): Try iconv if
	no specific encoder exists.
	* gnu/gcj/convert/UnicodeToBytes.java (getEncoder): Try iconv if
	no specific encoder exists.
	* Makefile.in: Rebuilt.
	* Makefile.am (convert_source_files): Mention Input_iconv.java and
	Output_iconv.java.
	(nat_source_files): Added natIconv.cc.
	* gnu/gcj/convert/natIconv.cc: New file.
	* gnu/gcj/convert/Input_iconv.java: New file.
	* gnu/gcj/convert/Output_iconv.java: New file.

2000-01-28  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (LIBFFIINCS): Added MULTIBUILDTOP.

2000-01-26  Tom Tromey  <tromey@cygnus.com>

	* gcj/method.h (JvNumMethods): Moved from Class.h.
	(JvGetFirstMethod): Likewise.
	* java/lang/Class.h (Object): Updated decl of
	_Jv_JNI_ToReflectedField.
	(Object): Added _Jv_JNI_ToReflectedMethod as a friend.
	* Makefile.in: Rebuilt.
	* Makefile.am (java/lang/reflect/Field.h): Added `jboolean'
	argument of _Jv_JNI_ToReflectedField.
	(java/lang/reflect/Constructor.h): Added _Jv_JNI_ToReflectedMethod
	as a friend.
	(java/lang/reflect/Method.h): Likewise.
	* include/jni.h (class _Jv_JNIEnv): Added `klass' member.  Use
	__GCJ_JNI_IMPL__.
	(jweak): New typedef.
	(struct JNINativeInterface): Correctly declare remaining entries.
	* jni.cc: Include Class.h, ClassLoader.h.
	(_Jv_JNI_FindClass): New function.
	(_Jv_JNI_DefineClass): New function.
	(_Jv_JNI_conversion_call): New function.
	(_Jv_JNI_FindClass): Use current class loader to find class.
	(_Jv_JNI_ExceptionCheck): New function.
	(_Jv_JNI_FromReflectedField): Now static.
	(MethodClass): New define.
	(_Jv_JNI_FromReflectedMethod): New function.
	(_Jv_JNI_ToReflectedMethod): Likewise.
	Include Method.h.
	(_Jv_JNI_IsAssignableFrom): Renamed.
	(_Jv_JNI_GetStringRegion): New function.
	Include StringIndexOutOfBoundsException.h.
	(_Jv_JNI_GetStringUTFRegion): New function.
	(_Jv_JNIFunctions): Updated for new functions.
	(_Jv_JNI_GetPrimitiveArrayCritical): New function
	(_Jv_JNI_ReleasePrimitiveArrayCritical): Likewise.
	(_Jv_JNI_GetStringCritical): New function.
	(_Jv_JNI_ReleaseStringCritical): Likewise.
	(get_throwable): Removed.
	(GCJ_JV_JNIENV_FRIEND): Removed.
	(__GCJ_JNI_IMPL__): Define.
	Include method.h.

	* resolve.cc (get_ffi_type_from_signature): Handle case where
	boolean is an int.

Tue Jan 25 08:51:16 2000  Tom Tromey  <tromey@ferrule.cygnus.com>

	* interpret.cc (run): Don't call println.
	Don't include PrintStream.h.

	* gcj/field.h (struct _Jv_Field): Use "jshort" as type for
	nameIndex.  Use "jint" as type for boffset.
	* java/lang/Class.h (struct _Jv_Method): Made accflags a
	_Jv_ushort.
	(Class): Likewise.  Also changed type of method_count,
	vtable_method_count, size_in_bytes, field_count,
	static_field_count, interface_count.
	* gcj/array.h (__JArray): Made `length' a const jsize, not an
	int.

2000-01-21  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/natConstructor.cc (newInstance): Use
	_Jv_CallAnyMethodA.
	* include/jvm.h: Declare _Jv_CallAnyMethodA.
	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Renamed
	from _Jv_CallNonvirtualMethodA.  Changed interface; overloaded.
	Include <jni.h>.
	(COPY): Removed.
	(invoke): Use _Jv_CallAnyMethodA.
	(VAL): Redefined.
	* java/lang/Class.h (Class): Declare JvGetFirstStaticField,
	JvNumStaticFields, JvNumMethods, and JvGetFirstMethod as friend
	functions.
	(struct _Jv_Method): Added getNextMethod method.
	(JvNumMethods): New function.
	(JvGetFirstMethod): Likewise.
	* gcj/field.h (JvGetFirstStaticField): New function.
	(JvNumStaticFields): Likewise.
	(getNextField): Renamed from getNextInstanceField.
	(struct _Jv_Field): New method getClass.
	* jni.cc: Wrote many new functions.
	* include/jni.h (JNI_TRUE): Define.
	(JNI_FALSE): Likewise.
	(jobject, jclass, jstring, jarray, jthrowable, jobjectArray,
	jbyteArray, jshortArray, jintArray, jlongArray, jbooleanArray,
	jcharArray, jfloatArray, jdoubleArray): New typedefs.
	(jfieldID, jmethodID): Likewise.
	(JNI_COMMIT, JNI_ABORT): New defines.
	(JNINativeMethod): New struct.
	(struct JNINativeInterface): Correctly declared more entries.
	(class _Jv_JNIEnv): Added `ex' member.
	(JNI_VERSION_1_1): New define.
	(JNI_VERSION_1_2): Likewise.

	* boehm.cc (_Jv_MarkObj): Use getNextField, not
	getNextInstanceField.

2000-01-20  Tom Tromey  <tromey@cygnus.com>

	* resolve.cc (StringClass): Removed.
	* defineclass.cc (StringClass): Removed.

2000-01-19  Bryce McKinlay  <bryce@albatross.co.nz>

	* NEWS: updated.

2000-01-19  Tom Tromey  <tromey@cygnus.com>

	* interpret.cc (PC_REGISTER_ASM): Removed.

	* java/lang/natThrowable.cc: Don't use `#pragma implementation'.
	From Bryce McKinlay.

	* All files: Updated copyright to reflect Cygnus purchase.

2000-01-18  Bryce McKinlay <bryce@albatross.co.nz>

	* configure: Rebuilt.
	* configure.in: Recognize --disable-interpreter.

2000-01-18  Andrew Haley  <aph@cygnus.com>

	* name-finder.cc (lookup): Check for dladdr function.
	acconfig.h (HAVE_DLADDR): Add.
	configure.in: Check for HAVE_DLADDR
	configure: Rebuilt.
	include/config.h.in:  Rebuilt.

2000-01-17  Andrew Haley  <aph@cygnus.com>

	* prims.cc (_Jv_RunMain): Set the name of this executable.

2000-01-17  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natThrowable.cc (fillInStackTrace): Return `this' even
	when backtrace can't be computed.

	* configure: Rebuilt.
	* configure.in: Fixed typo in AC_CONFIG_SUBDIRS call.

	* java/lang/Runtime.java (loadLibraryInternal): Declare.
	* java/lang/natClassLoader.cc (_Jv_FindClass): Removed dead copy.
	(_Jv_FindClassInCache): Likewise.
	(_Jv_FindClass): Don't conditionalize body on INTERPRETER.
	(findSystemClass): Try to load class from compiled module.
	Include Runtime.h.
	* java/lang/natRuntime.cc (load): Use UTF-8 copy of filename.
	(loadLibrary): Likewise.
	(lt_preloaded_symbols): Define.
	(loadLibraryInternal): New method.
	* include/config.h.in: Rebuilt.
	* acconfig.h (USE_LTDL): Added.
	* Makefile.am (SUBDIRS): Added $(DIRLTDL).
	(INCLUDES): Added $(INCLTDL).
	(libgcj_la_DEPENDENCIES): Added $(LIBLTDL).
	(libgcj_la_LIBADD): Likewise.
	* aclocal.m4, configure: Rebuilt.
	* configure.in: Added libltdl support.

2000-01-15  Tom Tromey  <tromey@cygnus.com>

	* prims.cc (_Jv_PrimClass): Use `JV_STATE_NOTHING', not `0'.

2000-01-14  Andrew Haley  <aph@cygnus.com>

	* java/lang/natThrowable.cc: New file.

	* java/lang/Throwable.java (fillInStackTrace): Make native.
	(printStackTrace): Call native method to do this.
	(Throwable): Call fillInStackTrace.
	(stackTrace): New variable.

	* include/jvm.h: Add _Jv_ThisExecutable functions.

	* prims.cc: (_Jv_execName): New variable.
	(catch_segv): Call fillInStackTrace.
	(catch_fpe): Ditto.
	(_Jv_ThisExecutable): New functions.
	(JvRunMain): Set the name of this executable.

	* Makefile.am: Add java/lang/natThrowable.cc.
	Add name-finder.cc.
	* Makefile.in: Rebuilt.

	* acconfig.h: Add HAVE_PROC_SELF_EXE.

	* configure.in: Force link with __frame_state_for in
	FORCELIBGCCSPEC.  Add new checks for backtrace.
	* include/config.h.in: Rebuilt.

	* name-finder.cc: New file.
	* include/name-finder.h: New file.

2000-01-16  Anthony Green  <green@cygnus.com>

	* java/lang/StringBuffer.java (StringBuffer): Don't special case
	null argument.

2000-01-16  Jeff Sturm  <jsturm@sigma6.com>

	* java/io/StreamTokenizer.java (nextToken): Avoid unread(TT_EOF).

2000-01-13  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natClassLoader.cc (_Jv_FindClass): Register `loader',
	not system loader, as initiating loader.

2000-01-11  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natSystem.cc (getpwuid_adaptor): New adaptor for
	HP/UX.  From David Scott Urban.

2000-01-10  Jeff Sturm  <jsturm@sigma6.com>

	* java/lang/natMath.cc (pow): Cast args to `double', not
	`jdouble'.
	(atan2): Likewise.
	(IEEEremainder): Likewise.
	* java/lang/mprec.h: Don't wrap includes in `extern "C"'.
	* java/lang/fdlibm.h: Don't wrap includes in `extern "C"'.

2000-01-09  Anthony Green  <green@cygnus.com>

	* java/lang/natString.cc (init): Test for overflow condition
	during out of bounds check.
	(getChars): Throw StringIndexOutOfBoundsException, not
	ArrayIndexOutOfBoundsException.
	(getBytes): Ditto.
	(regionMatches): Obey case option during string comparison.

	* configure.host (ligcj_interpreter): New variable.  Enable
	interpreter by default on IA-32.
	* configure.in:  Examine libgcj_interpreter.
	* configure: Rebuilt.

2000-01-07  Tom Tromey  <tromey@cygnus.com>

	* mauve-libgcj: Don't disable ClassTest.

	* java/lang/natClass.cc (getClasses): Wrote.

2000-01-06  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natClass.cc (_getConstructors): Correctly check
	whether method name is the init name.
	(getMethod): Look at accflags on method in `klass', not `this'.

2000-01-05  Tom Tromey  <tromey@cygnus.com>

	* java/lang/natClass.cc (getMethod): Compute offset relative to
	`klass's methods table, not `this's table.

	* java/lang/reflect/natMethod.cc (_Jv_CallNonvirtualMethodA):
	In unwrapping/widening case, check whether `k' is null, not
	whether it is primitive.  Initialize `num' from `argelts', not
	`paramelts'.  Correct create and pass arguments to ffi_call.
	Don't let presence of `this' argument affect index used to look in
	argument arrays.
	(COPY): Set appropriate element in `values' vector.

	* java/lang/natClass.cc: Include <gcj/method.h>.

	* java/lang/Class.h (_getMethods): Correctly declare as private,
	not public.

	* java/lang/Class.h (_getMethods): Declare.
	* java/lang/Class.java (_getMethods): Declare.
	* java/lang/natClass.cc (getDeclaringClass): Always return NULL.
	(getDeclaredClasses): Always return empty array.
	(_getMethods): New method.
	(getMethods): Wrote.
	(getDeclaredMethod): Return `rmethod'.
	(finit_name): New global.
	(getDeclaredMethods): Check for finit_name.
	(_getMethods): Likewise.
	(getMethod): Only return public methods.

	* java/lang/reflect/natMethod.cc (get_ffi_type): Test size of
	jboolean and select correct ffi type on that basis.
	(_Jv_CallNonvirtualMethodA): Handle `void' return type.
	Constructor call always has `void' return type.

2000-01-04  Tom Tromey  <tromey@cygnus.com>

	* java/lang/Class.h (getSignature): Updated.
	* java/lang/Class.java (getSignature): Updated.
	* java/lang/natClass.cc (getSignature): Added `is_constructor'
	argument.
	(getConstructor): Ensure constructor is public.
	(_getConstructors): Check for public-ness of constructor when
	`declared' is false, not when it is true.

2000-01-04  Warren Levy  <warrenl@cygnus.com>

	* java/net/natPlainDatagramSocketImpl.cc (peek): Removed unnecesary
	comment.
	(receive): Set the sender's address in the DatagramPacket.

2000-01-04  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/natConstructor.cc (newInstance): Pass
	declaring class as return_type argument to
	_Jv_CallNonvirtualMethodA.
	* java/lang/reflect/natMethod.cc (_Jv_CallNonvirtualMethodA): In
	constructor case, create object and use it as `this' argument.
	* java/lang/Class.h (_getConstructors): Declare.
	(_getFields): Declare.
	* java/lang/Class.java (getConstructors): Wrote.
	(_getConstructors): New native method.
	(getDeclaredConstructors): Wrote.
	(_getFields): Declare new native method.
	* java/lang/natClass.cc (_Jv_LookupInterfaceMethod): Removed
	incorrect comment.
	(getMethod): Work correctly when class is primitive.
	(getDeclaredMethods): Likewise.  Compute offset using `method',
	not `mptr'.
	(getDeclaredMethod): Likewise.
	(getConstructor): Wrote.
	(ConstructorClass): New define.
	(getDeclaredConstructor): Wrote.
	(_getConstructors): New method.
	(_getFields): New method.
	(getFields): Wrote.

	* Makefile.in: Rebuilt.
	* Makefile.am (AM_CXXFLAGS): Added -D_GNU_SOURCE.

	* prims.cc: Remove `#pragma implementation'.
	* gcj/array.h: Remove `#pragma interface'.

	* prims.cc (_Jv_equaln): New function.
	* java/lang/Class.java (getSignature): Declare.
	* resolve.cc (_Jv_LookupDeclaredMethod): Moved to natClass.cc.
	* java/lang/natClass.cc (_Jv_LookupDeclaredMethod): Moved from
	resolve.cc.
	(getSignature): New method.
	(getDeclaredMethod): Wrote.
	(getMethod): Wrote.
	Include StringBuffer.h.
	* java/lang/Class.h (Class): Added _Jv_FromReflectedConstructor
	as a friend.  Unconditionally declare _Jv_LookupDeclaredMethod as
	a friend.
	(getSignature): Declare.
	* include/jvm.h (_Jv_GetTypesFromSignature): Declare.
	(_Jv_equaln): Declare.
	(_Jv_CallNonvirtualMethodA): Declare.
	* Makefile.in: Rebuilt.
	* Makefile.am (nat_source_files): Added natConstructor.cc.
	(java/lang/reflect/Constructor.h): New target.
	* java/lang/reflect/natConstructor.cc: New file.
	* java/lang/reflect/Constructor.java (newInstance): Now native.
	(declaringClass): Renamed from decl_class.
	(offset): Renamed from index.
	(getType): New native method.
	(getModifiers): Now native.
	(getParameterTypes): Call getType if required.
	(hashCode): Include hash code from declaring class.
	(modifiers): Removed.
	(toString): Call getType if required.
	* gcj/method.h (_Jv_FromReflectedConstructor): New function.
	* java/lang/reflect/natMethod.cc (hack_call): New method.
	Removed `#if 0' around FFI code.
	Include <gnu/gcj/RawData.h>.
	(invoke): Use _Jv_CallNonvirtualMethodA.  Throw
	IllegalArgumentException when argument object and class disagree.
	(_Jv_GetTypesFromSignature): New function.
	(getType): Use it.
	(ObjectClass): New define.
	(_Jv_CallNonvirtualMethodA): New function.
	* java/lang/reflect/Method.java (hack_trampoline): New method.
	(hack_call): New native method.

