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