* Makefile: Don't build make-map.exe.
[mono.git] / mcs / class / Mono.Posix / Mono.Unix / ChangeLog
index 268db71580b9adba01ca502997e18e70305978a4..1b60fc20990cb601b66e5215642d1b6f6fd26e0d 100644 (file)
@@ -1,3 +1,269 @@
+2006-10-24  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * MapAttribute.cs: Moved to ../Mono.Unix.Native/MapAttribute.cs.
+
+2006-08-21  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * UnixStream.cs: .Close() shouldn't close(2) the fd unless owner==true;
+         .Flush() should be a no-op (as System.IO.Stream.Flush doesn't gaurantee
+         that .Flush() actually flush to disk, and .Flush() slows things down a
+         lot); see: http://joeshaw.org/2006/08/21/415.
+
+2006-08-16  Alp Toker  <alp@atoker.com>
+
+       * UnixEndPoint.cs:
+       * AbstractUnixEndPoint.cs: Second half of the fix for #79084.
+               Add support for the abstract namespace, and update existing file-based
+               UnixEndPoint (de)serialization to reflect changes in the runtime.
+
+2006-07-02  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * UnixSymbolicLinkInfo.cs: Oops.  CreateSymbolicLinkTo() should create
+         FullPath, not OriginalName.  This was fixed in one overload in January,
+         but I missed an overload. :-/
+
+2006-07-02  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * UnixPath.cs: Follow .NET's System.IO.Path.Combine() behavior, and "reset"
+         the generated path if any argument beings with a path root --
+         UnixPath.Combine("/a", "/b") should return "/b", not "/a/b".  Fixes #78580.
+
+2006-04-21  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * UnixFileSystemInfo.cs: rename Create() to GetFileSystemEntry(), and make
+         it public (so that other's don't need to worry about the
+         Syscall.lstat()-and-switch to create a UnixFileSystemInfo instance).
+       * UnixDirectoryInfo.cs, UnixSymbolicLinkInfo.cs:
+         s/Create/GetFileSystemEntry/g (to cope with above change).
+
+2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * UnixEndPoint.cs: added GetHashCode/Equals.
+
+2006-03-06  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * UnixDriveInfo.cs: Remove requirement that mountPoints be avaible via
+         getfsfile(3).  This isn't always the case -- in particular drives mounted
+         via HAL and other mechanisms won't be listed in /etc/fstab, and thus won't
+         be returned via getfsfile(3).  If getfsfile(3) fails, then we "guess" on
+         the drive format and volume label.
+       * UnixStream.cs: RefreshStat() should assert that the instance hasn't been
+         disposed.
+       * UnixEnvironment.cs (GetConfigurationValue, GetConfigurationString): Fix
+         error checking.
+
+2006-02-23  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * UnixFileSystemInfo.cs: Create() should return a UnixFileInfo if the file
+         doesn't exist.  This allows callers to use UnixFileInfo.Exists to see if
+         the file exists, and behaves more rationally e.g. if the directory
+         contents changes while calling UnixDirectoryInfo.GetFileSystemEntries(),
+         we'll get a UnixFileInfo entry that doesn't exist instead of an exception
+         terminating the entire array creation.
+       * UnixSymbolicLinkInfo.cs: [Obsolete] the Contents property -- this property
+         *always* creates a new object if HasContents=true, and since a
+         UnixFileSystemInfo instance is (104+2*(sizeof(void*))+1) bytes (~113 bytes
+         on 32-bit platforms), we don't want to create these frequently.  Add a
+         GetContents() method as the replacement, to make it (slightly) more
+         explicit that information won't be cached (and thus should be cached by
+         the caller, if appropriate).  GetContents() throws an exception if
+         HasContents=false instead of returning null; this change brings the
+         implementation in line with the documentation.
+
+2006-02-18  Alp Toker  <alp@atoker.com>
+
+       * UnixEndPoint.cs: Avoid truncation of last two bytes of SocketAddress
+       string
+
+2006-01-26  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * UnixMarshal.cs: Check for null arguments in PtrToString() and
+         PtrToStringArray().
+
+2006-01-24  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * UnixMarshal.cs (StringToHeap): Return IntPtr.Zero if `s' is null.
+
+2006-01-24  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * UnixMarshal.cs (StringToHeap): Check for null arguments.
+
+2006-01-20  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * UnixDriveInfo.cs: Properties should generate an InvalidOperationException,
+         not an IOException.  Users can use IsReady to avoid exception generation.
+       * UnixIOException.cs: Create a custom message that embeds the error name 
+         within the text, e.g. "Permission denied [EACCES]."
+       * UnixSymbolicLinkInfo.cs: This really should create the file FullPath, not
+         OriginalPath.  Created files shouldn't ever be relative to the current
+         working directory, as this can change at any time.
+
+2006-01-15  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * UnixUserInfo.cs: The UnixUserInfo(Native.Passwd) constructor and 
+         ToPasswd() should clone the underlying Native.Passwd, so
+         that it doesn't get changed from underneath it.
+       * UnixGroupInfo.cs: The UnixGroupInfo(Native.Group) constructor should also
+         clone the provided Native.Group instance.
+
+2006-01-14  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * UnixGroupInfo.cs: ToGroup() should clone the underlying Native.Group, so
+         that it doesn't get changed from underneath it.
+
+2006-01-13  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * Catalog.cs, UnixMarshal.cs: Throw `UnixIOException(Native.Errno.ENOMEM)`
+         instead of System.OutOfMemoryException.  OOME should be reserved for use 
+         by the CLR (according to FxDG).
+
+2006-01-12  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * UnixPath.cs: Add ReadLink() and TryReadLink() methods.
+
+2006-01-12  Miguel de Icaza  <miguel@novell.com>
+
+       * PeerCred.cs: Do not define PeerCredData as this is a structure
+       known to the runtime.  Instead use the Mono.Posix.PeerCredData
+       internal class. 
+
+2006-01-10  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Catalog.cs: Don't use
+         System.Runtime.InteropServices.Marshal.StringToHGlobalAuto(), use
+         UnixMarshal.StringToHeap().  We require that the converted string be in
+         UTF-8 format, but .NET's Marshal.StringToHGlobalAuto converts to the local
+         code page, *not* UTF-8 (Mono's does UTF-8).  UnixMarshal.StringToHeap
+         *always* does UTF-8, so use that instead.
+
+2006-01-09  Jonathan Pryor <jonpryor@vt.edu>
+
+       * FileTypes.cs: Remove [Flags] attribute -- these aren't bitfield values.
+       * UnixFileSystemInfo.cs: Fix Is<<Type>> properties -- before it would
+         erroneously say that a symlink was a character device.  (This is because
+         device values are *not* [Flags] values, but code was assuming they were.)
+       * UnixGroupInfo.cs: Clone the string[] returned from GetMemberNames().  We
+         don't want callers to change the underlying list.
+
+2006-01-07  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixMarshal.cs: *Actually* put things in alphabetical order (like the
+         comment says).  I can speak english, really I can.
+
+2006-01-06  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Catalog.cs: s/libintl/intl/g, since intl.dll is used by GTK+ on Windows,
+         not libintl.dll (according to
+         http://www.gimp.org/~tml/gimp/win32/downloads.html).
+
+2006-01-03  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixMarshal.cs (CreateExceptionForError): Don't map ENOMEM to
+         System.OutOfMemoryException.  OOME should be reserved for use by the CLR.
+         Return a UnixIOException instead (default behavior).
+
+2006-01-02  Jonathan Pryor <jonpryor@vt.edu>
+
+       * StdioFileStream.cs: Shut up FxCop - add a GC.KeepAlive to 
+         AssertNotDisposed().
+       * UnixClient.cs, UnixListener.cs: Use System.MarshalByRefObject as the base
+         class.  These types implement IDisposable and have a finalizer, so if an
+         instance of these types were sent to another AppDomain they'd previously 
+         marshal by copy, which could lead to a double release of an unmanaged
+         resource -- potential badness.  Using MarshalByRefObject fixes this.
+
+2006-01-02  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixMarshal.cs: s/EACCESS/EACCES/g.  I can't read.
+
+2006-01-02  Jonathan Pryor <jonpryor@vt.edu>
+
+       * StdioFileStream.cs, UnixDirectoryInfo.cs, UnixEnvironment.cs, 
+         UnixFileInfo.cs, UnixFileSystemInfo.cs, UnixGroupInfo.cs,
+         UnixIOException.cs, UnixMarshal.cs, UnixProcess.cs, UnixStream.cs,
+         UnixSymbolicLinkInfo.cs, UnixUserInfo.cs: Remove Obsolete API.
+       * CdeclFunction.cs, IncludeAttribute.cs, Stdlib.cs, Syscall.cs,
+         UnixConvert.cs, UnixDirectory.cs, UnixFile.cs, UnixGroup.cs, 
+         UnixUser.cs: Delete.
+       * UnixPath.cs: Remove InvalidPathChars; use GetInvalidPathChars() instead.
+       * FileTypes.cs: Remove Obsolete API
+
+2006-01-02  Jonathan Pryor <jonpryor@vt.edu>
+
+       * FileAccessPermissions.cs: Remove UserMask, GroupMask, OtherMask values.
+       * FileSpecialAttributes.cs: Remove AllAttributes member; it shouldn't be
+         public.  Use UnixFileSystemInfo.AllSpecialAttributes instead.
+       * StdioFileStream.cs: Open files in binary mode, not text;
+         Fix exception message for StdioFileStream(path, mode) mode param check.
+       * UnixDirectoryInfo.cs: Add Create(FileAccessPermissions) overload; change
+         GetFileSystemEntries() to include the directory name that the files came
+         from (otherwise they're in the current working direcetory, which they
+         probably aren't).
+       * UnixFileInfo.cs: Add Create(FileAccessPermissions) overload; Add better
+         argument checking to several Open() overloads.
+       * UnixFileSystemInfo.cs: Add AllSpecialAttributes, AllFileTypes members;
+         FullPath member should invalidate instance if path changes; Change return
+         type of GetFileStatus for maintenance/better documentation; ToStat()
+         should ensure that the instance is valid first.
+       * UnixMarshal.cs: Add additional Errno values to CreateExceptionForError();
+         reformat CreateExceptionForError for maintenance.
+       * UnixPath.cs: Obsolete InvalidPathChars -- FxCop never liked it, and now I
+         know why it didn't like it (thank you Framework Design Guidelines!).
+       * UnixStream.cs: Use UnixFileSystemInfo.AllSpecialAttributes, not 
+         FileSpecialAttributes.AllAttributes (which was removed).
+       * UnixSymbolicLinkInfo.cs: Change return type of GetFileStatus().
+
+2005-12-28  Jonathan Pryor <jonpryor@vt.edu>
+
+       * FileHandleOperations.cs: Check for null references.
+
+2005-12-28  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixMarshal.cs: Errno.EBADF should also trigger a ArgumentException.
+
+2005-12-27  Jonathan Pryor <jonpryor@vt.edu>
+
+       * FileHandleOperations.cs, FileTypes.cs, Stdlib.cs, Syscall.cs, 
+         UnixConvert.cs, UnixDirectory.cs, UnixDirectoryInfo.cs, UnixDriveInfo.cs, 
+         UnixEnvironment.cs, UnixFile.cs, UnixFileInfo.cs, UnixFileSystemInfo.cs,
+         UnixGroup.cs, UnixGroupInfo.cs, UnixIOException.cs, UnixMarshal.cs, 
+         UnixPath.cs, UnixPipes.cs, UnixProcess.cs, UnixStream.cs, 
+         UnixSymbolicLinkInfo.cs, UnixUser.cs, UnixUserInfo.cs: Mark to-be-removed
+         API with [Obsolete(IsError=true)] (permits compiler assistance for finding
+         obsolete code); Migrate to the Mono.Unix.Native API.
+       * StdioFileStream.cs: Add non-Obsolete overloads for SaveFilePosition &
+         RestoreFilePosition (oops).  Migrate to Mono.Unix.Native API.
+
+2005-12-07  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixMarshal.cs: Add PtrToStringUnix() -- specialized PtrToString method
+         which is significantly faster than PtrToString(p, UnixEncoding.Instance). 
+         Use System.String..ctor(sbyte*, int, int, Encoding) to avoid the byte[]
+         intermediate copy -- much faster.  Fix PtrToString() so that it will
+         accept an IntPtr containing 0 characters, and don't duplicate strings
+         unless necessary.
+
+2005-11-18  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Catalog.cs, UnixDirectory.cs, UnixDirectoryInfo.cs, UnixDriveInfo.cs,
+         UnixEnvironment.cs, UnixFile.cs, UnixFileInfo.cs, UnixFileSystemInfo.cs,
+         UnixGroup.cs, UnixGroupInfo.cs, UnixProcess.cs, UnixSymbolicLinkInfo.cs,
+         UnixUser.cs, UnixUserInfo.cs: Change types of [Obsolete] members for
+         consistency and CLS compliance; Mono.Unix.Native type migration.
+       * FileTypes.cs: s/Special/Device/g (CharacterSpecial ==> CharacterDevice).
+         The *Special was a BSD convention, while UnixFileSystemInfo uses *Device
+         in property names, and these should be consistent.  Changing the enum is
+         simpler than changing the UnixFileSystemInfo properties.
+       * UnixIOException.cs: s/error/errno/g (FxCop suggestion); change type of
+         ErrorCode property.
+       * UnixMarshal.cs: s/error/errno/g (FxCop suggestion); Mono.Unix.Native
+         type migration.
+
+2005-11-08  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Catalog.cs: Exception safety improvements (don't let memory leak!); check
+         for errors with bindtextdomain(3) et. al.
+
 2005-11-08  Jonathan Pryor <jonpryor@vt.edu>
 
        * UnixPipes.cs: Provide Equals, GetHashCode, and operator==/operator!= to