Merge pull request #656 from LogosBible/collection_lock
[mono.git] / mcs / class / corlib / System / ChangeLog
index 91fc674ea6250c75cf1a1b13066a62cd230dd256..be02e0743ab07038577df7229d90569ba40cd378 100644 (file)
@@ -1,3 +1,455 @@
+2010-07-21  Miguel de Icaza  <miguel@novell.com>
+
+       * Array.cs: Fixes a couple of other cases where we were missing
+       the handling for null values, fixes a broken case of null
+       handling. 
+
+2010-07-21  Jb Evain  <jbevain@novell.com>
+
+       * AppDomain.cs: add IsFullyTrusted stub.
+
+2010-07-20  Miguel de Icaza  <miguel@novell.com>
+
+       * Array.cs: fast path for the case where the pivot is null;
+       Fixes the crash on the build.
+
+2010-07-17  Miguel de Icaza  <miguel@novell.com>
+
+       * Array.cs: Fix for bug #622101, this reverts portions of the
+       broken patch that was introduced as part of the fix for #351638
+       which was mostly a set of optimizations, but some were just
+       wrong. 
+
+2010-07-14  Miguel de Icaza  <miguel@novell.com>
+
+       * DateTime.cs: This is the Retina Display of DateTime structs.
+       Unlike our previous Chubby DateTime that took 16 bytes of memory,
+       this slim version of DateTime only uses 8 bytes.
+
+       This fixes a couple of bugs 592221 and 622127.   Additionally, it
+       turns out that the original Microsoft documentation did not spell
+       this out, but newer versions of the docs state that SetConstant on
+       a FieldBuilder should be capable of serializing DateTimes (which
+       is where this issue came from).
+
+       This is necessary to fix two crashers exposed by the CLR test
+       suite. 
+
+2010-07-08 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * DateTime.cs: allow between 1 and 7 digits after the dot.
+       Fixes bug #594559.
+
+2010-07-05 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * TimeSpan.cs: two consecutive colons produce an error now.
+       Fixes bug #598467.
+
+2010-06-29  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * Attribute.cs: Fix GetHashCode to match MS behavior (needed for
+       Moonlight)
+
+2010-06-25  Zoltan Varga  <vargaz@gmail.com>
+
+       * Array.cs (SortImpl): Fix the 'fast path' which used 'as' to cast objects so
+       it never sorted the items array if it was not a object[]. Fixes #616416.
+
+2010-06-22  Jb Evain  <jbevain@novell.com>
+
+       * Guid.cs: properly throw if the parsed guid has more data after
+       parsing a correct guid. Fixes #616050.
+
+2010-06-21 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * Environment.cs: bump up corlib version.
+
+2010-06-21 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * Type.cs (StructLayoutAttribute): This raises on v4.
+
+       * MonoType.cs (StructLayoutAttribute): Implement this
+       under v4.
+
+2010-06-21  Jb Evain  <jbevain@novell.com>
+
+       * TimeSpan.cs: add the net_4_0 parsing code in Moonlight.
+
+2010-06-21  Jb Evain  <jbevain@novell.com>
+
+       * Guid.cs: bring Parse/ParseExact/TryParse/TryParseExact in
+       Moonlight as well.
+
+2010-06-21  Jb Evain  <jbevain@novell.com>
+
+       * TypeAccessException.cs: TypeAccessException is part of moonlight 4.
+
+2010-06-21  Jb Evain  <jbevain@novell.com>
+
+       * Version.cs: bring Parse/TypeParse in for moonlight.
+
+2010-06-21  Jb Evain  <jbevain@novell.com>
+
+       * Array.cs: implement IStructuralComparable and IStructuralEquatable
+       on moonlight as well.
+
+2010-06-16  Miguel de Icaza  <miguel@novell.com>
+
+       * Random.cs: Do not call Math.Abs blindly when we get an int
+       value, as Math.Abs (Int32.MinValue) throws an overflow exception,
+       and our constructor uses Environment.TickCount which means that
+       eventually we will get a crash. 
+
+       Fixes #605797
+
+2010-06-15  Jonathan Pryor  <jpryor@novell.com>
+
+       * Convert.cs: Instead of manually checking for NaN, Infinity, etc.,
+         use `checked` expressions to generate OverflowExceptions.  Ensure
+         that OverflowExceptions are generated for needed types.  Fixes #596339
+
+2010-06-08  Jonathan Pryor  <jpryor@novell.com>
+
+       * String.cs: Fix String.Split(String[],int,StringSplitOptions) so that:
+         - it properly obeys the 'count' parameter; Fixes #601772.
+         - "...".Split(new[]{"."}, 2, StringSplitOptions.RemoveEmptyEntries).Length==0
+         - "A..".Split (new String[] { "." }, 2, StringSplitOptions.RemoveEmptyEntries) == new[]{"A"}
+         - Remove duplicative array handling code by using List<String>.
+
+2010-06-04  Damien Diederen  <dd@crosstwine.com>
+
+       * Char.cs (GetUnicodeCategory): Handle astral planes
+       in (string,int) overload.
+
+       If the string element at index starts a surrogate pair, we decode
+       the full codepoint and "query" the higher planes of the database.
+
+       This commit fixes bug 480178.
+
+       CAUTION: This commit depends on the following runtime change:
+
+         System.Char icall: New Unicode category tables compatible with
+         MS .NET.
+
+       Without it, Mono will suffer a low-level (internal call) crash
+       when initializing System.Char.
+
+       COMPATIBILITY
+
+       The updated Mono runtime as been verified to produce the same
+       results as Microsoft's; here are the MD5 sums of their Unicode
+       category database dumps (generated via create-category-table
+       --dump, compiled and executed under the relevant runtime):
+
+           eba45e00acdc82f9a08873465110aef4  v2.0.50727.dump
+           eba45e00acdc82f9a08873465110aef4  v3.5.21022.dump
+           56fd5c828fbb9083693835680667fd2c  v4.0.30319.dump
+
+           eba45e00acdc82f9a08873465110aef4  gmcs.dump
+           56fd5c828fbb9083693835680667fd2c  dmcs.dump
+
+       These results will naturally differ if support for .NET v4 or
+       astral planes is disabled when building the runtime.  Note, also,
+       that these are different from the results produced by Mono prior
+       to the introduction of these changes, even for the BMP.
+
+       Other versions of the internal database can be easily generated
+       using create-category-table(.cs), but this currently requires a
+       rebuild.
+
+       PERFORMANCE
+
+       Direct array indexing is mandatory for code points in the
+       U+0000..U+FFFF range; as pointed out by Andreas Nahr, performing
+       bi-level lookups in the Char.Is*(char) predicates cause the JIT to
+       stop inlining them and results in an important performance drop.
+
+       The simple data access pattern used for higher planes, suggested
+       by Paolo Molaro, is fairly efficient but currenly only used by
+       this non-optimized method.
+
+2010-06-04  Jb Evain  <jbevain@novell.com>
+
+       * Exception.cs: add stub for SerializeObjectState.
+
+2010-06-03  Jb Evain  <jbevain@novell.com>
+
+       * AppDomain.cs: add net_4_0's PermissionSet property.
+
+2010-05-31 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * Lazy.cs: Remove some stupid leftover from previous changes.
+
+2010-05-27  Jb Evain  <jbevain@novell.com>
+
+       * AppDomain.cs (DefineDynamicAssembly): add new net_4_0 overloads.
+
+2010-05-17  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Enum.cs : TryParse() should raise ArgumentException when the
+         type parameter is not an enum. Fixed bug #604134
+
+2010-05-11 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * GC.cs: Add EPHEMERON_TOMBSTONE reandonly variable.
+
+2010-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * GC.cs: Add new register_ephemeron_array icall.
+
+2010-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TimeSpan.cs: Support custom formats in ToString().
+
+2010-04-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
+
+       * Lazy.cs: Include in Moonlight build.
+
+2010-04-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TimeSpan.cs: The final 4.0 release removed the restriction of
+       preceding zeroes when parsing, and it also added 't' and 'T' as valid
+       formats equivalent to 'c' (default).
+
+2010-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * MonoType.cs (GetInterface): Compare against the name
+       of the generic type definition.
+
+       Fixes #484246.
+
+2010-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * MonoCustomAttrs.cs (GetBasePropertyDefinition): Use
+       GetBaseMethod instead of GetMethodDefinition otherwise
+       we skip intermediate overloads.
+
+       Fixes #499569.
+
+2010-04-16  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * Environment.cs: Ensure elevated trust when calling
+       GetFolderPath on Moonlight
+
+2010-04-16  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * Action.cs: SL4 moved some Action in mscorlib
+       * Funcs.cs: SL4 moved some Func<> in mscorlib
+       * String.cs: Make IsNullOrWhiteSpace available, internally, 
+       before NET_4_0 (or SL4) since it's proving useful.
+
+2010-04-15  Jb Evain  <jbevain@novell.com>
+
+       * Guid.cs: rework the Guid parser to implement the net_4_0
+       [Try]ParseExact methods.
+
+2010-04-15  Jérémie Laval  <jeremie.laval@gmail.com>
+
+       * Tuple.cs:
+       * Tuples.cs: Add BOOTSTRAP_NET_4_0 define
+
+2010-04-13 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * MonoCustomAttrs.cs: Raise an exception if the runtime
+       returned a null cattr.
+
+2010-04-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * Convert.cs (ToInt32): Do a checked cast. Fixes #596339.
+
+2010-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TimeSpan.cs: Implement support for custom formats parsing. This
+       should as well include the bits required to easily implement the same
+       for ToString methods, when the final release fixes the mess we found
+       in the latest beta.
+
+2010-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * Type.cs: Add ResolveInternal virtual call that
+       resolves a given type to it's concrete type.
+
+2010-03-07 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * Enum.cs (GetInfo): Don't use isinst tests as they can
+       return true for both signed and unsigned version of a
+       primitive type.
+
+       * Enum.cs (FindPosition): Ditto.
+
+2010-04-06  Marek Safar  <marek.safar@gmail.com>
+
+       * Array.cs: Don't make read-only collection read-only.
+
+2010-03-31  Miguel de Icaza  <miguel@novell.com>
+
+       * UInt32.cs, Int64.cs, UInt64.cs: cope with the case that the
+       IFormatProvider is not a NumberFormatInfo, preventing a crash.
+       This was already handled by Int32.cs, but these other routines
+       were never properly updated. 
+
+       Fixes #588356
+
+       * DateTimeOffset.cs: Add support for format K in DateTimeOffset,
+       fixes bug 589227.
+
+       * DateTime.cs: Add serialization support, fixes #588198.
+
+       Perhaps we should change the format as well since this is the new
+       format serialized anyways (see bug 592221, it saves 4 bytes of
+       memory as well)
+
+2010-03-30  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * InvalidTimeZoneException.cs
+       * TimeZoneNotFoundException.cs:
+               Fix Moonlight since these types now reside in mscorlib
+               (instead of System.Core) for NET_4_0 and also for SL4
+
+2010-03-30  Jb Evain  <jbevain@novell.com>
+
+       * MonoType.cs: let the binder reorder arguments when invoking
+       params methods.
+       * Activator.cs (CreateInstance): use BindToMethod instead of
+       SelectMethod to make sure that params constructors are properly called.
+
+       Fixes #591877
+
+2010-03-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TimeSpan.cs: Implement all the overloads of both TryParseExact and
+       ParseExact methods, by detecting the specific semantic changes in the
+       parse process, so we can properly re-utilize our new approach. This
+       included indicating our parser its culture sensitiveness, usage of colon as
+       day separator fallback or as a precise separator, and other minor bits.
+       We are only missing composite parsing right now.
+
+2010-03-29  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * AppDomainSetup.cs: Add new (FX4 and SL4) SetCompatibilitySwitches
+       method (empty is good enough for moonlight testing)
+       * Environment.cs: Expose MyVideos in Moonlight build
+
+2010-03-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TimeSpan.cs: We always give higher precedence to the first found
+       error, but for versions before 4.0 we need to give a higher one to
+       per-element overflow *specifically* (as opposed to int32 overflow,
+       which remains the same). This is not needed for 4.0, so report
+       per-element overflow as a normal error. 
+       This should fix a compatibility case, as well as simplifying the code.
+
+2010-03-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * MonoAsyncCall.cs: remove unused field.
+       * Delegate.cs: add new IsTransparentProxy property.
+       * MulticastDelegate.cs: add new HasSingleTarget property.
+       * Environment.cs: bump up corlib version.
+
+2010-03-25  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * AppDomain.cs: Add new properties that are in both FX4 and SL4
+       since Moonlight needs them (for testing purpose).
+       * Environment.cs: FailFast overloads are present in SL4 (and also
+       needed for testing Moonlight)
+
+2010-03-24  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * AppDomain.cs: Change default value from null to false for new
+       (NET_4_0 and SL4) IsCompatibilitySwitchSet. Not sure when (or even
+       if) it can return null (at least not when testing SL4 RC). 
+       Fix DRT198
+
+2010-03-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TimeSpan.cs: When parsing ticks, we used to only parse
+       the first 7 digits, and more than that would cause a FormatException -
+       starting in 4.0 we need to throw an OverflowException, however. Also,
+       for hours/minutes/seconds, two or more preceding zeroes will cause an
+       OverflowException as well.
+
+2010-03-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TimeSpan.cs: Create a new Parser.Execute method for 4.0 -and use the
+       previous impl for 2.0-, to handle the new semantics gracefully -
+       specifically the new 'dd:hh:mm:ss' format and related bits, instead of
+       of a ton of #ifdef blocks. Remove any 4.0 bits from the previous
+       version as well, to keep it clean.
+
+2010-03-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TimeSpan.cs: Move the error detection code to a separate method.
+       This way depending on the version we decide what error takes
+       precedence: OverlowException in 2.0, and FormatException in 4.0. This
+       also lets us keep the Execute() code cleaner and easier to understand.
+
+2010-03-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TimeSpan.cs: Put the error info in a single field, to make it easier
+       to preserve the very first error we get while parsing, and discard the
+       next ones. This will help us in a pair of cases where we were
+       overriding the previous error and reporting the wrong exception.
+
+2010-03-17  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * String.cs: SL4 includes new IsNullOrWhiteSpace and Concat/Join 
+       overloads.
+
+2010-03-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TimeSpan.cs: TimeSpan is actually implementing IFormattable.
+
+2010-03-17  Rolf Bjarne Kvinge  <RKvinge@novell.com>
+
+       * AppDomain.cs: Added MonoTODO for IsCompatibilitySwitchSet.
+
+2010-03-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TimeSpan.cs: In 4.0 the Parse/TryParse methods always try to use its
+       associated CultureInfo.NumberFormat.NumberDecimalSeparator value, as well as
+       providing backwards compatibility by also supporting '.' as the
+       separator.
+
+2010-03-16  Jb Evain  <jbevain@novell.com>
+
+       * AppDomainSetup.cs
+       * Tuple.cs
+       * ChangeLog
+       * Exception.cs
+       * String.cs
+       * Console.cs
+       * Tuples.cs
+       * Activator.cs
+       * AppDomain.cs:
+               Use MOONLIGHT symbol to disambiguate MonoTouch and Moonlight code.
+
+2010-03-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
+
+       * Enum.cs: Added a few 4.0 api to Moonlight.
+
+2010-03-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
+
+       * AppDomain.cs: Added IsCompatibilitySwitchSet for .NET 4.0 and Moonlight.
+
+2010-03-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TimeSpan.cs: In 4.0 if the part parsed as days exceeds the allowed
+       range -this is, 23-, then it is processed as days instead - opposed to
+       2.0, where we are throwing an OverflowException.
+
+2010-03-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TimeSpan.cs: Make the colon parsing optional -and adjust the name to
+       reflect it-, so we can properly parse the case where we only have the
+       hours and minutes. This subtle bug was hidden before, since a string
+       such "10:12" would be parsed correctly, but "10:12  " (trailing white
+       space) was getting a FormatException.
+
+2010-03-12  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * Tuple.cs, Tuples.cs: Add them to NET_2_1 since they are parts
+       of SL4
+
 2010-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
 
        * TimeSpan.cs: Implement 4.0 overloads of TryParse/Parse.