summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Look through newtype wrappers (Trac #16254)wip/inlining-lateKrzysztof Gogolewski2019-02-087-4/+78
| | | | | | exprIsConApp_maybe could detect that I# 10 is a constructor application, but not that Size (I# 10) is, because it was an application with a nontrivial argument.
* Make constructor wrappers inline only during the final phaseArnaud Spiwack2019-02-0814-61/+272
| | | | | | | For case-of-known constructor to continue triggering early, exprIsConApp_maybe is now capable of looking through lets and cases. See #15840
* Disable binder swap in OccurAnal (Trac #16288)Krzysztof Gogolewski2019-02-086-7/+45
|
* Fix #14729 by making the normaliser homogeneousRichard Eisenberg2019-02-0813-371/+636
| | | | | | | | | | | | | | | | This ports the fix to #12919 to the normaliser. (#12919 was about the flattener.) Because the fix is involved, this is done by moving the critical piece of code to Coercion, and then calling this from both the flattener and the normaliser. The key bit is: simplifying type families in a type is always a *homogeneous* operation. See #12919 for a discussion of why this is the Right Way to simplify type families. Also fixes #15549. test case: dependent/should_compile/T14729{,kind} typecheck/should_compile/T15549[ab]
* testsuite: Mark T5515 as broken with debugged compilerBen Gamari2019-02-071-1/+1
| | | | As noted in #16251.
* testsuite: Mark T14740 and tcfail159 as broken in debugged compilerBen Gamari2019-02-072-2/+2
| | | | As noted in #16113, these trigger an assertion in isUnliftedRuntimeRep.
* testsuite: Mark recomp007 as broken in debugged compilerBen Gamari2019-02-071-3/+4
| | | | As noted in #14759, this triggers a warning in ListSetOps.
* testsuite: Mark T11334b as broken in debugged compilerBen Gamari2019-02-071-1/+1
| | | | As noted in #16112.
* Revert "gitlab-ci: More aggressive artifact expiration"Matthew Pickering2019-02-071-10/+17
| | | | This reverts commit d87b38a2519212aaf8bad927c65abecc509a7212.
* gitlab-ci: More aggressive artifact expirationBen Gamari2019-02-071-17/+10
|
* gitlab-ci: Add a devel2 buildBen Gamari2019-02-071-0/+10
|
* Fix #16287 by checking for more unsaturated synonym argumentsRyan Scott2019-02-064-24/+46
| | | | | | | | | | | | | Trac #16287 shows that we were checking for unsaturated type synonym arguments (in `:kind`) when the argument was to a type synonym, but _not_ when the argument was to some other form of type constructor, such as a data type. The solution is to use the machinery that rejects unsaturated type synonym arguments (previously confined to `check_syn_tc_app`) to `check_arg_type`, which checks these other forms of arguments. While I was in town, I cleaned up `check_syn_tc_app` a bit to only invoke `check_arg_type` so as to minimize the number of different code paths that that function could go down.
* Add int-index as parser/* codeownerVladislav Zavialov2019-02-061-0/+1
|
* Fix #14579 by defining tyConAppNeedsKindSig, and using itRyan Scott2019-02-059-205/+421
|
* Refactor splice_exp in Parser.yVladislav Zavialov2019-02-053-22/+22
|
* Add `-fplugin-trustworthy` to avoid marking modules as unsafeZejun Wu2019-02-0410-4/+54
| | | | | | | | By default, when a module is compiled with plugins, it will be marked as unsafe. With this flag passed, all plugins are treated as trustworthy and the safety inference will no longer be affected. This fixes Trac #16260.
* gitlab-ci: Don't allow x86_64-linux-deb9-llvm to failBen Gamari2019-02-041-1/+0
|
* testsuite: Mark print037 as broken when GHC is built with LLVMBen Gamari2019-02-042-1/+13
| | | | As noted in #16205 this configuration reliably segfaults.
* testsuite: Use makefile_test for T16212Ben Gamari2019-02-041-1/+1
|
* testsuite: Skip T15897 in unregisterised wayBen Gamari2019-02-041-1/+4
| | | | | | | As noted in #16227 this test routinely times out when run in the unregisterised way. See also #15467.
* Report multiple errorsVladislav Zavialov2019-02-035-21/+96
|
* Add werror function to Flavour.hsMatthew Pickering2019-02-033-1/+22
| | | | | This function makes it easy to turn on `-Werror` in the correct manner to mimic how CI turns on -Werror.
* Fix missing space in ppr_cmd for HsCmdArrFormVladislav Zavialov2019-02-031-2/+2
|
* docs: change meta-variable of -interactive-print from expr to nameZejun Wu2019-02-031-4/+4
| | | | | `-interactive-print` doesn't accept **expr** as `-e` or `:def` does. It must be a qualified or unqualified **name** in scope.
* Turn on -Wno-unused-imports in make build systemMatthew Pickering2019-02-021-0/+3
| | | | This mirrors Hadrian and it good enough to get us unstuck.
* Bump hsc2hs for removed unused matchSebastian Graf2019-02-021-0/+0
|
* Remove unused importsSebastian Graf2019-02-022-5/+1
|
* Turn on -Werror when validatingMatthew Pickering2019-02-021-1/+1
|
* Polished Note [Exceptions and strictness]Sebastian Graf2019-02-021-15/+27
| | | | [ci skip]
* Update user-settings.md with a pointer to `Packages`Sebastian Graf2019-02-021-1/+5
| | | [skip ci]
* Reject oversaturated VKAs in type family equationsRyan Scott2019-02-018-2/+108
|
* Remove ExnStr and ThrowsExn businessSebastian Graf2019-02-0111-240/+149
|
* Fix #16219: TemplateHaskell causes indefinite package build errorEdward Z. Yang2019-01-3111-0/+137
| | | | | | | | | | | | | | | | | | | | | | | | It should work to write an indefinite package using TemplateHaskell, so long as all of the actual TH code lives outside of the package. However, cleverness we had to build TH code even when building with -fno-code meant that we attempted to build object code for modules in an indefinite package, even when the signatures were not instantiated. This patch disables said logic in the event that an indefinite package is being typechecked. Signed-off-by: Edward Z. Yang <ezyang@fb.com> Test Plan: validate Reviewers: simonpj, bgamari Reviewed By: bgamari Subscribers: rwbarton, carter GHC Trac Issues: #16219 Differential Revision: https://phabricator.haskell.org/D5475
* Revert "Performance tests: recover a baseline from ancestor commits and CI ↵Ben Gamari2019-01-317-353/+63
| | | | | | | | | results." Unfortunately this has broken all future commits due to spurious(?) performance changes which I have been unable to work around. This reverts commit cc2261d42f6a954d88e355aaad41f001f65c95da.
* Hadrian: Fix outdated link.Andrey Mokhov2019-01-311-1/+1
|
* Hadrian: Update instructions for building on WindowsAndrey Mokhov2019-01-312-24/+25
| | | | | | The `hadrian/doc/windows.md` file has falled out of date. In particular it still points to the old GitHub repository, and uses incorrect path to GHC. This patch fixes it.
* Update terminfo submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* Update stm submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* Update process submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* Update parsec submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* Update haskeline submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* Update deepseq submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* Update unix submoduleHerbert Valerio Riedel2019-01-312-0/+1
|
* Update text submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* Update hsc2hs submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* PPC NCG: Promote integers to word size in C callsPeter Trommler2019-01-312-15/+29
| | | | Fixes #16222
* Small optimizations to BlockLayout.klebinger.andreas@gmx.at2019-01-311-39/+31
| | | | | | | | | | * Remove `takeL/R 1` occurences by lastOL/headOL. * Make BlockChain a OrdList newtype by removing the set of blocks. Initially BlockChain contained both, a set for membership test and a ordered list of blocks. The set is not used for any performance sensitive lookups so we get rid of it.
* Replace BlockSequence with OrdList in BlockLayout.hsklebinger.andreas@gmx.at2019-01-312-77/+45
| | | | | OrdList does the same thing and more so there is no reason to have both.
* testsuite: Add test for #14828Ben Gamari2019-01-312-0/+19
|
* Introduce GhciMonad and generalize types of functions in GHCi.UIZejun Wu2019-01-312-234/+250
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Introduce `GhciMonad`, which is bascially `GhcMonad` + `HasGhciState`. Generalize the commands and help functions defined in `GHCi.UI` so they can be used as both `GHCi a` and `InputT GHCi a`. The long term plan is to move reusable bits to ghci library and make it easier to build a customized interactive ui which carries customized state and provides customized commands. Most changes are trivial in this diff by relaxing the type constraint or add/remove lift as necessary. The non-trivial changes are: * Change `HasGhciState` to `GhciMonad` and expose it. * Implementation of `reifyGHCi`. Test Plan: ./validate Reviewers: simonmar, hvr, bgamari Reviewed By: simonmar Subscribers: rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5433