- 01 Oct, 2013 25 commits
-
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
Plus a tidy-up of the flag documentation in the immediate area
-
Simon Peyton Jones authored
-
unknown authored
* The main change is to suppress printing (in types) of kind for-alls kind applications The new flag -fprint-explicit-kinds prints them as before (by analogy with the existing -fprint-explicit-foralls) * I also took advantage of the fact that SDoc now has access to DynFlags, to tidy up the way in which explicit for-alls are printed. Instead of passing a boolean flag around, we now simply consult the DynFlags. Much neater. I still need to add documentation for the flag
-
unknown authored
This modest improvement is motivated by Trac #8356
-
unknown authored
This fixes Trac #8359
-
unknown authored
-
unknown authored
Simple refactoring. Also in Vectorise.Types/TyConDecl, simply propagate the classMinimalDef from the class we are vectorising. Simpler and more direct.
-
unknown authored
-
unknown authored
-
Simon Peyton Jones authored
Here's the Note about the (simple) fix. Apparently #8329 prevented all 23 packages of the Snap framework from compiling. Note [Demand transformer for a ditionary selector] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If we evaluate (op dict-expr) under demand 'd', then we can push the demand 'd' into the appropriate field of the dictionary. What *is* the appropriate field? We just look at the strictness signature of the class op, which will be something like: U(AAASAAAAA). Then replace the 'S' by the demand 'd'. For single-method classes, which are represented by newtypes the signature of 'op' won't look like U(...), so the splitProdDmd_maybe will fail. That's fine: if we are doing strictness analysis we are also doing inling, so we'll have inlined 'op' into a cast. So we can bale out in a conservative way, returning topDmdType. It is (just.. Trac #8329) possible to be running strictness analysis *without* having inlined class ops from single-method classes. Suppose you are using ghc --make; and the first module has a local -O0 flag. So you may load a class without interface pragmas, ie (currently) without an unfolding for the class ops. Now if a subsequent module in the --make sweep has a local -O flag you might do strictness analysis, but there is no inlining for the class op. This is wierd so I'm not worried about whether this optimises brilliantly; but it should not fall over.
-
Simon Marlow authored
-
Simon Marlow authored
This makes it possible to write x = if | False -> if | False -> 1 | False -> 2 | True -> 3 Layout normally inserts semicolons between declarations at the same indentation level, so I added optional semicolons to the syntax for guards in MultiWayIf syntax. This is a bit of a hack, but the alternative (a special kind of layout that doesn't insert semicolons) seemed worse, or at least equally bad.
-
Simon Marlow authored
-
Simon Marlow authored
People often jump to the conclusion that functions aren't inlined unless you say INLINE, so clarify the documentation to emphasize the fact that you shouldn't normally need to use INLINE unless you need to override the defaults.
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
volatile StgWord8 is not guaranteed to be atomic.
-
Simon Marlow authored
-
Simon Marlow authored
We were passing the function address to stg_gc_prim_p in R9, which was wrong because the call was a high-level call and didn't declare R9 as a parameter. Passing R9 as an argument is the right way, but unfortunately that exposed another bug: we were using the same macro in some low-level Cmm, where it is illegal to call functions with arguments (see Note [syntax of cmm files]). So we now have low-level variants of STK_CHK() and STK_CHK_P() for use in low-level Cmm code.
-
Simon Marlow authored
-
Krzysztof Gogolewski authored
-
- 30 Sep, 2013 2 commits
-
-
parcs authored
-
Austin Seipp authored
No AMP warnings will be issued anymore when the name is not imported from Prelude anymore. For example, a local definition of 'join' is now legal in modules containing 'import Prelude (map)' for example. This allows better future-proofing of libraries. See also http://ghc.haskell.org/trac/ghc/ticket/8004#comment:16 Authored-by:
David Luposchainsky <dluposchainsky@gmail.com> Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
- 29 Sep, 2013 5 commits
-
-
Edward Kmett authored
Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
Edward Kmett authored
Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
Peter Trommler authored
Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
aljee@hyper.cx authored
On 32-bit platforms, the bitmap should be an array of 32-bit words, not Word64s. Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
Austin Seipp authored
This was supposed to happen a long time ago, but later is better than never. This makes `-fwarn-lazy-unlifted-bindings` into a no-op (with its own warning) to be removed in GHC 7.10. This fixes #8022. Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
- 28 Sep, 2013 3 commits
-
-
Herbert Valerio Riedel authored
This applies attachment:sync-all-submodules-locally.diff from #8369 Authored-by: Nathaniel Filardo Signed-off-by:
Herbert Valerio Riedel <hvr@gnu.org>
-
-
Erik de Castro Lopo authored
-
- 27 Sep, 2013 5 commits
-
-
Erik de Castro Lopo authored
-
Krzysztof Gogolewski authored
-
Krzysztof Gogolewski authored
See also #4426
-
Austin Seipp authored
Authored-by:
Edward Kmett <ekmett@gmail.com> Authored-by:
Austin Seipp <austin@well-typed.com> Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
Austin Seipp authored
A value of type 'Proxy# a' can only be created through the new, primitive witness 'proxy# :: Proxy# a' - a Proxy# has no runtime representation and is thus free. This lets us clean up the internals of TypeRep, as well as Adam's future work concerning records (by using a zero-width primitive type.) Authored-by:
Edward Kmett <ekmett@gmail.com> Authored-by:
Austin Seipp <austin@well-typed.com> Signed-off-by:
Austin Seipp <austin@well-typed.com>
-