guarded-allocation: Memory allocation with added stress tests and integrity checks

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain]

Provide adaptions of mallocForeignPtrArray and allocaArray that add stress tests and integrity checks.

There are three modules:

It is intended that you always import the Guarded module in user code and install a package version with enabled debug flag to a custom package database for debugging. If you compile your user program you can choose production or debugging mode by choosing the default or the custom debugging package database, respectively.

This package is inspired by the famous Amiga debug tool MungWall. The Linux counterpart is Electric Fence.


[Skip to ReadMe]

Properties

Versions0.0, 0.0
Change logNone available
Dependenciesbase (>=4.5 && <5) [details]
LicenseBSD-3-Clause
AuthorHenning Thielemann <haskell@henning-thielemann.de>
MaintainerHenning Thielemann <haskell@henning-thielemann.de>
CategoryDebug
Home pagehttp://hub.darcs.net/thielema/guarded-allocation/
Source repositorythis: darcs clone http://hub.darcs.net/thielema/guarded-allocation/ --tag 0.1
head: darcs clone http://hub.darcs.net/thielema/guarded-allocation/
UploadedTue Aug 7 10:04:01 UTC 2018 by HenningThielemann

Modules

[Index]

Flags

NameDescriptionDefaultType
debug

Add stress tests and integrity checks to allocations

DisabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainers' corner

For package maintainers and hackage trustees


Readme for guarded-allocation-0.0

[back to package description]

The overall idea of the package is to make programming mistakes let low-level programs fail reproducibly.

What the routines do:

Range violations might alternatively be detected by range checking techniques. Allocation problems might be solved using Regions. The provided functions might overlook range violations but they help detecting bugs when you have not full control over the code that processes memory content, e.g. when calling external routines via FFI.