Tue Aug  5 17:06:01 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* deque.h, function.h, hashtable.h, list.h, rope.h, ropeimpl.h,
	tree.h:  Update to July 31 SGI release.

Fri Jul 18 10:06:56 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* algo.h, defalloc.h, hashtable.h, rope.h, ropeimpl.h, slist.h:
	Update to June 30 SGI release.

Fri Jul 04 02:17:15 1997  Ulrich Drepper  <drepper@cygnus.com>

	* tree.h (rb_tree): Reverse order of member initializations
	to prevent warnings.
	
Sun Jun 15 18:17:21 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* *.h: Update to 6/13 SGI release.

Fri May 23 10:56:18 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* stl_config.h: Add support for exceptions with g++.

	* *.h: Update to 5/8 SGI release.

Thu Apr 24 19:00:23 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* *.h: Update to 3/24 SGI release.

Wed Feb 19 18:19:18 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* *.h: Update to 2/18 SGI release.

	* bool.h: Lose.

Mon Feb 10 16:33:23 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* alloc.h: Don't define __USE_MALLOC for g++.
	* bool.h: Lose g++ case.

	* *.h: Update to 2/4 SGI release.

Mon Jan 13 14:39:16 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* *.h: Update to 1/8 SGI release.

Mon Sep 30 17:56:43 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* alloc.h (__unlock): Never use __lock_release.

Fri Sep 27 19:03:06 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* alloc.h (__default_alloc_template): lock is a friend. 

Thu Sep 19 20:10:37 1996  Jason Merrill  <jason@yorick.cygnus.com>

	Propagate these changes to new STL code:
	* tree.h: Rearrange member initializers in rb_tree constructors.
	* vector.h (insert): Cast iterator difference to size_type to
        avoid warning.

	* *.h: Update to SGI snapshot (fixed).
	* *.c, Makefile.in, configure.in: Removed.

Sat Sep 14 09:43:06 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* deque.h, list.h, tree.h: Remove kludge obsoleted by new
 	overloading code.

Sat Aug 10 14:59:50 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* tempbuf.cc (__stl_temp_buffer): Align like a pointer.

Wed Jun 26 13:00:44 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* iterator.h: Add default template parameters.

Wed Apr 24 10:45:22 1996  Doug Evans  <dje@blues.cygnus.com>

	* Makefile.in (tempbuf.o,random.o): Add rules for SunOS VPATH.

Fri Apr  5 17:52:31 1996  Per Bothner  <bothner@kalessin.cygnus.com>

	* configure.in (EXTRA_MOSTLYCLEAN):  New, to remove stl.list.

Fri Mar 22 14:58:30 1996  Jason Merrill  <jason@yorick.cygnus.com>

	Propagate these changes to new STL code:
	* tree.h: Rearrange member initializers in rb_tree constructors.
	* vector.h (insert): Cast iterator difference to size_type to
        avoid warning.

Sun Mar 10 07:49:03 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* deque.h (distance_type): Add overload for g++.
	From Joe Buck.

Thu Feb 22 14:07:12 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* bool.h: Revert.
	* algo.h bvector.h deque.h function.h iterator.h list.h
	pair.h stack.h tree.h vector.h: Wrap #include <bool.h> with
	#ifndef __GNUG__.
	* defalloc.h list.h deque.h tree.h: Use __GNUG__ to control
	workarounds.

Wed Feb 21 17:13:02 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* bool.h (TRUE, FALSE): Define for people expecting the bool.h
 	from libg++.  Is this a good idea?

Tue Feb 20 18:40:02 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* algo.h bool.h bvector.h defalloc.h deque.h function.h heap.h
 	iterator.h list.h map.h pair.h random.cc stack.h tree.c tree.h
 	vector.h: Revert to HP release with workarounds for missing
 	overloading functionality.
	* Makefile.in (STL_OBJECTS): Remove tree.o.

Thu Nov  9 17:05:23 1995  Jason Merrill  <jason@yorick.cygnus.com>

	* algo.h algobase.h bvector.h defalloc.h deque.h function.h heap.h
 	iterator.h list.h map.h multimap.h multiset.h pair.h projectn.h
 	set.h stack.h tempbuf.h tree.h vector.h: Wrap #include <bool.h>
 	with #ifndef __GNUG__.

Thu Nov  2 17:05:44 1995  Jason Merrill  <jason@yorick.cygnus.com>

	* deque.h (deque<T>::insert): Fix merge typo.
	* vector.h (value_type): Lose.

Thu Nov  2 14:33:47 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* algo.h, algobase.h, deque.h, function.h, list.h, pair.h, random.cc:
	Merge in Oct 31 1995 release from HP.

Fri Aug 11 17:11:12 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* list.h: Avoid duplicate construction and destruction of list_nodes.
	Patch from Klamer Schutte <klamer@ph.tn.tudelft.nl>.

Fri Aug 11 16:45:18 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* algo.h, algobase.h, deque.h:  Merged in Jul 12 1995 release from HP.

Mon Jun  5 18:38:56 1995  Jason Merrill  <jason@phydeaux.cygnus.com>

	* Makefile.in (stl.list): Depend on stamp-picdir.

Wed May 17 02:30:47 1995  Jason Merrill  <jason@phydeaux.cygnus.com>

	* tree.h: Rearrange member initializers in rb_tree constructors.

	* Update to HP's February 7, 1995 release.

Fri May  5 10:45:31 1995  Mike Stump  <mrs@cygnus.com>

	* random.cc (seed): Move `for' decl out of `for' statement.

Wed Apr 26 13:09:16 1995  Jason Merrill  <jason@phydeaux.cygnus.com>

	* configure.in (XCXXINCLUDES): Rename.

Wed Mar 29 19:24:56 1995  Jason Merrill  <jason@phydeaux.cygnus.com>

	* tree.h (insert): Return a value.

	* vector.h (insert): Cast iterator difference to size_type to
        avoid warning.

Sun Feb 12 09:12:17 1995  Mike Stump  <mrs@cygnus.com>

	* tree.h (rb_tree::max_size): Add definition when using GNU
	workaround.

Thu Jan 12 01:37:42 1995  deanm@medulla.LABS.TEK.COM (Dean Messing)

	* configure.in (LIBDIR): Set to yes.

Fri Dec 30 18:26:20 1994  Mike Stump  <mrs@cygnus.com>

	* iterator.h: Add default template parameters where possible.

Fri Dec 30 16:29:39 1994  Mike Stump  <mrs@cygnus.com>

	* algo.h: Change rand to __rand to fix make check on linux systems.

Tue Nov 29 15:30:30 1994  Per Bothner  <bothner@kalessin.cygnus.com>

	* Initial check-in, based on HP's October 21, 1994.


