1. 09 Jun, 2015 1 commit
  2. 12 Nov, 2014 2 commits
  3. 28 Aug, 2014 1 commit
  4. 01 Aug, 2014 1 commit
    • Simon Marlow's avatar
      interruptible() was not returning true for BlockedOnSTM (#9379) · 9d9a5546
      Simon Marlow authored
      Summary:
      There's an knock-on fix in HeapStackCheck.c which is potentially
      scary, but I'm pretty confident is OK.  See comment for details.
      
      Test Plan:
      I've run all the STM
      tests I can find, including libraries/stm/tests/stm049 with +RTS -N8
      and some of the constants bumped to make it more of a stress test.
      
      Reviewers: hvr, rwbarton, austin
      
      Subscribers: simonmar, relrod, ezyang, carter
      
      Differential Revision: https://phabricator.haskell.org/D104
      
      GHC Trac Issues: #9379
      9d9a5546
  5. 28 Jul, 2014 1 commit
    • Jost Berthold's avatar
      use GHC-7.8.3's values for thread block reason (fixes #9333) · 4ee8c273
      Jost Berthold authored
      Summary:
      For now, BlockedOnMVar and BlockedOnMVarRead are not distinguished.
      Making the distinction would mean to change an exported datatype
      (API change). Code for this change is included but commented out.
      
      The patch adds a test for the threadstatus, which retrieves status
      BlockedOnMVar for two threads blocked on writing and reading an MVar.
      
      Test Plan: ran validate, including the new test
      
      Reviewers: simonmar, austin, ezyang
      
      Reviewed By: austin, ezyang
      
      Subscribers: phaskell, simonmar, relrod, carter
      
      Differential Revision: https://phabricator.haskell.org/D83
      4ee8c273
  6. 30 Jun, 2014 1 commit
    • tibbe's avatar
      Re-add more primops for atomic ops on byte arrays · 4ee4ab01
      tibbe authored
      This is the second attempt to add this functionality. The first
      attempt was reverted in 950fcae4, due
      to register allocator failure on x86. Given how the register
      allocator currently works, we don't have enough registers on x86 to
      support cmpxchg using complicated addressing modes. Instead we fall
      back to a simpler addressing mode on x86.
      
      Adds the following primops:
      
       * atomicReadIntArray#
       * atomicWriteIntArray#
       * fetchSubIntArray#
       * fetchOrIntArray#
       * fetchXorIntArray#
       * fetchAndIntArray#
      
      Makes these pre-existing out-of-line primops inline:
      
       * fetchAddIntArray#
       * casIntArray#
      4ee4ab01
  7. 26 Jun, 2014 1 commit
  8. 24 Jun, 2014 1 commit
    • tibbe's avatar
      Add more primops for atomic ops on byte arrays · d8abf85f
      tibbe authored
      Summary:
      Add more primops for atomic ops on byte arrays
      
      Adds the following primops:
      
       * atomicReadIntArray#
       * atomicWriteIntArray#
       * fetchSubIntArray#
       * fetchOrIntArray#
       * fetchXorIntArray#
       * fetchAndIntArray#
      
      Makes these pre-existing out-of-line primops inline:
      
       * fetchAddIntArray#
       * casIntArray#
      d8abf85f
  9. 30 May, 2014 1 commit
  10. 04 May, 2014 1 commit
  11. 02 May, 2014 1 commit
    • Simon Marlow's avatar
      Per-thread allocation counters and limits · b0534f78
      Simon Marlow authored
      This tracks the amount of memory allocation by each thread in a
      counter stored in the TSO.  Optionally, when the counter drops below
      zero (it counts down), the thread can be sent an asynchronous
      exception: AllocationLimitExceeded.  When this happens, given a small
      additional limit so that it can handle the exception.  See
      documentation in GHC.Conc for more details.
      
      Allocation limits are similar to timeouts, but
      
        - timeouts use real time, not CPU time.  Allocation limits do not
          count anything while the thread is blocked or in foreign code.
      
        - timeouts don't re-trigger if the thread catches the exception,
          allocation limits do.
      
        - timeouts can catch non-allocating loops, if you use
          -fno-omit-yields.  This doesn't work for allocation limits.
      
      I couldn't measure any impact on benchmarks with these changes, even
      for nofib/smp.
      b0534f78
  12. 09 Oct, 2013 1 commit
  13. 02 Oct, 2013 1 commit
  14. 30 Sep, 2013 1 commit
    • rwbarton's avatar
      Deal with failures for T367, T367_letnoescape under ghci · 18f2895d
      rwbarton authored
      These tests had a very short timeout (0.3 s). With WAY=ghci,
      the time ghci takes to start up and compile the test modules
      is counted in this timeout, and that causes the tests to fail.
      
      T367 really needs the very short timeout, so this commit disables
      the ghci way for T367. T367_letnoescape can handle any timeout,
      so I bumped up the timeout to 6 s to give ghci time to start up.
      18f2895d
  15. 21 Aug, 2013 2 commits
  16. 24 Jul, 2013 1 commit
  17. 14 Jul, 2013 1 commit
  18. 10 Jul, 2013 1 commit
  19. 09 Jul, 2013 1 commit
  20. 02 Jul, 2013 2 commits
  21. 14 Feb, 2013 1 commit
  22. 11 Feb, 2013 3 commits
  23. 07 Feb, 2013 1 commit
    • ian@well-typed.com's avatar
      Pass the test name to the test options · effc8af9
      ian@well-typed.com authored
      This allows them to give framework failures.
      
      I also had to change how setTestOpts works. Now, rather than applying
      the options to the directory's "default options", it just stores the
      options to be applied for each test (i.e. once we know the test name).
      effc8af9
  24. 03 Feb, 2013 1 commit
    • ian@well-typed.com's avatar
      Tidy up some tests · 4200e0aa
      ian@well-typed.com authored
      We now use pre_cmd rather than cmd_prefix wherever possible.
      Also, pass "-s --no-print-directory" whenever we use pre_cmd.
      4200e0aa
  25. 25 Jan, 2013 1 commit
  26. 26 Sep, 2012 1 commit
  27. 25 Sep, 2012 1 commit
  28. 24 Sep, 2012 1 commit
  29. 18 Jul, 2012 1 commit
  30. 12 Apr, 2012 1 commit
  31. 27 Feb, 2012 1 commit
  32. 17 Jan, 2012 3 commits
  33. 06 Jan, 2012 1 commit