Haddock cleanups for the lifted packages
authorBen Lippmeier <benl@ouroborus.net>
Fri, 3 Feb 2012 07:18:31 +0000 (18:18 +1100)
committerBen Lippmeier <benl@ouroborus.net>
Fri, 3 Feb 2012 07:18:31 +0000 (18:18 +1100)
37 files changed:
dph-lifted-base/Data/Array/Parallel/PArray.hs
dph-lifted-base/Data/Array/Parallel/PArray/Types.hs
dph-lifted-base/dph-lifted-base.cabal
dph-lifted-boxed/Data/Array/Parallel/Lifted/Closure.hs
dph-lifted-boxed/Data/Array/Parallel/Lifted/Combinators.hs
dph-lifted-boxed/Data/Array/Parallel/PArray.hs
dph-lifted-boxed/Data/Array/Parallel/PArray/PData.hs
dph-lifted-boxed/Data/Array/Parallel/PArray/Types.hs
dph-lifted-boxed/dph-lifted-boxed.cabal
dph-lifted-copy/Data/Array/Parallel.hs
dph-lifted-copy/Data/Array/Parallel/PArray.hs
dph-lifted-copy/dph-lifted-copy.cabal
dph-lifted-vseg/Data/Array/Parallel.hs
dph-lifted-vseg/Data/Array/Parallel/Lifted/Closure.hs
dph-lifted-vseg/Data/Array/Parallel/Lifted/Combinators.hs
dph-lifted-vseg/Data/Array/Parallel/PArray.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Base.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Double.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Int.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Nested.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Sum2.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Tuple2.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Tuple3.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Tuple4.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Tuple5.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Unit.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Void.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Word8.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Wrap.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PRepr.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PRepr/Base.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PRepr/Instances.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PRepr/Nested.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PRepr/Tuple.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/Scalar.hs
dph-lifted-vseg/Data/Array/Parallel/Prim.hs
dph-lifted-vseg/dph-lifted-vseg.cabal

index f7795a1..2fc483d 100644 (file)
@@ -9,7 +9,7 @@
 --   * The operators should also all do bounds checks, sanity checks, and 
 --     give nice error messages if something is wrong. The ideas is that
 --     this code can be run side-by-side production code during debugging.
---
+---
 --   TODO: check lengths properly in functions like zip, extracts
 --
 module Data.Array.Parallel.PArray
@@ -397,4 +397,4 @@ fromUArray2
         :: (U.Elt a, U.Elt b)
         => U.Array (a, b) -> PArray (a, b)
         
-fromUArray2  = V.convert
\ No newline at end of file
+fromUArray2  = V.convert
index 3ecafe1..c32ed42 100644 (file)
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | Defines the extra types we use when representing algebraic data in
index c4b9196..d43d18f 100644 (file)
@@ -22,7 +22,6 @@ Library
         False
 
   Extensions:
-        CPP,
         BangPatterns,
         PatternGuards
         TypeFamilies,
index e110459..3aeab96 100644 (file)
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# OPTIONS -fno-spec-constr #-}
 #include "fusion-phases.h"
 
@@ -52,19 +53,19 @@ import Data.Array.Parallel.PArray               as PA
 -- functions that convert between the source level array type [:a:] and the 
 -- PArray type which is used in the library. 
 
--- | Identity function, used as the vectorised version of fromPArrayP.
+-- | Identity function, used as the vectorised version of `fromPArrayP`.
 fromPArrayPP :: PA a => PArray a :-> PArray a
 fromPArrayPP         = closure1 (\x -> x) (\_ xs -> xs)
 {-# INLINE fromPArrayPP #-}
 
 
--- | Identity function, used as the vectorised version of toPArrayP.
+-- | Identity function, used as the vectorised version of `toPArrayP`.
 toPArrayPP :: PA a => PArray a :-> PArray a
 toPArrayPP         = closure1 (\x -> x) (\_ xs -> xs)
 {-# INLINE toPArrayPP #-}
 
 
--- | Identity function, used as the vectorised version of fromNestedPArrayP
+-- | Identity function, used as the vectorised version of `fromNestedPArrayP`
 fromNestedPArrayPP :: PA a => (PArray (PArray a) :-> PArray (PArray a))
 fromNestedPArrayPP = closure1 (\xs -> xs) (\_ xss -> xss)
 {-# INLINE fromNestedPArrayPP #-}
index 4de619a..e1f3103 100644 (file)
@@ -10,7 +10,7 @@
 --   * In general, the operators here are all unsafe and don't do bounds checks.
 --     The lifted versions also don't check that each of the argument arrays
 --     have the same length.
---
+---
 --   TODO: check lengths properly in functions like zip, extracts
 --
 module Data.Array.Parallel.PArray
index 30191d5..e9e3280 100644 (file)
@@ -10,14 +10,18 @@ import GHC.Exts
 import Data.Word
 
 -------------------------------------------------------------------------------
--- | Parallel Ararys.
+-- | Parallel arrays.
 data PArray a
         = PArray Int# (PData a)
 
-
+-- | A chunk of parallel array data.
 data family PData a
+
+-- | An array of chunks of parallel array data.
 data family PDatas a
 
+
+-- | Class of element types that we can store in parallel arrays.
 class PR a where
   fromVectorPR :: Vector a -> PData  a
   toVectorPR   :: PData a  -> Vector a
index 9b834a0..bfaa2f4 100644 (file)
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | Defines the extra types we use when representing algebraic data in
index 69d889d..5245d74 100644 (file)
@@ -28,7 +28,6 @@ Library
         Data.Array.Parallel.Lifted.Combinators
 
   Extensions:
-        CPP,
         BangPatterns,
         PatternGuards
         TypeFamilies,
index 2cb0bf0..39c0ff3 100644 (file)
@@ -3,6 +3,18 @@
 
 -- | User level interface of parallel arrays.
 --
+--   This library is deprecated. Using it can result in the vectorised program
+--   having asymptotically worse complexity than the original. Your program
+--   could be 10000x slower than it should be with this library.
+--
+--   Use the @dph-lifted-vseg@ package instead.
+-- 
+-- /WARNING:/ In the current implementation, the functionality provided in
+-- this module is tied to the vectoriser pass of GHC invoked by passing the
+-- `-fvectorise` option.  Without vectorisation these functions will not work
+-- at all!
+---
 -- The semantic difference between standard Haskell arrays (aka "lazy
 -- arrays") and parallel arrays (aka "strict arrays") is that the evaluation
 -- of two different elements of a lazy array is independent, whereas in a
 -- permutations) that are not provided for lists.  The following list of
 -- operations are not supported on parallel arrays, as they would require the
 -- infinite parallel arrays: `iterate', `repeat', and `cycle'.
--- 
--- /WARNING:/ In the current implementation, the functionality provided in
--- this module is tied to the vectoriser pass of GHC invoked by passing the
--- `-fvectorise` option.  Without vectorisation these functions will not work
--- at all!
 --
--- UGLY HACK ALERT: Same ugly hack as in 'base:GHC.PArr'!  We could do without in this module by
---                  using the type synonym 'PArr' instead of '[::]', but that would lead to
---                  significantly worse error message for end users.
+-- UGLY HACK ALERT: 
+--  Same ugly hack as in 'base:GHC.PArr'!  We could do without in this module by
+--  using the type synonym 'PArr' instead of '[::]', but that would lead to
+--  significantly worse error message for end users.
 
 module Data.Array.Parallel (
   module Data.Array.Parallel.Prelude,
index 423540e..7edbca3 100644 (file)
@@ -1,6 +1,6 @@
 
 -- | Parallel Arrays.
---
+---
 --   Parallel arrays use a fixed generic representation. All data stored in
 --   them is converted to the generic representation, and we have a small
 --   number of operators that work on arrays of these generic types.
index 2bb86a2..283fdcc 100644 (file)
@@ -7,14 +7,15 @@ Maintainer:     Ben Lippmeier <benl@cse.unsw.edu.au>
 Homepage:       http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell
 Category:       Data Structures
 Synopsis:       Data Parallel Haskell lifted array combinators. (deprecated version)
-Description:    This package provides the following:
+Description:    Using this package can cause the vectorised program to have worse
+                asymptotic complexity than the original.
+                Use dph-lifted-vseg instead.
+                This package provides the following:
                  nested arrays and the primitive operators that work on them (PA functions);
                  the lifted array combinators that the vectoriser introduces (PP functions);
                  the user facing library functions that work on [::] style arrays (P functions).
                 Deprecated implementation that performs deep copying replicate.
-                Using this package can cause the vectorised program to have worse
-                asymptotic complexity than the original.
-                Use dph-lifted-vseg instead.
+                
                 
 
 Cabal-Version:  >= 1.6
index d0aa4fa..3052780 100644 (file)
@@ -9,7 +9,7 @@
 --  parallel arrays in unvectorised code, use the functions in
 --  "Data.Array.Parallel.PArray" and convert between array representations by
 --  using `fromPArrayP` and `toPArrayP` from /vectorised/ code.
---
+---
 --  The semantic difference between standard Haskell arrays (aka "lazy
 --  arrays") and parallel arrays (aka "strict arrays") is that the evaluation
 --  of two different elements of a lazy array is independent, whereas in a
@@ -196,7 +196,8 @@ zipWithP !_ !_ !_       = emptyP
 {-# NOINLINE  zipWithP #-}
 {-# VECTORISE zipWithP  = zipWithPP #-}
 
-
+-- | For every element 'a' apply the function to get an array of 'b' then,
+--   and return an array of all the 'a's and 'b's.
 crossMapP :: [:a:] -> (a -> [:b:]) -> [:(a, b):]
 {-# NOINLINE crossMapP #-}
 crossMapP !_ !_ = emptyP
index e8da4c6..fca89ce 100644 (file)
@@ -1,5 +1,5 @@
 {-# OPTIONS -fno-spec-constr #-}
-{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE CPP, UndecidableInstances #-}
 #include "fusion-phases.h"
 
 -- | Unvectorised parallel arrays.
index 215108a..54bc3bd 100644 (file)
@@ -1,5 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
-{-# LANGUAGE UndecidableInstances, ParallelListComp #-}
+{-# LANGUAGE CPP, UndecidableInstances, ParallelListComp #-}
 -- Undeciable instances only need for derived Show instance
 #include "fusion-phases.h"
 
index bbd5eab..9f76568 100644 (file)
@@ -1,4 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | PR instance for Doubles.
index d301990..e9292f6 100644 (file)
@@ -1,4 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | PR instance for Ints
index ae9eabc..ae12c37 100644 (file)
@@ -1,5 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
-{-# LANGUAGE UndecidableInstances, ParallelListComp #-}
+{-# LANGUAGE CPP, UndecidableInstances, ParallelListComp #-}
 {-# OPTIONS -fno-spec-constr #-}
 #include "fusion-phases.h"
 
@@ -546,7 +546,7 @@ instance PR a => PR (PArray a) where
 --
 --   This is experimental, used to initialise the pnested_flat field
 --   of a nested array. It's' marked at NOINLINE to avoid code explosion.
---
+---
 --   TODO: at a later fusion stage we could rewrite this to an INLINED
 --         version to generate core for the occurrences we actually use.
 extractvs_delay :: PR a => PDatas a -> U.VSegd -> PData a
index 8772018..98e2289 100644 (file)
@@ -1,4 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | PR instance for Sum2.
index 538abba..6f464f0 100644 (file)
@@ -1,4 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | PR instance for tuples.
index e259e57..1340e90 100644 (file)
@@ -1,4 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | PR instance for tuples.
index dcd3fab..deee98f 100644 (file)
@@ -1,4 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | PR instance for tuples.
index d20be28..815c1d6 100644 (file)
@@ -1,4 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | PR instance for tuples.
index 4b0ddb0..04cbbb5 100644 (file)
@@ -1,4 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | PR instance for unit.
index 9336966..8857624 100644 (file)
@@ -1,4 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | PR instance for the void type.
index 4bfeab7..05deaa7 100644 (file)
@@ -1,4 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | PR instance for Word8.
index 2ae7098..bda9599 100644 (file)
@@ -1,4 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | PR instance for the Wrap type.
index 78ad09d..5668632 100644 (file)
@@ -1,4 +1,5 @@
 {-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | Defines the `PRepr` family and `PA` class that converts between the user
index c5a5cce..772f072 100644 (file)
@@ -1,4 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | Definition of the PRepr/PA family and class.
index 04d9199..3cbb67e 100644 (file)
@@ -1,5 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
-{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE CPP, UndecidableInstances #-}
 #include "fusion-phases.h"
 
 -- | Simple instances for the PRRepr/PA family and class.
index 2ccc026..e8ca13f 100644 (file)
@@ -1,4 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | PRepr/PA instance for nested arrays, 
index bc2b7f7..022a988 100644 (file)
@@ -1,4 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | PRepr instance for tuples
index de4ee18..fb211e2 100644 (file)
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 {-# OPTIONS_GHC -fno-warn-unused-binds #-}
index e6085b1..cec1e9e 100644 (file)
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 #include "fusion-phases.h"
 
 -- | This is the API used by the vectoriser.
index 5e6df82..2fa202a 100644 (file)
@@ -59,7 +59,6 @@ Library
         False
 
   Extensions:
-        CPP,
         BangPatterns,
         PatternGuards
         TypeFamilies,