summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-haskell/lvmlib')
-rw-r--r--dev-haskell/lvmlib/Manifest1
-rw-r--r--dev-haskell/lvmlib/files/lvmlib-1.1-ghc-7.10.patch87
-rw-r--r--dev-haskell/lvmlib/lvmlib-1.1.ebuild31
-rw-r--r--dev-haskell/lvmlib/metadata.xml14
4 files changed, 133 insertions, 0 deletions
diff --git a/dev-haskell/lvmlib/Manifest b/dev-haskell/lvmlib/Manifest
new file mode 100644
index 000000000000..9c169ae7fdd5
--- /dev/null
+++ b/dev-haskell/lvmlib/Manifest
@@ -0,0 +1 @@
+DIST lvmlib-1.1.tar.gz 62388 SHA256 6f99e1ed437d45ecdbb019185d24bc920f7965f279f3b1cec268d51350c622d3 SHA512 3f085f3ff8e53ab19de3b425c4c5a271111afcd334ec08fefd983838608ae436005c20c2d7c545650f0dd1b76d466f81661a14c8ce972df27d79a78c22023861 WHIRLPOOL 51335de8c29e9317bb0fb18f31aa0478dfe603f1c982730501636aee5099f833e9b205869a519eba7e84de291347024406b09dd084edbcc7ab04be33714be5e8
diff --git a/dev-haskell/lvmlib/files/lvmlib-1.1-ghc-7.10.patch b/dev-haskell/lvmlib/files/lvmlib-1.1-ghc-7.10.patch
new file mode 100644
index 000000000000..ad68d78f56e7
--- /dev/null
+++ b/dev-haskell/lvmlib/files/lvmlib-1.1-ghc-7.10.patch
@@ -0,0 +1,87 @@
+diff --git a/Lvm/Asm/Data.hs b/Lvm/Asm/Data.hs
+index 7939754..f3da0b7 100644
+--- a/Lvm/Asm/Data.hs
++++ b/Lvm/Asm/Data.hs
+@@ -17,2 +17,3 @@ import Lvm.Core.Module
+ import Text.PrettyPrint.Leijen
++import Prelude hiding ((<$>))
+
+diff --git a/Lvm/Common/IdMap.hs b/Lvm/Common/IdMap.hs
+index a50bcb6..10758e6 100644
+--- a/Lvm/Common/IdMap.hs
++++ b/Lvm/Common/IdMap.hs
+@@ -24,2 +24,3 @@ import Lvm.Common.Id
+ import Control.Arrow (first)
++import Prelude hiding (foldMap)
+
+diff --git a/Lvm/Core/Expr.hs b/Lvm/Core/Expr.hs
+index 8bc50d7..935e16a 100644
+--- a/Lvm/Core/Expr.hs
++++ b/Lvm/Core/Expr.hs
+@@ -17,2 +17,3 @@ import Lvm.Core.PrettyId
+ import Text.PrettyPrint.Leijen
++import Prelude hiding ((<$>))
+
+diff --git a/Lvm/Core/Module.hs b/Lvm/Core/Module.hs
+index 923870e..ac52201 100644
+--- a/Lvm/Core/Module.hs
++++ b/Lvm/Core/Module.hs
+@@ -24,2 +24,3 @@ import Lvm.Instr.Data
+ import Text.PrettyPrint.Leijen
++import Prelude hiding ((<$>))
+
+diff --git a/Lvm/Instr/Data.hs b/Lvm/Instr/Data.hs
+index 497a690..959cb5c 100644
+--- a/Lvm/Instr/Data.hs
++++ b/Lvm/Instr/Data.hs
+@@ -19,2 +19,3 @@ import Lvm.Common.Id
+ import Text.PrettyPrint.Leijen
++import Prelude hiding ((<$>))
+
+diff --git a/Lvm/Instr/Resolve.hs b/Lvm/Instr/Resolve.hs
+index 6845f74..4172a74 100644
+--- a/Lvm/Instr/Resolve.hs
++++ b/Lvm/Instr/Resolve.hs
+@@ -10,2 +10,4 @@ module Lvm.Instr.Resolve (instrResolve) where
+ import Control.Exception (assert)
++import Control.Applicative
++import Control.Monad
+ import Data.Maybe
+@@ -32,2 +34,6 @@ instance Functor Resolve where
+
++instance Applicative Resolve where
++ pure = return
++ (<*>) = ap -- defined in Control.Monad
++
+ instance Monad Resolve where
+diff --git a/Lvm/Read.hs b/Lvm/Read.hs
+index 7137331..25797f9 100644
+--- a/Lvm/Read.hs
++++ b/Lvm/Read.hs
+@@ -9,2 +9,3 @@ module Lvm.Read (lvmReadFile, lvmRead) where
+
++import Control.Applicative
+ import Control.Monad
+@@ -390,2 +391,7 @@ instance Functor (Read v) where
+ Result x st2 -> Result (f x) st2)
++
++instance Applicative (Read v) where
++ pure = return
++ (<*>) = ap -- defined in Control.Monad
++
+ instance Monad (Read v) where
+diff --git a/Lvm/Write.hs b/Lvm/Write.hs
+index 48570f8..37469bc 100644
+--- a/Lvm/Write.hs
++++ b/Lvm/Write.hs
+@@ -11,2 +11,3 @@ import qualified Control.Exception as CE (assert, catch, IOException)
+ import Control.Monad
++import Control.Applicative
+ import Data.Maybe
+@@ -465,2 +466,6 @@ instance Functor Emit where
+
++instance Applicative Emit where
++ pure = return
++ (<*>) = ap -- defined in Control.Monad
++
+ instance Monad Emit where
diff --git a/dev-haskell/lvmlib/lvmlib-1.1.ebuild b/dev-haskell/lvmlib/lvmlib-1.1.ebuild
new file mode 100644
index 000000000000..b8262548a680
--- /dev/null
+++ b/dev-haskell/lvmlib/lvmlib-1.1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.4.4.9999
+
+CABAL_FEATURES="bin lib profile haddock hoogle hscolour"
+inherit eutils haskell-cabal
+
+DESCRIPTION="The Lazy Virtual Machine (LVM)"
+HOMEPAGE="http://www.cs.uu.nl/wiki/bin/view/Helium/WebHome"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-haskell/parsec:=[profile?]
+ dev-haskell/wl-pprint:=[profile?]
+ >=dev-lang/ghc-7.4.1:=
+"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.10.1.0
+"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.1-ghc-7.10.patch
+}
diff --git a/dev-haskell/lvmlib/metadata.xml b/dev-haskell/lvmlib/metadata.xml
new file mode 100644
index 000000000000..124dc006bfce
--- /dev/null
+++ b/dev-haskell/lvmlib/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>haskell</herd>
+ <longdescription>
+ The Lazy Virtual Machine (LVM) defines a portable instruction set and file
+ format. It is specifically designed to execute languages with non-strict (or
+ lazy) semantics. This cabal package defines the core assembler (coreasm) for
+ compiling core programs into LVM instructions and a library. The LVM is used
+ as a backend for the Helium compiler. At the moment, one LVM runtime
+ implementation is available (written in C). More information about LVM can be
+ found in Chapter 6 of Daan Leijen&#39;s PhD Thesis, The Lambda Abroad.
+ </longdescription>
+</pkgmetadata>