#3404: Strictness analysis bug with Double
---------------------------+------------------------------------------------
  Reporter:  lpsmith       |          Owner:                  
      Type:  bug           |         Status:  closed          
  Priority:  normal        |      Milestone:  7.0.1           
 Component:  Compiler      |        Version:  6.10.4          
Resolution:  fixed         |       Keywords:                  
  Testcase:                |      Blockedby:                  
Difficulty:  Unknown       |             Os:  Unknown/Multiple
  Blocking:                |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  |  
---------------------------+------------------------------------------------
Changes (by michalt):

 * cc: michal.terep...@… (added)
  * failure:  => None/Unknown
  * status:  new => closed
  * resolution:  => fixed


Comment:

 Works fine with both
 {{{
 The Glorious Glasgow Haskell Compilation System, version 6.12.3
 The Glorious Glasgow Haskell Compilation System, version 7.1.20101008
 }}}
 And looking at the Core it's clear that the accumulator is strict:
 {{{
 $wsum' :: [Double]
                -> Double#
                -> Double#

 $wsum' =
   \ (w_s11u :: [Double]) (ww_s11x :: Double#) ->
     case w_s11u of _ {
       [] -> ww_s11x;
       : x_aoc xs_aod ->
         case x_aoc of _ { D# y_a10A ->
         $wsum' xs_aod (+## ww_s11x y_a10A)
         }
     }
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/3404#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to