summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* configure: Document CLANG, LLC, and OPT variableswip/llvm-configure-optsBen Gamari2019-02-092-0/+5
|
* Upgrade to the latest stack resolverNeil Mitchell2019-02-091-2/+5
|
* Simplify the build.stack.bat script to use 'stack run'Neil Mitchell2019-02-091-6/+2
|
* Improve snocView implementation.klebinger.andreas@gmx.at2019-02-091-12/+17
| | | | | | | | | | | | The new implementation isn't tailrecursive and instead builds up the initial part of the list as it goes. This improves allocation numbers as we don't build up an intermediate list just to reverse it later. This is slightly slower for lists of size <= 3. But in benchmarks significantly faster for any list above 5 elements, assuming the majority of the resulting list will be evaluated.
* Replace a few uses of snocView with last/lastMaybe.klebinger.andreas@gmx.at2019-02-093-4/+13
| | | | | | These never used the first part of the result from snocView. Hence replacing them with last[Maybe] is both clearer and gives better performance.
* Stack: fix name mangling.Tamar Christina2019-02-094-1/+95
|
* Minor refactor of CUSK handlingSimon Peyton Jones2019-02-082-23/+34
| | | | | | | | | Previously, in getFamDeclInitialKind, we were figuring out whether the enclosing class decl had a CUSK very indirectly, via tcTyConIsPoly. This patch just makes the computation much more direct and easy to grok. No change in behaviour.
* Comments only about the binder-swap in OccurAnalSimon Peyton Jones2019-02-081-12/+41
|
* Comments onlySimon Peyton Jones2019-02-083-6/+11
|
* Remove a few undefined prel namesÖmer Sinan Ağacan2019-02-081-29/+3
| | | | | | | | | | - breakpointAuto - breakpointJump - breakpointCondJump - breakpointAutoJump These Ids are never defined, but there were definitions about those in PrelNames. Those are now removed.
* Fix optSemi type in Parser.yVladislav Zavialov2019-02-081-2/+1
| | | | | | | | | | | | | | | | | | | | | The definition of 'optSemi' claimed it had type ([Located a],Bool) Note that its production actually returns ([Located Token],Bool): : ';' { ([$1],True) } -- $1 :: Located Token Due to an infelicity in the implementation of 'happy -c', it effectively resulted in 'unsafeCoerce :: Token -> a'. See https://github.com/simonmar/happy/pull/134 If any consumer of 'optSemi' tried to instantiate 'a' to something not representationally equal to 'Token', they would experience a segfault. In addition to that, this definition made it impossible to compile Parser.y without the -c flag (as it's reliant on this bug to cast 'Token' to 'forall a. a').
* Cleanup in parser/Ctype.hsSylvain Henry2019-02-081-138/+135
| | | | | | | | | | | | | | | * GHC now performs constant folding on bit operations like (.|.) so we use them and we remove the misleading comment * we use Word8 instead of Int and we remove the useless conversion to Int32. Hopefully future releases of GHC could transform the big case in `charType` into a value table indexing instead of a jump table. Word8 would make the table smaller. * we use INLINABLE pragma instead of INLINE on `is_ctype`: in my test, the latter *prevents* `is_ctype` to be inlined because `charType` is inlined into `is_ctype` (to call charType`s worker on the unboxed Char directly).
* rts/ProfilerReportJson: Fix format stringBen Gamari2019-02-081-1/+1
| | | | This was warning on i386.
* Lexer: Alternate Layout Rule injects actual not virtual bracesAlan Zimmerman2019-02-085-15/+63
| | | | | | | | | | | | | | | | | | | | | | | | | When the alternate layout rule is activated via a pragma, it injects tokens for { and } to make sure that the source is parsed properly. But it injects ITocurly and ITccurly, rather than their virtual counterparts ITvocurly and ITvccurly. This causes problems for ghc-exactprint, which tries to print these. Likewise, any injected ITsemi should have a zero-width SrcSpan. Test case (the existing T13087.hs) {-# LANGUAGE AlternativeLayoutRule #-} {-# LANGUAGE LambdaCase #-} isOne :: Int -> Bool isOne = \case 1 -> True _ -> False main = return () Closes #16279
* API Annotations: parens anns discarded for `(*)` operatorAlan Zimmerman2019-02-087-4/+53
| | | | | | | | | | | | | | | The patch from https://phabricator.haskell.org/D4865 introduces go _ (HsParTy _ (dL->L l (HsStarTy _ isUni))) acc ann fix = do { warnStarBndr l ; let name = mkOccName tcClsName (if isUni then "★" else "*") ; return (cL l (Unqual name), acc, fix, ann) } which discards the parens annotations belonging to the HsParTy. Updates haddock submodule Closes #16265
* API Annotations: AnnAt disconnected for TYPEAPPAlan Zimmerman2019-02-0815-70/+199
| | | | | | | | | | | | For the code type family F1 (a :: k) (f :: k -> Type) :: Type where F1 @Peano a f = T @Peano f a the API annotation for the first @ is not attached to a SourceSpan in the ParsedSource Closes #16236
* API Annotations: more explicit foralls fixupAlan Zimmerman2019-02-086-25/+120
| | | | | | | The AnnForall annotations introduced via Phab:D4894 are not always attached to the correct SourceSpan. Closes #16230
* ImplicitParams does not imply FlexibleContexts or FlexibleInstances, fixes ↵Neil Mitchell2019-02-081-4/+1
| | | | #16248
* Update directory submoduleHerbert Valerio Riedel2019-02-081-0/+0
|
* Update filepath submoduleHerbert Valerio Riedel2019-02-081-0/+0
|
* Add a changelog for base 4.14.0.0Langston Barrett2019-02-082-1/+6
|
* TestEquality instance for ComposeLangston Barrett2019-02-081-1/+13
|
* Fix test for T16180 on Darwin (fix #16128)Sylvain Henry2019-02-082-12/+11
|
* Hadrian: compile libgmp static on WindowsTamar Christina2019-02-081-0/+3
|
* Update hpc submoduleHerbert Valerio Riedel2019-02-081-0/+0
|
* Allow resizing the stack for the graph allocator.klebinger.andreas@gmx.at2019-02-086-36/+105
| | | | | | | | | | The graph allocator now dynamically resizes the number of stack slots when running into the limit. This fixes #8657. Also loop membership of basic blocks is now available in the register allocator for cost heuristics.
* 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
|