@hackage / bytestring-mmap-compat

mmap support for strict ByteStrings (unix >= 2.8 fork)

Latest0.2.3

About

Metadata

  • Last updated , by NCrashed
  • License BSD-3-Clause
  • Categories Systems Programming
  • Maintained by: Anton Gushcha <ncrashed@gmail.com>

  • Lottery factor: 1

Links

Installation

Tested Compilers

  1. 9.6.6

Readme

bytestring-mmap-compat

A fork of 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.