name:          gc
category:      Data
version:       0.1
license:       BSD3
cabal-version: 1.16
license-file:  LICENSE
author:        Edward A. Kmett
maintainer:    Edward A. Kmett <ekmett@gmail.com>
stability:     provisional
homepage:      http://github.com/ekmett/gc/
bug-reports:   http://github.com/ekmett/gc/issues
copyright:     Copyright (C) 2015-2021 Edward A. Kmett
build-type:    Simple
tested-with:   GHC == 7.8.4
             , GHC == 7.10.3
             , GHC == 8.0.2
             , GHC == 8.2.2
             , GHC == 8.4.4
             , GHC == 8.6.5
             , GHC == 8.8.4
             , GHC == 8.10.4
             , GHC == 9.0.1
synopsis:      Poor Richard's Memory Manager
description:
  This package implements a form of <http://www.cs.canisius.edu/~hertzm/prmm-ismm-2011.pdf Poor Richard's Memory Manager>
  by Hertz, Kane, Keudel, Bai, Ding, Gu and Bard in user-space in GHC.
  .
  Usage:
  .
  > import System.Mem.Manager
  > main = do
  >   _ <- selfishManager
  >   ...
  .
  Now, the background thread that was spawned by @selfishManager@ will watch for signs that the host operating system
  is starting to cause the current process to page out to disk and respond with more aggressive garbage collection.
  .
  This empowers your code to try to avoid the inevitable death spiral that follows when GC has to happen with paged out data.

extra-source-files:
  CHANGELOG.markdown
  README.markdown

source-repository head
  type: git
  location: git://github.com/ekmett/gc.git

library
  build-depends: base >= 4.7 && < 5
  exposed-modules: System.Mem.Manager
  ghc-options: -Wall -fwarn-tabs
  hs-source-dirs: src
  default-language: Haskell2010
  c-sources: cbits/rss.c