Changelog for unix-2.8.8.0
Changelog for unix package
2.8.8.0 May 2025
- fix
dirEntTypealways returningUnknownTypewrt #347 by @sjshuck
2.8.7.0 May 2025
- Add portable support for file open with data caching supressed/eliminated wrt #322
- Support for ARM64 Windows when cross-compilation from Linux/Darwin or other unix system is involved
- Use
Base.o_*instead of raw{#const O_*}, fixing a bug in GHC JS
2.8.6.0 Nov 2024
- add
readDirStreamWithandreadDirStreamWithPtrtoSystem.Posix.Directory.Internalswrt #251 - Fix CTimeVal definition for platforms where time_t isn't CLong, wrt #252
2.8.5.1 Apr 2024
- fix building with newer filepath/os-string when
#ifndef HAVE_OPENPTY
2.8.5.0 Dec 2023
- allow building with newer filepath/os-string
2.8.4.0 Dec 2023
- add
haveStatx - fix
statx.stx_mnt_iddetection on buggy glibc, see GHC #24072
2.8.3.0 Oct 2023
- add
getExtendedFileStatus(based onstatx) style functions - drop support for GHC < 8.6
- Don't
foreign importenviron, see GHC #24011
2.8.2.1 Sep 2023
- Fix UB bug in
withFilePaththat causes it to error out (introduced in 2.8.2.0) wrt #295
2.8.2.0 Sep 2023
-
Bump bounds to accomodate
base-4.19andbytestring-0.12. -
Ensure that
FilePaths don't contain interiorNULs. -
JavaScript backend: add support for
utimes/lutimes/futimes.
2.8.1.1 Mar 2023
- Fix
System.Posix.Env.ByteString.getEnvironmentsegfaulting on empty environment
2.8.1.0 Feb 2023
-
Fix build if HAVE_ALARM is undefined
-
Add missing autoconf checks for chown/fchdir/fchmod
-
Make TABX constructors and code conditional on underlying #defines
-
Bump bounds to accomodate base-4.18
-
Add semWaitInterruptible
-
semaphore: Teach semThreadWait to use semWait with threaded RTS
-
make the foreign imports of dlopen & dlclose safe
-
do not use capi for dlfcn.h stuff under wasm-wasi
-
Use capi for syscalls that break under musl's handling of 64-bit
time_t -
Replace
lastwithunsnoc -
Avoid Data.List.{head,tail}
-
Consistently use
throwErrnoPathIf* -
Fix WASI build
2.8.0.0 August 2022
-
Use ByteString for GroupEntry/UserEntry
-
Fix
semTrywaiton darwin -
Fix vanishing environment variables in
System.Posix.Env.ByteString.putEnv/System.Posix.Env.ByteString.getEnv -
Add missing
setEnvironmentandclearEnvtoSystem.Posix.Env.ByteString -
Add support for filepath-1.4.100.0 with
PosixStringvariants -
Expose
DirStream,CDir,CDirentandDirStreamOffset(internal API) -
Add
fdRead/fdWritewith ByteString payload and deprecate String basedfdRead -
Add
clocksPerSec -
Support wasm32-wasi
-
Implement BaudRate as an
Intnewtype and allow matching via extensible PatternSynonyms -
Added
readDirStreamMaybe -
Warn when functions are used on unsupported platforms
-
Fix the error handling of
posix_fallocate -
Export
FileStatusconstructor -
Various documentation and error message improvements
-
Add openDirStreamFd, openFileAt and createFileAt
-
Add accessors for st_blocks and st_blksize
-
Deal with FreeBSD getpwnam_r(3), ... thread safety. On FreeBSD these are not in fact safe for overlapped execution with a sequence of getpwent(3) or getgrent(3) calls when multiple "green" threads share the same underlying OS thread. The *ent(3) calls now run in bound threads or else locks are used to avoid overlapped execution.
-
Make passwd/group FFI functions "safe", these are not low-latency APIs.
-
Drop support for non-thread-safe getpwnam(3) and getpwuid(3). All supported platforms have getpwnam_r(3) and getpwuid_r(3). This was already the case for the getgr(nam|gid) calls.
-
Added terminal output flags to
System.Posix.Terminal.Common.TerminalModeIXANY, ONLCR, OCRNL, ONOCR, ONLRET, OFDEL, OFILL, NLDLY(NL0,NL1), CRDLY(CR0,CR1,CR2,CR2), TABDLY(TAB0,TAB1,TAB2,TAB3) BSDLY(BS0,BS1), VTDLY(VT0,VT1), FFDLY(FF0,FF1) -
Add support for
O_NOFOLLOW,O_CLOEXEC,O_DIRECTORYandO_SYNC(#6, #57) -
Refactor API of
openFdremovingMaybe FileModeargument, which now must be passed as part ofOpenFileFlags(e.g.defaultFileFlags { creat = Just mode }) (#58) -
Remove deprecated
execvpe(3)legacy-emulation CPP macro -
Generalise return type of
exitImmediatelyfromExitCode -> IO ()to∀a. ExitCode -> IO a(#130) -
Add
Read,Show,Eq, andOrdtypeclass instances toOpenFileFlagsandOpenMode. (#75, #141)
2.7.2.2 May 2017
-
Bundled with GHC 8.2.1
-
Improve Autoconf detection of
telldir/seekdirand define_POSIX_VDISABLEif missing for Android (#91,#90) -
Fix error message of
createSymbolicLink(#84)
2.7.2.1 Nov 2016
-
Bundled with GHC 8.0.2
-
Don't use
readdir_rif its deprecated. -
Add argument documentation for Env modules
2.7.2.0 Apr 2016
-
Bundled with GHC 8.0.1
-
Don't assume non-POSIX
WCOREDUMP(x)macro exists -
Don't assume existence of
termios(3)constants beyondB38400 -
Don't assume existence of
ctermid(3)/tcdrain(3) -
Change
drainOutput'stcdrain(3)into asafeFFI call -
Turn build error into compile warnings for exotic
struct statconfigurations (GHC #8859) -
Improve detection of
fdatasync(2)(GHC #11137) -
Drop support for Hugs
-
Drop support for Cygwin (and Windows in general)
2.7.1.0 Dec 2014
-
Bundled with GHC 7.10.1
-
Add support for
base-4.8.0.0 -
Tighten
SafeHaskellbounds for GHC 7.10+ -
Add haddock comments on
RTLD_NEXTandRTLD_DEFAULT -
Deprecate function
haveRtldLocal -
Fix
getGroupEntryForID/getGroupEntryForNameon Solaris. Solaris uses CPP macros for requiredgetgrgid_randgetgrnam_rfunctions definition so the fix is to change from C ABI calling convention to C API calling convention -
Fix potential type-mismatch in
telldir/seekdirFFI imports -
Use CAPI FFI import for
truncateto make sure the LFS-version is used. -
executeFile: FixENOTDIRerror for entries with non-directory components inPATH(and instead skip over non-directoryPATH-elements) -
New functions in
System.Posix.Unistd:fileSynchronise(akafsync(2)), andfileSynchroniseDataOnly(akafdatasync(2))
-
New module
System.Posix.FcntlprovidingfileAdvise(akaposix_fadvise(2)), andfileAllocate(akaposix_fallocate(2))
-
Fix SIGINFO and SIGWINCH definitions
2.7.0.1 Mar 2014
-
Bundled with GHC 7.8.1
-
Handle
EROFSandETXTBSYas (non-exceptional) permission denied infileAccess -
Fix
getFileStatusto retrystat(2)when it returnsEAGAIN(this can happen on Solaris)
2.7.0.0 Nov 2013
-
New
forkProcessWithUnmaskfunction in the style offorkIOWithUnmask -
Change
forkProcessto inherit the exception masking state of its caller -
Add new
Boolflag toProcessStatus(Terminated)constructor indicating whether a core dump occured -
New functions in
System.Posix.Files{,.ByteString}for operating on high resolution file timestamps:setFdTimesHiRes :: Fd -> POSIXTime -> POSIXTime -> IO () setFileTimesHiRes :: FilePath -> POSIXTime -> POSIXTime -> IO () setSymbolicLinkTimesHiRes :: FilePath -> POSIXTime -> POSIXTime -> IO () touchFd :: Fd -> IO () touchSymbolicLink :: FilePath -> IO () -
Export
SignalInfo(..)andSignalSpecificInfo(..)as well as the twoHandlerconstructorsCatchInfoandCatchInfoOncefromSystem.Posix.Signals -
Don't export
seekDirStreamandtellDirStreamif the underlyingseekdir(3)/telldir(3)system calls are not available (as on Android) -
Fix library detection of
shm*on openSUSE (#8350) -
Minor documentation fixes/updates
-
Update package to
cabal-version >= 1.10format
2.6.0.1 Jan 2013
- Bundled with GHC 7.6.2
- Fix memory corruption issue in
putEnv - Use
pthread_kill(3)instead ofraise(2)on OS X too
2.6.0.0 Sep 2012
- Bundled with GHC 7.6.1
- New functions
mkdtempandmkstempsinSystem.Posix.Temp - New functions
setEnvironmentandcleanEnv - New functions
accessTimeHiRes,modificationTimeHiRes, andstatusChangeTimeHiResfor accessing high resolution timestamps