on master help sign in
Enable TypeFamilies extension with NoMonoLocalBinds
0955131Harendra Kumar
src/Streamly/Internal/Data/List.hs−1
@@ -1,4 +1,3 @@
1−{-# LANGUAGE TypeFamilies #-}
2{-# LANGUAGE UndecidableInstances #-}
1{-# LANGUAGE UndecidableInstances #-}
3
2
4-- |
3-- |
src/Streamly/Internal/Data/Prim/Array/Types.hs−1
@@ -1,4 +1,3 @@
1−{-# LANGUAGE TypeFamilies #-}
2{-# LANGUAGE UnboxedTuples #-}
1{-# LANGUAGE UnboxedTuples #-}
3
2
4-- |
3-- |
src/Streamly/Internal/Data/SmallArray/Types.hs−1
@@ -1,4 +1,3 @@
1−{-# LANGUAGE TypeFamilies #-}
2{-# LANGUAGE UnboxedTuples #-}
1{-# LANGUAGE UnboxedTuples #-}
3
2
4-- |
3-- |
src/Streamly/Internal/Data/Stream/Serial.hs−1
@@ -1,4 +1,3 @@
1−{-# LANGUAGE TypeFamilies #-}
2{-# LANGUAGE UndecidableInstances #-}
1{-# LANGUAGE UndecidableInstances #-}
3
2
4-- |
3-- |
src/Streamly/Internal/Data/Stream/Zip.hs−1
@@ -1,4 +1,3 @@
1−{-# LANGUAGE TypeFamilies #-}
2{-# LANGUAGE UndecidableInstances #-}
1{-# LANGUAGE UndecidableInstances #-}
3
2
4-- |
3-- |
src/Streamly/Internal/Memory/Array/Types.hs−1
@@ -1,4 +1,3 @@
1−{-# LANGUAGE TypeFamilies #-}
2{-# LANGUAGE UnboxedTuples #-}
1{-# LANGUAGE UnboxedTuples #-}
3
2
4#include "inline.hs"
3#include "inline.hs"
src/Streamly/Memory/Malloc.hs−2
@@ -1,5 +1,3 @@
1−{-# LANGUAGE TypeFamilies #-}
2−
3#include "inline.hs"
1#include "inline.hs"
4
2
5-- |
3-- |
streamly.cabal+6−1
@@ -266,10 +266,15 @@ common default-extensions
266 RecordWildCards
266 RecordWildCards
267 ScopedTypeVariables
267 ScopedTypeVariables
268 TupleSections
268 TupleSections
269+ TypeFamilies
269 ViewPatterns
270 ViewPatterns
270
271
272+ -- MonoLocalBinds, enabled by TypeFamilies, causes performance
273+ -- regressions. Disable it. This must come after TypeFamilies,
274+ -- otherwise TypeFamilies will enable it again.
275+ NoMonoLocalBinds
276+
271 -- UndecidableInstances -- Does not show any perf impact
277 -- UndecidableInstances -- Does not show any perf impact
272− -- TypeFamilies -- Causes large regressions and improvements
273 -- UnboxedTuples -- interferes with (#.)
278 -- UnboxedTuples -- interferes with (#.)
274
279
275common optimization-options
280common optimization-options
test/Prop.hs−1
@@ -1,5 +1,4 @@
1{-# LANGUAGE OverloadedLists #-}
1{-# LANGUAGE OverloadedLists #-}
2−{-# LANGUAGE TypeFamilies #-}
3
2
4module Main (main) where
3module Main (main) where
5
4
test/PureStreams.hs−1
@@ -1,5 +1,4 @@
1{-# LANGUAGE MonadComprehensions #-}
1{-# LANGUAGE MonadComprehensions #-}
2−{-# LANGUAGE TypeFamilies #-}
3{-# LANGUAGE OverloadedStrings #-}
2{-# LANGUAGE OverloadedStrings #-}
4{-# LANGUAGE OverloadedLists #-}
3{-# LANGUAGE OverloadedLists #-}
5
4