diff options
author | Edward Z. Yang <ezyang@cs.stanford.edu> | 2017-02-20 21:50:41 -0800 |
---|---|---|
committer | Edward Z. Yang <ezyang@cs.stanford.edu> | 2017-02-22 20:47:50 -0800 |
commit | 58415741882b8e350beaf81ccedb74ee9c99257d (patch) | |
tree | 33478f3282fc4448b90293c77fae06980c7f94eb /libraries/compact/tests | |
parent | 992ea02980d59eec0ac730b912fa16733a0fe0e1 (diff) | |
download | haskell-58415741882b8e350beaf81ccedb74ee9c99257d.tar.gz |
Drop NFData constraint from compact.
Summary:
It's both unsound (easy to write a bogus NFData instance) and
incomplete (you might want to serialize data that doesn't have
an NFData instance, and will be fine at runtime.) So better
just to drop it. (By the way, we used to need the NFData
instance to "pre-evaluate" the data before we copied it into
the region, but since Simon Marlow rewrote the code to directly
evaluate and copy, this is no longer necessary.)
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Test Plan: validate
Reviewers: simonmar, austin, dfeuer, bgamari
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D3168
Diffstat (limited to 'libraries/compact/tests')
-rw-r--r-- | libraries/compact/tests/compact_function.hs | 4 | ||||
-rw-r--r-- | libraries/compact/tests/compact_huge_array.hs | 4 | ||||
-rw-r--r-- | libraries/compact/tests/compact_loop.hs | 5 | ||||
-rw-r--r-- | libraries/compact/tests/compact_mutable.hs | 4 | ||||
-rw-r--r-- | libraries/compact/tests/compact_pinned.hs | 1 | ||||
-rw-r--r-- | libraries/compact/tests/compact_serialize.hs | 3 | ||||
-rw-r--r-- | libraries/compact/tests/compact_simple_array.hs | 4 |
7 files changed, 1 insertions, 24 deletions
diff --git a/libraries/compact/tests/compact_function.hs b/libraries/compact/tests/compact_function.hs index fc4f4ca172..8193a78a99 100644 --- a/libraries/compact/tests/compact_function.hs +++ b/libraries/compact/tests/compact_function.hs @@ -1,10 +1,6 @@ -import Control.DeepSeq import Control.Exception import Data.Compact data HiddenFunction = HiddenFunction (Int -> Int) -instance NFData HiddenFunction where - rnf x = x `seq` () -- ignore the function inside - main = compact (HiddenFunction (+1)) diff --git a/libraries/compact/tests/compact_huge_array.hs b/libraries/compact/tests/compact_huge_array.hs index 8a8374297b..87200d807d 100644 --- a/libraries/compact/tests/compact_huge_array.hs +++ b/libraries/compact/tests/compact_huge_array.hs @@ -8,7 +8,6 @@ import Control.Monad.ST import Data.Array import Data.Array.ST import qualified Data.Array.Unboxed as U -import Control.DeepSeq import Data.Compact import Data.Compact.Internal @@ -29,9 +28,6 @@ arrTest = do writeArray arr j (fromIntegral $ 2*j + 1) return arr -instance NFData (U.UArray i e) where - rnf x = seq x () - -- test :: (Word -> a -> IO (Maybe (Compact a))) -> IO () test func = do let fromList :: Array Int Int diff --git a/libraries/compact/tests/compact_loop.hs b/libraries/compact/tests/compact_loop.hs index c8991b05d0..5cf167c393 100644 --- a/libraries/compact/tests/compact_loop.hs +++ b/libraries/compact/tests/compact_loop.hs @@ -1,7 +1,6 @@ module Main where import Control.Exception -import Control.DeepSeq import System.Mem import Text.Show @@ -29,10 +28,6 @@ instance Show Tree where showsPrec _ (Node _ l r) = showString "(Node " . shows l . showString " " . shows r . showString ")" -instance NFData Tree where - rnf Nil = () - rnf (Node p l r) = p `seq` rnf l `seq` rnf r `seq` () - {-# NOINLINE test #-} test x = do let a = Node Nil x b diff --git a/libraries/compact/tests/compact_mutable.hs b/libraries/compact/tests/compact_mutable.hs index 2d1a7f2572..fdd7a436ce 100644 --- a/libraries/compact/tests/compact_mutable.hs +++ b/libraries/compact/tests/compact_mutable.hs @@ -1,13 +1,9 @@ import Control.Concurrent -import Control.DeepSeq import Control.Exception import Data.Compact data HiddenMVar = HiddenMVar (MVar ()) -instance NFData HiddenMVar where - rnf x = x `seq` () -- ignore the function inside - main = do m <- newEmptyMVar compact (HiddenMVar m) diff --git a/libraries/compact/tests/compact_pinned.hs b/libraries/compact/tests/compact_pinned.hs index 39dda61cd7..faeb2fc6bf 100644 --- a/libraries/compact/tests/compact_pinned.hs +++ b/libraries/compact/tests/compact_pinned.hs @@ -1,4 +1,3 @@ -import Control.DeepSeq import Control.Exception import qualified Data.ByteString.Char8 as B import Data.Compact diff --git a/libraries/compact/tests/compact_serialize.hs b/libraries/compact/tests/compact_serialize.hs index 2b831e048c..f4bd2044fc 100644 --- a/libraries/compact/tests/compact_serialize.hs +++ b/libraries/compact/tests/compact_serialize.hs @@ -7,7 +7,6 @@ import System.Mem import Data.IORef import Data.ByteString (ByteString, packCStringLen) import Foreign.Ptr -import Control.DeepSeq import Data.Compact import Data.Compact.Internal @@ -22,7 +21,7 @@ assertEquals expected actual = else assertFail $ "expected " ++ (show expected) ++ ", got " ++ (show actual) -serialize :: NFData a => a -> IO (SerializedCompact a, [ByteString]) +serialize :: a -> IO (SerializedCompact a, [ByteString]) serialize val = do cnf <- compactSized 4096 True val diff --git a/libraries/compact/tests/compact_simple_array.hs b/libraries/compact/tests/compact_simple_array.hs index 69421c5137..88f669837f 100644 --- a/libraries/compact/tests/compact_simple_array.hs +++ b/libraries/compact/tests/compact_simple_array.hs @@ -8,7 +8,6 @@ import Control.Monad.ST import Data.Array import Data.Array.ST import qualified Data.Array.Unboxed as U -import Control.DeepSeq import Data.Compact import Data.Compact.Internal @@ -29,9 +28,6 @@ arrTest = do writeArray arr j (fromIntegral $ 2*j + 1) return arr -instance NFData (U.UArray i e) where - rnf x = seq x () - -- test :: (Word -> a -> IO (Maybe (Compact a))) -> IO () test func = do let fromList :: Array Int Int |