Merge pull request #444 from knocte/xbuild_improvements
[mono.git] / mcs / class / System / System.Collections.Generic / ChangeLog
index eb401d1a739fbff4974f57dd79fb1d76f335c72b..75074d15d433ad68b2f4100661a5991680c22b21 100644 (file)
@@ -1,3 +1,224 @@
+2010-04-09  Raja R Harinath  <harinath@hurrynot.org>
+
+       Don't maintain state in the view
+       * SortedSet.cs (SortedSubSet.count): Remove.
+       (SortedSubSet..ctor): Move counting loop ...
+       (SortedSubSet.Count): ... here.
+       (SortedSubSet.TryAdd, SortedSubSet.TryRemove): Update to changes.
+       (SortedSubSet.GetMin, SortedSubSet.GetMax): Likewise.  Use bounds
+       to determine if the view is empty, rather than the count.
+
+2010-04-07  Raja R Harinath  <harinath@hurrynot.org>
+
+       Enable set comparision operations on views, and improve performance
+       * RBTree.cs (Bound): New.  Returns the greatest lower bound and
+       least upper bound of the given key.
+       (GetSuffixEnumerator): New.  Returns an enumerator that starts at
+       the given key.
+       (NodeEnumerator): Provide suffix enumerator functionality.
+       * SortedSet.cs (GetEnumerator): Delegate to ...
+       (TryGetEnumerator): ... this.  New virtual function.
+       (Enumerator): Provide subset enumeration using RBTree's suffix enumerators.
+       (SortedSubSet.count): New.
+       (SortedSubSet.GetCount): Use it.
+       (SortedSubSet.TryAdd, SortedSubSet.TryRemove): Update count.
+       (SortedSubSet.GetMin, SortedSubSet.GetMax): Use RBTree.Bound().
+       (SortedSubSet.GetEnumerator): Remove.
+       (SortedSubSet.TryGetEnumerator): New.  Use ranged enumerators.
+
+2010-04-06  Jb Evain  <jbevain@novell.com>
+
+       * SortedSet.cs: implement Count for SortedSubSet.
+
+2010-04-05  Raja R Harinath  <harinath@hurrynot.org>
+
+       * SortedSet.cs (IsProperSubsetOf, IsSubsetOf): Implement using ...
+       (is_subset_of): ... new helper.
+       (IsProperSupersetOf, IsSupersetOf): Implement using ...
+       (is_superset_of): ... new helper.
+       (covers, nodups, overlaps): New helpers.
+       (SetEquals): Implement.
+       (Overlaps): Implement using overlaps().
+       (SymmetricExceptWith): Use nodups() helper.
+
+2010-04-04  Raja R Harinath  <harinath@hurrynot.org>
+
+       * SortedSet.cs (CheckArgumentNotNull): New helper.
+       (IntersectWith, UnionWith): Implement.
+       (ExceptWith, SymmetricExceptWith): Likewise.
+       (SortedSubSet.IntersectWith): Implement override.
+
+       * RBTree.cs (do_remove): Ensure the node returned is suitable for
+       re-insertion.
+
+2010-04-02  Jb Evain  <jbevain@novell.com>
+
+       * SortedSet.cs: implement Mix and Max for subsets.
+
+2010-04-02  Jb Evain  <jbevain@novell.com>
+
+       * SortedSet.cs: implement GetViewBetween.
+
+2010-04-02  Jb Evain  <jbevain@novell.com>
+
+       * SortedSet.cs: optimize Reverse. Add a virtual TryAdd and TryRemove
+       to override in sub trees.
+
+2010-04-02  Jb Evain  <jbevain@novell.com>
+
+       * SortedSet.cs: implement Min and Max.
+
+2010-04-02  Jb Evain  <jbevain@novell.com>
+
+       * SortedSet.cs: implement RemoveWhere.
+
+2010-04-02  Jb Evain  <jbevain@novell.com>
+
+       * SortedSet.cs: implement Reverse.
+
+2010-04-01  Jb Evain  <jbevain@novell.com>
+
+       * SortedSet.cs: fix API.
+
+2010-04-01  Jb Evain  <jbevain@novell.com>
+
+       * SortedSet.cs: add new SortedSet type in .net 4.0
+
+2010-03-03  Miguel de Icaza  <miguel@novell.com>
+
+       * RBTree.cs: Make these serializable, should fix the serialization
+       across appdomains of SortedDictionaries
+
+2010-03-11  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * ISet.cs: Add NET_2_1 since this is part of SL4
+
+2009-12-01  Jb Evain  <jbevain@novell.com>
+
+       * Stack.cs (Enumerator.Dispose): tag the enumerator as finished
+       upon Dispose.
+
+2009-11-26  Marek Safar <marek.safar@gmail.com>
+
+       * LinkedList.cs: Allocate less.
+
+2009-11-25  Jb Evain  <jbevain@novell.com>
+
+       * Queue.cs (Enqueue): deal with the case where the tail
+       is off the array when deciding to enlarge the capacity.
+
+2009-11-25  Jb Evain  <jbevain@novell.com>
+
+       * Queue.cs (ICollection.CopyTo): fix typo, remove code duplication.
+
+2009-11-02  Miguel de Icaza  <miguel@novell.com>
+
+       * ISet.cs: Added new interface.
+
+2009-10-20  Marek Safar <marek.safar@gmail.com>
+
+       * SortedList.cs, LinkedList.cs, Queue.cs, Stack.cs,
+       SortedDictionary.cs: Improve debugging experience.
+
+2009-07-31  Raja R Harinath  <harinath@hurrynot.org>
+
+       * RBTree.cs (NodeEnumerator.check_current): New helper.
+       (NodeEnumerator.Current): Don't check invariants.
+       * SortedDictionary.cs (Enumerator.Current): Likewise.
+       (ValueCollection.Enumerator.Current): Likewise.
+       (KeyCollection.Enumerator.Current): Likewise.
+
+2009-07-26  Miguel de Icaza  <miguel@novell.com>
+
+       * Stack.cs: Check arguments.
+
+2009-07-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * SortedList.cs: the IComparar.Compare arguments were reversed.
+       Fixes bug #521750. Patch by Kevin Fitzgerald.
+
+2009-05-10  Andy Hume  <andyhume32@yahoo.co.uk>
+
+       * LinkedList.cs: Add null check. Fixes #481621.
+
+2009-03-11  Zoltan Varga  <vargaz@gmail.com>
+
+       * SortedList.cs: Add version checking to the Key/Value enumerators +
+       implement support for Reset (). Fixes #483985.
+
+2009-05-06  Pia Eriksson  <pe@hallerud.se>
+
+       * SortedList.cs: Handle Count == 0 in CopyTo correcly
+       * SortedDictionary.cs: Handle Count == 0 in CopyTo correcly
+
+2007-11-15  Roei Erez  <roeie@mainsoft.com>
+
+       * Stack.cs: Performance improvement in the case where the stack is popped
+       until empty. Changed the condition for resizing the array, and instead of
+       check for zero size, check if the inner array is null.
+
+2007-11-15  Jb Evain  <jbevain@novell.com>
+
+       * LinkedList.cs: ifdef out manually the Serialization part of the
+       LinkedList.Enumerator. As it is a struct, the field SerializationInfo
+       have to be assigned in the default constructor, and the tuner cannot
+       remove that. Fixes #341938 for real.
+
+2007-10-09  Raja R Harinath  <rharinath@novell.com>
+
+       * RBTree.cs (get_Item, do_remove): Remove redundant code.
+
+2007-08-20  Jb Evain  <jbevain@novell.com>
+
+       * SortedList.cs: don't crash in ListKeys and ListValues
+       when CopyTo targets an empty array, and that the
+       sorted list is empty. Fixes #82492.
+
+2007-05-08  Raja R Harinath  <rharinath@novell.com>
+
+       Avoid unnecessary allocation on indexer access
+       * SortedDictionary.cs (NodeHelper): Rename from NodeComparer.
+       (NodeHelper.CreateNode): New.
+       (Item.set): Move responsibility of creating new nodes to
+       RBTree.Intern.
+       * RBTree.cs (INodeHelper): Rename from INodeComparer.
+       (INodeHelper.CreateNode): New.
+       (Intern): Use it to create a new node if no node is passed in.
+
+2007-05-08 Igor Zelmanovich <igorz@mainsoft.com>
+
+       * RBTree.cs: for TARGET_JVM used Thread Local Storage 
+       istead Thread-Relative Static Fields 
+
+2007-05-02  Raja R Harinath  <rharinath@novell.com>
+
+       * RBTree.cs (Enumerator.Current): Remove nullref.
+
+       * SortedDictionary.cs (ICollection.Contains): Use EqualityComparer
+       for comparing the value field.
+
+       * RBTree.cs (do_remove): Remove some redundant assignments/checks.
+       (NodeEnumerator): Simplify.  Keep track of a list of
+       right-pennants that need to be traversed next, rather than
+       comparing parent pointers.
+
+2007-05-02  Raja R Harinath  <harinath@gmail.com>
+
+       Make add and remove operations O(log n).
+       * SortedDictionary.cs: Rewrite to use the red-black tree
+       implementation from RBTree.cs.
+       * RBTree.cs: Some more refactoring.  Rename Insert() to Intern(),
+       and modify semantics slightly.  Replace Contains() with Lookup().
+
+2007-04-30  Raja R Harinath  <rharinath@novell.com>
+
+       * RBTree.cs: Refactor to reduce generics code.
+
+2007-04-30  Raja R Harinath  <harinath@gmail.com>
+
+       * RBTree.cs: New red-black tree implementation for use with
+       SortedDictionary.
+
 2007-04-19  Gert Driesen  <drieseng@users.sourceforge.net>
 
        * Queue.cs: Fixed binary serialization, based on patch provided by