packages feed

bytestring-mmap-compat-0.2.3: README.md

# bytestring-mmap-compat

A fork of [`bytestring-mmap`](https://hackage.haskell.org/package/bytestring-mmap)
that compiles against `unix >= 2.8`.

## Why this exists

The original `bytestring-mmap` (Don Stewart, last Hackage upload in
2011) calls `System.Posix.openFd` with the pre-2.8 four-argument
signature. Upstream is unmaintained, and the latest Hackage revision
caps the `unix` bound at `< 2.8`, which leaves the package unusable
in any package set that pulls in a newer `unix` transitively.

This fork:

  - Adds a tiny `System.Posix.IO.Compat` shim that selects the right
    `openFd` signature via CPP.
  - Widens the `unix` bound to cover both old and new signatures.
  - Modernises the cabal file (cabal-version 2.0, sensible base /
    bytestring bounds).

The public API (`System.IO.Posix.MMap`,
`System.IO.Posix.MMap.Lazy`) is byte-for-byte compatible with the
upstream; the only difference is the package name.

## When to switch back to upstream

When (or if) upstream adopts a compatible `openFd` call site, switch
your `build-depends` from `bytestring-mmap-compat` to `bytestring-mmap`
and remove this dependency. No source-level changes required.

## Credit

All non-trivial code is by Don Stewart. This fork only adds the
`Compat` shim and updates packaging metadata.

## License

BSD3; see `LICENSE`.