#7429: Unexplained performance boost with +RTS -h
--------------------------------------+-------------------------------------
  Reporter:  simonmar                 |          Owner:                  
      Type:  bug                      |         Status:  closed          
  Priority:  normal                   |      Milestone:  7.8.1           
 Component:  Compiler                 |        Version:  7.6.1           
Resolution:  wontfix                  |       Keywords:                  
        Os:  Unknown/Multiple         |   Architecture:  Unknown/Multiple
   Failure:  Runtime performance bug  |     Difficulty:  Unknown         
  Testcase:                           |      Blockedby:                  
  Blocking:                           |        Related:                  
--------------------------------------+-------------------------------------

Comment(by tomberek):

 Ok, then I'd like to know what I can do to create the data structure
 strictly. I've got the bang patterns on the CircList,
 {{{
 data CircList s = ConsM {value :: {-# UNPACK #-} !Int
                         ,cons  :: {-# UNPACK #-} !(STRef s (CircList s ))
 }
 }}}

 Is there something in the following that should be "strictified"?
 {{{
 twoItemList :: forall s. ST s (CircList s)
 twoItemList = do
     rec item1 <- liftM (ConsM 0) $ newSTRef item2
         item2 <- liftM (ConsM 1) $ newSTRef item1
     return item1
 }}}
 or in

 {{{
 -- | Defines a circular list of length n
 nlist :: forall s. Int -> ST s (CircList s)
 nlist ns = do
     rec allItems <-
             let next i = nextCons i $ (V.!) allItems ((i+1) `mod` ns)
             in V.generateM ns next
     return $ (V.!) allItems 0
     where nextCons v n = do
                         n' <- newSTRef n
                         return $ ConsM v n'
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7429#comment:10>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to