﻿ticket	summary	component	version	milestone	type	owner	status	created	_changetime	_description	_reporter
36	equals{S,P} functions are missing INILNE pragamas	repa	3.2.2		defect		new	2012-04-24T01:28:17Z	2015-05-19T12:53:51Z	like it says	Ben Lippmeier
37	Swap order of parameters to 'extend' so it matches 'slice'.	repa	3.2.2		defect		new	2012-10-16T01:46:09Z	2015-05-19T12:54:06Z	The example expression also has the parameters in the wrong order.	Ben Lippmeier
39	Missing bounds checks.	repa	3.2.2		defect		new	2013-09-06T02:05:46Z	2015-05-19T12:54:00Z	"{{{
> let arr = fromListUnboxed (Z :. 3 :. 5) [1..15] :: Array U DIM2 Int
> arr ! (Z:.2:.4 :: DIM2) 
15

> reshape (Z:.15) arr ! (Z:.14 :: DIM1)
15

> reshape (Z:.15) arr ! (Z:.15 :: DIM1)
1076040336

> reshape (Z:.15) arr ! (Z:.(-15) :: DIM1)
140454916268033

> (fromListUnboxed (Z :. 10) [1..10] :: Array U DIM1 Int) ! (Z:.10 :: DIM1)
*** Exception: ./Data/Vector/Generic.hs:244 ((!)): index out of bounds (10,10)
}}}"	Ben Lippmeier
40	Don't demand the whole list with fromList	repa	3.2.2		defect		new	2013-12-14T03:56:32Z	2015-05-19T12:54:12Z	"
If the client tries something like:

{{{fromListUnboxed (Z:.s:.s) [0.0,0.0..]}}}

then the code will stall when trying to determine the length of the list.


"	Ben Lippmeier
13	Optimise Repa.fromByteString to avoid bounds checks in ByteString	repa	3.2.2		enhancement		new	2010-04-30T04:37:56Z	2015-05-19T12:54:19Z	Should be able to use an intermediate CString for this.	Ben Lippmeier
38	Make unsafeWriteMVec for boxed arrays strict	repa	3.2.2		enhancement		new	2013-04-23T02:25:08Z	2015-05-19T12:54:38Z	"
See the following SO question:
http://stackoverflow.com/questions/16097418/parallel-repa-code-doesnt-create-sparks/

We can force an (Array V) to be evaluated by mapping a deepseq function across every element, but this is non-intuitive. It would be better to just make the write function strict and ensure all elements in such an array are properly evaluated. "	Ben Lippmeier
41	Generalise foldS worker to have a different accumulator type	repa	3.2.2		enhancement		new	2014-02-11T11:20:53Z	2015-05-19T12:54:25Z	"With 

{{{
foldS :: (Elt a, V.Unbox a)
      => M.IOVector a   -- ^ vector to write elements into
      -> (Int# -> a)    -- ^ function to get an element from the given index
      -> (a -> a -> a)  -- ^ binary associative combination function
      -> a              -- ^ starting value (typically an identity)
      -> Int#           -- ^ inner dimension (length to fold over)
      -> IO ()
}}}

the worker could really have type (a -> b -> b) in the sequential case."	Ben Lippmeier
43	Avoid intermediate lists when packing Ints and Strings	repa-convert	4.2.0		enhancement		new	2015-05-19T12:50:16Z	2015-05-19T13:02:44Z	The packer for Ints uses plain Haskell show, and the intermediate list of Chars won't be fused away.	Ben Lippmeier
