packages feed

regional-pointers 0.6.0.1 → 0.7

raw patch · 6 files changed

+48/−60 lines, 6 filesdep −monad-controldep ~regionsPVP ok

version bump matches the API change (PVP)

Dependencies removed: monad-control

Dependency ranges changed: regions

API changes (from Hackage documentation)

- Foreign.C.String.Region: newCAString :: MonadControlIO pr => String -> RegionT s pr (RegionalCString RegionalPtr (RegionT s pr))
+ Foreign.C.String.Region: newCAString :: RegionControlIO pr => String -> RegionT s pr (RegionalCString RegionalPtr (RegionT s pr))
- Foreign.C.String.Region: newCAStringLen :: MonadControlIO pr => String -> RegionT s pr (RegionalCStringLen RegionalPtr (RegionT s pr))
+ Foreign.C.String.Region: newCAStringLen :: RegionControlIO pr => String -> RegionT s pr (RegionalCStringLen RegionalPtr (RegionT s pr))
- Foreign.C.String.Region: newCString :: MonadControlIO pr => String -> RegionT s pr (RegionalCString RegionalPtr (RegionT s pr))
+ Foreign.C.String.Region: newCString :: RegionControlIO pr => String -> RegionT s pr (RegionalCString RegionalPtr (RegionT s pr))
- Foreign.C.String.Region: newCStringLen :: MonadControlIO pr => String -> RegionT s pr (RegionalCStringLen RegionalPtr (RegionT s pr))
+ Foreign.C.String.Region: newCStringLen :: RegionControlIO pr => String -> RegionT s pr (RegionalCStringLen RegionalPtr (RegionT s pr))
- Foreign.C.String.Region: newCWString :: MonadControlIO pr => String -> RegionT s pr (RegionalCWString RegionalPtr (RegionT s pr))
+ Foreign.C.String.Region: newCWString :: RegionControlIO pr => String -> RegionT s pr (RegionalCWString RegionalPtr (RegionT s pr))
- Foreign.C.String.Region: newCWStringLen :: MonadControlIO pr => String -> RegionT s pr (RegionalCWStringLen RegionalPtr (RegionT s pr))
+ Foreign.C.String.Region: newCWStringLen :: RegionControlIO pr => String -> RegionT s pr (RegionalCWStringLen RegionalPtr (RegionT s pr))
- Foreign.C.String.Region: withCAString :: MonadControlIO pr => String -> (forall sl. RegionalCString LocalPtr (LocalRegion sl s) -> RegionT (Local s) pr α) -> RegionT s pr α
+ Foreign.C.String.Region: withCAString :: RegionControlIO pr => String -> (forall sl. RegionalCString LocalPtr (LocalRegion sl s) -> RegionT (Local s) pr α) -> RegionT s pr α
- Foreign.C.String.Region: withCAStringLen :: MonadControlIO pr => String -> (forall sl. RegionalCStringLen LocalPtr (LocalRegion sl s) -> RegionT (Local s) pr α) -> RegionT s pr α
+ Foreign.C.String.Region: withCAStringLen :: RegionControlIO pr => String -> (forall sl. RegionalCStringLen LocalPtr (LocalRegion sl s) -> RegionT (Local s) pr α) -> RegionT s pr α
- Foreign.C.String.Region: withCString :: MonadControlIO pr => String -> (forall sl. RegionalCString LocalPtr (LocalRegion sl s) -> RegionT (Local s) pr α) -> RegionT s pr α
+ Foreign.C.String.Region: withCString :: RegionControlIO pr => String -> (forall sl. RegionalCString LocalPtr (LocalRegion sl s) -> RegionT (Local s) pr α) -> RegionT s pr α
- Foreign.C.String.Region: withCStringLen :: MonadControlIO pr => String -> (forall sl. RegionalCStringLen LocalPtr (LocalRegion sl s) -> RegionT (Local s) pr α) -> RegionT s pr α
+ Foreign.C.String.Region: withCStringLen :: RegionControlIO pr => String -> (forall sl. RegionalCStringLen LocalPtr (LocalRegion sl s) -> RegionT (Local s) pr α) -> RegionT s pr α
- Foreign.C.String.Region: withCWString :: MonadControlIO pr => String -> (forall sl. RegionalCWString LocalPtr (LocalRegion sl s) -> RegionT (Local s) pr α) -> RegionT s pr α
+ Foreign.C.String.Region: withCWString :: RegionControlIO pr => String -> (forall sl. RegionalCWString LocalPtr (LocalRegion sl s) -> RegionT (Local s) pr α) -> RegionT s pr α
- Foreign.C.String.Region: withCWStringLen :: MonadControlIO pr => String -> (forall sl. RegionalCWStringLen LocalPtr (LocalRegion sl s) -> RegionT (Local s) pr α) -> RegionT s pr α
+ Foreign.C.String.Region: withCWStringLen :: RegionControlIO pr => String -> (forall sl. RegionalCWStringLen LocalPtr (LocalRegion sl s) -> RegionT (Local s) pr α) -> RegionT s pr α
- Foreign.Marshal.Alloc.Region: alloca :: (Storable α, MonadControlIO pr) => (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
+ Foreign.Marshal.Alloc.Region: alloca :: (Storable α, RegionControlIO pr) => (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
- Foreign.Marshal.Alloc.Region: allocaBytes :: MonadControlIO pr => Int -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
+ Foreign.Marshal.Alloc.Region: allocaBytes :: RegionControlIO pr => Int -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
- Foreign.Marshal.Alloc.Region: allocaBytesAligned :: MonadControlIO pr => Int -> Int -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
+ Foreign.Marshal.Alloc.Region: allocaBytesAligned :: RegionControlIO pr => Int -> Int -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
- Foreign.Marshal.Alloc.Region: malloc :: (Storable α, MonadControlIO pr) => RegionT s pr (RegionalPtr α (RegionT s pr))
+ Foreign.Marshal.Alloc.Region: malloc :: (Storable α, RegionControlIO pr) => RegionT s pr (RegionalPtr α (RegionT s pr))
- Foreign.Marshal.Alloc.Region: mallocBytes :: MonadControlIO pr => Int -> RegionT s pr (RegionalPtr α (RegionT s pr))
+ Foreign.Marshal.Alloc.Region: mallocBytes :: RegionControlIO pr => Int -> RegionT s pr (RegionalPtr α (RegionT s pr))
- Foreign.Marshal.Array.Region: allocaArray :: (Storable α, MonadControlIO pr) => Int -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
+ Foreign.Marshal.Array.Region: allocaArray :: (Storable α, RegionControlIO pr) => Int -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
- Foreign.Marshal.Array.Region: allocaArray0 :: (Storable α, MonadControlIO pr) => Int -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
+ Foreign.Marshal.Array.Region: allocaArray0 :: (Storable α, RegionControlIO pr) => Int -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
- Foreign.Marshal.Array.Region: mallocArray :: (Storable α, MonadControlIO pr) => Int -> RegionT s pr (RegionalPtr α (RegionT s pr))
+ Foreign.Marshal.Array.Region: mallocArray :: (Storable α, RegionControlIO pr) => Int -> RegionT s pr (RegionalPtr α (RegionT s pr))
- Foreign.Marshal.Array.Region: mallocArray0 :: (Storable α, MonadControlIO pr) => Int -> RegionT s pr (RegionalPtr α (RegionT s pr))
+ Foreign.Marshal.Array.Region: mallocArray0 :: (Storable α, RegionControlIO pr) => Int -> RegionT s pr (RegionalPtr α (RegionT s pr))
- Foreign.Marshal.Array.Region: newArray :: (Storable α, MonadControlIO pr) => [α] -> RegionT s pr (RegionalPtr α (RegionT s pr))
+ Foreign.Marshal.Array.Region: newArray :: (Storable α, RegionControlIO pr) => [α] -> RegionT s pr (RegionalPtr α (RegionT s pr))
- Foreign.Marshal.Array.Region: newArray0 :: (Storable α, MonadControlIO pr) => α -> [α] -> RegionT s pr (RegionalPtr α (RegionT s pr))
+ Foreign.Marshal.Array.Region: newArray0 :: (Storable α, RegionControlIO pr) => α -> [α] -> RegionT s pr (RegionalPtr α (RegionT s pr))
- Foreign.Marshal.Array.Region: withArray :: (Storable α, MonadControlIO pr) => [α] -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
+ Foreign.Marshal.Array.Region: withArray :: (Storable α, RegionControlIO pr) => [α] -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
- Foreign.Marshal.Array.Region: withArray0 :: (Storable α, MonadControlIO pr) => α -> [α] -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
+ Foreign.Marshal.Array.Region: withArray0 :: (Storable α, RegionControlIO pr) => α -> [α] -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
- Foreign.Marshal.Array.Region: withArrayLen :: (Storable α, MonadControlIO pr) => [α] -> (forall sl. Int -> LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
+ Foreign.Marshal.Array.Region: withArrayLen :: (Storable α, RegionControlIO pr) => [α] -> (forall sl. Int -> LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
- Foreign.Marshal.Array.Region: withArrayLen0 :: (Storable α, MonadControlIO pr) => α -> [α] -> (forall sl. Int -> LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
+ Foreign.Marshal.Array.Region: withArrayLen0 :: (Storable α, RegionControlIO pr) => α -> [α] -> (forall sl. Int -> LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
- Foreign.Marshal.Utils.Region: new :: (Storable α, MonadControlIO pr) => α -> RegionT s pr (RegionalPtr α (RegionT s pr))
+ Foreign.Marshal.Utils.Region: new :: (Storable α, RegionControlIO pr) => α -> RegionT s pr (RegionalPtr α (RegionT s pr))
- Foreign.Marshal.Utils.Region: with :: (Storable α, MonadControlIO pr) => α -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
+ Foreign.Marshal.Utils.Region: with :: (Storable α, RegionControlIO pr) => α -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
- Foreign.Ptr.Region.Unsafe: wrapAlloca :: MonadControlIO pr => ((Ptr α -> IO (RegionT s pr β)) -> IO (RegionT s pr β)) -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
+ Foreign.Ptr.Region.Unsafe: wrapAlloca :: RegionControlIO pr => ((Ptr α -> IO (RegionT s pr β)) -> IO (RegionT s pr β)) -> (forall sl. LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
- Foreign.Ptr.Region.Unsafe: wrapAlloca2 :: MonadControlIO pr => ((γ -> Ptr α -> IO (RegionT s pr β)) -> IO (RegionT s pr β)) -> (forall sl. γ -> LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
+ Foreign.Ptr.Region.Unsafe: wrapAlloca2 :: RegionControlIO pr => ((γ -> Ptr α -> IO (RegionT s pr β)) -> IO (RegionT s pr β)) -> (forall sl. γ -> LocalPtr α (LocalRegion sl s) -> RegionT (Local s) pr β) -> RegionT s pr β
- Foreign.Ptr.Region.Unsafe: wrapMalloc :: MonadControlIO pr => IO (Ptr α) -> RegionT s pr (RegionalPtr α (RegionT s pr))
+ Foreign.Ptr.Region.Unsafe: wrapMalloc :: RegionControlIO pr => IO (Ptr α) -> RegionT s pr (RegionalPtr α (RegionT s pr))
- Foreign.Ptr.Region.Unsafe: wrapNewStringLen :: MonadControlIO pr => IO (Ptr α, Int) -> RegionT s pr (RegionalPtr α (RegionT s pr), Int)
+ Foreign.Ptr.Region.Unsafe: wrapNewStringLen :: RegionControlIO pr => IO (Ptr α, Int) -> RegionT s pr (RegionalPtr α (RegionT s pr), Int)
- Foreign.Ptr.Region.Unsafe: wrapWithStringLen :: MonadControlIO pr => (((Ptr α, Int) -> IO (RegionT s pr β)) -> IO (RegionT s pr β)) -> (forall sl. (LocalPtr α (LocalRegion sl s), Int) -> RegionT (Local s) pr β) -> RegionT s pr β
+ Foreign.Ptr.Region.Unsafe: wrapWithStringLen :: RegionControlIO pr => (((Ptr α, Int) -> IO (RegionT s pr β)) -> IO (RegionT s pr β)) -> (forall sl. (LocalPtr α (LocalRegion sl s), Int) -> RegionT (Local s) pr β) -> RegionT s pr β

Files

Foreign/C/String/Region.hs view
@@ -89,11 +89,9 @@ -- from transformers: import Control.Monad.IO.Class            ( MonadIO, liftIO ) --- from monad-control:-import Control.Monad.IO.Control          ( MonadControlIO )- -- from regions: import Control.Monad.Trans.Region        ( RegionT+                                         , RegionControlIO                                          , AncestorRegion                                          , LocalRegion, Local                                          )@@ -152,7 +150,7 @@ -- The Haskell string may /not/ contain any NUL characters -- -- Wraps: @Foreign.C.String.'FCS.newCString'@.-newCString ∷ MonadControlIO pr+newCString ∷ RegionControlIO pr            ⇒ String → RegionT s pr (RegionalCString RegionalPtr (RegionT s pr)) newCString = wrapMalloc ∘ FCS.newCString @@ -160,7 +158,7 @@ -- explicit length information. -- -- Wraps: @Foreign.C.String.'FCS.newCStringLen'@.-newCStringLen ∷ MonadControlIO pr+newCStringLen ∷ RegionControlIO pr               ⇒ String → RegionT s pr (RegionalCStringLen RegionalPtr (RegionT s pr)) newCStringLen = wrapNewStringLen ∘ FCS.newCStringLen @@ -173,7 +171,7 @@ --   via an exception). -- -- Wraps: @Foreign.C.String.'FCS.withCString'@.-withCString ∷ MonadControlIO pr+withCString ∷ RegionControlIO pr             ⇒ String             → (∀ sl. RegionalCString LocalPtr (LocalRegion sl s)                    → RegionT (Local s) pr α@@ -188,7 +186,7 @@ --   via an exception). -- -- Wraps: @Foreign.C.String.'FCS.withCStringLen'@.-withCStringLen ∷ MonadControlIO pr+withCStringLen ∷ RegionControlIO pr                ⇒ String                → (∀ sl. RegionalCStringLen LocalPtr (LocalRegion sl s)                       → RegionT (Local s) pr α@@ -224,7 +222,7 @@ -- The Haskell string may /not/ contain any NUL characters -- -- Wraps: @Foreign.C.String.'FCS.newCAString'@.-newCAString ∷ MonadControlIO pr+newCAString ∷ RegionControlIO pr             ⇒ String → RegionT s pr (RegionalCString RegionalPtr (RegionT s pr)) newCAString = wrapMalloc ∘ FCS.newCAString @@ -232,7 +230,7 @@ -- explicit length information. -- -- Wraps: @Foreign.C.String.'FCS.newCAStringLen'@.-newCAStringLen ∷ MonadControlIO pr+newCAStringLen ∷ RegionControlIO pr                ⇒ String → RegionT s pr (RegionalCStringLen RegionalPtr (RegionT s pr)) newCAStringLen = wrapNewStringLen ∘ FCS.newCAStringLen @@ -245,7 +243,7 @@ -- via an exception). -- -- Wraps: @Foreign.C.String.'FCS.withCAString'@.-withCAString ∷ MonadControlIO pr+withCAString ∷ RegionControlIO pr              ⇒ String              → (∀ sl. RegionalCString LocalPtr (LocalRegion sl s)                     → RegionT (Local s) pr α@@ -260,7 +258,7 @@ --   via an exception). -- -- Wraps: @Foreign.C.String.'FCS.withCAStringLen'@.-withCAStringLen ∷ MonadControlIO pr+withCAStringLen ∷ RegionControlIO pr                 ⇒ String                 → (∀ sl. RegionalCStringLen LocalPtr (LocalRegion sl s)                        → RegionT (Local s) pr α@@ -305,7 +303,7 @@ -- The Haskell string may /not/ contain any NUL characters. -- -- Wraps: @Foreign.C.String.'FCS.newCWString'@.-newCWString ∷ MonadControlIO pr+newCWString ∷ RegionControlIO pr             ⇒ String → RegionT s pr (RegionalCWString RegionalPtr (RegionT s pr)) newCWString = wrapMalloc ∘ FCS.newCWString @@ -313,7 +311,7 @@ -- with explicit length information. -- -- Wraps: @Foreign.C.String.'FCS.newCWStringLen'@.-newCWStringLen ∷ MonadControlIO pr+newCWStringLen ∷ RegionControlIO pr                ⇒ String → RegionT s pr (RegionalCWStringLen RegionalPtr (RegionT s pr)) newCWStringLen = wrapNewStringLen ∘ FCS.newCWStringLen @@ -326,7 +324,7 @@ --   normally or via an exception). -- -- Wraps: @Foreign.C.String.'FCS.withCWString'@.-withCWString ∷ MonadControlIO pr+withCWString ∷ RegionControlIO pr              ⇒ String              → (∀ sl. RegionalCWString LocalPtr (LocalRegion sl s)                     → RegionT (Local s) pr α@@ -343,7 +341,7 @@ --   normally or via an exception). -- -- Wraps: @Foreign.C.String.'FCS.withCWStringLen'@.-withCWStringLen ∷ MonadControlIO pr+withCWStringLen ∷ RegionControlIO pr                 ⇒ String                 → (∀ sl. RegionalCWStringLen LocalPtr (LocalRegion sl s)                        → RegionT (Local s) pr α
Foreign/Marshal/Alloc/Region.hs view
@@ -44,19 +44,16 @@ #endif  #if __HADDOCK__-import Foreign.Storable                       ( sizeOf )+import Foreign.Storable ( sizeOf ) #endif --- from monad-control:-import Control.Monad.IO.Control               ( MonadControlIO )- -- from regions:-import Control.Monad.Trans.Region             ( RegionT, LocalRegion, Local )+import Control.Monad.Trans.Region ( RegionT, RegionControlIO, LocalRegion, Local )  -- from ourselves:-import Foreign.Ptr.Region                     ( RegionalPtr,  )-import Foreign.Ptr.Region.Internal            ( LocalPtr )-import Foreign.Ptr.Region.Unsafe              ( wrapAlloca, wrapMalloc )+import Foreign.Ptr.Region          ( RegionalPtr,  )+import Foreign.Ptr.Region.Internal ( LocalPtr )+import Foreign.Ptr.Region.Unsafe   ( wrapAlloca, wrapMalloc )   --------------------------------------------------------------------------------@@ -72,7 +69,7 @@ This should provide a safer replacement for: @Foreign.Marshal.Alloc.'FMA.alloca'@. -}-alloca ∷ (Storable α, MonadControlIO pr)+alloca ∷ (Storable α, RegionControlIO pr)        ⇒ (∀ sl. LocalPtr α (LocalRegion sl s) → RegionT (Local s) pr β)        → RegionT s pr β alloca = wrapAlloca FMA.alloca@@ -88,7 +85,7 @@ This should provide a safer replacement for: @Foreign.Marshal.Alloc.'FMA.allocaBytes'@. -}-allocaBytes ∷ MonadControlIO pr+allocaBytes ∷ RegionControlIO pr             ⇒ Int             → (∀ sl. LocalPtr α (LocalRegion sl s) → RegionT (Local s) pr β)             → RegionT s pr β@@ -98,7 +95,7 @@ -- | This should provide a safer replacement for: -- @Foreign.Marshal.Alloc.'FMA.allocaBytesAligned'@. allocaBytesAligned ∷-    MonadControlIO pr+    RegionControlIO pr   ⇒ Int → Int   → (∀ sl. LocalPtr α (LocalRegion sl s) → RegionT (Local s) pr β)   → RegionT s pr β@@ -118,7 +115,7 @@ This should provide a safer replacement for: @Foreign.Marshal.Alloc.'FMA.malloc'@. -}-malloc ∷ ∀ α pr s. (Storable α, MonadControlIO pr)+malloc ∷ ∀ α pr s. (Storable α, RegionControlIO pr)        ⇒ RegionT s pr (RegionalPtr α (RegionT s pr)) malloc = wrapMalloc FMA.malloc @@ -130,7 +127,7 @@ This should provide a safer replacement for: @Foreign.Marshal.Alloc.'FMA.mallocBytes'@. -}-mallocBytes ∷ MonadControlIO pr+mallocBytes ∷ RegionControlIO pr             ⇒ Int             → RegionT s pr (RegionalPtr α (RegionT s pr)) mallocBytes size = wrapMalloc (FMA.mallocBytes size)
Foreign/Marshal/Array/Region.hs view
@@ -71,11 +71,9 @@ -- from transformers: import Control.Monad.IO.Class                 ( MonadIO, liftIO ) --- from monad-control:-import Control.Monad.IO.Control               ( MonadControlIO )- -- from regions: import Control.Monad.Trans.Region             ( RegionT+                                              , RegionControlIO                                               , AncestorRegion                                               , LocalRegion, Local                                               )@@ -104,19 +102,19 @@ -- | Allocate storage for the given number of elements of a storable type. -- -- Like 'malloc', but for multiple elements.-mallocArray ∷ (Storable α, MonadControlIO pr)+mallocArray ∷ (Storable α, RegionControlIO pr)             ⇒ Int → RegionT s pr (RegionalPtr α (RegionT s pr)) mallocArray = wrapMalloc ∘ FMA.mallocArray  -- | Like 'mallocArray', but add an extra position to hold a special termination -- element.-mallocArray0 ∷ (Storable α, MonadControlIO pr)+mallocArray0 ∷ (Storable α, RegionControlIO pr)              ⇒ Int → RegionT s pr (RegionalPtr α (RegionT s pr)) mallocArray0 = wrapMalloc ∘ FMA.mallocArray0  -- | Temporarily allocate space for the given number of elements (like 'alloca', -- but for multiple elements).-allocaArray ∷ (Storable α, MonadControlIO pr)+allocaArray ∷ (Storable α, RegionControlIO pr)             ⇒ Int             → (∀ sl. LocalPtr α (LocalRegion sl s) → RegionT (Local s) pr β)             → RegionT s pr β@@ -124,7 +122,7 @@  -- | Like 'allocaArray', but add an extra position to hold a special termination -- element.-allocaArray0 ∷ (Storable α, MonadControlIO pr)+allocaArray0 ∷ (Storable α, RegionControlIO pr)              ⇒ Int              → (∀ sl. LocalPtr α (LocalRegion sl s) → RegionT (Local s) pr β)              → RegionT s pr β@@ -189,27 +187,27 @@ -- sequence of storable values. -- -- Like 'new', but for multiple elements.-newArray ∷ (Storable α, MonadControlIO pr)+newArray ∷ (Storable α, RegionControlIO pr)          ⇒ [α] → RegionT s pr (RegionalPtr α (RegionT s pr )) newArray = wrapMalloc ∘ FMA.newArray  -- | Write a list of storable elements into a newly allocated, consecutive -- sequence of storable values, where the end is fixed by the given end marker.-newArray0 ∷ (Storable α, MonadControlIO pr)+newArray0 ∷ (Storable α, RegionControlIO pr)           ⇒ α → [α] → RegionT s pr (RegionalPtr α (RegionT s pr)) newArray0 marker vals = wrapMalloc (FMA.newArray0 marker vals)  -- | Temporarily store a list of storable values in memory. -- -- Like 'with', but for multiple elements.-withArray ∷ (Storable α, MonadControlIO pr)+withArray ∷ (Storable α, RegionControlIO pr)           ⇒ [α]           → (∀ sl. LocalPtr α (LocalRegion sl s) → RegionT (Local s) pr β)           → RegionT s pr β withArray = wrapAlloca ∘ FMA.withArray  -- | Like 'withArray', but a terminator indicates where the array ends.-withArray0 ∷ (Storable α, MonadControlIO pr)+withArray0 ∷ (Storable α, RegionControlIO pr)            ⇒ α            → [α]            → (∀ sl. LocalPtr α (LocalRegion sl s) → RegionT (Local s) pr β)@@ -219,7 +217,7 @@ -- | Like 'withArray', but the action gets the number of values as an additional -- parameter. withArrayLen ∷-    (Storable α, MonadControlIO pr)+    (Storable α, RegionControlIO pr)   ⇒ [α]   → (∀ sl. Int → LocalPtr α (LocalRegion sl s) → RegionT (Local s) pr β)   → RegionT s pr β@@ -227,7 +225,7 @@  -- | Like 'withArrayLen', but a terminator indicates where the array ends. withArrayLen0 ∷-    (Storable α, MonadControlIO pr)+    (Storable α, RegionControlIO pr)   ⇒ α   → [α]   → (∀ sl. Int → LocalPtr α (LocalRegion sl s) → RegionT (Local s) pr β)
Foreign/Marshal/Utils/Region.hs view
@@ -70,11 +70,9 @@ -- from transformers: import Control.Monad.IO.Class                 ( MonadIO, liftIO ) --- from monad-control:-import Control.Monad.IO.Control               ( MonadControlIO )- -- from regions: import Control.Monad.Trans.Region             ( RegionT+                                              , RegionControlIO                                               , AncestorRegion                                               , RootRegion                                               , LocalRegion, Local@@ -105,7 +103,7 @@ -- exception). -- -- This provides a safer replacement for @Foreign.Marshal.Utils.'FMU.with'@.-with ∷ (Storable α, MonadControlIO pr)+with ∷ (Storable α, RegionControlIO pr)      ⇒ α → (∀ sl. LocalPtr α (LocalRegion sl s) → RegionT (Local s) pr β) -- ^      → RegionT s pr β with = wrapAlloca ∘ FMU.with@@ -115,7 +113,7 @@ -- 'sizeOf' method from the instance of 'Storable' for the appropriate type. -- -- This provides a safer replacement for @Foreign.Marshal.Utils.'FMU.new'@.-new ∷ (Storable α, MonadControlIO pr)+new ∷ (Storable α, RegionControlIO pr)     ⇒ α → RegionT s pr (RegionalPtr α (RegionT s pr)) new = wrapMalloc ∘ FMU.new 
Foreign/Ptr/Region/Internal.hs view
@@ -77,6 +77,7 @@ -- from regions: import Control.Monad.Trans.Region.OnExit ( FinalizerHandle, Finalizer, onExit ) import Control.Monad.Trans.Region        ( RegionT+                                         , RegionControlIO                                          , AncestorRegion                                          , RootRegion                                          , LocalRegion, Local@@ -88,9 +89,6 @@                                          , unsafeLiftIOOp_                                          ) --- from monad-control:-import Control.Monad.IO.Control          ( MonadControlIO )- #if MIN_VERSION_base(4,3,0) import Control.Exception         ( mask_ ) #else@@ -128,11 +126,11 @@                   → RegionT s pr (RegionalPtr α (RegionT s pr)) unsafeRegionalPtr ptr finalize = liftM (RegionalPtr ptr) (onExit finalize) -wrapMalloc ∷ MonadControlIO pr+wrapMalloc ∷ RegionControlIO pr            ⇒ IO (Ptr α) → RegionT s pr (RegionalPtr α (RegionT s pr))-wrapMalloc doMalloc = unsafeLiftIOOp_ mask_ $ do-                        ptr ← liftIO doMalloc-                        unsafeRegionalPtr ptr (free ptr)+wrapMalloc doMalloc = unsafeControlIO $ \runInIO → mask_ $ do+                        ptr ← doMalloc+                        runInIO $ unsafeRegionalPtr ptr (free ptr)   --------------------------------------------------------------------------------@@ -167,14 +165,14 @@ -- Note that a @LocalPtr@ can not be 'dup'licated to a parent region. newtype LocalPtr α (r ∷ * → *) = LocalPtr (Ptr α) -wrapAlloca ∷ MonadControlIO pr+wrapAlloca ∷ RegionControlIO pr            ⇒ ((Ptr α → IO (RegionT s pr β)) → IO (RegionT s pr β))            → (∀ sl. LocalPtr α (LocalRegion sl s) → RegionT (Local s) pr β)            → RegionT s pr β wrapAlloca doAlloca f = unsafeLiftIOOp doAlloca $                           unsafeStripLocal ∘ f ∘ LocalPtr -wrapAlloca2 ∷ MonadControlIO pr+wrapAlloca2 ∷ RegionControlIO pr             ⇒ ((γ → Ptr α → IO (RegionT s pr β)) → IO (RegionT s pr β))             → (∀ sl. γ → LocalPtr α (LocalRegion sl s) → RegionT (Local s) pr β)             → RegionT s pr β@@ -192,7 +190,7 @@                   → (pointer α pr, Int) → cr String wrapPeekStringLen peekStringLen = liftIO ∘ peekStringLen ∘ first unsafePtr -wrapNewStringLen ∷ MonadControlIO pr+wrapNewStringLen ∷ RegionControlIO pr                  ⇒ IO (Ptr α, Int)                  → RegionT s pr (RegionalPtr α (RegionT s pr), Int) wrapNewStringLen newStringLen = unsafeLiftIOOp_ mask_ $ do@@ -200,7 +198,7 @@                                   rPtr ← unsafeRegionalPtr ptr (free ptr)                                   return (rPtr, len) -wrapWithStringLen ∷ MonadControlIO pr+wrapWithStringLen ∷ RegionControlIO pr                   ⇒ (((Ptr α, Int) → IO (RegionT s pr β)) → IO (RegionT s pr β))                   → (∀ sl. (LocalPtr α (LocalRegion sl s), Int) → RegionT (Local s) pr β)                   → RegionT s pr β
regional-pointers.cabal view
@@ -1,5 +1,5 @@ name:          regional-pointers-version:       0.6.0.1+version:       0.7 cabal-version: >=1.6 build-type:    Custom license:       BSD3@@ -40,9 +40,8 @@   GHC-Options: -Wall   build-depends: base                 >= 4     && < 4.5                , base-unicode-symbols >= 0.1.1 && < 0.3-               , regions              >= 0.10  && < 0.11+               , regions              >= 0.11  && < 0.12                , transformers         >= 0.2   && < 0.3-               , monad-control        >= 0.2   && < 0.3   exposed-modules: Foreign.Ptr.Region                    Foreign.Ptr.Region.Unsafe                    Foreign.Marshal.Alloc.Region