1. 13 Mar, 2010 1 commit
    • Ian Lynagh's avatar
      Add a link-time flag to en/disable the RTS options · 929d1669
      Ian Lynagh authored
      If RTS options are disabled then:
      * The ghc_rts_opts C code variable is processed as normal
      * The GHCRTS environment variable is ignored and, if it is defined, a
        warning is emitted
      * The +RTS flag gives an error and terminates the program
      929d1669
  2. 11 Mar, 2010 3 commits
    • Simon Marlow's avatar
    • Simon Marlow's avatar
      Use message-passing to implement throwTo in the RTS · 7408b392
      Simon Marlow authored
      This replaces some complicated locking schemes with message-passing
      in the implementation of throwTo. The benefits are
      
       - previously it was impossible to guarantee that a throwTo from
         a thread running on one CPU to a thread running on another CPU
         would be noticed, and we had to rely on the GC to pick up these
         forgotten exceptions. This no longer happens.
      
       - the locking regime is simpler (though the code is about the same
         size)
      
       - threads can be unblocked from a blocked_exceptions queue without
         having to traverse the whole queue now.  It's a rare case, but
         replaces an O(n) operation with an O(1).
      
       - generally we move in the direction of sharing less between
         Capabilities (aka HECs), which will become important with other
         changes we have planned.
      
      Also in this patch I replaced several STM-specific closure types with
      a generic MUT_PRIM closure type, which allowed a lot of code in the GC
      and other places to go away, hence the line-count reduction.  The
      message-passing changes resulted in about a net zero line-count
      difference.
      7408b392
    • Simon Marlow's avatar
      12cfec94
  3. 23 Nov, 2009 1 commit
  4. 09 Mar, 2010 12 commits
  5. 05 Mar, 2010 2 commits
  6. 04 Mar, 2010 9 commits
  7. 03 Mar, 2010 2 commits
  8. 02 Mar, 2010 6 commits
  9. 01 Mar, 2010 1 commit
  10. 27 Feb, 2010 1 commit
  11. 01 Mar, 2010 2 commits