2889211efd
Android build is now almost entirely automated, except for the installation of cross-built libs needed for XMPP. Haskell packages updated to current newest versions. Am not currently pinning the versions, as that didn't work out last time I tried it (must have missed some pins before).
96 lines
3.5 KiB
Diff
96 lines
3.5 KiB
Diff
From 2b1ee45058b0d6db90f77e4859d01d1e8434906c Mon Sep 17 00:00:00 2001
|
|
From: foo <foo@bar>
|
|
Date: Sat, 21 Sep 2013 23:11:51 +0000
|
|
Subject: [PATCH] fix build with new ghc
|
|
|
|
---
|
|
Data/Primitive/Array.hs | 2 +-
|
|
Data/Primitive/ByteArray.hs | 2 +-
|
|
Data/Primitive/MutVar.hs | 4 ++--
|
|
Data/Primitive/Types.hs | 13 +++++++------
|
|
4 files changed, 11 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/Data/Primitive/Array.hs b/Data/Primitive/Array.hs
|
|
index b82dcac..b28abea 100644
|
|
--- a/Data/Primitive/Array.hs
|
|
+++ b/Data/Primitive/Array.hs
|
|
@@ -106,7 +106,7 @@ unsafeThawArray (Array arr#)
|
|
sameMutableArray :: MutableArray s a -> MutableArray s a -> Bool
|
|
{-# INLINE sameMutableArray #-}
|
|
sameMutableArray (MutableArray arr#) (MutableArray brr#)
|
|
- = sameMutableArray# arr# brr#
|
|
+ = tagToEnum# (sameMutableArray# arr# brr#)
|
|
|
|
-- | Copy a slice of an immutable array to a mutable array.
|
|
copyArray :: PrimMonad m
|
|
diff --git a/Data/Primitive/ByteArray.hs b/Data/Primitive/ByteArray.hs
|
|
index 2a47254..3a1ed6e 100644
|
|
--- a/Data/Primitive/ByteArray.hs
|
|
+++ b/Data/Primitive/ByteArray.hs
|
|
@@ -99,7 +99,7 @@ mutableByteArrayContents (MutableByteArray arr#)
|
|
sameMutableByteArray :: MutableByteArray s -> MutableByteArray s -> Bool
|
|
{-# INLINE sameMutableByteArray #-}
|
|
sameMutableByteArray (MutableByteArray arr#) (MutableByteArray brr#)
|
|
- = sameMutableByteArray# arr# brr#
|
|
+ = tagToEnum# (sameMutableByteArray# arr# brr#)
|
|
|
|
-- | Convert a mutable byte array to an immutable one without copying. The
|
|
-- array should not be modified after the conversion.
|
|
diff --git a/Data/Primitive/MutVar.hs b/Data/Primitive/MutVar.hs
|
|
index 9745ec7..eb654c9 100644
|
|
--- a/Data/Primitive/MutVar.hs
|
|
+++ b/Data/Primitive/MutVar.hs
|
|
@@ -23,7 +23,7 @@ module Data.Primitive.MutVar (
|
|
) where
|
|
|
|
import Control.Monad.Primitive ( PrimMonad(..), primitive_ )
|
|
-import GHC.Prim ( MutVar#, sameMutVar#, newMutVar#,
|
|
+import GHC.Prim ( MutVar#, sameMutVar#, newMutVar#, tagToEnum#,
|
|
readMutVar#, writeMutVar#, atomicModifyMutVar# )
|
|
import Data.Typeable ( Typeable )
|
|
|
|
@@ -33,7 +33,7 @@ data MutVar s a = MutVar (MutVar# s a)
|
|
deriving ( Typeable )
|
|
|
|
instance Eq (MutVar s a) where
|
|
- MutVar mva# == MutVar mvb# = sameMutVar# mva# mvb#
|
|
+ MutVar mva# == MutVar mvb# = tagToEnum# (sameMutVar# mva# mvb#)
|
|
|
|
-- | Create a new 'MutVar' with the specified initial value
|
|
newMutVar :: PrimMonad m => a -> m (MutVar (PrimState m) a)
|
|
diff --git a/Data/Primitive/Types.hs b/Data/Primitive/Types.hs
|
|
index 7568f0c..d961e97 100644
|
|
--- a/Data/Primitive/Types.hs
|
|
+++ b/Data/Primitive/Types.hs
|
|
@@ -20,6 +20,7 @@ module Data.Primitive.Types (
|
|
import Control.Monad.Primitive
|
|
import Data.Primitive.MachDeps
|
|
import Data.Primitive.Internal.Operations
|
|
+import GHC.Prim (tagToEnum#)
|
|
|
|
import GHC.Base (
|
|
unsafeCoerce#,
|
|
@@ -48,14 +49,14 @@ import Data.Primitive.Internal.Compat ( mkNoRepType )
|
|
data Addr = Addr Addr# deriving ( Typeable )
|
|
|
|
instance Eq Addr where
|
|
- Addr a# == Addr b# = eqAddr# a# b#
|
|
- Addr a# /= Addr b# = neAddr# a# b#
|
|
+ Addr a# == Addr b# = tagToEnum# (eqAddr# a# b#)
|
|
+ Addr a# /= Addr b# = tagToEnum# (neAddr# a# b#)
|
|
|
|
instance Ord Addr where
|
|
- Addr a# > Addr b# = gtAddr# a# b#
|
|
- Addr a# >= Addr b# = geAddr# a# b#
|
|
- Addr a# < Addr b# = ltAddr# a# b#
|
|
- Addr a# <= Addr b# = leAddr# a# b#
|
|
+ Addr a# > Addr b# = tagToEnum# (gtAddr# a# b#)
|
|
+ Addr a# >= Addr b# = tagToEnum# (geAddr# a# b#)
|
|
+ Addr a# < Addr b# = tagToEnum# (ltAddr# a# b#)
|
|
+ Addr a# <= Addr b# = tagToEnum# (leAddr# a# b#)
|
|
|
|
instance Data Addr where
|
|
toConstr _ = error "toConstr"
|
|
--
|
|
1.7.10.4
|
|
|