ChangeLog 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363
  1. 2005-06-24 Martin Baulig <[email protected]>
  2. * IDictionary.cs: Use the same type parameter names than on MS.
  3. * IDictionary.cs, Dictionary.cs: We don't need the `CLSCompliant'
  4. attribute here.
  5. 2005-06-23 Martin Baulig <[email protected]>
  6. * *.cs: Removed the `[ComVisible(false)]' attributes everywhere.
  7. 2005-06-22 Raja R Harinath <[email protected]>
  8. * Dictionary.cs (_generation, _enumeratorGeneration, _enumerators):
  9. New fields to implement fail-fast semantics. All code that
  10. modifies the table increment _generation.
  11. (GetSlot): Use _hcp to compare keys. Return the slot containing
  12. the key, rather than the index. Avoid move-to-front heuristic
  13. when there's an enumerator coursing through the table.
  14. (this, Add, TryGetValue, ContainsKey, Remove): Update to change.
  15. (Enumerator.Enumerator): Save the generation of the dictionary.
  16. (Enumerator.Dispose): Inform dictionary that the enumerator is no more.
  17. (Enumerator.MoveNext, Enumerator.VerifyState): Fail if the
  18. dictionary has been modified.
  19. 2005-06-20 David waite <[email protected]>
  20. * List.cs : substantial changes and optimizations
  21. (AddCollection, AddEnumerable): new internal specializations of AddRange
  22. (AsReadOnly): returns specific IList<T> to match ms.net 2.0b2 api.
  23. (Clear): reset size to zero on clear
  24. (ConvertAll): catch null converter, use Add to prevent OutOfBounds
  25. exception
  26. (FindAll, FindIndex, FindLast, FindLastIndex, RemoveAll, TrueForAll):
  27. check for null match
  28. (FindLastIndex): correct index parameters based on ms.net 2005b2 behavior
  29. (ForEach): catch null action
  30. (CheckIndex): new internal function similar to CheckRange for functions
  31. which only provide a starting index
  32. (InsertCollection, InsertEnumerable): new internal specializations of
  33. InsertRange
  34. (ReadOnlyList): removed, ReadOnlyCollection in
  35. System.Collections.ObjectModel is used instead now
  36. 2005-06-16 David Waite <[email protected]>
  37. * Dictionary.cs (EnumerationMode): Remove.
  38. (Enumerator): Remove return type flag - legacy return is expected to
  39. always return a DictionaryEntry
  40. (Enumerator): Make constructor internal, it is not public on ms.net
  41. beta 2
  42. (VerifyState): Added method to check state preconditions and throw
  43. appropriate exceptions.
  44. (KeyCollection,ValueCollection): Mark sealed to match ms.net beta 2
  45. (KeyCollection.Enumerator._hostEnumerator): make exact struct type,
  46. rather than boxing and using by interface
  47. (KeyCollection.Enumerator.Dispose): Call _hostEnumerator.Dispose.
  48. (ValueCollection.Enumerator._hostEnumerator): make exact struct type,
  49. rather than boxing and using by interface
  50. (ValueCollection.Enumerator.Dispose): Call _hostEnumerator.Dispose.
  51. * EqualityComparer.cs (DefaultComparer, IEquatableOfTEqualityComparer):
  52. Mark as serializable.
  53. 2005-06-16 Raja R Harinath <[email protected]>
  54. * Dictionary.cs (GetKeys, GetValues): Remove.
  55. (SetThreshold): New function to calculate the resize threshold.
  56. (CopyTo): Don't use foreach syntax.
  57. (ContainsValue): Likewise. Use default equality comparer of the
  58. value type.
  59. (GetObjectData): Use CopyTo to copy into temporary array. Don't
  60. save redundant _usedSlots and _threshold.
  61. (OnDeserialization): Rewrite.
  62. (ICollection<>.CopyTo): Forward to CopyTo.
  63. (Enumerator._nextIndex): Rename to from _index.
  64. (Enumerator._next, Enumerator.FixNext): Remove.
  65. (Enumerator.Current): Rewrite to avoid need for _next.
  66. (Enumerator.IEnumerator.Reset): Update.
  67. (KeyCollection): Is also IEnumerable<TKey> and IEnumerable.
  68. Update methods to conform to standard.
  69. (KeyCollection.GetEnumerator): Restore. Return the correct type.
  70. (KeyCollection.Enumerator): Rename from KeyEnumerator. Simple
  71. wrapper that forwards to Dictionary<,>.Enumerator.
  72. (ValueCollection): Likewise.
  73. 2005-06-12 David Waite <[email protected]>
  74. * IKeyComparer.cs: removed
  75. * KeyValuePair.cs: add same-style ToString as ms.net Beta2 impl,
  76. make Serializable, use correct field names.
  77. * Dictionary.cs: Miscelaneus clean-ups, added serialization
  78. support, use Hashtable prime functions
  79. 2005-06-12 Ben Maurer <[email protected]>
  80. * Comparer.cs, EqualityComparer.cs: Important performance hack:
  81. make sure that we don't box stuff and do reflection on every
  82. comparison. We use reflection at cctor time rather than on every
  83. request.
  84. 2005-06-09 Raja R Harinath <[email protected]>
  85. Simplify Enumerator.MoveNext to make it "obviously correct", rather
  86. than require subtle reasoning about the state of various variables.
  87. * Dictionary.cs (Enumerator._isValid): Remove. Replace all uses
  88. with "_current == null".
  89. (Enumerator._validNodeVisited): Remove.
  90. (Enumerator._next): New. Holds the the next position.
  91. (Enumerator.FixNest): New helper function that ensures that _next
  92. has the right value.
  93. (Enumerator.MoveNext): Simplify. Now, copies _next to _current
  94. and advances _next if possible.
  95. 2005-06-08 Martin Baulig <[email protected]>
  96. * Dictionary.cs (Dictionary.KeyEnumerator): Removed the public
  97. GetEnumerator() function since it's returning the wrong type.
  98. (Dictionary.ValueEnumerator): Likewise. Fix #75073.
  99. 2005-06-08 Ankit Jain <[email protected]>
  100. * Dictionary.cs (Dictionary<TKey, TValue>.MoveNext): Allow traversal of chain in last slot
  101. of the table. Fixes #75168.
  102. 2005-06-04 Ben Maurer <[email protected]>
  103. * *.cs: 2.0 api fixups
  104. 2005-05-26 Miguel de Icaza <[email protected]>
  105. * Dictionary.cs: Remove the `Hash' name from the Dictionary
  106. internal classes, make them public.
  107. 2005-05-26 Zoltan Varga <[email protected]>
  108. * Dictionary.cs: Fix a warning.
  109. * IDictionary.cs: Add missing TryGetValue method.
  110. 2005-05-19 Geoff Norton <[email protected]>
  111. * List.cs (Insert): Resize the array before the shift if needed
  112. 2005-05-18 Miguel de Icaza <[email protected]>
  113. * List.cs (GetRange): Implement.
  114. Do not do lazy loading of data. Not worth adding an
  115. extra check, and not worth the bugs.
  116. This decision wont be discussed until: a) a full List regression
  117. test suite exists and b) performance benchmarks are created. (b)
  118. depends on (a) or the argument wont even be heard.
  119. 2005-05-13 Atsushi Enomoto <[email protected]>
  120. * Queue.cs, Stack.cs: moved to System.dll
  121. 2005-05-06 Martin Baulig <[email protected]>
  122. * *.cs: Add CLSCompliant(true) where missing.
  123. 2005-05-06 Zoltan Varga <[email protected]>
  124. * *.cs: Remove CLSCompliant(false) attributes.
  125. 2005-05-05 Zoltan Varga <[email protected]>
  126. * List.cs: Applied patch from Mart Roosmaa ([email protected]).
  127. Fix Insert method. Fixes #74824.
  128. 2005-04-29 Martin Baulig <[email protected]>
  129. Reflect latest spec changes.
  130. * IEnumerable.cs (IEnumerable<T>): Implement IEnumerable.
  131. * IEnumerator.cs (IEnumerator<T>): Implement IEnumerator.
  132. 2005-04-29 Raja R Harinath <[email protected]>
  133. Remove FIXME.
  134. * Dictionary.cs (Slot<K,V>): Move to ...
  135. (Dictionary<K,V>.Slot): ... here.
  136. 2005-04-28 Martin Baulig <[email protected]>
  137. * Dictionary.cs, Queue.cs, Stack.cs, List.cs, Comparer.cs: Don't
  138. duplicate type parameters in the nested classes.
  139. 2005-04-20 Zoltan Varga <[email protected]>
  140. * List.cs: Fix ToArray () method. Fixes #74675.
  141. 2005-04-04 Raja R Harinath <[email protected]>
  142. * Dictionary.cs: Update to draft of Feb 27. Add some argument checks.
  143. (GetSlot): Don't throw KeyNotFoundException. Unify all list
  144. traversals in here. Move found key to head of chain, and return
  145. the index of the chain suitable for/containing the key.
  146. (Item, Add, Remove): Simplify, and remove FIXMEs.
  147. (Resize): Reuse linked list nodes from old table.
  148. (Dictionary.CopyTo, HashKeyCollection.CopyTo, HashValueCollection.CopyTo):
  149. Add some argument checks.
  150. 2005-04-02 Ben Maurer <[email protected]>
  151. * Dictionary.cs: Real impl.
  152. 2005-02-21 Martin Baulig <[email protected]>
  153. * IComparer.cs: Reverted the last change here, Equals() and
  154. GetHashCode() have been removed a long time ago.
  155. 2005-02-21 Kazuki Oikawa <[email protected]>
  156. * IComparer.cs, IDictionary.cs: Corrected the wrong declaration.
  157. 2005-02-11 Carlos Alberto Cortez <[email protected]>
  158. * List.cs: Added internal ReadOnlyCollection class,
  159. which is a wrapper for a read only IList<T> version of the List<T>.
  160. Used in AsReadOnly () method.
  161. 2005-02-07 Ben Maurer <[email protected]>
  162. * List.cs (CheckRange): Comparison error. Duh!
  163. (Shift): really deal with neg. delta. Also, adjust the `size'.
  164. Based on a patch from Marc Denty ([email protected]).
  165. Fixes #72258.
  166. 2005-01-29 Ben Maurer <[email protected]>
  167. * Queue.cs: `duh' bugs.
  168. 2004-12-27 Ben Maurer <[email protected]>
  169. * Stack.cs: Stupid bug fixes.
  170. * List.cs: My new (mostly untested ;-) impl of List
  171. <T>. Implements most of the API.
  172. 2004-12-26 Ben Maurer <[email protected]>
  173. * Queue.cs: New, non-linked-list based impl.
  174. 2004-11-29 Ben Maurer <[email protected]>
  175. * Comparer.cs: Update this class.
  176. 2004-11-25 Carlos Alberto Cortez <[email protected]>
  177. * List.cs: Enumerator changed to behave like the MS impl.
  178. 2004-11-25 Ben Maurer <[email protected]>
  179. * Stack.cs: New, list based impl. Waiting for some gmcs fixes.
  180. 2004-11-10 Martin Baulig <[email protected]>
  181. * IDictionary.cs (IDictionary): `IsReadOnly' and `Clear' are
  182. inherited from ICollection.
  183. 2004-09-20 Gert Driesen <[email protected]>
  184. * ReadOnlyCollection.cs: Moved to System assembly
  185. * Collection.cs: Moved to System assembly
  186. 2004-09-07 Carlos Alberto Cortez <[email protected]>
  187. * ReadOnlyCollection.cs: New file and changes to
  188. Collection.cs tu support it.
  189. 2004-09-05 Marek Safar <[email protected]>
  190. * Dictionary.cs: Added new file (no implementation).
  191. 2004-09-03 Carlos Alberto Cortez <[email protected]>
  192. * Collection.cs: Small improvements related to
  193. style, resizing, and type checking.
  194. 2004-09-01 Carlos Alberto Cortez <[email protected]>
  195. * Collection.cs: New file.
  196. 2004-08-04 Martin Baulig <[email protected]>
  197. * List.cs (List<T>.Enumerator): Made this a struct.
  198. (List<T>.GetEnumerator): The public method now returns the
  199. `Enumerator' struct.
  200. 2004-08-02 Martin Baulig <[email protected]>
  201. Started to do some API review.
  202. * ICollection.cs (ICollection<T>): Added IsReadOnly, Add, Clear,
  203. Contains and Remove.
  204. * IList.cs (IList<T>): Removed Add, Clear, Constains, Remove,
  205. IsReadOnly and IsFixedSize.
  206. 2004-08-02 Martin Baulig <[email protected]>
  207. * IList.cs (IList.Add): Changed return type to void.
  208. * List.cs (List.Add): Likewise.
  209. 2004-07-16 Martin Baulig <[email protected]>
  210. * IComparable.cs: Removed, it's in System.
  211. 2004-07-12 Duncan Mak <[email protected]>
  212. * KeyNotFoundException.cs: Added.
  213. 2004-06-18 Ben Maurer <[email protected]>
  214. * Comparer.cs: v2 impl. Some workarounds for gmcs are enabled.
  215. 2004-05-26 Sebastien Pouliot <[email protected]>
  216. * Queue.cs: Fixed possible integer overflow in CopyTo methods.
  217. * Stack.cs: Fixed possible integer overflow in CopyTo methods.
  218. 2004-03-13 Martin Baulig <[email protected]>
  219. * Stack.cs, Queue.cs, List.cs: Implement the non-generic interfaces.
  220. 2004-03-11 Martin Baulig <[email protected]>
  221. * List.cs: New file.
  222. 2004-03-11 Martin Baulig <[email protected]>
  223. * Stack.cs, Queue.cs: Just use `Node' for the nested class, not
  224. `Node<T>' (which would create another type parameter `T'
  225. overriding `T' from the outer class).
  226. 2004-02-23 Martin Baulig <[email protected]>
  227. * Stack.cs, Queue.cs: New files. Hmm, looks like I forgot to add
  228. them to CVS; they're already on my hard disk since December or so.
  229. 2003-12-08 Martin Baulig <[email protected]>
  230. * *.cs: require GENERICS.
  231. 2003-11-08 Ben Maurer <[email protected]>
  232. * *.cs: require NET_2_0 and GENERICS
  233. 2003-11-07 Ben Maurer <[email protected]>
  234. * IComparable.cs, IComparer.cs, IDictionary.cs, IKeyComparer.cs, KeyValuePair.cs
  235. Added.
  236. 2003-11-06 Martin Baulig <[email protected]>
  237. * ICollection.cs, IList.cs, IEnumerator.cs, IEnumerable.cs:
  238. Started to implement the System.Collections.Generic classes.