packages feed

regional-pointers-0.1: regional-pointers.cabal

name:          regional-pointers
version:       0.1
cabal-version: >=1.6
build-type:    Custom
license:       BSD3
license-file:  LICENSE
copyright:     2010 Bas van Dijk
author:        Bas van Dijk
maintainer:    Bas van Dijk <v.dijk.bas@gmail.com>
stability:     experimental
category:      System, Monadic Regions
synopsis:      Regional memory pointers
description:   The library allows you to allocate memory in a region yielding a
               regional pointer to it. When the region terminates all pointers
               are automatically freed. Most importantly, a pointer can't be
               returned from the region. So it's impossible to reference
               unallocated memory.

               .

               The primary technique used in this package is called \"Lightweight
               monadic regions\" which was invented by Oleg Kiselyov and
               Chung-chieh Shan. See:

               .

               <http://okmij.org/ftp/Haskell/regions.html#light-weight>

               .

               This technique is implemented in the @regions@ package which is
               re-exported from this library.

               .

               This library provides wrappers around all the @Ptr@ functions
               from the @Foreign.*@ modules from @base@.

source-repository head
  Type:     darcs
  Location: http://code.haskell.org/~basvandijk/code/regional-pointers

Library
  GHC-Options: -Wall
  build-depends: base                      >= 4 && < 4.3
               , base-unicode-symbols      >= 0.1.1 && < 0.2
               , regions                   == 0.3.*
               , transformers              >= 0.1.4 && < 0.2
               , MonadCatchIO-transformers == 0.0.2.*
  exposed-modules: Foreign.Ptr.Region
                   Foreign.Ptr.Region.Unsafe
                   Foreign.Marshal.Alloc.Region
                   Foreign.Marshal.Array.Region
                   Foreign.Marshal.Utils.Region
                   Foreign.Storable.Region
                   Foreign.C.String.Region
                   -- TODO: Foreign.StablePtr.Region
                   -- TODO: Foreign.Marshal.Pool.Region
  other-modules:   Foreign.Ptr.Region.Internal