[commit: dph] : Split out Scalar instances into their own module (65cbc7a)

Ben Lippmeier benl at ouroborus.net
Thu May 12 15:42:22 CEST 2011


Repository : ssh://darcs.haskell.org//srv/darcs/packages/dph

On branch  : 

http://hackage.haskell.org/trac/ghc/changeset/65cbc7a731089df9668868ed0f8ec848946bb5de

>---------------------------------------------------------------

commit 65cbc7a731089df9668868ed0f8ec848946bb5de
Author: Ben Lippmeier <benl at ouroborus.net>
Date:   Fri May 6 15:57:03 2011 +1000

    Split out Scalar instances into their own module

>---------------------------------------------------------------

 .../Data/Array/Parallel/Lifted/Combinators.hs      |    1 +
 dph-common/Data/Array/Parallel/Lifted/Repr.hs      |   15 -----------
 .../Data/Array/Parallel/PArray/PReprInstances.hs   |    1 +
 .../Data/Array/Parallel/PArray/ScalarInstances.hs  |   26 ++++++++++++++++++++
 dph-common/dph-common.cabal                        |    1 +
 5 files changed, 29 insertions(+), 15 deletions(-)

diff --git a/dph-common/Data/Array/Parallel/Lifted/Combinators.hs b/dph-common/Data/Array/Parallel/Lifted/Combinators.hs
index cdd81ad..5f2dd7b 100644
--- a/dph-common/Data/Array/Parallel/Lifted/Combinators.hs
+++ b/dph-common/Data/Array/Parallel/Lifted/Combinators.hs
@@ -38,6 +38,7 @@ import Data.Array.Parallel.Lifted.Repr
 import Data.Array.Parallel.Lifted.Scalar
 
 import Data.Array.Parallel.PArray.PReprInstances
+import Data.Array.Parallel.PArray.ScalarInstances
 
 import qualified Data.Array.Parallel.Unlifted as U
 import Data.Array.Parallel.Base ( Tag, fromBool )
diff --git a/dph-common/Data/Array/Parallel/Lifted/Repr.hs b/dph-common/Data/Array/Parallel/Lifted/Repr.hs
index d5ee695..c94faed 100644
--- a/dph-common/Data/Array/Parallel/Lifted/Repr.hs
+++ b/dph-common/Data/Array/Parallel/Lifted/Repr.hs
@@ -29,21 +29,6 @@ import Data.List (unzip4, unzip5)
 import GHC.Exts  (Int#, Int(..), (+#), (-#), (*#))
 import GHC.Word  ( Word8 )
 
--- Scalar types ---------------------------------------------------------------
-
--- Generate

>---------------------------------------------------------------

--- newtype instance PData Int = PInt (U.Array Int)

>---------------------------------------------------------------

--- instance Scalar Int where
---   fromScalarPData (PInt xs) = xs
---   toScalarPData = PInt

>---------------------------------------------------------------

--- instance PR Int where
---   <forward to *PRScalar methods>
-
-$(scalarInstances [''Int, ''Float, ''Double, ''Word8])
-
 
 -- Void -----------------------------------------------------------------------
 data instance PData Void
diff --git a/dph-common/Data/Array/Parallel/PArray/PReprInstances.hs b/dph-common/Data/Array/Parallel/PArray/PReprInstances.hs
index 6935269..ce5eea8 100644
--- a/dph-common/Data/Array/Parallel/PArray/PReprInstances.hs
+++ b/dph-common/Data/Array/Parallel/PArray/PReprInstances.hs
@@ -21,6 +21,7 @@ where
 import Data.Array.Parallel.PArray.PRepr
 import Data.Array.Parallel.PArray.PData
 import Data.Array.Parallel.PArray.Base
+import Data.Array.Parallel.PArray.ScalarInstances
 import Data.Array.Parallel.Lifted.Repr
 import qualified Data.Array.Parallel.Unlifted as U
 import GHC.Word    ( Word8 )
diff --git a/dph-common/Data/Array/Parallel/PArray/ScalarInstances.hs b/dph-common/Data/Array/Parallel/PArray/ScalarInstances.hs
new file mode 100644
index 0000000..10d7a70
--- /dev/null
+++ b/dph-common/Data/Array/Parallel/PArray/ScalarInstances.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE CPP #-}
+#include "fusion-phases.h"
+
+-- | Instances for the Scalar class.
+--   These let us coerce scalar U.Arrays to PData arrays.
+module Data.Array.Parallel.PArray.ScalarInstances
+where
+import Data.Array.Parallel.Lifted.TH.Repr
+import Data.Array.Parallel.PArray.Scalar        
+import Data.Array.Parallel.PArray.PData
+import GHC.Word  ( Word8 )
+
+
+$(scalarInstances [''Int, ''Float, ''Double, ''Word8])
+
+{- Generated code:
+    newtype instance PData Int  = PInt (U.Array Int)
+
+    instance Scalar Int where
+      fromScalarPData (PInt xs) = xs
+      toScalarPData             = PInt
+
+    instance PR Int where
+       <forward to *PRScalar methods>
+-}
\ No newline at end of file
diff --git a/dph-common/dph-common.cabal b/dph-common/dph-common.cabal
index fdcd80c..6ce7123 100644
--- a/dph-common/dph-common.cabal
+++ b/dph-common/dph-common.cabal
@@ -30,6 +30,7 @@ Library
   Other-Modules:
         Data.Array.Parallel.PArray.Base
         Data.Array.Parallel.PArray.Scalar
+        Data.Array.Parallel.PArray.ScalarInstances
         Data.Array.Parallel.PArray.PRepr
         Data.Array.Parallel.PArray.PReprInstances
         Data.Array.Parallel.PArray.PData





More information about the Cvs-libraries mailing list