RELEASE NOTES FOR C5 GENERIC COLLECTION LIBRARY FOR C#/CLI
------------------------------

Release 1.1.1 of 2010-12-17

 * Fixed 5 bugs found since the 1.1.0 release.  Only one of this is
   likely to break code: the specification and implementation of the
   range indexer this[i,n] on TreeSet was wrong.


Release 1.1.0 of 2008-02-10

New functionality:

 * Interface C5.ICollection<T> now extends generic interface
   System.Collections.Generic.ICollection<T>.  The C5.ICollection<T>
   interface in some cases describe different exceptions than
   specified by SCG.ICollection<T>, but we have not attempted to fix
   this because the .NET collection implemented in some cases throw
   other exceptions than those specified anyway.

 * Interface C5.IList<T> now extends interface non-generic interface
   System.Collections.IList, so C5 list collections can be passed to
   .NET GUI components and other framework methods.

 * Exception-free methods 

  	bool TryPredecessor(T x, out T res)
 	bool TrySuccessor(T x, out T res)
 	bool TryWeakPredecessor(T x, out T res)
 	bool TryWeakSuccessor(T x, out T res)

   have been added to the ISorted<T> interface and the classes that
   implement it.   

 * Added methods analogous to the above to ISortedDictionary<K,V> and
   the classes that implement it.

 * Event raising on SortedDictionary<T> finally implemented, thanks to
   Marcus Griep.  Hence all unit tests should now succeed.

 * The missing custom comparers and equality comparers have been added
   for all primitive types except bool.  

 * The book "The C5 Generic Collection Library" has been updated
   to reflect these changes.

Bugs fixed:

 * SortedArray<T>.UpdateOrAdd and SortedArray<T>.FindOrAdd did not
   expand the underlying array correctly

 * HashDictionary.UpdateOrAdd returned the new value, not the old one.

 * CollectionBase.StaticEquals threw exception when exactly one
   argument was null.  

 * HashedLinkedList<T>.Remove could fail with NullReferenceException.

 * HashSet<T>.UpdateOrAdd(item, out old) did not set old=default(T)
   when item was not already in the set.

 * HashBag<T>.CopyTo could throw when copying from empty collection.

------------------------------

Release 1.0.2 of 2007-06-01

Bugs fixed:

 * SortedDictionaryBase was not marked as [Serializable]
 
 * ArrayList.expand did not update the array field of (other) views

 * IntervalHeap::Replace would throw an exception on one-element heap

------------------------------

Release 1.0.1 of 2006-06-27

Bugs fixed:

 * CircularQueue<T> indexer was wrong

 * Some equality comparers created by C5.EqualityComparer<T>.Default
   were not marked serializable

 * HashSet<T>.RetainAll could leave internal data inconsistent

 * TreeDictionary<K,V> was not marked serializable

 * HashedLinkedList<T> problem related to tag group implementation

 * Dispose() could fail on newly created lists

New features:

 * A strong name (.snk) is included 

 * C5.IList<T> now derives from System.Collections.Generic.IList<T>

 * Added C5.build file for NAnt, due to Johan Warlander

The technical report has been updated to reflect the above changes.

------------------------------

Release 1.00 of 2006-01-30

First complete release.  There are lots of changes since the
PreRelease:

 * Interface design has been reorganized and simplified

 * New functionality added (too much to describe here)

 * Updated for Microsoft C#/CLI 2.0 release version

 * Comprehensive documentation in ITU Technical Report ITU-TR-2006-76

------------------------------

PreRelease 0.5 of 2004-08-06

First public release, essentially a preview of the library, for beta 1
of Microsoft C#/CLI 2.0.

------------------------------
