* Mono.Unix/FileAccessPermissions.cs: Remove UserMask, GroupMask, OtherMask values.
[mono.git] / mcs / class / Mono.Posix / Mono.Unix / ChangeLog
index 34ec5cb9f12fa8d7d9153e4b26cf01e0d3966e30..9cb569e597065a485941607b7a23ef36c97d8921 100644 (file)
@@ -1,3 +1,442 @@
+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
+         conform with FxCop guidelines for structures.
+
+2005-11-03  Jonathan Pryor <jonpryor@vt.edu>
+
+       * FileTypes.cs, UnixFileSystemInfo.cs: s/FIFO/Fifo/ to follow .NET
+         naming conventions (as reported by FxCop).
+
+2005-11-01  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixDirectoryInfo.cs, UnixDriveInfo.cs, UnixEnvironment.cs, 
+         UnixFileSystemInfo.cs, UnixGroupInfo.cs, UnixProcess.cs, UnixUserInfoc.cs:
+         Obsolete statements now specify in what way the return type will change.
+       * IncludeAttribute.cs: Obsoleted.  It's an error to use it now.
+
+2005-11-01  Jonathan Pryor <jonpryor@vt.edu>
+
+       * FileAccessPattern.cs: Change enumeration names to match Robert Love's more
+         sensible names from his FileAdvise class used in Beagle
+         (UseSoon --> PreLoad, WillNotUse --> FlushCache).
+       * FileHandleOperations.cs: Added; contains AdviseFileAccessPattern()
+         (moved from UnixFile.cs).
+       * UnixDirectory.cs: Obsolete the class; use UnixDirectoryInfo instead.
+       * UnixDirectoryInfo.cs: Add GetCurrentDirectory(), SetCurrentDirectory().
+       * UnixFile.cs: Obsolete the class; use UnixFileInfo, FileHandleOperations,
+         or UnixPipes instead.
+       * UnixFileSystemInfo.cs: Add ToStat() method.
+       * UnixGroup.cs: Obsolete the class; use UnixGroupInfo instead.
+       * UnixGroupInfo.cs: Obsolete & Replace constructor, add GetMemberNames(),
+         GetLocalGroups().
+       * UnixPipes.cs: Added (type moved from UnixFile.cs).
+       * UnixStream.cs: AdviseFileAccessPattern() uses FileHandleOperations now.
+       * UnixSymbolicLinkInfo.cs: Implement TryReadLink() to avoid constant buffer
+         re-sizing.  Stevens states that the file size of the symlink is the number
+         of bytes needed to hold the symlink, so this should be faster.
+       * UnixUser.cs: Obsolete the class; use UnixUserInfo instead.
+       * UnixUserInfo.cs: Obsolete & Replace constructor; add useful static members
+         from UnixUser such as GetLoginName(), GetLocalUsers(), etc.
+
+2005-10-27  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixEnvironment.cs: Add RealUser, RealGroup, EffectiveUser, EffectiveGroup
+         properties; [Obsolete] necessary methods and provide replacements.
+       * UnixStream.cs: Add OwnerUser(Id), OwnerGroup(Id) properties; 
+         improve Stat handling.
+
+2005-10-26  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixEncoding.cs: Change EscapeByte to 0x0000, as suggested by Michal
+         Moskal.
+       * UnixPath.cs: Remove '\0' from InvalidPathChars, since U+0000 is now used
+         as the path escape character for marshaling purposes.
+
+2005-10-26  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixMarshal.cs: Obsolete heap-related methods to have a Heap suffix
+         (AllocHeap, FreeHeap, etc.), and change StringToAlloc() to be
+         StringToHeap().  This creates a stronger name association between related
+         methods.
+
+2005-10-26  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixIOException.cs: Add (string) and (string, Exception) constructors to
+         silence FxCop; re-work logic so we lookup the error string at construction
+         time and use this as the message for the base class.
+
+2005-10-25  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Stdlib.cs, Syscall.cs: Filenames need to be marshaled through the 
+         FileNameMarshaler, which will encode/decode filenames with UnixEncoding.
+       * UnixEncoding.cs: Added (copied from
+         ../../corlib/System.Text/UTF8Encoding.cs); a hack to permit handling of 
+         arbitrarily encoded filenames.  It attempts to decode a byte[] array as 
+         UTF-8, and if the decode fails it prefixes each byte with 
+         UnixEncoding.EscapeByte (\uFFFF).
+       * UnixMarshal.cs: Use UnixEncoding as the default encoding, and special-case
+         UnixEncoding to use Stdlib.strlen() for native string lengths.
+
+2005-10-21  Jonathan Pryor <jonpryor@vt.edu>
+
+       * FileAccessPattern.cs: Added
+       * UnixFile.cs, UnixStream.cs: Deprecate all the Advise* methods (lots!)
+         and replace with 6 methods which take a FileAccessPattern enum.
+
+2005-10-19  Jonathan Pryor <jonpryor@vt.edu>
+
+       * FileAccessPermissions.cs, FileSpecialAttributes.cs, FileTypes.cs: Added.
+       * UnixFileSystemInfo.cs, UnixStream.cs: Replace the old Permission property
+         with 4 new properties: Protection (for the Native.FilePermissions value),
+         FileAccessPermissions (for rwxrwxrwx info), FileSpecialAttributes (for
+         set-user-id, set-group-id, sticky), and FileTypes (directory, socket...).
+         The new enumeration types have nicer CLS-compliant names.
+
+2005-10-17  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixMarshal.cs: Fix GetIntXxBufferLength to require fewer
+         Marshal.ReadIntXx() calls; Fix PtrToString so that
+         ``"foo" == PtrToString (StringToAlloc("foo",enc),enc)'' is true for
+         "random" encodings.
+
+2005-10-17  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixFileSystemInfo.cs: Add OwnerUserId and OwnerGroupId properties.
+
+2005-10-17  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixDriveInfo.cs, UnixEnvironment.cs, UnixFile.cs, UnixFileSystemInfo.cs, 
+         UnixGroup.cs, UnixStream.cs, UnixUser.cs: Don't use SetLastError(), since
+         it's use is (1) incorrect, and (2) will be going away with the move to
+         Mono.Unix.Native.Syscall.  Instead use the Native.Syscall.* APIs which 
+         set errno sanely.
+
+2005-10-17  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixGroup.cs, UnixGroupInfo.cs, UnixFile.cs, UnixFileSystemInfo.cs,
+         UnixStream.cs, UnixSymbolicLinkInfo.cs, UnixUser.cs, UnixUserInfo.cs:
+         Start migrating uid/gid to long (from uint) for CLS compliance.
+         (Full migration must wait 'til after the next release as this would
+         require changes to existing members.)
+       * UnixEnvironment.cs: Above, and add RealUserId/RealGroupId and
+         EffectiveUserId/EffectiveGroupId.
+
+2005-10-14  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Catalog.cs: Create a constructor and mark it [Obsolete].  It will be made
+         private after the next release.
+       * UnixFile.cs, UnixStream.cs: Deal with Mono.Unix.Native type name changes.
+       * UnixFileSystemInfo.cs: [Obsolete] more members; Deal with Mono.Unix.Native 
+         type name changes.
+       * Syscall.cs: Create maps for PathConf, SysConf, ConfStr again; fpathconf(),
+         pathconf(), and sysconf() should call Native.Syscall since the
+         MonoPosixHelper.so helpers have changed.
+
+2005-10-13  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixMarshal.cs: More/better StringToAlloc/PtrToString which take a
+         System.Text.Encoding instance for proper string marshaling.  
+         - PtrToString(string,Encoding) is particularly tricky due to variable
+           length encodings.
+         - Fix StringToAlloc so that it works properly with UTF-16 encodings 
+           (we need a terminating null 16-bit word, not a null byte).
+         - StringToAlloc overload for doing substrings.
+
+2005-10-12  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixStream.cs: Check for EROFS and EINVAL in Flush().  Snorp was getting
+         an exception when he created a UnixStream around a socket, because
+         sockets can't be flushed.  It should be acceptable to create a UnixStream
+         around a socket, so don't throw an exception in this scenario.
+
+2005-10-06  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixDirectory.cs, UnixDirectoryInfo.cs UnixFile.cs, UnixFileSystemInfo.cs, 
+         UnixGroupInfo.cs, UnixIOException.cs, UnixStream.cs, UnixUserInfo.cs:
+         API Review: Obsolete appropriate members and add appropriate overloads for
+         pending move to Mono.Unix.Native types.
+       * UnixMarshal.cs: API Review; add StringToAlloc().
+
+2005-09-26  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixFileSystemInfo.cs: Exists shouldn't use access(2), as (1) Exists isn't
+         virtual, and (2) access(2) errors if you try to access(2) a symlink which
+         points nowhere.  Use (l)stat(2) instead, via GetFileStatus(), as this lets
+         UnixSymbolicLinkInfo behave properly.
+       * UnixSymbolicLinkInfo.cs: The Contents property should return null if the
+         symlink target doesn't exist.
+
+2005-09-20  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Syscall.cs: Add [Map] to AccessMode and MmapProt, as the Mono.Unix.Native
+         replacements go by different names (AccessModes, MmapProts), but we need
+         to continue generating the mapping code for these types (backward compat).
+
+2005-09-20  Jonathan Pryor <jonpryor@vt.edu>
+
+       * CdeclFunction.cs: [Obsolete]d by Mono.Unix.Native.CdeclFunction.
+       * make-map.cs: Remove.
+       * Stdlib.cs: [Obsolete] the types; use the Mono.Unix.Native.* types instead.
+       * StdioFileStream.cs: Add GC.KeepAlive statements to prevent premature GC's
+         (FxCop suggestion).
+       * Syscall.cs: Remove [Map] attribute from all types; [CLSCompliant(false)]
+         work; [Obsolete] all types and suggest using the Mono.Unix.Native.*
+         replacements; remove [IncludeAttribute] -- superseded by
+               Mono.Unix.Native/Syscall.cs's [HeaderAttribte] for CLS compliance.
+       * UnixConvert.cs: [Obsolete]d by Mono.Unix.Native.NativeConvert.
+       * UnixDirectory.cs, UnixDriveInfo.cs, UnixEnvironment.cs, 
+         UnixGroup.cs, UnixGroupInfo.cs, 
+         UnixSymbolicLinkInfo.cs, UnixUser.cs, UnixUserInfo.cs:
+         Add [CLSCompliant(false)] as necessary.
+       * UnixFile.cs, UnixDirectory.cs, UnixFileInfo.cs, UnixFileSystemInfo.cs: 
+         [CLSCompliant(false)], addition of method overloads for [Obsolete]d types, 
+         warn about changing return types.
+       * UnixProcess.cs, UnixStream.cs: Add [CLSCompliant(false)] as necessary, 
+         and warn about changing property types.
+
+2005-09-02  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Stdlib.cs: Cache delegates passed to Stdlib.signal() so that they survive
+         garbage collections.  Delegates can be removed by calling Stdlib.signal()
+         again with one of the Stdlib.SIG_* values (or the original return value of
+         Stdlib.signal()).
+       * UnixUser.cs, UnixGroup.cs, UnixEnvironment.cs: Clarify "Id" (int) vs. 
+         "Name" (string) differences by always using a Id or Name suffix.
+
+2005-07-01  Daniel Drake  <dsd@gentoo.org>
+
+       * Syscall.cs: The entire extended attribute API now goes through MPH, to
+         be shared between both Linux's and FreeBSD's similar EA implementations.
+
+2005-06-29  Miguel de Icaza  <miguel@ximian.com>
+
+       * StdioFileStream.cs: Only flush if we do not own the handle, as
+       fclose does a flush internally.
+
+2005-06-29  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixEnvironment: Add User, Login properties.
+       * Syscall.cs: Add locking around cuserid, crypt, encrypt, getlogin.
+
+2005-06-29  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Syscall.cs: SyslogFacility shouldn't be [Flags] either.  Sigh.
+         Thanks to Vorobiev Maksim for pointing this out.
+       * make-map.cs: Don't generate conversion code for [Obsolete] enum members.
+         This assumes that (1) the enum member's value is invalid, or (2) a
+         corrected member with the same value exists.  This fix allows us to
+         obsolete invalid members (instead of removing them) without screwing up
+         the generated code -- consider LOG_USRE, the mis-spelling of LOG_USER.
+         Since SyslogFacility was (incorrectly) a [Flags] enum, since both LOG_USER
+         and LOG_USRE had the same value, we'd get a EINVAL error trying to convert
+         a valid value, since LOG_USRE would exist, would be checked for, and the
+         check would succeed (since it had the same value as LOG_USER).
+         This change allows us to be slightly more permissive with versioning.
+
+2005-06-28  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Syscall.cs: correct value of LOG_CRON (it shouldn't be identical to
+         LOG_UUCP).  SyslogLevel shouldn't have [Flags].  Move LOG_USER to be
+         before LOG_USRE so that the generated map code doesn't return EINVAL when
+         LOG_USER is specified.
+
+2005-06-15  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Syscall.cs: s/LOG_USRE/LOG_USER/.  Fixes #75274.  
+         Thanks to Martin Honermeyer.
+
+2005-06-09  Jonathan Pryor <jonpryor@vt.edu>
+
+       * make-map.cs: Look for [Obsolete] members, and mark the UnixConvert
+         conversion functions with the same [Obsolete] message.  This should permit
+         more graceful deprecation of enumerations in the future (rather than just
+         API breaks).
+
+2005-06-08  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Syscall.cs: Add execvp(2).  (This should have been added with the other
+         exec(2) additions...).
+
+2005-06-08  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Syscall.cs: Update comment with correct exception type.
+       * UnixConvert.cs: Rename ToFilePermissions(string) to
+         FromOctalPermissionString; Add ToOctalPermissionString,
+         FromUnixPermissionString, ToUnixPermissionString.
+       * UnixMarshal.cs: Remove ErrorMarshal.HaveStrerror_r and
+         UnixMarshal.IsErrorDescriptionThreadSafe.  strerror(3) is now thread-safe
+         (from managed code, at least).  Update comment.
+
+2005-06-07  Jonathan Pryor <jonpryor@vt.edu>
+
+       * UnixFileSystemInfo.cs: Don't use lstat(2), use stat(2).  This fits with
+         expectations better -- if you create a UnixFileInfo() on a symlink, you
+         want to get the target's information, not the symlink's info.  Add
+         GetFileStatus so UnixSymbolicLinkInfo can override this behavior.
+       * UnixSymbolicLinkInfo.cs: Implement GetFileStatus() (which calls lstat(2)).
+
+2005-06-07  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Syscall.cs: Document naming conventions.
+
+2005-06-05  Jonathan Pryor <jonpryor@vt.edu>
+
+       * make-map.cs: Change automatic "ifdef HAVE_<header>" support prefix to
+         "ah:" from ">".  I hadn't known about ">", and "ah:" is (somewhat) more
+         obvious.
+       * Syscall.cs: Change IncludeAttribute to put all headers/defines one/line.
+         It's easier to read this way.  Add "ah:sys/xattr.h" to the headers.
+
+2005-06-03  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Stdlib.cs: Add sanity checking to snprintf(3) to avoid buffer overflows.
+
+2005-06-02  Jonathan Pryor <jonpryor@vt.edu>
+
+       * StdioFileStream.cs: Remove FilePosition property & replace with
+         SaveFilePosition/RestoreFilePosition methods.  Since FilePosition has a
+         finalizer, it's not right to have implicitly created instances.
+       * Stdlib.cs: 
+         - FilePosition: GC.SuppressFinalize() should be last in Dispose() 
+           (following .NET guidelines).
+         - Syscall: Add locking around functions most likely to be thread unsafe.
+           This should provide some level of thread-safety to managed code.
+       * Syscall.cs: Add locking around functions most likely to be thread unsafe;
+         add mkstemp(3) export.
+       * UnixEnvironment.cs: GetUserShells should be atomic (from managed code).
+       * UnixGroup.cs: GetLocalGroups should be atomic (from managed code).
+       * UnixGroupInfo.cs: Add ToGroup() method to retrieve underlying Group info.
+       * UnixUser.cs: GetLocalUsers should be atomic (from managed code).
+       * UnixUserInfo.cs: Add ToPasswd () method to retrieve underlying Passwd info.
+       * UnixDriveInfo.cs: GetDrives should be atomic (from managed code).
+
+2005-05-31  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Stdlib.cs: Add comment for atexit(3) so I don't try to add it.
+       * Syscall.cs: Add fcntl(2) overload which takes DirectoryNotifyFlags (so
+         that *something* accepts a DirectoryNotifyFlags); Fix IncludeAttribute
+               header files (">sys/poll.h" doesn't exist); 
+         Add additional <sys/mman.h> functions mmap, munmap, msync, mlock, munlock,
+         mlockall, munlockall, mremap, mincore, remap_file_pages.
+       * UnixConvert.cs: Add conversion functions for MmapFlags, MmapProt, MsyncFlags,
+         MlockallFlags, MremapFlags.
+
+2005-05-31  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Syscall.cs, UnixConvert.cs: Rename LockFlags to LockfCommand.  This is a more 
+         consistent naming, and it's more correct (they weren't flags in the first place).
+
+2005-05-18  Jonathan Pryor <jonpryor@vt.edu>
+
+       * Stdlib.cs: Correct Mono_Posix_Stdlib_InvokeSignalHandler export.
+
+2005-05-18  Jonathan Pryor <jonpryor@vt.edu>
+
+       * make-map.cs: Process the Mono.Posix namespace as well as Mono.Unix; add
+         mapping for Boolean => int for native type conversion.
+
+2005-05-18  Jonathan Pryor <jonpryor@vt.edu>
+
+       * make-map.cs: Add a MphPrototypeFileGenerator, which looks for DllImport
+         methods across all types and generates a C header file declaration for
+         those methods.  This allows us to ensure consistency between
+         Mono.Posix.dll and MonoPosixHelper.so.  Rename WrapperFileGenerator to
+               ConvertFileGenerator (it generates UnixConvert).
+       * MapAttribute.cs, IncludeAttribute.cs: Make these internal -- there's no
+         reason for external users to even know these exist.
+       * StdioFileStream.cs: Move GC.SuppressFinalize call to be last Dispose()
+         call.  This follows current design guidelines, and allows an exception to
+         be thrown from Dispose() without un-registering the finalizer.
+       * Syscall.cs: Change method declarations to match MonoPosixHelper, etc.
+          - posix_fallocate(P) takes a size_t
+          - mis-spelled settimeofday(2), sethostname(2)
+          - exec(2) can be public; it's safe to call
+          - change lseek(2) so int's are passed to MonoPosixHelper.so, not shorts
+          - We can't allow two incompatible prototypes to exist (since C allows
+            only one prototype, and we're cross-checking prototypes now).  Change
+            utime(2) so only one prototype is needed.
+       * UnixMarshal.cs: ErrorMarshal.ErrorTranslator and ErrorMarshal.Translate
+         shouldn't be public; make them internal.
+       * UnixStream.cs: Remove `unsafe` code block when a "safe" alternative works;
+         Close() should also call GC.SuppressFinalize.
+
 2005-05-12  Jonathan Pryor <jonpryor@vt.edu>
 
        * Syscall.cs: The Statvfs structure should contain a MountFlags enumeration,