Changelog for fs-api-0.4.0.0
Revision history for fs-api
?.?.?.? -- ????-??-??
0.4.0.0 -- 2025-05-30
Breaking
- Add a new
MustExist
option toAllowExisting
.
Non-breaking
- Make the orphan
Condense
instance forSystem.IO.SeekMode
into a non-orphan instance. The instance is still exported from the same modules it was exported from previously,System.FS.API.Types
in particular.
Patch
- Make it build with
ghc-9.12
. - Support
io-classes-1.8.0.1
. - Drop support for
ghc-8.10
. - Bugfix: opening a file in read mode now expects the file to exist already.
This was already the semantics when using
hOpen
from theioHasFS
instance, but it was not reflected in theallowExisting
function.allowExisting Readmode
now returnsMustExist
instead ofAllowExisting
. - Bugfix:
hGetBufExactly
andhGetBufExactlyAt
would previously try to read too many bytes in the presence of partial reads. These functions now properly count the number of remaining bytes that have to be read.
0.3.0.1 -- 2024-10-02
Patch
- Support
io-classes-1.6
andio-classes-1.7
. Older versions ofio-classes
are no longer supported.
0.3.0.0 -- 2024-08-26
Breaking
- Remove orphan
Show
instance forForeign.C.Error.Errno
. - Provide implementations for the new primitives in the
IO
implementation ofHasFS
. As a result,ioHasFS
now requires thatPrimState IO ~ PrimState m
. - Rename
Util.CallStack
andUtil.Condense
toSystem.FS.CallStack
andSystem.FS.Condense
respectively. - Make modules in the
System.FS.IO.Internal
hierarchy public, inspired by "Internal convention is a mistake". The following modules are moved/renamed:System.FS.IO.Internal
is moved toSystem.FS.IO.Unix
on Linux and MacOS systems, and moved toSystem.FS.IO.Windows
on Windows systems.System.FS.IO.Internal.Handle
is moved toSystem.FS.IO.Handle
.
Non-breaking
- Add new primitives to the
HasFS
interface for performing file I/O with user-supplied buffers:hGetBufSome
,hGetBufSomeAt
,hPutBufSome
, andhPutBufSomeAt
. - Add compound functions, built from the new primitives in
HasFS
:hGetBufExactly
,hGetBufExactlyAt
,hPutBufExactly
, andhPutBufExactlyAt
. NFData
instances forFsPath
,HasFS
andHandle
.- Add
FsPath
combinators:(<.>)
andaddExtension
,(</>)
andcombine
.
Patch
- Add a clarification in the documentation of
FsPath
that the user is responsible for picking sensible directory/file names. - Bump upper version bounds for
io-classes
to1.6
- Make it build with
ghc-9.10
. - New
primitive ^>=0.9
dependency - Tight dependency bounds.
0.2.0.1 -- 2023-10-30
Patch
- Make it build with
ghc-9.8
.
0.2.0.0 -- 2023-08-01
Breaking
- Modules that are required for
ioHasFS
should never be used by client code. For this reason, we move the relevant modules into anInternal
hierarchy.- Move the
System.IO.FS
module toSystem.FS.IO.Internal
. - Move the
System.FS.Handle
module toSystem.FS.IO.Internal.Handle
.
- Move the
- Move strict and lazy compound definitions for reading/writing bytes into
separate modules
System.FS.API.Strict
andSystem.FS.API.Lazy
. Both modules re-exportSystem.FS.API
.
Non-breaking
- Re-export
System.FS.API.Types
fromSystem.FS.API
.
Patch
- Bump upper version bounds for
io-classes
to1.3
0.1.0.3 -- 2023-06-2
Patch
- Enable building with
ghc-9.4
. - Remove
asserts
package flag.
0.1.0.2 -- 2023-05-25
- Enable building with ghc-9.6
0.1.0.1 -- 2023-04-24
Non-breaking
Update the code to compile with io-sim-1.0.0.1
.
0.1.0.0 -- 2023-03-27
- First version. Released on an unsuspecting world.