This project is mirrored from https://gitlab.haskell.org/ghc/ghc.git.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
- 17 Mar, 2017 3 commits
-
-
Richard Eisenberg authored
test cases: ghci/scripts/T13202{,a}
-
Richard Eisenberg authored
In an effort to report multiple levity polymorphism errors all at once, the desugarer does not fail when encountering bad levity polymorphism. But we must be careful not to build the bad applications, lest they try to satisfy the let/app invariant and call isUnliftedType on a levity polymorphic type. This protects calls to mkCoreAppDs appropriately. test case: typecheck/should_fail/T12709
-
Edward Z. Yang authored
Summary: This is required to make Haddock work correctly. Comes with a Haddock submodule update for better rendering. Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: bgamari, austin Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3335
-
- 15 Mar, 2017 2 commits
-
-
Ben Gamari authored
Fixes #13388. Also updates the expected output for T12504, which previously contained a redundant LINE pragma.
-
Ben Gamari authored
This test has been fluctuating wildly recently. Moreover, it's not even clear to me that this is a particularly useful thing to be testing.
-
- 14 Mar, 2017 6 commits
-
-
The big change is the introduction of solveSomeEqualities. This is just like solveEqualities, but it doesn't fail if there are unsolved equalities when it's all done. Anything unsolved is re-emitted. This is appropriate if we are not kind-generalizing, so this new form is used when decideKindGeneralizationPlan says not to. We initially thought that any use of solveEqualities would be tied to kind generalization, but this isn't true. For example, we need to solveEqualities a bunch in the "tc" pass in TcTyClsDecls (which is really desugaring). These equalities are all surely going to be soluble (if they weren't the "kc" pass would fail), but we still need to solve them again. Perhaps if the "kc" pass produced type- checked output that is then desugared, solveEqualities really would be tied only to kind generalization. Updates haddock submodule. Test Plan: ./validate, typecheck/should_compile/T13337 Reviewers: simonpj, bgamari, austin Reviewed By: simonpj Subscribers: RyanGlScott, rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3315
-
Ryan Scott authored
Summary: After 8136a5cb (#11450), if you have a class with an associated type: ``` class C a where type T a b ``` And you try to create an instance of `C` like this: ``` instance C Int where type T Int Char = Bool ``` Then it is rejected, since you're trying to instantiate the variable ``b`` with something other than a type variable. But this restriction proves quite onerous in practice, as it prevents you from doing things like this: ``` class C a where type T a (b :: Identity c) :: c instance C Int where type T Int ('Identity x) = x ``` You have to resort to an auxiliary type family in order to define this now, which becomes extremely tiring. This lifts this restriction and fixes #13398, in which it was discovered that adding this restriction broke code in the wild. Test Plan: ./validate Reviewers: simonpj, bgamari, austin Reviewed By: simonpj Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3302
-
Ben Gamari authored
Both the OS X build machine and my local builds have been failing. Unfortunately, our x86_64 Linux machine has been succeeding.
-
Test Plan: Validate Reviewers: austin Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3303
-
Simon Peyton Jones authored
In this commit commit 02ac2974 Author: Simon Peyton Jones <simonpj@microsoft.com> Date: Wed Nov 16 10:37:47 2011 +0000 Fix CaseIdentity optimisaion In fixing one bug I'd introduced another; case x of { T -> T; F -> F } wasn't getting optmised! Trivial to fix. I introduced yet another! This line of code in SimplUtils.mkCase1 check_eq (Var v) (DataAlt con) [] = v == dataConWorkId con -- Optimisation only is patently false when arg_tys is non-empty. Astonishing that it has not shown up before now. Easily fixed though. This was all shown up by Trac #13417, which is now fixed. Merge to 8.0, 8.2.
-
Gabor Greif authored
-
- 13 Mar, 2017 5 commits
-
-
Test Plan: No new test (bug is latent) Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3285
-
Ben Gamari authored
It seems I must have dropped the update of the expected value during a conflict resolution.
-
Ben Gamari authored
As previously documented (88f5add0) wc's output is inconsistent between Linux and BSDs. Use grep -c instead.
-
Test Plan: validate Reviewers: bgamari, austin Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3313
-
This corrects the line numbers for literate code after a shebang. Fixes #13414. Test Plan: validate Reviewers: austin, bgamari, trofi Reviewed By: bgamari, trofi Subscribers: trofi, rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3333
-
- 10 Mar, 2017 6 commits
-
-
Edward Z. Yang authored
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
Ben Gamari authored
-
Simon Peyton Jones authored
Trac #13381 showed that we were losing track of a wanted constraint when simplifying the LHS constraints for a RULE. This patch fixes it, makes the code a bit simpler, and better documented.
-
Simon Peyton Jones authored
In error messages like this • Couldn't match type ‘c’ with ‘f0 (a -> b)’ ‘c’ is a rigid type variable bound by the type signature for: f :: ((a -> b) -> b) -> forall c. c -> a we need to take case both to actually show that 'forall c', and to make sure that its name lines with the 'c' in the error message. This has been shaky for some time, and this commit puts it on solid ground. See TcRnTypes: Note [SigSkol SkolemInfo] The main changes are * SigSkol gets an extra field that records the way in which the type signature was skolemised. * The type in SigSkol is now the /un/-skolemised version * pprSkolemInfo uses the info to make the tidy type line up nicely Lots of error message wibbles!
-
Simon Peyton Jones authored
TcSimplify.decideQuantification was doing the Wrong Thing when "growing" the type variables to quantify over. We were trying to do this on a tyvar set where we'd split off the dependent type varaibles; and we just got it wrong. A kind variable wasn't being generalised properly, with confusing knock on consequences. All this led to Trac #13371 and Trac #13393. This commit tidies it all up: * The type TcDepVars is renamed as CandidateQTvs; and splitDepVarsOfType to candidateQTyVarsOfType * The code in TcSimplify.decideQuantification is simpler. It no longer does the tricky "grow" stuff over TcDepVars. Instead it use ordinary VarSets (thereby eliminating the nasty growThetaTyVarsDSet) and uses that to filter the result of candidateQTyVarsOfType. * I documented that candidateQTyVarsOfType returns the type variables in a good order in which to quantify, and rewrote it to use an accumulator pattern, so that we would predicatably get left-to-right ordering. In doing all this I also made UniqDFM behave a little more nicely: * When inserting an element that is there already, keep the old tag, while still overwriting with the new value. * This means that when doing udfmToList we get back elements in the order they were originally inserted, rather than in reverse order. It's not a big deal, but in a subsequent commit I use it to improve the order of type variables in inferred types. All this led to a lot of error message wibbles: - changing the order of quantified variables - changing the order in which instances are listed in GHCi - changing the tidying of variables in typechecker erors There's a submodule update for 'array' because one of its tests has an error-message change. I may not have associated all of them with the correct commit.
-
Simon Peyton Jones authored
Trac #13394, comment:4 showed up another place where we were testing for the representation of of a type; and it turned out to be a JoinId which can be rep-polymorphic. Just putting the test in the right places solves this easily.
-
- 09 Mar, 2017 4 commits
-
-
They were `expect_broken` without any output. Add the actual output and remove the `expect_broken`. Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3306
-
Joachim Breitner authored
-
Ben Gamari authored
-
The main goal is to easily allow the inline-c project (and similar projects such as inline-java) to emit C/C++ files to be compiled and linked with the current module. Moreover, `addCStub` is removed, since it's quite fragile. Most notably, the C stubs end up in the file generated by `CodeOutput.outputForeignStubs`, which is tuned towards generating a file for stubs coming from `capi` and Haskell-to-C exports. Reviewers: simonmar, austin, goldfire, facundominguez, dfeuer, bgamari Reviewed By: dfeuer, bgamari Subscribers: snowleopard, rwbarton, dfeuer, thomie, duncan, mboes Differential Revision: https://phabricator.haskell.org/D3280
-
- 08 Mar, 2017 1 commit
-
-
Simon Peyton Jones authored
It's ok to have a levity-polymorphic join point, thus let j :: r :: TYPE l = blah in ... Usually we don't allow levity-polymorphic binders, but join points are different because they are not first class. I updated the invariants in CoreSyn. This commit fixes Trac #13394.
-
- 07 Mar, 2017 1 commit
-
-
Gabor Greif authored
-
- 06 Mar, 2017 10 commits
-
-
Ben Gamari authored
It relies on System.Posix.DynamicLinker, which is not available.
-
Test Plan: exended T2110 with a case for that. Reviewers: austin, hvr, dfeuer, bgamari Reviewed By: dfeuer Subscribers: dfeuer, thomie Differential Revision: https://phabricator.haskell.org/D3275
-
Ben Gamari authored
-
Signed-off-by:
Rupert Horlick <ruperthorlick@gmail.com> Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3286
-
Test Plan: Validate, check generated warnings Reviewers: austin, bgamari, dfeuer Reviewed By: bgamari, dfeuer Subscribers: dfeuer, thomie Differential Revision: https://phabricator.haskell.org/D3281
-
Ben Gamari authored
Currently, `COMPLETE` pragmas are not read from external packages at all, which quite limits their usefulness. This extends `ExternalPackageState` to include `COMPLETE` sets from other packages, and plumbs around the appropriate values to make it work the way you'd expect it to. Requires a `binary` submodule update. Fixes #13350. Test Plan: make test TEST=T13350 Reviewers: rwbarton, mpickering, austin, simonpj, bgamari Reviewed By: simonpj Subscribers: simonpj, thomie Differential Revision: https://phabricator.haskell.org/D3257
-
Gabor Greif authored
-
Simon Peyton Jones authored
This fixes Trac #13369. It turned out that I really had got the bottoming-float code wrong, again. The new story is explained in Note [Bottoming floats], esp item (3), and Note [Floating from a RHS]. I didn't make a regression test; it's hard to to so. Nofib result are good -------------------------------------------------------------------------------- Program Size Allocs Runtime Elapsed TotalMem -------------------------------------------------------------------------------- banner -2.2% -4.6% 0.00 0.00 +0.0% bspt -1.3% -1.6% 0.01 0.01 +0.0% cacheprof -1.8% -0.3% +3.7% +3.7% -0.9% digits-of-e2 -1.0% -1.5% -0.5% -0.5% +0.0% expert -1.3% -0.2% 0.00 0.00 +0.0% n-body -1.1% -0.2% +0.1% +0.1% +0.0% veritas -2.9% -0.1% 0.00 0.00 +0.0% -------------------------------------------------------------------------------- Min -2.9% -4.6% -7.4% -7.4% -19.8% Max -1.0% +0.0% +5.2% +5.1% +10.0% Geometric Mean -1.2% -0.1% +0.5% +0.5% -0.1% I /think/ all this is due to this error-floating change; but it's possible that some was due to commit "Fix CSE (again) on literal strings" a couple of commits earlier.
-
Simon Peyton Jones authored
We need -dsuppress-uniques else this test keeps failing spuriously
-
Simon Peyton Jones authored
Fixes Trac #13367. See Note [Take care with literal strings]
-
- 04 Mar, 2017 2 commits
-
-
Previously, there were identical copies of `CmpNat`, `(<=?)`, `(+)`, etc. spread across `GHC.TypeLits` and `GHC.TypeNats`. This makes `GHC.TypeNats` the canonical home for them, and reexports them from `GHC.TypeLits` to avoid confusion. Test Plan: ./validate Reviewers: bgamari, austin, hvr Reviewed By: bgamari Subscribers: thomie, phadej Differential Revision: https://phabricator.haskell.org/D3272
-
Ben Gamari authored
Previously I only updated the comment in one case.
-