Support GHC 7.10. Add new GitHub URL. Add Travis.
This commit is contained in:
parent
6e9c954e60
commit
53a0f5b97b
9
.gitignore
vendored
Normal file
9
.gitignore
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
/config.h
|
||||||
|
/config.log
|
||||||
|
/config.mk
|
||||||
|
/config.status
|
||||||
|
/testsuite/hier/hier2/A/B/C/Module.hi
|
||||||
|
/testsuite/hier/hier2/A/B/C/Module.o
|
||||||
|
/testsuite/makewith/io/TestIO.conf
|
||||||
|
/testsuite/makewith/unsafeio/Unsafe.conf
|
||||||
|
/.stack-work/
|
130
.travis.yml
Normal file
130
.travis.yml
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
# This file has been generated -- see https://github.com/hvr/multi-ghc-travis
|
||||||
|
language: c
|
||||||
|
sudo: false
|
||||||
|
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- $HOME/.cabsnap
|
||||||
|
- $HOME/.cabal/packages
|
||||||
|
|
||||||
|
before_cache:
|
||||||
|
- rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
|
||||||
|
- rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- env: CABALVER=1.16 GHCVER=7.0.1
|
||||||
|
compiler: ": #GHC 7.0.1"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.16,ghc-7.0.1,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.16 GHCVER=7.0.2
|
||||||
|
compiler: ": #GHC 7.0.2"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.16,ghc-7.0.2,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.16 GHCVER=7.0.3
|
||||||
|
compiler: ": #GHC 7.0.3"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.16,ghc-7.0.3,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.16 GHCVER=7.0.4
|
||||||
|
compiler: ": #GHC 7.0.4"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.16,ghc-7.0.4,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.16 GHCVER=7.2.1
|
||||||
|
compiler: ": #GHC 7.2.1"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.16,ghc-7.2.1,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.16 GHCVER=7.2.2
|
||||||
|
compiler: ": #GHC 7.2.2"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.16,ghc-7.2.2,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.16 GHCVER=7.4.1
|
||||||
|
compiler: ": #GHC 7.4.1"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.16,ghc-7.4.1,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.16 GHCVER=7.4.2
|
||||||
|
compiler: ": #GHC 7.4.2"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.16,ghc-7.4.2,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.16 GHCVER=7.6.1
|
||||||
|
compiler: ": #GHC 7.6.1"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.16,ghc-7.6.1,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.16 GHCVER=7.6.2
|
||||||
|
compiler: ": #GHC 7.6.2"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.16,ghc-7.6.2,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.16 GHCVER=7.6.3
|
||||||
|
compiler: ": #GHC 7.6.3"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.16,ghc-7.6.3,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.18 GHCVER=7.8.1
|
||||||
|
compiler: ": #GHC 7.8.1"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.1,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.18 GHCVER=7.8.2
|
||||||
|
compiler: ": #GHC 7.8.2"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.2,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.18 GHCVER=7.8.3
|
||||||
|
compiler: ": #GHC 7.8.3"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.3,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.18 GHCVER=7.8.4
|
||||||
|
compiler: ": #GHC 7.8.4"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.22 GHCVER=7.10.1
|
||||||
|
compiler: ": #GHC 7.10.1"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.1,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=1.22 GHCVER=7.10.2
|
||||||
|
compiler: ": #GHC 7.10.2"
|
||||||
|
addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.2,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
- env: CABALVER=head GHCVER=head
|
||||||
|
compiler: ": #GHC head"
|
||||||
|
addons: {apt: {packages: [cabal-install-head,ghc-head,happy-1.19.5], sources: [hvr-ghc]}}
|
||||||
|
|
||||||
|
allow_failures:
|
||||||
|
- env: CABALVER=head GHCVER=head
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- unset CC
|
||||||
|
- export PATH=/opt/happy/1.19.5/bin:/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
|
||||||
|
|
||||||
|
install:
|
||||||
|
- cabal --version
|
||||||
|
- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
|
||||||
|
- if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];
|
||||||
|
then
|
||||||
|
zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >
|
||||||
|
$HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
|
||||||
|
fi
|
||||||
|
- travis_retry cabal update -v
|
||||||
|
- sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config
|
||||||
|
- cabal install --only-dependencies --enable-tests --enable-benchmarks --dry -v > installplan.txt
|
||||||
|
- sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt
|
||||||
|
|
||||||
|
# check whether current requested install-plan matches cached package-db snapshot
|
||||||
|
- if diff -u installplan.txt $HOME/.cabsnap/installplan.txt;
|
||||||
|
then
|
||||||
|
echo "cabal build-cache HIT";
|
||||||
|
rm -rfv .ghc;
|
||||||
|
cp -a $HOME/.cabsnap/ghc $HOME/.ghc;
|
||||||
|
cp -a $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;
|
||||||
|
else
|
||||||
|
echo "cabal build-cache MISS";
|
||||||
|
rm -rf $HOME/.cabsnap;
|
||||||
|
mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;
|
||||||
|
cabal install --only-dependencies --enable-tests --enable-benchmarks;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# snapshot package-db on cache miss
|
||||||
|
- if [ ! -d $HOME/.cabsnap ];
|
||||||
|
then
|
||||||
|
echo "snapshotting package-db to build-cache";
|
||||||
|
mkdir $HOME/.cabsnap;
|
||||||
|
cp -a $HOME/.ghc $HOME/.cabsnap/ghc;
|
||||||
|
cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Here starts the actual work to be performed for the package under test;
|
||||||
|
# any command which exits with a non-zero exit code causes the build to fail.
|
||||||
|
script:
|
||||||
|
- if [ -f configure.ac ]; then autoreconf -i; fi
|
||||||
|
- cabal configure --enable-tests --enable-benchmarks -v2 # -v2 provides useful information for debugging
|
||||||
|
- cabal build # this builds all libraries and executables (including tests/benchmarks)
|
||||||
|
- cabal test
|
||||||
|
- cabal check
|
||||||
|
- cabal sdist # tests that a source-distribution can be generated
|
||||||
|
|
||||||
|
# Check that the resulting source distribution can be built & installed.
|
||||||
|
# If there are no other `.tar.gz` files in `dist`, this can be even simpler:
|
||||||
|
# `cabal install --force-reinstalls dist/*-*.tar.gz`
|
||||||
|
- SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz &&
|
||||||
|
(cd dist && cabal install --force-reinstalls "$SRC_TGZ")
|
||||||
|
|
||||||
|
# EOF
|
@ -59,3 +59,7 @@ library
|
|||||||
|
|
||||||
if impl(ghc >= 7.2)
|
if impl(ghc >= 7.2)
|
||||||
build-depends: ghc-paths
|
build-depends: ghc-paths
|
||||||
|
|
||||||
|
source-repository head
|
||||||
|
type: git
|
||||||
|
location: https://github.com/stepcut/plugins
|
||||||
|
@ -1,22 +1,22 @@
|
|||||||
{-# LANGUAGE CPP #-}
|
{-# LANGUAGE CPP #-}
|
||||||
--
|
--
|
||||||
-- Copyright (C) 2004-5 Don Stewart - http://www.cse.unsw.edu.au/~dons
|
-- Copyright (C) 2004-5 Don Stewart - http://www.cse.unsw.edu.au/~dons
|
||||||
--
|
--
|
||||||
-- This library is free software; you can redistribute it and/or
|
-- This library is free software; you can redistribute it and/or
|
||||||
-- modify it under the terms of the GNU Lesser General Public
|
-- modify it under the terms of the GNU Lesser General Public
|
||||||
-- License as published by the Free Software Foundation; either
|
-- License as published by the Free Software Foundation; either
|
||||||
-- version 2.1 of the License, or (at your option) any later version.
|
-- version 2.1 of the License, or (at your option) any later version.
|
||||||
--
|
--
|
||||||
-- This library is distributed in the hope that it will be useful,
|
-- This library is distributed in the hope that it will be useful,
|
||||||
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
-- Lesser General Public License for more details.
|
-- Lesser General Public License for more details.
|
||||||
--
|
--
|
||||||
-- You should have received a copy of the GNU Lesser General Public
|
-- You should have received a copy of the GNU Lesser General Public
|
||||||
-- License along with this library; if not, write to the Free Software
|
-- License along with this library; if not, write to the Free Software
|
||||||
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
-- USA
|
-- USA
|
||||||
--
|
--
|
||||||
|
|
||||||
module System.Plugins.Env (
|
module System.Plugins.Env (
|
||||||
env,
|
env,
|
||||||
@ -69,11 +69,14 @@ import System.IO.Error ( catch, ioError, isDoesNotExistError )
|
|||||||
|
|
||||||
import Control.Concurrent.MVar ( MVar(), newMVar, withMVar )
|
import Control.Concurrent.MVar ( MVar(), newMVar, withMVar )
|
||||||
|
|
||||||
import Distribution.Package hiding (depends, packageName, PackageName(..))
|
import Distribution.Package hiding (depends, packageName, PackageName(..)
|
||||||
|
#if MIN_VERSION_ghc(7,10,0)
|
||||||
|
, installedPackageId
|
||||||
|
#endif
|
||||||
|
)
|
||||||
import Distribution.Text
|
import Distribution.Text
|
||||||
|
|
||||||
import Distribution.InstalledPackageInfo
|
import Distribution.InstalledPackageInfo
|
||||||
-- import Distribution.Package hiding (packageName, PackageName(..))
|
|
||||||
import Distribution.Simple.Compiler
|
import Distribution.Simple.Compiler
|
||||||
import Distribution.Simple.GHC
|
import Distribution.Simple.GHC
|
||||||
import Distribution.Simple.PackageIndex
|
import Distribution.Simple.PackageIndex
|
||||||
@ -93,7 +96,7 @@ emptyFM = M.empty
|
|||||||
addToFM :: (Ord key) => FiniteMap key elt -> key -> elt -> FiniteMap key elt
|
addToFM :: (Ord key) => FiniteMap key elt -> key -> elt -> FiniteMap key elt
|
||||||
addToFM = \m k e -> M.insert k e m
|
addToFM = \m k e -> M.insert k e m
|
||||||
|
|
||||||
addWithFM :: (Ord key)
|
addWithFM :: (Ord key)
|
||||||
=> (elt -> elt -> elt) -> FiniteMap key elt -> key -> elt -> FiniteMap key elt
|
=> (elt -> elt -> elt) -> FiniteMap key elt -> key -> elt -> FiniteMap key elt
|
||||||
addWithFM = \comb m k e -> M.insertWith comb k e m
|
addWithFM = \comb m k e -> M.insertWith comb k e m
|
||||||
|
|
||||||
@ -147,9 +150,9 @@ type MergeEnv = FiniteMap (FilePath,FilePath) FilePath
|
|||||||
-- multiple package.conf's kept in separate namespaces
|
-- multiple package.conf's kept in separate namespaces
|
||||||
type PkgEnvs = [PkgEnv]
|
type PkgEnvs = [PkgEnv]
|
||||||
|
|
||||||
type Env = (MVar (),
|
type Env = (MVar (),
|
||||||
IORef ModEnv,
|
IORef ModEnv,
|
||||||
IORef DepEnv,
|
IORef DepEnv,
|
||||||
IORef PkgEnvs,
|
IORef PkgEnvs,
|
||||||
IORef StaticPkgEnv,
|
IORef StaticPkgEnv,
|
||||||
IORef MergeEnv)
|
IORef MergeEnv)
|
||||||
@ -160,7 +163,7 @@ type Env = (MVar (),
|
|||||||
-- packages and their informations. Initially all we know is the default
|
-- packages and their informations. Initially all we know is the default
|
||||||
-- package.conf information.
|
-- package.conf information.
|
||||||
--
|
--
|
||||||
env = unsafePerformIO $ do
|
env = unsafePerformIO $ do
|
||||||
mvar <- newMVar ()
|
mvar <- newMVar ()
|
||||||
ref1 <- newIORef emptyFM -- loaded objects
|
ref1 <- newIORef emptyFM -- loaded objects
|
||||||
ref2 <- newIORef emptyFM
|
ref2 <- newIORef emptyFM
|
||||||
@ -202,10 +205,10 @@ modifyPkgEnv :: Env -> (PkgEnvs -> IO PkgEnvs) -> IO ()
|
|||||||
modifyStaticPkgEnv :: Env -> (StaticPkgEnv -> IO StaticPkgEnv) -> IO ()
|
modifyStaticPkgEnv :: Env -> (StaticPkgEnv -> IO StaticPkgEnv) -> IO ()
|
||||||
modifyMerged :: Env -> (MergeEnv -> IO MergeEnv)-> IO ()
|
modifyMerged :: Env -> (MergeEnv -> IO MergeEnv)-> IO ()
|
||||||
|
|
||||||
modifyModEnv (mvar,ref,_,_,_,_) f = lockAndWrite mvar ref f
|
modifyModEnv (mvar,ref,_,_,_,_) f = lockAndWrite mvar ref f
|
||||||
modifyDepEnv (mvar,_,ref,_,_,_) f = lockAndWrite mvar ref f
|
modifyDepEnv (mvar,_,ref,_,_,_) f = lockAndWrite mvar ref f
|
||||||
modifyPkgEnv (mvar,_,_,ref,_,_) f = lockAndWrite mvar ref f
|
modifyPkgEnv (mvar,_,_,ref,_,_) f = lockAndWrite mvar ref f
|
||||||
modifyStaticPkgEnv (mvar,_,_,_,ref,_) f = lockAndWrite mvar ref f
|
modifyStaticPkgEnv (mvar,_,_,_,ref,_) f = lockAndWrite mvar ref f
|
||||||
modifyMerged (mvar,_,_,_,_,ref) f = lockAndWrite mvar ref f
|
modifyMerged (mvar,_,_,_,_,ref) f = lockAndWrite mvar ref f
|
||||||
|
|
||||||
-- private
|
-- private
|
||||||
@ -285,7 +288,7 @@ rmModuleDeps m = modifyDepEnv env $ \fm -> return $ delFromFM fm m
|
|||||||
-- stored in the environment.
|
-- stored in the environment.
|
||||||
--
|
--
|
||||||
addPkgConf :: FilePath -> IO ()
|
addPkgConf :: FilePath -> IO ()
|
||||||
addPkgConf f = do
|
addPkgConf f = do
|
||||||
ps <- readPackageConf f
|
ps <- readPackageConf f
|
||||||
modifyPkgEnv env $ \ls -> return $ union ls ps
|
modifyPkgEnv env $ \ls -> return $ union ls ps
|
||||||
|
|
||||||
@ -295,22 +298,22 @@ addPkgConf f = do
|
|||||||
-- GHC 6.12)
|
-- GHC 6.12)
|
||||||
--
|
--
|
||||||
union :: PkgEnvs -> [PackageConfig] -> PkgEnvs
|
union :: PkgEnvs -> [PackageConfig] -> PkgEnvs
|
||||||
union ls ps' =
|
union ls ps' =
|
||||||
let fm = emptyFM -- new FM for this package.conf
|
let fm = emptyFM -- new FM for this package.conf
|
||||||
in foldr addOnePkg fm ps' : ls
|
in foldr addOnePkg fm ps' : ls
|
||||||
where
|
where
|
||||||
-- we add each package with and without it's version number and with the full installedPackageId
|
-- we add each package with and without it's version number and with the full installedPackageId
|
||||||
addOnePkg p fm' = addToPkgEnvs (addToPkgEnvs (addToPkgEnvs fm' (display $ sourcePackageId p) p) (display $ installedPackageId p) p)
|
addOnePkg p fm' = addToPkgEnvs (addToPkgEnvs (addToPkgEnvs fm' (display $ sourcePackageId p) p) (display $ installedPackageId p) p)
|
||||||
(packageName p) p
|
(packageName p) p
|
||||||
|
|
||||||
-- if no version number specified, pick the higher version
|
-- if no version number specified, pick the higher version
|
||||||
addToPkgEnvs = addWithFM higherVersion
|
addToPkgEnvs = addWithFM higherVersion
|
||||||
|
|
||||||
higherVersion pkgconf1 pkgconf2
|
higherVersion pkgconf1 pkgconf2
|
||||||
| installedPackageId pkgconf1 >= installedPackageId pkgconf2 = pkgconf1
|
| installedPackageId pkgconf1 >= installedPackageId pkgconf2 = pkgconf1
|
||||||
| otherwise = pkgconf2
|
| otherwise = pkgconf2
|
||||||
|
|
||||||
--
|
--
|
||||||
-- | generate a PkgEnv from the system package.conf
|
-- | generate a PkgEnv from the system package.conf
|
||||||
-- The path to the default package.conf was determined by /configure/
|
-- The path to the default package.conf was determined by /configure/
|
||||||
-- This imposes a constraint that you must build your plugins with the
|
-- This imposes a constraint that you must build your plugins with the
|
||||||
@ -364,7 +367,7 @@ lookupPkg :: PackageName -> IO ([FilePath],[FilePath])
|
|||||||
lookupPkg pn = go [] pn
|
lookupPkg pn = go [] pn
|
||||||
where
|
where
|
||||||
go :: [PackageName] -> PackageName -> IO ([FilePath],[FilePath])
|
go :: [PackageName] -> PackageName -> IO ([FilePath],[FilePath])
|
||||||
go seen p = do
|
go seen p = do
|
||||||
(ps, (f, g)) <- lookupPkg' p
|
(ps, (f, g)) <- lookupPkg' p
|
||||||
static <- isStaticPkg p
|
static <- isStaticPkg p
|
||||||
(f', g') <- liftM unzip $ mapM (go (nub $ seen ++ ps)) (ps \\ seen)
|
(f', g') <- liftM unzip $ mapM (go (nub $ seen ++ ps)) (ps \\ seen)
|
||||||
@ -453,7 +456,7 @@ lookupPkg' p = withPkgEnvs env $ \fms -> go fms p
|
|||||||
fix_topdir (x:xs) = replace_topdir x : fix_topdir xs
|
fix_topdir (x:xs) = replace_topdir x : fix_topdir xs
|
||||||
|
|
||||||
replace_topdir [] = []
|
replace_topdir [] = []
|
||||||
replace_topdir ('$':xs)
|
replace_topdir ('$':xs)
|
||||||
| take 6 xs == "topdir" = ghcLibraryPath ++ (drop 6 xs)
|
| take 6 xs == "topdir" = ghcLibraryPath ++ (drop 6 xs)
|
||||||
| otherwise = '$' : replace_topdir xs
|
| otherwise = '$' : replace_topdir xs
|
||||||
replace_topdir (x:xs) = x : replace_topdir xs
|
replace_topdir (x:xs) = x : replace_topdir xs
|
||||||
@ -533,7 +536,7 @@ a </> b = a ++ "/" ++ b
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
packageName :: PackageConfig -> PackageName
|
packageName :: PackageConfig -> PackageName
|
||||||
packageDeps :: PackageConfig -> [PackageName]
|
packageDeps :: PackageConfig -> [PackageName]
|
||||||
-- updImportDirs :: ([FilePath] -> [FilePath]) -> PackageConfig -> PackageConfig
|
-- updImportDirs :: ([FilePath] -> [FilePath]) -> PackageConfig -> PackageConfig
|
||||||
-- updLibraryDirs :: ([FilePath] -> [FilePath]) -> PackageConfig -> PackageConfig
|
-- updLibraryDirs :: ([FilePath] -> [FilePath]) -> PackageConfig -> PackageConfig
|
||||||
|
@ -72,7 +72,11 @@ import System.Plugins.LoadTypes
|
|||||||
-- import Language.Hi.Parser
|
-- import Language.Hi.Parser
|
||||||
import BinIface
|
import BinIface
|
||||||
import HscTypes
|
import HscTypes
|
||||||
|
#if MIN_VERSION_ghc(7,10,0)
|
||||||
|
import Module (moduleName, moduleNameString, packageKeyString)
|
||||||
|
#else
|
||||||
import Module (moduleName, moduleNameString, packageIdString)
|
import Module (moduleName, moduleNameString, packageIdString)
|
||||||
|
#endif
|
||||||
import HscMain (newHscEnv)
|
import HscMain (newHscEnv)
|
||||||
import TcRnMonad (initTcRnIf)
|
import TcRnMonad (initTcRnIf)
|
||||||
|
|
||||||
@ -701,7 +705,9 @@ loadDepends obj incpaths = do
|
|||||||
|
|
||||||
-- and find some packages to load, as well.
|
-- and find some packages to load, as well.
|
||||||
let ps = dep_pkgs ds
|
let ps = dep_pkgs ds
|
||||||
#if MIN_VERSION_ghc(7,2,0)
|
#if MIN_VERSION_ghc(7,10,0)
|
||||||
|
ps' <- filterM loaded . map packageKeyString . nub $ map fst ps
|
||||||
|
#elif MIN_VERSION_ghc(7,2,0)
|
||||||
ps' <- filterM loaded . map packageIdString . nub $ map fst ps
|
ps' <- filterM loaded . map packageIdString . nub $ map fst ps
|
||||||
#else
|
#else
|
||||||
ps' <- filterM loaded . map packageIdString . nub $ ps
|
ps' <- filterM loaded . map packageIdString . nub $ ps
|
||||||
|
29
stack.yaml
Normal file
29
stack.yaml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# For more information, see: https://github.com/commercialhaskell/stack/blob/master/doc/yaml_configuration.md
|
||||||
|
|
||||||
|
# Specifies the GHC version and set of packages available (e.g., lts-3.5, nightly-2015-09-21, ghc-7.10.2)
|
||||||
|
resolver: lts-3.8
|
||||||
|
|
||||||
|
# Local packages, usually specified by relative directory name
|
||||||
|
packages:
|
||||||
|
- '.'
|
||||||
|
|
||||||
|
# Packages to be pulled from upstream that are not in the resolver (e.g., acme-missiles-0.3)
|
||||||
|
extra-deps: []
|
||||||
|
|
||||||
|
# Override default flag values for local packages and extra-deps
|
||||||
|
flags: {}
|
||||||
|
|
||||||
|
# Control whether we use the GHC we find on the path
|
||||||
|
# system-ghc: true
|
||||||
|
|
||||||
|
# Require a specific version of stack, using version ranges
|
||||||
|
# require-stack-version: -any # Default
|
||||||
|
# require-stack-version: >= 0.1.4.0
|
||||||
|
|
||||||
|
# Override the architecture used by stack, especially useful on Windows
|
||||||
|
# arch: i386
|
||||||
|
# arch: x86_64
|
||||||
|
|
||||||
|
# Extra directories used by stack for building
|
||||||
|
# extra-include-dirs: [/path/to/dir]
|
||||||
|
# extra-lib-dirs: [/path/to/dir]
|
Loading…
x
Reference in New Issue
Block a user