Add support for more OpenFileFlags and refactor 'openFd' (PR #59)
[packages/unix.git] / changelog.md
1 # Changelog for [`unix` package](http://hackage.haskell.org/package/unix)
2
3 ## 2.8.0.0
4
5   * Added terminal output flags to `System.Posix.Terminal.Common.TerminalMode`
6
7         IXANY, ONLCR, OCRNL, ONOCR, ONLRET, OFDEL, OFILL, NLDLY(NL0,NL1),
8         CRDLY(CR0,CR1,CR2,CR2), TABDLY(TAB0,TAB1,TAB2,TAB3) BSDLY(BS0,BS1),
9         VTDLY(VT0,VT1), FFDLY(FF0,FF1)
10
11   * Add support for `O_NOFOLLOW`, `O_CLOEXEC`, `O_DIRECTORY` and `O_SYNC`
12     (#6, #57)
13
14   * Refactor API of `openFd` removing `Maybe FileMode` argument,
15     which now must be passed as part of `OpenFileFlags`
16     (e.g. `defaultFileFlags { creat = Just mode }`)  (#58)
17
18 ## 2.7.2.2  *May 2017*
19
20   * Bundled with GHC 8.2.1
21
22   * Improve Autoconf detection of `telldir`/`seekdir` and define
23     `_POSIX_VDISABLE` if missing for Android (#91,#90)
24
25   * Fix error message of `createSymbolicLink` (#84)
26
27 ## 2.7.2.1  *Nov 2016*
28
29   * Bundled with GHC 8.0.2
30
31   * Don't use `readdir_r` if its deprecated.
32
33   * Add argument documentation for Env modules
34
35 ## 2.7.2.0  *Apr 2016*
36
37   * Bundled with GHC 8.0.1
38
39   * Don't assume non-POSIX `WCOREDUMP(x)` macro exists
40
41   * Don't assume existence of `termios(3)` constants beyond `B38400`
42
43   * Don't assume existence of `ctermid(3)`/`tcdrain(3)`
44
45   * Change `drainOutput`'s `tcdrain(3)` into a `safe` FFI call
46
47   * Turn build error into compile warnings for exotic `struct stat`
48     configurations (GHC #8859)
49
50   * Improve detection of `fdatasync(2)` (GHC #11137)
51
52   * Drop support for Hugs
53
54   * Drop support for Cygwin (and Windows in general)
55
56 ## 2.7.1.0  *Dec 2014*
57
58   * Bundled with GHC 7.10.1
59
60   * Add support for `base-4.8.0.0`
61
62   * Tighten `SafeHaskell` bounds for GHC 7.10+
63
64   * Add haddock comments on `RTLD_NEXT` and `RTLD_DEFAULT`
65
66   * Deprecate function `haveRtldLocal`
67
68   * Fix `getGroupEntryForID/getGroupEntryForName` on Solaris. Solaris uses
69     CPP macros for required `getgrgid_r` and `getgrnam_r` functions definition
70     so the fix is to change from C ABI calling convention to C API calling
71     convention
72
73   * Fix potential type-mismatch in `telldir`/`seekdir` FFI imports
74
75   * Use CAPI FFI import for `truncate` to make sure the LFS-version is used.
76
77   * `executeFile`: Fix `ENOTDIR` error for entries with non-directory
78     components in `PATH` (and instead skip over non-directory `PATH`-elements)
79
80   * New functions in `System.Posix.Unistd`:
81      - `fileSynchronise` (aka `fsync(2)`), and
82      - `fileSynchroniseDataOnly` (aka `fdatasync(2)`)
83
84   * New module `System.Posix.Fcntl` providing
85      - `fileAdvise` (aka `posix_fadvise(2)`), and
86      - `fileAllocate` (aka `posix_fallocate(2)`)
87
88   * Fix SIGINFO and SIGWINCH definitions
89
90 ## 2.7.0.1  *Mar 2014*
91
92   * Bundled with GHC 7.8.1
93
94   * Handle `EROFS` and `ETXTBSY` as (non-exceptional) permission denied in
95     `fileAccess`
96
97   * Fix `getFileStatus` to retry `stat(2)` when it returns `EAGAIN`
98     (this can happen on Solaris)
99
100 ## 2.7.0.0  *Nov 2013*
101
102   * New `forkProcessWithUnmask` function in the style of `forkIOWithUnmask`
103
104   * Change `forkProcess` to inherit the exception masking state of its caller
105
106   * Add new `Bool` flag to `ProcessStatus(Terminated)` constructor
107     indicating whether a core dump occured
108
109   * New functions in `System.Posix.Files{,.ByteString}` for operating
110     on high resolution file timestamps:
111
112         setFdTimesHiRes :: Fd -> POSIXTime -> POSIXTime -> IO ()
113         setFileTimesHiRes :: FilePath -> POSIXTime -> POSIXTime -> IO ()
114         setSymbolicLinkTimesHiRes :: FilePath -> POSIXTime -> POSIXTime -> IO ()
115         touchFd :: Fd -> IO ()
116         touchSymbolicLink :: FilePath -> IO ()
117
118   * Export `SignalInfo(..)` and `SignalSpecificInfo(..)` as well as
119     the two `Handler` constructors `CatchInfo` and `CatchInfoOnce`
120     from `System.Posix.Signals`
121
122   * Don't export `seekDirStream` and `tellDirStream` if the underlying
123     `seekdir(3)`/`telldir(3)` system calls are not available (as on Android)
124
125   * Fix library detection of `shm*` on openSUSE (#8350)
126
127   * Minor documentation fixes/updates
128
129   * Update package to `cabal-version >= 1.10` format
130
131 ## 2.6.0.1  *Jan 2013*
132
133   * Bundled with GHC 7.6.2
134   * Fix memory corruption issue in `putEnv`
135   * Use `pthread_kill(3)` instead of `raise(2)` on OS X too
136
137 ## 2.6.0.0  *Sep 2012*
138
139   * Bundled with GHC 7.6.1
140   * New functions `mkdtemp` and `mkstemps` in `System.Posix.Temp`
141   * New functions `setEnvironment` and `cleanEnv`
142   * New functions `accessTimeHiRes`, `modificationTimeHiRes`, and
143     `statusChangeTimeHiRes` for accessing high resolution timestamps