1. 22 Feb, 2006 1 commit
    • Simon Marlow's avatar
      floating-point fix for x86_64 · 3034a6c8
      Simon Marlow authored
        
      For 32-bit float primtives like sinFloat#, we currently call the
      double versions of the C library functions (sin(), cos() etc.).  It
      seems more correct to call the float versions (sinf(), cosf() etc.).
      This makes a difference on x86_64, I'm not entirely sure why, but this
      way at least generates more consistent results and avoids extra
      promotion/demotion instructions when calling these primitives.
      3034a6c8
  2. 21 Feb, 2006 3 commits
  3. 13 Feb, 2006 1 commit
  4. 12 Feb, 2006 3 commits
  5. 10 Feb, 2006 4 commits
  6. 09 Feb, 2006 1 commit
  7. 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
  8. 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
  9. 10 Feb, 2006 1 commit
  10. 09 Feb, 2006 11 commits
  11. 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
  12. 09 Feb, 2006 1 commit
  13. 08 Feb, 2006 9 commits
  14. 07 Feb, 2006 1 commit