1. 12 Feb, 2006 1 commit
  2. 10 Feb, 2006 4 commits
  3. 09 Feb, 2006 1 commit
  4. 10 Feb, 2006 2 commits
    • Simon Marlow's avatar
    • Simon Marlow's avatar
      STM fix from Tim Harris · a5bd0560
      Simon Marlow authored
      Fixes assertion failures with STM and -debug.  Tim says:
      Sorry, it's a problem in how nested transactions are handled in
      non-SMP builds.  It'll bite when trying to commit a nested transaction
      which has read from a TVar but not updated it.
      
      The call to validate_and_acquire_ownership in
      stmCommitNestedTransaction should be the same as that in
      stmCommitNestedTransaction, i.e.:
      
        result = validate_and_acquire_ownership(trec, (!use_read_phase), TRUE);
      a5bd0560
  5. 09 Feb, 2006 1 commit
    • Simon Marlow's avatar
      improvement to the deadlock detection · 6ff10661
      Simon Marlow authored
      When the RTS is idle, as detected by the timer signal, instead of
      prodding capabilities from the signal handler (which is not guaranteed
      to work - pthread_cond_signal() can't be called from signal handlers),
      create a new thread to do it.
      6ff10661
  6. 10 Feb, 2006 1 commit
  7. 09 Feb, 2006 11 commits
  8. 06 Feb, 2006 1 commit
    • Ross Paterson's avatar
      relaxed instance termination test · 1cdafe99
      Ross Paterson authored
      With -fglasgow-exts but not -fallow-undecidable-instances, GHC 6.4
      requires that instances be of the following form:
      
       (1) each assertion in the context must constrain distinct variables
           mentioned in the head, and
      
       (2) at least one argument of the head must be a non-variable type.
      
      This patch replaces these rules with the requirement that each assertion
      in the context satisfy
      
       (1) no variable has more occurrences in the assertion than in the head, and
      
       (2) the assertion has fewer constructors and variables (taken together
           and counting repetitions) than the head.
      
      This allows all instances permitted by the old rule, plus such instances as
      
             instance C a
             instance Show (s a) => Show (Sized s a)
             instance (Eq a, Show b) => C2 a b
             instance C2 Int a => C3 Bool [a]
             instance C2 Int a => C3 [a] b
             instance C4 a a => C4 [a] [a]
      
      but still ensures that under any substitution assertions in the context
      will be smaller than the head, so context reduction must terminate.
      
      This is probably the best we can do if we consider each instance in
      isolation.
      1cdafe99
  9. 09 Feb, 2006 1 commit
  10. 08 Feb, 2006 9 commits
  11. 07 Feb, 2006 4 commits
  12. 06 Feb, 2006 3 commits
  13. 03 Feb, 2006 1 commit