on master help sign in
Move non-GHC2021 extensions in a separate section
6fd884eHarendra Kumar
core/src/Streamly/Internal/Data/Array/Type.hs+4
@@ -1,4 +1,8 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE CPP #-}
2+{-# LANGUAGE TypeFamilies #-}
3+-- Must come after TypeFamilies, otherwise it is re-enabled.
4+-- MonoLocalBinds enabled by TypeFamilies causes perf regressions in general.
5+{-# LANGUAGE NoMonoLocalBinds #-}
2-- |
6-- |
3-- Module : Streamly.Internal.Data.Array.Type
7-- Module : Streamly.Internal.Data.Array.Type
4-- Copyright : (c) 2020 Composewell Technologies
8-- Copyright : (c) 2020 Composewell Technologies
core/src/Streamly/Internal/Data/IsMap.hs+4
@@ -1,3 +1,7 @@
1+{-# LANGUAGE TypeFamilies #-}
2+-- Must come after TypeFamilies, otherwise it is re-enabled.
3+-- MonoLocalBinds enabled by TypeFamilies causes perf regressions in general.
4+{-# LANGUAGE NoMonoLocalBinds #-}
1-- |
5-- |
2-- Module : Streamly.Internal.Data.IsMap
6-- Module : Streamly.Internal.Data.IsMap
3-- Copyright : (c) 2022 Composewell Technologies
7-- Copyright : (c) 2022 Composewell Technologies
core/src/Streamly/Internal/Data/Stream/Type.hs+6
@@ -1,5 +1,11 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE CPP #-}
2+{-# LANGUAGE PatternSynonyms #-}
3+{-# LANGUAGE TypeFamilies #-}
4+-- Must come after TypeFamilies, otherwise it is re-enabled.
5+-- MonoLocalBinds enabled by TypeFamilies causes perf regressions in general.
6+{-# LANGUAGE NoMonoLocalBinds #-}
2{-# LANGUAGE UndecidableInstances #-}
7{-# LANGUAGE UndecidableInstances #-}
8+{-# LANGUAGE ViewPatterns #-}
3
9
4-- |
10-- |
5-- Module : Streamly.Internal.Data.Stream.Type
11-- Module : Streamly.Internal.Data.Stream.Type
core/src/Streamly/Internal/Data/StreamK/Type.hs+4
@@ -1,4 +1,8 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE CPP #-}
2+{-# LANGUAGE TypeFamilies #-}
3+-- Must come after TypeFamilies, otherwise it is re-enabled.
4+-- MonoLocalBinds enabled by TypeFamilies causes perf regressions in general.
5+{-# LANGUAGE NoMonoLocalBinds #-}
2{-# LANGUAGE UndecidableInstances #-}
6{-# LANGUAGE UndecidableInstances #-}
3-- |
7-- |
4-- Module : Streamly.Internal.Data.StreamK.Type
8-- Module : Streamly.Internal.Data.StreamK.Type
core/src/Streamly/Internal/Data/Time/Units.hs−4
@@ -1,7 +1,3 @@
1−{-# LANGUAGE DataKinds #-}
2−{-# LANGUAGE PolyKinds #-}
3−{-# LANGUAGE UnboxedTuples #-}
4−
5-- |
1-- |
6-- Module : Streamly.Internal.Data.Time.Units
2-- Module : Streamly.Internal.Data.Time.Units
7-- Copyright : (c) 2019 Composewell Technologies
3-- Copyright : (c) 2019 Composewell Technologies
core/src/Streamly/Internal/Data/Unbox.hs+4−1
@@ -1,5 +1,8 @@
1{-# LANGUAGE DataKinds #-}
1{-# LANGUAGE DataKinds #-}
2−{-# LANGUAGE DefaultSignatures #-}
2+{-# LANGUAGE TypeFamilies #-}
3+-- Must come after TypeFamilies, otherwise it is re-enabled.
4+-- MonoLocalBinds enabled by TypeFamilies causes perf regressions in general.
5+{-# LANGUAGE NoMonoLocalBinds #-}
3{-# LANGUAGE UnboxedTuples #-}
6{-# LANGUAGE UnboxedTuples #-}
4{-# LANGUAGE UndecidableInstances #-}
7{-# LANGUAGE UndecidableInstances #-}
5
8
core/streamly-core.cabal+12−9
@@ -218,8 +218,6 @@ common compile-options
218common default-extensions
218common default-extensions
219 default-extensions:
219 default-extensions:
220 BangPatterns
220 BangPatterns
221− CApiFFI
222− CPP
223 ConstraintKinds
221 ConstraintKinds
224 DeriveDataTypeable
222 DeriveDataTypeable
225 DeriveGeneric
223 DeriveGeneric
@@ -230,24 +228,29 @@ common default-extensions
230 GeneralizedNewtypeDeriving
228 GeneralizedNewtypeDeriving
231 InstanceSigs
229 InstanceSigs
232 KindSignatures
230 KindSignatures
233− LambdaCase
234− MagicHash
235 MultiParamTypeClasses
231 MultiParamTypeClasses
236− PatternSynonyms
237 RankNTypes
232 RankNTypes
238− RecordWildCards
239 ScopedTypeVariables
233 ScopedTypeVariables
240 StandaloneDeriving
234 StandaloneDeriving
241 TupleSections
235 TupleSections
242 TypeApplications
236 TypeApplications
243− TypeFamilies
244 TypeOperators
237 TypeOperators
245− ViewPatterns
246
238
239+ -- Not GHC2021
240+ CApiFFI
241+ CPP
242+ DefaultSignatures
243+ LambdaCase
244+ MagicHash
245+ RecordWildCards
246+
247+ -- TypeFamilies is required by IsList, IsMap type classes and
248+ -- Unbox generic deriving code.
249+ -- TypeFamilies
247 -- MonoLocalBinds, enabled by TypeFamilies, causes performance
250 -- MonoLocalBinds, enabled by TypeFamilies, causes performance
248 -- regressions. Disable it. This must come after TypeFamilies,
251 -- regressions. Disable it. This must come after TypeFamilies,
249 -- otherwise TypeFamilies will enable it again.
252 -- otherwise TypeFamilies will enable it again.
250− NoMonoLocalBinds
253+ -- NoMonoLocalBinds
251
254
252 -- UndecidableInstances -- Does not show any perf impact
255 -- UndecidableInstances -- Does not show any perf impact
253 -- UnboxedTuples -- interferes with (#.)
256 -- UnboxedTuples -- interferes with (#.)
src/Streamly/Internal/Data/IsMap/HashMap.hs+5
@@ -1,3 +1,8 @@
1+{-# LANGUAGE TypeFamilies #-}
2+-- Must come after TypeFamilies, otherwise it is re-enabled.
3+-- MonoLocalBinds enabled by TypeFamilies causes perf regressions in general.
4+{-# LANGUAGE NoMonoLocalBinds #-}
5+
1{-# OPTIONS_GHC -Wno-orphans #-}
6{-# OPTIONS_GHC -Wno-orphans #-}
2
7
3-- |
8-- |
src/Streamly/Internal/Data/Stream/IsStream/Expand.hs+5
@@ -1,3 +1,8 @@
1+{-# LANGUAGE TypeFamilies #-}
2+-- Must come after TypeFamilies, otherwise it is re-enabled.
3+-- MonoLocalBinds enabled by TypeFamilies causes perf regressions in general.
4+{-# LANGUAGE NoMonoLocalBinds #-}
5+
1{-# OPTIONS_GHC -Wno-deprecations #-}
6{-# OPTIONS_GHC -Wno-deprecations #-}
2
7
3-- |
8-- |
src/Streamly/Internal/Data/Stream/Serial.hs+5
@@ -1,4 +1,9 @@
1+{-# LANGUAGE TypeFamilies #-}
2+-- Must come after TypeFamilies, otherwise it is re-enabled.
3+-- MonoLocalBinds enabled by TypeFamilies causes perf regressions in general.
4+{-# LANGUAGE NoMonoLocalBinds #-}
1{-# LANGUAGE UndecidableInstances #-}
5{-# LANGUAGE UndecidableInstances #-}
6+
2{-# OPTIONS_GHC -Wno-deprecations #-}
7{-# OPTIONS_GHC -Wno-deprecations #-}
3{-# OPTIONS_GHC -Wno-redundant-constraints #-}
8{-# OPTIONS_GHC -Wno-redundant-constraints #-}
4
9
src/Streamly/Internal/Data/Stream/Zip.hs+5
@@ -1,4 +1,9 @@
1+{-# LANGUAGE TypeFamilies #-}
2+-- Must come after TypeFamilies, otherwise it is re-enabled.
3+-- MonoLocalBinds enabled by TypeFamilies causes perf regressions in general.
4+{-# LANGUAGE NoMonoLocalBinds #-}
1{-# LANGUAGE UndecidableInstances #-}
5{-# LANGUAGE UndecidableInstances #-}
6+
2{-# OPTIONS_GHC -Wno-deprecations #-}
7{-# OPTIONS_GHC -Wno-deprecations #-}
3
8
4-- |
9-- |
streamly.cabal+9−9
@@ -294,8 +294,6 @@ common compile-options
294common default-extensions
294common default-extensions
295 default-extensions:
295 default-extensions:
296 BangPatterns
296 BangPatterns
297− CApiFFI
298− CPP
299 ConstraintKinds
297 ConstraintKinds
300 DeriveDataTypeable
298 DeriveDataTypeable
301 DeriveGeneric
299 DeriveGeneric
@@ -306,23 +304,25 @@ common default-extensions
306 GeneralizedNewtypeDeriving
304 GeneralizedNewtypeDeriving
307 InstanceSigs
305 InstanceSigs
308 KindSignatures
306 KindSignatures
309− LambdaCase
310− MagicHash
311 MultiParamTypeClasses
307 MultiParamTypeClasses
312− PatternSynonyms
313 RankNTypes
308 RankNTypes
314− RecordWildCards
315 ScopedTypeVariables
309 ScopedTypeVariables
316 TupleSections
310 TupleSections
317 TypeApplications
311 TypeApplications
318− TypeFamilies
319 TypeOperators
312 TypeOperators
320− ViewPatterns
321
313
314+ -- Not GHC2021
315+ CApiFFI
316+ CPP
317+ LambdaCase
318+ MagicHash
319+ RecordWildCards
320+
321+ -- TypeFamilies -- required by IsHashMap type class
322 -- MonoLocalBinds, enabled by TypeFamilies, causes performance
322 -- MonoLocalBinds, enabled by TypeFamilies, causes performance
323 -- regressions. Disable it. This must come after TypeFamilies,
323 -- regressions. Disable it. This must come after TypeFamilies,
324 -- otherwise TypeFamilies will enable it again.
324 -- otherwise TypeFamilies will enable it again.
325− NoMonoLocalBinds
325+ -- NoMonoLocalBinds
326
326
327 -- UndecidableInstances -- Does not show any perf impact
327 -- UndecidableInstances -- Does not show any perf impact
328 -- UnboxedTuples -- interferes with (#.)
328 -- UnboxedTuples -- interferes with (#.)