1
0
forked from GitHub/gf-core

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

@@ -98,14 +98,13 @@ execute command args =
showArg arg = if ' ' `elem` arg then "'" ++ arg ++ "'" else arg
-- | This function is used to enable parallel compilation of the RGL and
-- example grammars, but it is commented out by default
-- to avoid casing problems for developers using Cabal<1.20
-- example grammars
numJobs flags =
if null n
then ["-j","+RTS","-A20M","-N","-RTS"]
else ["-j="++n,"+RTS","-A20M","-N"++n,"-RTS"]
where
-- buildNumJobs is only available in Cabal>=1.20
n = {-case buildNumJobs flags of
n = case buildNumJobs flags of
Flag mn | mn/=Just 1-> maybe "" show mn
_ ->-} ""
_ -> ""

View File

@@ -1,7 +1,7 @@
name: gf
version: 3.9
version: 3.9-git
cabal-version: >= 1.10
cabal-version: >= 1.20
build-type: Custom
license: OtherLicense
license-file: LICENSE
@@ -57,6 +57,7 @@ flag interrupt
flag server
Description: Include --server mode
Default: True
flag network-uri
description: Get Network.URI from the network-uri package
default: True
@@ -68,6 +69,7 @@ flag network-uri
flag custom-binary
Description: Use a customised version of the binary package
Default: True
Manual: True
flag c-runtime
Description: Include functionality from the C run-time library (which must be installed already)
@@ -75,7 +77,7 @@ flag c-runtime
Library
default-language: Haskell2010
build-depends: base >= 4.5 && <5,
build-depends: base >= 4.6 && <5,
array,
containers,
bytestring,

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