inline-r 0.10.1 → 0.10.2
raw patch · 3 files changed
+8/−6 lines, 3 filesdep ~inline-c
Dependency ranges changed: inline-c
Files
- inline-r.cabal +2/−2
- src/Data/Vector/SEXP.hs +3/−2
- src/Language/R/GC.hs +3/−2
inline-r.cabal view
@@ -1,5 +1,5 @@ name: inline-r-version: 0.10.1+version: 0.10.2 license: BSD3 license-file: LICENSE copyright: Copyright (c) 2013-2015 Amgen, Inc.@@ -100,7 +100,7 @@ inline-c >=0.5.6.1 && <0.6 else build-depends:- inline-c >=0.6 && <0.8+ inline-c >=0.6 && <0.9 hs-source-dirs: src includes: cbits/missing_r.h c-sources: cbits/missing_r.c
src/Data/Vector/SEXP.hs view
@@ -279,6 +279,7 @@ import qualified Data.ByteString.Unsafe as B import Control.Applicative hiding (empty)+import Control.Exception (mask_) #if MIN_VERSION_vector(0,11,0) import qualified Data.Vector.Fusion.Bundle.Monadic as Bundle import Data.Vector.Fusion.Bundle.Monadic (sSize, sElems)@@ -330,7 +331,7 @@ -- | Create a 'ForeignSEXP' from 'SEXP'. foreignSEXP :: PrimMonad m => SEXP s ty -> m (ForeignSEXP ty) foreignSEXP sx@(SEXP ptr) =- unsafePrimToPrim $ do+ unsafePrimToPrim $ mask_ $ do R.preserveObject sx ForeignSEXP <$> GHC.newConcForeignPtr (castPtr ptr) (R.releaseObject sx) @@ -1753,6 +1754,6 @@ phony f = reify (AcquireIO acquireIO) $ \p -> f p where acquireIO :: SEXP V ty -> IO (SEXP g ty)- acquireIO x = do+ acquireIO x = mask_ $ do R.preserveObject x return $ R.unsafeRelease x
src/Language/R/GC.hs view
@@ -24,6 +24,7 @@ import Control.Memory.Region import Control.Monad.R.Class+import Control.Exception import Foreign.R (SomeSEXP(..)) import qualified Foreign.R as R import System.Mem.Weak (addFinalizer)@@ -38,7 +39,7 @@ -- deallocate the value sooner - it would still be semantically correct to never -- deallocate it at all. automatic :: MonadR m => R.SEXP s a -> m (R.SEXP G a)-automatic s = io $ do+automatic s = io $ mask_ $ do R.preserveObject s' s' `addFinalizer` (R.releaseObject (R.unsafeRelease s')) return s'@@ -47,7 +48,7 @@ -- | 'automatic' for 'SomeSEXP'. automaticSome :: MonadR m => R.SomeSEXP s -> m (R.SomeSEXP G)-automaticSome (SomeSEXP s) = io $ do+automaticSome (SomeSEXP s) = io $ mask_ $ do R.preserveObject s' s' `addFinalizer` (R.releaseObject s') return $ SomeSEXP s'