- 03 Apr, 2009 1 commit
-
-
donnie@darthik.com authored
-
- 07 Apr, 2009 1 commit
-
-
Ian Lynagh authored
-
- 09 Apr, 2009 2 commits
-
-
simonpj@microsoft.com authored
This patch sligtly re-adjusts the way in which the syntax of types is handled: * In the lexer, '.' and '*' are always accepted in types (previously it was conditional). This things can't mean anything else in H98, which is the only reason for doing things conditionally in the lexer. * As a result '.' in types is never treated as an operator. Instead, lacking a 'forall' keyword, it turns into a plain parse error. * Test for -XKindSignatures in the renamer when processing a) type variable bindings b) types with sigs (ty :: kind-sig) * Make -XKindSignatures be implied by -XTypeFamilies Previously this was buried in the conditonal lexing of '*'
-
simonpj@microsoft.com authored
-
- 04 Apr, 2009 1 commit
-
-
Ian Lynagh authored
With the On x86, use thread-local storage instead of stealing a reg for gct patch, on Windows and OS X: error: thread-local storage not supported for this target
-
- 31 Mar, 2009 2 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 03 Apr, 2009 2 commits
-
-
dias@eecs.tufts.edu authored
-
dias@eecs.tufts.edu authored
One of these things is not like the others: stdPattern :: [LRep] -> Maybe StgHalfWord stdPattern reps = case reps of [] -> Just ARG_NONE -- just void args, probably [N] -> Just ARG_N [P] -> Just ARG_N [F] -> Just ARG_F [D] -> Just ARG_D [L] -> Just ARG_L Today's debugging session was brought to you by the letter P.
-
- 31 Mar, 2009 1 commit
-
-
dias@eecs.tufts.edu authored
- Block concat and branch-chain elimination were allowing a function call to return to the caller's entry point. But that doesn't leave anywhere for the infotable on the stack, since the SP on return must be the same as the SP on entry to the procedure.
-
- 25 Mar, 2009 1 commit
-
-
dias@eecs.tufts.edu authored
- Previously, the node was taken as a parameter, then ignored, for static closures. Goofy. Now, the vestigial node parameters are gone.
-
- 23 Mar, 2009 6 commits
-
-
dias@eecs.tufts.edu authored
-
dias@eecs.tufts.edu authored
Code simplifications due to call/return separation; some improvements to how node argument is managed
-
dias@eecs.tufts.edu authored
-
dias@eecs.tufts.edu authored
-
dias@eecs.tufts.edu authored
-
dias@eecs.tufts.edu authored
-
- 03 Apr, 2009 3 commits
-
-
Simon Marlow authored
Benchmarks show that using TLS instead of stealing a register is better by a few percent on x86, due to the lack of registers. This only affects -threaded; without -threaded we're (now) using static storage for the GC data.
-
Simon Marlow authored
-
Simon Marlow authored
-
- 02 Apr, 2009 2 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
unbreaks ghc-pkg check in an installed GHC
-
- 03 Apr, 2009 3 commits
-
-
simonpj@microsoft.com authored
This patch is the result of a long series of nofib-based experiments to improve GHC's inlining heuristics. In the end, I'm not sure how worthwhile it all was: I only got a 1% decrease in code size 1% decrease in allocation and I don't trust the runtime statistics enough to quote. Still, in doing all this I tidied up the code quite a bit, and I understand it much better now, so I'm going to commit it. The main changes are in CoreUnfold, which has lots of new comments. Other changes: - litSize moves from Literal to CoreUnfold - interestingArg moves from SimplUtils to CoreUnfold - the default unfolding threshold (in StaticFlags) reduces from 8 to 6 (since the size calculation has changed a bit)
-
simonpj@microsoft.com authored
If worker/wrapper decides not to w/w something on the grounds that it's too small, it should add an INLINE pragma. Otherwise, later in the day that small thing might now be big, and we'd wish we'd done the w/w after all. This only made a difference in one nofib program (bspt), but it's an easy change. See Note [Don't w/w inline things (a) and (b)]
-
simonpj@microsoft.com authored
I found a couple of shortcomings in arity computation, and did quite a bit of refactoring as a result. Regrettably, I have forgotten the details, but I do remember that one part was to do with the infamous "state hack". If we're going to use the state-hack at all, we'd better do it right. Anyway I think this is an improvement. The comments are more up to date too, and more voluminous.
-
- 02 Apr, 2009 7 commits
-
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
See Note [Case MFEs]; don't float case expressions from a strict context.
-
simonpj@microsoft.com authored
This patch fixes a rather obscure bug, whereby it's possible for (case C a b of <alts>) to have altenatives that do not inclue (C a b)! See Note [Unreachable code] in CoreUtils.
-
simonpj@microsoft.com authored
I'm changing the details of SimplUtils.interstingArg, and don't want to mess up the way Specialise works, so this patch makes a specilialised (ha) function, Specialise.interestingDict, that is used locally.
-
simonpj@microsoft.com authored
Make idDetails and idInfo into proper functions, rather than record fields, so that we can report more informatively if you use thenm on a non-Id.
-
simonpj@microsoft.com authored
In the case binder-swap operation (which is done in OccurAnal), we deliberately use shadowing. But the new shadowing binder should not inherit any fancy INLINE or NOINLINE pragmas from its parent.
-
simonpj@microsoft.com authored
This patch changes the compilation pipeline flags so that constants are floated to the top level even in the first full laziness pass. For some reason this was not done before. Fixing this makes a big improvement in 'spectral/rewrite', and has zero effect on any other nofib benchmark.
-
- 01 Apr, 2009 2 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
1. it was out of date in various ways 2. this is not the place people look for installation instructions 3. we have installation instructions elsewhere (e.g. the INSTALL file in a binary distribution) 4. the section "layout of installed files" is now on the wiki under Building/Installing.
-
- 31 Mar, 2009 1 commit
-
-
Ben.Lippmeier@anu.edu.au authored
-
- 30 Mar, 2009 2 commits
-
-
Ben.Lippmeier@anu.edu.au authored
-
Ben.Lippmeier@anu.edu.au authored
-
- 31 Mar, 2009 3 commits
-
-
Ben.Lippmeier@anu.edu.au authored
This fixes the out of memory errors we were getting on sparc after the following patch: Fri Mar 13 03:45:16 PDT 2009 Simon Marlow <marlowsd@gmail.com> * Instead of a separate context-switch flag, set HpLim to zero Ignore-this: 6c5bbe1ce2c5ef551efe98f288483b0 This reduces the latency between a context-switch being triggered and the thread returning to the scheduler, which in turn should reduce the cost of the GC barrier when there are many cores.
-
waern authored
We now use `ctypedoc` instead of `ctype` for type synonyms. `ctypedoc` was previously only used for top-level type signatures. This change means that type synonyms now can contain comments, just like top-level type signatures. Note: * I've modified `ctypedoc` so it allows implicit parameters and equational constraints, just like ctype. * Since `ctypedoc` allows nested foralls, we now allow that in type synonyms. * I have inlined some productions into gentypedoc so that there is now a non-doc version of every production with a 'doc' suffix. (Stylistic change only, which should make the code easier to follow). * It would have been nice to simplify the grammar by unifying `ctype` and ctypedoc` into one production, allowing comments on types everywhere (and rejecting them after parsing, where necessary). This is however not possible since it leads to ambiguity. The reason is the support for comments on record fields: > data R = R { field :: Int -- ^ comment on the field } If we allow comments on types here, it's not clear if the comment applies to 'field' or to 'Int'. So we must use `ctype` to describe the type.
-
Ian Lynagh authored
This avoids some showSDoc's where the String then gets converted back into an SDoc.
-