#367: Infinite loops can hang Concurrent Haskell
------------------------------------------+---------------------------------
  Reporter:  simonpj                      |          Owner:  ezyang             
 
      Type:  bug                          |         Status:  new                
 
  Priority:  lowest                       |      Milestone:  _|_                
 
 Component:  Compiler                     |        Version:  6.4.1              
 
Resolution:  None                         |       Keywords:  scheduler 
allocation
        Os:  Unknown/Multiple             |   Architecture:  Unknown/Multiple   
 
   Failure:  Incorrect result at runtime  |     Difficulty:  Unknown            
 
  Testcase:                               |      Blockedby:                     
 
  Blocking:                               |        Related:                     
 
------------------------------------------+---------------------------------

Comment(by ezyang@…):

 commit d3128bfc286002862e916296629a22f1ce987e4e
 {{{
 Author: Edward Z. Yang <ezy...@mit.edu>
 Date:   Mon Sep 17 18:28:49 2012 +0200

     Partially fix #367 by adding HpLim checks to entry with -fno-omit-
 yields.

     The current fix is relatively dumb as far as where to add HpLim
     checks: it will always perform a check unless we know that we're
     returning from a closure or we are doing a non let-no-escape case
     analysis.  The performance impact on the nofib suite looks like this:

                 Min          +5.7%     -0.0%     -6.5%     -6.4%    -50.0%
                 Max          +6.3%     +5.8%     +5.0%     +5.5%     +0.8%
      Geometric Mean          +6.2%     +0.1%     +0.5%     +0.5%     -0.8%

     Overall, the executable bloat is the biggest problem, so we keep the
 old
     omit-yields optimization on by default. Remember that if you need an
     interruptibility guarantee, you need to recompile all of your
 libraries
     with -fno-omit-yields.

     A better fix would involve only inserting the yields necessary to
 break
     loops; this is left as future work.

     Signed-off-by: Edward Z. Yang <ezy...@mit.edu>

  compiler/codeGen/StgCmmExpr.hs |    4 +--
  compiler/codeGen/StgCmmHeap.hs |   57
 ++++++++++++++++++++++++++--------------
  compiler/main/DynFlags.hs      |    4 +++
  docs/users_guide/using.xml     |   18 ++++++++++++
  4 files changed, 60 insertions(+), 23 deletions(-)
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/367#comment:34>
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