2007-10-25 Lluis Sanchez Gual <lluis@novell.com>
[mono.git] / mcs / class / corlib / System / ChangeLog
index 4cf8801667c2e0ab5354027e4c75721b353488d4..a350c04bb7f9710de7502be0b7a58543bdf9a113 100644 (file)
@@ -1,3 +1,552 @@
+2007-10-25  Lluis Sanchez Gual  <lluis@novell.com>
+
+       * AppDomain.cs: In DefaultDomain, wrap the returned domain with
+       a proxy if the current domain is not the root domain.
+
+2007-10-24  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Type.cs : implemented ReflectionOnlyGetType().
+
+2007-10-19  Zoltan Varga  <vargaz@gmail.com>
+
+       * AppDomain.cs: Add NET 3.5 DefineDynamicAssembly () overloads.
+
+2007-10-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * Delegate.cs (CreateDelegate): Allow binding instance methods to 
+       delegates with an extra argument, a NET 2.0 feature. Fixes #333647.
+
+Fri Oct 12 08:11:50 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+       * String.cs: reverted unapproved patch that breaks the build.
+
+2007-10-11  Joel Reed  <joelwreed@comcast.com>
+
+       * String.cs: fix String.Split(char[],int,StringSplitOptions)
+       with StringSplitOptions.RemoveEmptyEntries option. The correct 
+       behavior is to remove empty entries while the string is being split, 
+       and always return the maximum number of elements possible.
+       Patch from: Tyler Larson <mono-devel@tlarson.com>
+       
+2007-09-28  Jb Evain  <jbevain@novell.com>
+
+       * Object.cs: Make ToString return Type.ToString ()
+       by default instead of Type.FullName to match .net
+       behavior. Fix #329419.
+
+2007-09-28  William Holmes  <billholmes54@gmail.com>
+
+       * DateTime.cs: Check for AssumeUniversal when parsing string.
+        Fixes bug #324845
+
+2007-09-21  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * Enum.cs: Use regular single quotes in exception message.
+
+2007-09-14  Paolo Molaro <lupus@ximian.com>
+
+       * String.cs: implemented all the string ctors using CreateString
+       methods, so they can run completely in managed code.
+
+2007-09-13  Marek Safar  <marek.safar@gmail.com>
+
+       * DateTimeOffset.cs: Implemented few properties.
+
+2007-09-13  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Decimal.cs, Math.cs : implemented midpoint rounding.
+
+2007-09-13  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Activator.cs : implemented 2.0 CreateInstance()
+         and CreateInstanceFrom () overloads.
+
+2007-09-12  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * Decimal.cs: More explicit text in exception (old and almost 
+       forgetten patch on laptop ;-)
+
+2007-09-10  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * OperatingSystem.cs : implemented ISerializable.
+
+2007-08-28  Zoltan Varga  <vargaz@gmail.com>
+
+       * DateTime.cs: Fix a warning.
+
+2007-08-25  Robert Jordan  <robertj@gmx.net>
+
+       * DateTime.cs: Implement internal To/FromBinary for the 1.1 profile.
+
+2007-08-25  Alan McGovern  <amcgovern@novell.com>
+
+       * DateTime.cs: Reverted DateTime changes.
+
+2007-08-25  Robert Jordan  <robertj@gmx.net>
+
+       * DateTime.cs: Implement internal To/FromBinary for the 1.1 profile.
+
+2007-08-24  Zoltan Varga  <vargaz@gmail.com>
+
+       * Array.cs: Fix min + max / 2 overflows in the BinarySearch and qsort methods.
+       Fixes #82469.
+
+2007-08-23  Marek Safar  <marek.safar@gmail.com>
+
+       * DateTimeOffset.cs: New .NET 3.5 struct for 2.0 mscorlib.
+       
+2007-08-23  Eyal Alaluf <eyala@mainsoft.com>
+
+       * DateTime.cs: Numerous improvements to DateTime.Parse. It handles a lot
+         more possible formats and more correctly at that. It is also now easier
+         to manage the formats DateTime.Parse supports.
+
+2007-08-17  Zoltan Varga  <vargaz@gmail.com>
+
+       * Exception.cs: Make 1.0 and 2.0 object layout the same since this class is seen
+       by the runtime. Fixes #82459.
+
+2007-08-16  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * MonoCustomAttrs.cs: In IsDefined, throw ArgumentNullException if
+       attributeType is null to avoid a SIGSEGV (and match MS). Only partial
+       fix for bug #82431 on 1.0 profile; it fully fixes the problem for the
+       1.0 profile, but more changes (in the runtime) are required for the
+       2.0 profile. Added a FIXME explaining the problem.
+
+2007-08-15  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * MonoCustomAttrs.cs: In IsDefined, only walk inheritance chain if
+       both AttributeUsage.Inherited and inherit are true. Fixed bug #82431.
+
+2007-08-13  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ArgumentException.cs: Ignore zero-length ParamName for Message.
+       Use ParamName property instead of field, since the property is marked
+       virtual.
+       * Array.cs: Provide more meaningful exception message when destination
+       array is not long enough.
+
+2007-08-11  Zoltan Varga  <vargaz@gmail.com>
+
+       * Array.cs: Implement InternalArray__set_Item. Fixes #82345.
+
+2007-08-08  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * IntPtr.cs : oops, do not ignore format in ToString(string).
+
+2007-08-08  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * GC.cs, Exception.cs, IntPtr.cs, Enum.cs, DateTime.cs, Convert.cs
+         ConsoleKeyInfo.cs, String.cs, Object.cs, Attribute.cs,
+         Version.cs : couple of cosmetic 2.0 API fixes.
+
+2007-08-06  Aaron Bockover  <abockover@novell.com>
+
+       * Environment.cs (ReadXdgUserDir): Support the changes to the
+       xdg-user-dirs spec that allow $HOME to start the path; also allows
+       for quotes surrounding the path (Patch ported from Banshee,
+       BGO #461596)
+
+2007-07-28  Miguel de Icaza  <miguel@novell.com>
+
+       * MulticastDelegate.cs (Equals): do not cast to avoid exceptions,
+       instead use the "as" operator, as pointed out by Jesse Jones'
+       tool. 
+
+2007-07-21  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * BitConverter.cs: Fixed exceptions to match MS. Fixed invalid use
+       of ArgumentOutOfRangeException and ArgumentException ctors that take
+       both parameter name and message. In ToString throws ArgumentException
+       instead of ArgumentOutOfRangeException when length is negative, and
+       return zero-length string when length is 0.
+
+2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * AppDomainSetup.cs : fix serialization regression.
+
+2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * AppDomainSetup.cs :
+         MonoTODO AppDomainInitializer as its implementation is wrong.
+
+2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * AppDomainSetup.cs : added missing 2.0 members.
+       * AppDomain.cs : support AppDomainInitializer.
+
+2007-06-06  Miguel de Icaza  <miguel@novell.com>
+
+       * Int16.cs, UInt64.cs, SByte.cs, UInt16.cs, Byte.cs, Int32.cs,
+       Int64.cs, UInt32.cs: Fix for 81775.
+
+       I removed Parse from a Byte.cs and UInt16.cs as in various cases
+       they still depended on UInt32.cs for parsing, there is no reason
+       to keep all of this code duplicated (UInt64 is a different case
+       though). 
+
+       I was hoping for some feedback on whether my tests are correct,
+       but so far no takers.
+
+2007-07-14  Zoltan Varga  <vargaz@gmail.com>
+
+       * ModuleHandle.cs: Implement the generic versions of the ResolveXXXHandle () methods.
+       
+       * ModuleHandle.cs: Add stubs for generic ResolveXXXHandle () methods.
+
+2007-07-10  Alan McGovern <amcgovern@novell.com>
+
+       * Guid.cs: All whitespace should be trimmed from before and
+       after a string passed into the Guid constructor. Fixes #81958
+
+2007-07-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * RuntimeTypeHandle.cs: Fix signatures of == and != operators.
+
+       * ModuleHandle.cs: Add missing 2.0 stuff.
+
+2007-07-08  Zoltan Varga  <vargaz@gmail.com>
+
+       * *.cs: Add missing ComVisible attributes.
+
+       * Delegate.cs: Add missing 2.0 CreateDelegate () methods.
+
+2007-07-07  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * DateTime.cs: In ParseExact, throw ArgumentNullException if format
+       is null; throw FormatException if formats array is empty or if one of
+       items is null or a zero-length string.
+
+2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * Double.cs (Parse): Fix for string ending in garbaga, it was just ignoring it
+       instead of throwing FormatException. Fixes #81777
+
+2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * Double.cs (Parse): Fix for whitespace only strings, it was returning zero 
+       instead of throwing FormatException. Fixes #81630 
+
+2007-07-06  Alan McGovern  <amcgovern@novell.com>
+
+       * DateTime.cs: If the format is null or empty, it should default to 'G'.
+       Fixes bug 81778
+
+2007-07-06  Jonathan Chambers  <joncham@gmail.com>
+
+       * __ComObject.cs: Support ExtensibleClassFactory.
+
+
+2007-07-06  Aaron Bockover  <abockover@novell.com>
+
+       * Environment.cs (InternalGetFolderPath): Try reading some
+       paths from ~/.config/user-dirs.dirs (XDG user dirs spec);
+       always return something for MyPictures
+
+2007-07-04  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Type.cs : 2.0 TypeHandle and ContainsGenericParameters are virtual
+         (required fix for 2.0 reflection API fixes).
+
+2007-06-22  Jonathan Chambers  <joncham@gmail.com>
+
+       * __ComObject.cs: Move interface lookup to unmanaged.
+
+2007-06-21  Zoltan Varga  <vargaz@gmail.com>
+
+       * Environment.cs: Bump corlib version.
+
+       * Delegate.cs: Applied patch from Robert Jordan (robertj@gmx.net). Keep
+       the dynamic method referenced by a delegate alive.
+
+2007-06-05  David Ferguson <davecferguson@gmail.com>
+
+       * DateTime.cs: Changed DateTime.Parse() to throw a FormatException
+         instead of an ArgumentOutOfRangeException for .NET 2.0.  An
+         ArgumentOutOfRangeException is still thrown for .NET 1.1.
+         Fixes bug #77633
+         
+Mon Jun 4 14:52:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+       * String.cs: optimized CompareOrdinal ().
+
+2007-06-02  Zoltan Varga  <vargaz@gmail.com>
+
+       * MonoCustomAttrs.cs (GetBase): Revert last change as it breaks the build.
+       
+       * MonoCustomAttrs.cs (GetBase): Handle properties correctly. Fixes #81797.
+
+2007-05-31  Zoltan Varga  <vargaz@gmail.com>
+
+       * Delegate.cs: Add invoke_impl field. Reorder fields for better cache behavior. Add
+       SetMulticastDelegate icall.
+
+       * MulticastDelegate.cs (CombineImpl): Call SetMulticastDelegate () on newly created
+       delegate.
+
+       * Environment.cs: Bump corlib version.
+       
+2007-05-25  Jonathan Chambers  <joncham@gmail.com>
+
+       * __ComObject.cs: Add overload to GetInterface to allow
+       not throwing exceptions. Fixes as and is operators for COM objects.
+
+2007-05-23  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Array.cs : reverting Array.cs fixes since the runtime depends on
+         those method attributes.
+
+2007-05-23  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Int16.cs UInt64.cs UIntPtr.cs Double.cs CrossAppDomainDelegate.cs
+         ResolveEventHandler.cs IntPtr.cs UnhandledExceptionEventHandler.cs
+         Void.cs AssemblyLoadEventHandler.cs SByte.cs UInt16.cs DateTime.cs
+         Byte.cs TimeSpan.cs Decimal.cs Int32.cs Delegate.cs
+         AppDomainInitializer.cs MulticastDelegate.cs Int64.cs
+         EventHandler.cs Single.cs UInt32.cs AsyncCallback.cs :
+         cosmetic attribute fixes (ComVisible/Serializable).
+
+2007-05-22  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Convert.cs : completed 2.0 (ToBase64CharArray).
+       * String.cs : removed MonoTODO.
+       * DataMisalignedException.cs : removed extra .ctor().
+       * Array.cs : internalize extra members. Fixed reliability contract.
+
+2007-05-17  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DateTime.cs : added support for 'K'.
+
+2007-05-11  Jonathan Chambers  <joncham@gmail.com>
+
+       * __ComObject.cs: No need to call CoInitialize anymore since
+       Thread.ApartmentState was implemented.
+
+2007-05-11  Jeffrey Stedfast  <fejj@novell.com>
+
+       Fixes bug #81540
+
+       * TermInfoDriver.cs (WriteSpecialKey): Actually clear the screen
+       and reset the cursor position to 0,0 when the key is
+       ConsoleKey.Clear.
+       (Clear): Reset the cursor position to 0,0
+
+2007-05-09  Marek Safar  <marek.safar@gmail.com>
+
+       * MulticastDelegate.cs: Fixed operators logic.
+
+2007-05-09  Marek Habersack  <mhabersack@novell.com>
+
+       * DateTime.cs: add a format used in ASP.NET QuickStarts 
+         ("HH':'mm tt MM/dd/yyyy")
+
+2007-04-30  Zoltan Varga  <vargaz@gmail.com>
+
+       * Type.cs (Equals): Allow a null argument.
+
+2007-04-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * Environment.cs (StackTrace): Avoid skipping a frame to be
+       compatible with MS.
+
+2007-04-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DateTimeTest.cs : looks like 'F' even removes preceding '.' ...
+
+2007-04-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DateTime.cs : implemented new-2.0 'F' pattern letter.
+
+2007-04-24  Jeffrey Stedfast  <fejj@novell.com>
+
+       Fixes the last of the bugs listed in bug #77525
+
+       * TermInfoDriver.cs (ctor): For known terminal types, set color16
+       to true (since we know they support 16 colours).
+       (Init): set the setlfgcolor and setlbgcolor format strings.
+       (BackgroundColor): Use the appropriate formatter string for
+       setting the bgcolor.
+       (ForegroundColor): Use the appropriate formatter string for
+       setting the fgcolor.
+       (TranslateColor): Now takes (and sets appropriately) an output
+       'bool light' argument.
+
+2007-04-24  Marek Habersack  <mhabersack@novell.com>
+
+       * TermInfoDriver.cs: don't include debug stuff by default - it
+       breaks multithreaded applications (they all attempt to open
+       console.log and fail because of sharing violation).
+
+2007-04-23  Jeffrey Stedfast  <fejj@novell.com>
+
+       * TermInfoDriver.cs (ReadKeyInternal): Since our input stream is
+       buffered, check if it has more buffered input in addition to our
+       timeout check. This makes it such that we will actually correctly
+       match multi-char escape sequences.
+       (Read): Changed the logic slightly wrt 'fresh' echoing. Once we
+       encounter a fresh char, all chars afterward should also be
+       considered 'fresh' even if 'fresh' is returned as false later.
+       (ReadLine): Same logic here.
+
+2007-04-23  Jeffrey Stedfast  <fejj@novell.com>
+
+       Fixes bug #80702 (via getting rid of the casting) and more.
+
+       The following change makes it such that even if an application
+       calls Console.SetOut() with its own output stream, we can still
+       properly echo user-input from stdin to the real stdout.
+
+       * TermInfoDriver.cs (ctor): Grab a reference to the original
+       Console.stdout so we can be sure we always echo to console.
+       (QueueEcho): No need to cast Console.stdout anymore.
+       (EchoFlush): Same.
+       (WriteConsole: Here too.
+
+2007-04-20  Jeffrey Stedfast  <fejj@novell.com>
+
+       * TermInfoDriver.cs (QueueEcho): Renamed from Echo(char). Use
+       CStreamWriter's new InternalWriteChars().
+       (Echo): Since we can no longer go thru CStreamWriter's ::Write()
+       method that does checks for special keys, do the checks here
+       instead - if it is a special key, flush the echo buffer and then
+       write the special key.
+       (EchoFlush): Also updated to use CStreamWriter's new
+       InternalWriteChars().
+       (Read): Use the Echo(key) variety.
+       (ReadKey): Same.
+       (ReadLine): And here too.
+
+       * CStreamWriter.cs (InternalWriteChars): Write a char array
+       directly to stdout. Do not pass Go, do not collect $200.
+
+2007-04-19  Jeffrey Stedfast  <fejj@novell.com>
+
+       Optimization for echoing keypresses back to the console when the
+       user pastes a block of text rather than manually typing text.
+
+       * TermInfoDriver.cs (Echo): A new convenience function for echoing
+       characters/keys back to the console with an optimization twist and
+       a bit of lime.
+       (EchoFlush): Flush our pending echo queue
+       (Read): Make use of Echo() both for convenience and for speed.
+       (ReadLine): Same.
+       (ReadKey): Make use of Echo()/EchoFlush() for simplicity of code,
+       but we won't get the same optimization out of it.
+
+2007-04-19  Jeffrey Stedfast  <fejj@novell.com>
+
+       Fix for bug #81373.
+
+       * TermInfoDriver.cs: Changed 'buffer' to be a char array instead
+       of a byte array and stdin is now a StreamReader rather than a
+       Stream.
+       (Init): Setup stdin as a StreamReader using Console.InputEncoding
+       as our encoding.
+       (GetCursorPosition): Use stdin.Read() instead of the old
+       ReadByte() code.
+       (AddToBuffer): Updated to allocate the correct array type for
+       'buffer'.
+       (ReadKeyInternal): Updated to use stdin.Read() rather than
+       stdin.ReadByte(). This is the main reason we needed to use chars
+       instead of bytes. Characters entered by the user need to be
+       represented as unicode chars and not bytes like before.
+       (Match): Now takes a char[] buffer argument instad of byte[] and
+       compares the input buffer to the byte-map as chars.
+
+2007-04-18  Jeffrey Stedfast  <fejj@novell.com>
+
+       Fixes bug #81159: behave the same as mscorlib
+
+       * TermInfoDriver.cs (ReadKeyInternal): Now has an 'out bool fresh'
+       argument which is used to tell our caller if the key was freshly
+       read from the console or pre-buffered.
+       (Read): New implementation of Console.In.Read(char[], int, int)
+       that behaves exactly like mscorlib's implementation.
+       (ReadKey): Updated for the ReadKeyInternal() API change - only
+       echo if the key was fresh.
+       (ReadLine): Same.
+
+       * CStreamReader.cs (Read): Call the new TermInfoDriver.Read()
+
+2007-04-17  Jeffrey Stedfast  <fejj@novell.com>
+
+       * CStreamWriter.cs (Write): Optimized this some more, we don't
+       need a temporary buffer. Just blit chunks of the src buffer
+       instead.
+
+       * CStreamReader.cs (Read): Need to increment our array index so
+       that we don't store each byte read into the same
+       position. Discovered this while testing bug #81159 (which appears
+       to work as expected with current svn, other than this buglet).
+
+       * TermInfoDriver.cs (CursorTop::set): SetCursorPosition() sets our
+       internal cursorTop variable, so no need to explicitly set it again
+       after calling SetCursorPosition().
+       (CursorLeft::set): Same idea here.
+
+2007-04-17  Jeffrey Stedfast  <fejj@novell.com>
+
+       * TermInfoDriver.cs (ReadLine): Implemented a workaround for
+       IronPython going behind System.Console's back when writing text to
+       the screen (it doesn't seem to use Console.stdout, instead it
+       creates its own file stream or something which just so happens to
+       write to the same file descriptor) by querying for the cursor
+       position in ReadLine(), so we lose no real performance (since we
+       have to wait for user input anyway).
+
+2007-04-17  Jeffrey Stedfast  <fejj@novell.com>
+
+       * TermInfoDriver.cs (Init): SetEcho(false), we'll be manually
+       echoing from now on (ReadLine() has already been doing this, might
+       as well make ReadKey() behave the same).
+       (GetCursorPosition): No longer need to disable/re-enable echo
+       anymore since it is now always false.
+       (ReadKey): Manually echo the key back to the console just like
+       ReadLine() has been doing (in the interest of consistancy) if
+       intercept is false.
+       (ReadLine): No longer need to disable/re-enable echo, echo is
+       always off now. Also, fixed what appears to have been a typo.
+
+2007-04-17  Jeffrey Stedfast  <fejj@novell.com>
+
+       * TermInfoDriver.cs (IsSpecialKey): Oops, Enter should not be
+       treated as a special key. Just update out cursor state here like
+       we do with normal chars.
+       (WriteSpecialKey): Enter is a no-op now because it is not treated
+       as a special key anymore.
+
+       * CStreamWriter.cs (Write): Only flush our buffer if j > 0
+
+2007-04-17  Jeffrey Stedfast  <fejj@gnome.org>
+
+       Turns out my last patch was broken wrt handling some special keys
+       like Backspace and anything else that changed the cursor position
+       in some non-standard way.
+
+       * CStreamWriter.cs (Write): Instead of calling NotifyWrite(), we
+       instead need to check IsSpecialKey(), and, if so, flush whatever
+       we have saved in our temporary buffer and then call
+       WriteSpecialKey(). Otherwise go on as we did in the last patch.
+
+       * TermInfoDriver.cs (NotifyWrite): Broken up into 2 functions:
+       (IsSpecialKey): Returns true if we need to do some special voodoo
+       for this key
+       (WriteSpecialKey): Write the special key (using whatever voodoo
+       necessary)
+
+2007-04-16  Jeffrey Stedfast  <fejj@gnome.org>
+
+       * CStreamWriter.cs (Write): Instead of writing 1 char at a time,
+       copy the bytes into a temporary char array (with a fixed max size)
+       so that we can minimize the number of Write() calls we make on the
+       underlying stream (and thus on the write() system call).
+
+2007-04-17  Alp Toker  <alp@atoker.com>
+
+       * Array.cs: Make GetRank() icall private. Subclasses should use the
+       public Rank property.
+
 2007-04-16  Jeffrey Stedfast  <fejj@novell.com>
 
        * WindowsConsoleDriver.cs: Get rid of unused Echo property.