Bump version requirements to base>=4.6, Cabal>=1.20

Cabal>=1.20 allows control over parallelism when compiling grammars from
Setup.hs and WebSetup.hs.

base>=4.6 allows conditional compilation with CPP to be eliminated from
a few modules.

base-4.6 corresponds to GHC 7.6.3, which is what you get in
Debian 8 (aka jessie, aka oldstable) from 2015.
This commit is contained in:
Thomas Hallgren
2017-08-18 11:55:44 +02:00
parent 5ab8b7082c
commit 0a0eaa01bc
5 changed files with 12 additions and 27 deletions

View File

@@ -1,13 +1,7 @@
-- | Isolate backwards incompatible library changes to 'catch' and 'try'
{-# LANGUAGE CPP #-}
-- | Backwards compatible 'catch' and 'try'
module GF.System.Catch where
import qualified System.IO.Error as S
-- ** Backwards compatible try and catch
#if MIN_VERSION_base(4,4,0)
catch = S.catchIOError
try = S.tryIOError
#else
catch = S.catch
try = S.try
#endif

View File

@@ -1,7 +1,6 @@
{-# LANGUAGE CPP,ForeignFunctionInterface #-}
{-# LANGUAGE ForeignFunctionInterface #-}
-- | A variant of 'Control.Concurrent.setNumCapabilities' that automatically
-- detects the number of processors in the system, and is available
-- even when compiling with GHC<7.6.
-- detects the number of processors in the system.
module GF.System.Concurrency(
-- * Controlling parallelism
setNumCapabilities,getNumberOfProcessors) where
@@ -16,13 +15,8 @@ import Foreign.C.Types(CInt(..))
-- hasn't already been set with @+RTS -N/n/ -RTS@.
setNumCapabilities opt_n =
do n <- maybe getNumberOfProcessors return opt_n
#if MIN_VERSION_base(4,6,0)
C.setNumCapabilities n
return True
#else
n_now <- C.getNumCapabilities
return (n==n_now)
#endif
-- | Returns the number of processors in the system.
getNumberOfProcessors = fmap fromEnum c_getNumberOfProcessors

View File

@@ -1,4 +1,4 @@
{-# LANGUAGE CPP, BangPatterns #-}
{-# LANGUAGE BangPatterns #-}
module PGF.Optimize
( optimizePGF
, updateProductionIndices
@@ -11,11 +11,7 @@ import PGF.Macros
import Data.List (mapAccumL)
import Data.Array.IArray
import Data.Array.MArray
#if MIN_VERSION_base(4,6,0)
import Data.Array.Unsafe as U(unsafeFreeze)
#else
import Data.Array.ST as U(unsafeFreeze)
#endif
import Data.Array.ST
import Data.Array.Unboxed
import qualified Data.Map as Map