Broken ghc-7.0.3/vector combination?
Daniel Fischer
daniel.is.fischer at googlemail.com
Wed Apr 20 19:44:32 CEST 2011
On Wednesday 20 April 2011 19:11:07, Roman Leshchinskiy wrote:
> Daniel Fischer wrote:
> > Further investigation of the sorting code in vector-algorithms
> > revealed no bugs there, and if the runtime was forced to keep a keen
> > eye on the indices, by replacing unsafeRead/Write/Swap with their
> > bounds-checked counterparts or by 'trace'ing enough of their uses,
> > the NaNs did not appear.
>
> Did you replace them in vector-algorithms or in vector itself?
>
vector-algorithms only.
> > So, is it possible that some change in ghc-7.0.3 vs. the previous
> > versions caused a bad interaction between ghc-optimisations and vector
> > fusion resulting in bad vector reads/writes?
>
> Am I right in assuming that this happens in code which uses only mutable
> vectors?
Yes, the sorting uses mutable vectors, in this case unboxed Double vectors.
> Fusion only works for immutable ones so it shouldn't really
> affect things here.
Ah, didn't know that. Another suspect gone.
>
> Have you tried playing around with code generation flags like -msse2?
No, not yet. So far only -O2 (with -fspec-constr-count=5 in the presence of
many trace calls) and -O0.
>
> In any case, I would try to take a look at this if you tell me how to
> reproduce.
I'll prepare a bundle, I'm afraid it won't be small, though. And it might
be architecture dependent, so I can't guarantee that you will be able to
reproduce it. But Bryan said on IRC yesterday that others have reported
similar issues with criterion output, so it may well be cross-platform
reproducible.
Cheers,
Daniel
More information about the Glasgow-haskell-users
mailing list