- 09 Feb, 2006 9 commits
-
-
Simon Marlow authored
Now, the threaded RTS also includes SMP support. The -smp flag is a synonym for -threaded. The performance implications of this are small to negligible, and it results in a code cleanup and reduces the number of combinations we have to test.
-
Simon Marlow authored
rather than recordMutableGen(), the former works better in SMP
-
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.
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
GHC 6.4 implements a rather relaxed version of the Coverage Condition which is actually too relaxed: the compiler can get into an infinite loop as a result. This commit fixes the problem (see Note [Coverage condition] in FunDeps.lhs) and documents the change. I also took the opportunity to add documentation about functional dependencies, taken from the Hugs manual with kind permission of Mark Jones
-
Simon Marlow authored
We always assign to BaseReg on return from resumeThread(), but in cases where BaseReg is not an lvalue (eg. unreg) we need to disable this assigment. See comments for more details.
-
Simon Marlow authored
-
Simon Marlow authored
-
simonpj@microsoft.com authored
Tidying up to Ross's patch, plus adding documenation for it.
-
- 06 Feb, 2006 1 commit
-
-
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.
-
- 09 Feb, 2006 1 commit
-
-
simonpj@microsoft.com authored
-
- 08 Feb, 2006 9 commits
-
-
Simon Marlow authored
-
simonpj@microsoft.com authored
This commit fixes a bug in 6.4.1 and the HEAD. Consider this code, recorded **in an interface file** \(x::a) -> case y of MkT -> case x of { True -> ... } (where MkT forces a=Bool) In the "case x" we need to know x's type, because we use that to find which module to look for "True" in. x's type comes from the envt, so we must refine the envt. The alternative would be to record more info with an IfaceCase, but that would change the interface file format. (This stuff will go away when we have proper coercions.)
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
Simon Marlow authored
Fixes #660
-
Simon Marlow authored
-
Simon Marlow authored
We had to bite the bullet here and add an extra word to every thunk, to enable running ordinary libraries on SMP. Otherwise, we would have needed to ship an extra set of libraries with GHC 6.6 in addition to the two sets we already ship (normal + profiled), and all Cabal packages would have to be compiled for SMP too. We decided it best just to take the hit now, making SMP easily accessible to everyone in GHC 6.6. Incedentally, although this increases allocation by around 12% on average, the performance hit is around 5%, and much less if your inner loop doesn't use any laziness.
-
Simon Marlow authored
-
- 07 Feb, 2006 4 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
- 06 Feb, 2006 3 commits
-
-
simonpj@microsoft.com authored
-
Simon Marlow authored
This patch adds completion support to GHCi when readline is being used. Completion of identifiers (in scope only, but including qualified identifiers) in expressions is provided. Also, completion of commands (:cmd), and special completion for certain commands (eg. module names for the :module command) are also provided.
-
simonpj@microsoft.com authored
-
- 03 Feb, 2006 2 commits
-
-
simonpj@microsoft.com authored
This commit adds bang-patterns, enabled by -fglasgow-exts or -fbang-patterns diabled by -fno-bang-patterns The idea is described here http://haskell.galois.com/cgi-bin/haskell-prime/trac.cgi/wiki/BangPatterns
-
simonpj@microsoft.com authored
-
- 02 Feb, 2006 4 commits
-
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
We must record the type of a TuplePat after typechecking, just like a ConPatOut, so that desugaring works correctly for GADTs. See comments with the declaration of HsPat.TuplePat, and test gadt15
-
simonpj@microsoft.com authored
-
Simon Marlow authored
-
- 01 Feb, 2006 3 commits
-
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
- 31 Jan, 2006 1 commit
-
-
simonpj@microsoft.com authored
-
- 07 Dec, 2005 1 commit
-
-
duncan.coutts@worc.ox.ac.uk authored
Also extend the parser.
-
- 31 Jan, 2006 2 commits
-
-
Simon Marlow authored
-
simonpj@microsoft.com authored
MERGE TO STABLE For a long time (2002!) the CPR analysis done by dmdAnalTopRhs has been bogus. In particular, it's possible for a newtype constructor to look CPR-ish when it simply isn't. This fixes it. Test is stranal/newtype
-