psx-0.1.0.0: Integrate @libpsx@ with the GHC RTS
Copyright(c) Nicolas Trangez 2022
LicenseBSD-3-Clause
Maintainerikke@nicolast.be
Stabilityalpha
PortabilityLinux
Safe HaskellSafe-Inferred
LanguageHaskell2010

System.PSX

Description

This library embeds libpsx in a GHC Haskell-compiled application.

It doesn't provide any Haskell functions. It can be (optionally) linked into applications which require libpsx-style functionality, potentially from C code. See test/detect-psx.c for an example.

Note libpsx performs some trickery with signal handling in a process. Furthermore, when using this library, sigfillset will be wrapped so SIGSYS is not set, in order for the GHC RTS ticker thread not to block the signal and work properly with libpsx.

See this GHC proposal for a potential future replacement of this library using functionality built into the GHC RTS.

Warning: libpsx on current Ubuntu and Debian systems (from libcap 2.44) is broken. Hence, this library contains a bundled version of libpsx by default. Disable the bundled-libpsx flag to use a system-provided version of the library, which must be from libcap version 2.46 or higher.