- Jan 08, 2016
-
-
Thomas Miedema authored
Some parts of the build system require that paths are what msys2 calls "mixed style": * forwards slashes * absolute paths starting with a drive letter followed by a colon (e.g. "C:") The removal of ghc-pwd in 4c56ad36 changed $(TOP) from mixed style to unix style, resulting in a broken Windows build for some. Differential Revision: https://phabricator.haskell.org/D1752
-
Simon Marlow authored
-
This was non-obvious to me when reading the sources and the paper provides the motivation and explores the design space. Test Plan: just a comment Reviewers: simonpj, austin, ezyang, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1749
-
Simon Marlow authored
-
Simon Marlow authored
Summary: Was broken by ce1f1607. I've added a test so that hopefully it won't break again. Test Plan: validate & new test case Reviewers: bgamari, austin, erikd Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1746 GHC Trac Issues: #11304
-
Speed up GHC.Event.IntTable.lookup by removing the IO context from the go helper function. This generates a little bit better code as we can avoid repeating the stack check. Remove unused parameter from GHC.Event.IntTable.updateWith.go and directly return a bool instead of a maybe and then checking that whether it is a Nothing. Test Plan: validate Reviewers: austin, hvr, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1742 GHC Trac Issues: #8793
-
Ryan Scott authored
This is the second (and hopefully last) fix needed to make TH handle GADTs properly (after D1465). This Diff addresses some issues with infix GADT constructors, specifically: * Before, you could not determine if a GADT constructor was declared infix because TH did not give you the ability to determine if there is a //user-specified// fixity declaration for that constructor. The return type of `reifyFixity` was changed to `Maybe Fixity` so that it yields `Just` the fixity is there is a fixity declaration, and `Nothing` otherwise (indicating it has `defaultFixity`). * `DsMeta`/`Convert` were changed so that infix GADT constructors are turned into `GadtC`, not `InfixC` (which should be reserved for Haskell98 datatype declarations). * Some minor fixes to the TH pretty-printer so that infix GADT constructors will be parenthesized in GADT signatures. Fixes #11345. Test Plan: ./validate Reviewers: goldfire, austin, bgamari, jstolarek Reviewed By: jstolarek Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1744 GHC Trac Issues: #11345
-
Jan Stolarek authored
-
Simon Marlow authored
Summary: This completes the support for TH with -fexternal-interpreter. Test Plan: validate Reviewers: bgamari, ezyang, austin, niteria, goldfire, erikd Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1748 GHC Trac Issues: #11100
-
Simon Marlow authored
Summary: The main goal here is enable stack traces in GHCi. After this change, if you start GHCi like this: ghci -fexternal-interpreter -prof (which requires packages to be built for profiling, but not GHC itself) then the interpreter manages cost-centre stacks during execution and can produce a stack trace on request. Call locations are available for all interpreted code, and any compiled code that was built with the `-fprof-auto` familiy of flags. There are a couple of ways to get a stack trace: * `error`/`undefined` automatically get one attached * `Debug.Trace.traceStack` can be used anywhere, and prints the current stack Because the interpreter is running in a separate process, only the interpreted code is running in profiled mode and the compiler itself isn't slowed down by profiling. The GHCi debugger still doesn't work with -fexternal-interpreter, although this patch gets it a step closer. Most of the functionality of breakpoints is implemented, but the runtime value introspection is still not supported. Along the way I also did some refactoring and added type arguments to the various remote pointer types in `GHCi.RemotePtr`, so there's better type safety and documentation in the bridge code between GHC and ghc-iserv. Test Plan: validate Reviewers: bgamari, ezyang, austin, hvr, goldfire, erikd Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1747 GHC Trac Issues: #11047, #11100
-
- Jan 07, 2016
-
-
Gabor Greif authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
As Trac #11222, and #10712 note, the strictness analyser needs to be rather careful about exceptions. Previously it treated them as identical to divergence, but that won't quite do. See Note [Exceptions and strictness] in Demand, which explains the deal. Getting more strictness in 'catch' and friends is a very good thing. Here is the nofib summary, keeping only the big ones. -------------------------------------------------------------------------------- Program Size Allocs Runtime Elapsed TotalMem -------------------------------------------------------------------------------- fasta -0.1% -6.9% -3.0% -3.0% +0.0% hpg -0.1% -2.0% -6.2% -6.2% +0.0% maillist -0.1% -0.3% 0.08 0.09 +1.2% reverse-complem -0.1% -10.9% -6.0% -5.9% +0.0% sphere -0.1% -4.3% 0.08 0.08 +0.0% x2n1 -0.1% -0.0% 0.00 0.00 +0.0% -------------------------------------------------------------------------------- Min -0.2% -10.9% -17.4% -17.3% +0.0% Max -0.0% +0.0% +4.3% +4.4% +1.2% Geometric Mean -0.1% -0.3% -2.9% -3.0% +0.0% On the way I did quite a bit of refactoring in Demand.hs
-
Simon Peyton Jones authored
This change tidies up and simplifies (a bit) the knot-tying when kind-checking groups of type and class declarations. The trouble (shown by Trac #11356) was that we wanted an error message (a kind-mismatch) that involved a type mentioned a (AThing k), which blew up. Since we now seem to have TcTyCons, I decided to use them here. It's still not great, but it's easier to understand and more robust.
-
Simon Peyton Jones authored
Trac #11437 showed that erroneous constraints from a 'deriving' clause need to be wrapped in an Implication to properly scope their skolems. The main change is in TcDeriv.simplifyDeriv; the call to buildImplicationFor is new.
-
Simon Peyton Jones authored
simpl_top was being polluted with Safe Haskell stuff which was only used in one of its four calls. This moves the Safe Haskell stuff to the place it is actually used
-
Simon Peyton Jones authored
It was only called in one place; easier to inline it
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
Previously tidySkolemInfo used tidyOpenType, and returned a new TidyEnv. But that's not needed any more, because all the skolems should be in scope in the constraint tree. I also removed a (now-unnecessary) field of UnifyForAllSkol
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
- Jan 06, 2016
-
-
Ben Gamari authored
-
Ben Gamari authored
Incredibly enough this hasn't been touched since 6.10.1
-
Ben Gamari authored
-
Ben Gamari authored
-
Ryan Scott authored
Reviewers: austin, hvr, bgamari, thomie Reviewed By: thomie Differential Revision: https://phabricator.haskell.org/D1721
-
Reviewers: hvr, thomie, austin Reviewed By: austin Subscribers: duncan Differential Revision: https://phabricator.haskell.org/D1741 GHC Trac Issues: #8176, #4437
-
Ben Gamari authored
Bump Cabal and Haddock submodules such that they both support GCC-style response files on Windows.
-
Jan Stolarek authored
Previous representation of GADTs in TH was not expressive enough to express possible GADT return types. See #11341 Test Plan: ./validate Reviewers: goldfire, austin, bgamari Subscribers: thomie, RyanGlScott Differential Revision: https://phabricator.haskell.org/D1738 GHC Trac Issues: #11341
-
Ryan Scott authored
Phab:D493 accidentally changed the way GHC generics looks up `Fixity` information when deriving `Generic` or `Generic1`. Before, a `Fixity` of `Infix` would be given only if a data constructor was declared infix, but now, `Infix` is given to any data constructor that has a fixity declaration (not to be confused with being declared infix!). This commit reverts back to the original behavior for consistency's sake. Fixes #11358. Test Plan: ./validate Reviewers: kosmikus, dreixel, austin, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1740 GHC Trac Issues: #11358
-
Ben Gamari authored
-
- Jan 05, 2016
-
-
A set of changes to enable local ghc env files to be useful for tools like cabal. Ultimately it will allow cabal to maintain a ghc env file so that users can simple run ghc or ghci in a project directory and get the expected environment of the project. Change the name of .ghc.environment files to include the platform and ghc version, e.g. .ghc.environment.x86_64-linux-7.6.3, since their content is version specific. Strictly speaking this is not backwards compatible, but we think this feature is not widely used yet. "Look up" for a local env file, like the behaviour of git/darcs etc. So you can be anywhere within a project and get the expected environment. Don't look for local env files when -hide-all-packages is given. Extend the syntax of env files to allow specifying package dbs too. Test Plan: Currently completely untested. Compiles, that is all. Sorry, have to disappear for the hols. Reviewers: hvr, ezyang, austin, bgamari Reviewed By: ezyang, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1668 GHC Trac Issues: #11268
-
Ben Gamari authored
-
The interfaces to {save,load}ThreadState were quite messy due to the need to pass in local registers (produced with draws from a unique supply) since they were used from both FCode and UniqSM. This, however, is entirely unnecessary as we already have an abstraction to capture this effect: MonadUnique. Use it. This is part of an effort to properly represent stack unwinding information for foreign calls. Test Plan: validate Reviewers: austin, simonmar Reviewed By: simonmar Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1733
-
Various people (myself included) have complained about the lack of useful descriptions for the various packages included in GHC's source tree. Fix this. Test Plan: Validate Reviewers: austin, thomie Reviewed By: thomie Subscribers: angerman, ezyang Differential Revision: https://phabricator.haskell.org/D1736
-
Since #11316 indicates that having flag `-Wtoo-many-guards` enabled by default causes issues, the simplest thing is to remove it. This patch removes it from the default list, it updates the docs and removes the suppression flags for `T783` and `types/OptCoercion.hs` Test Plan: validate Reviewers: bgamari, austin, goldfire Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1737 GHC Trac Issues: #11316
-
Ben Gamari authored
-
Ben Gamari authored
-
Joachim Breitner authored
Unfortunately, I could not add the expected error message, so if someone accidentally fixes this bug, this test will still be failing (no harm). But maybe someone stumbles over it then and can update the expected output.
-