The safe-globals package

[Tags: bsd3, library]

This library provides a way to declare IORefs, TVars, Chans, etc. at the top level of a module.

This library does not prevent the software design problems caused by global state. Rather, it provides some implementation safety for those circumstances where global state really is necessary.

Fundamentally this library just provides Template Haskell macros for the usual unsafePerformIO trick, so it is subject to the same caveats. In particular, linking a module and then loading the same module dynamically through the GHC API may produce two copies of the same top-level variable. See the documentation of unsafePerformIO for additional compiler-specific requirements.

This library may not work properly on GHC before 7.4, due to a GHC bug: http://hackage.haskell.org/trac/ghc/ticket/5558


Properties

Versions0.1, 0.1.1
Dependenciesbase (>=3 && <5), stm (>=2.1), template-haskell (>=2.4)
LicenseBSD3
AuthorKeegan McAllister <mcallister.keegan@gmail.com>
MaintainerKeegan McAllister <mcallister.keegan@gmail.com>
CategoryData
Source repositoryhead: git clone git://github.com/kmcallister/safe-globals
UploadedWed Dec 21 16:50:23 UTC 2011 by KeeganMcAllister
Downloads702 total (19 in last 30 days)
StatusDocs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees