# Distributed under the terms of the GNU General Public License v2
# $Id$
-EAPI=5
+EAPI=6
# ebuild generated by hackport 0.4.5.9999
CABAL_FEATURES="bin lib profile haddock hoogle hscolour"
-inherit eutils haskell-cabal
+inherit haskell-cabal
DESCRIPTION="Compiler for a simple functional language"
HOMEPAGE="http://www.dcs.st-and.ac.uk/~eb/epic.php"
RDEPEND="dev-haskell/cabal:=[profile?]
dev-haskell/mtl:=[profile?]
- >=dev-libs/boehm-gc-7.0[threads]
- dev-libs/gmp:0
+ >=dev-libs/boehm-gc-7.0:0=[threads]
+ dev-libs/gmp:0=
>=dev-lang/ghc-7.4.1:=
"
DEPEND="${RDEPEND}
>=dev-haskell/cabal-1.8.0.4
dev-haskell/happy
"
+# Bug #438422, upstream at https://github.com/edwinb/EpiVM/issues/5.
+PATCHES=("${FILESDIR}"/${PN}-0.9.3.3-respect-user-cflags.patch)
src_prepare() {
- # Bug #438422, upstream at https://github.com/edwinb/EpiVM/issues/5.
- epatch "${FILESDIR}"/respect-user-cflags.patch
+ default
+
+ # to disambiguare with net-irc/epic4, bug #432436
+ cabal_chdeps \
+ 'Executable epic' 'Executable epic-epivm'
}
+++ /dev/null
---- epic-0.9.3-orig/Epic/Language.lhs 2012-02-28 10:44:29.000000000 +1100
-+++ epic-0.9.3/Epic/Language.lhs 2012-09-14 16:20:29.841939337 +1000
-@@ -1,9 +1,14 @@
--> {-# LANGUAGE FlexibleInstances, MultiParamTypeClasses,
-+> {-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, CPP,
- > FunctionalDependencies #-}
-
- > module Epic.Language where
-
- > import Control.Monad
-+#if MIN_VERSION_base(4,6,0)
-+> import Control.Exception.Base
-+#endif
-+
-+
- > import System.IO
- > import System.Directory
- > import System.Environment
-@@ -379,7 +384,13 @@
- > environment :: String -> IO (Maybe String)
- > environment x = catch (do e <- getEnv x
- > return (Just e))
--> (\_ -> return Nothing)
-+#if MIN_VERSION_base(4,6,0)
-+> (\y-> do return (y::SomeException); return Nothing)
-+#endif
-+>
-+#if !MIN_VERSION_base(4,6,0)
-+> (\_-> return Nothing)
-+#endif
-
- Some tests
-
---- epic-0.9.3-orig/Epic/CodegenC.lhs 2012-02-28 10:44:29.000000000 +1100
-+++ epic-0.9.3/Epic/CodegenC.lhs 2012-09-14 16:13:48.061329048 +1000
-@@ -1,3 +1,4 @@
-+> {-#LANGUAGE FlexibleContexts#-}
- > module Epic.CodegenC where
-
- > import Control.Monad.State
-@@ -98,10 +99,11 @@
- > if (x>max) then put x else return ()
-
- > cgs [] = return ""
-+
- > cgs (x:xs) = do xc <- cg x
- > xsc <- cgs xs
- > return $ xc ++ "\n" ++ xsc
--
-+> cg:: (MonadState Int m) => ByteOp -> m [Char]
- > cg (CALL t fn args) = return $ tmp t ++ " = " ++ quickcall fn ++
- > targs "(" args ++ ");"
- > cg (TAILCALL t fn args)