summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Optimize unpackCString# to allocate less.wip/unpackStringAndreas Klebinger2020-01-171-43/+54
| | | | | | | | | | | | | | | | | unpackCString# is a recursive function which for each iteration returns a Cons cell containing the current Char, and a thunk for unpacking the rest of the string. In this patch we change from storing addr + offset inside this thunk to storing only the addr, simply incrementing the address on each iteration. This saves one word of allocation per unpacked character. For a program like "main = print "<largishString>" this amounts to 2-3% fewer % in bytes allocated. I also removed the now redundant local unpack definitions. This removes one call per unpack operation.
* gitlab-ci: Don't FORCE_SYMLINKS on WindowsBen Gamari2020-01-171-1/+1
| | | Not all runners have symlink permissions enabled.
* Revert "`exprOkForSpeculation` for Note [IO hack in the demand analyser]"Sebastian Graf2020-01-161-11/+11
| | | | | | | | | | | | | This reverts commit ce64b397777408731c6dd3f5c55ea8415f9f565b on the grounds of the regression it would introduce in a couple of packages. Fixes #17653. Also undoes a slight metric increase in #13701 introduced by that commit that we didn't see prior to !1983. Metric Decrease: T13701
* replace dead html link (fixes #17661)Adam Wespiser2020-01-161-1/+1
|
* Remove special case case of bool during STG -> C--John Ericson2020-01-162-86/+1
| | | | | | | | | Allow removing the no longer needed cgPrimOp, getting rid of a small a small layer violation too. Change which made the special case no longer needed was #6135 / 6579a6c73082387f82b994305011f011d9d8382b, which dates back to 2013, making me feel better.
* Get rid of OpDestJohn Ericson2020-01-161-598/+583
| | | | | `OpDest` was basically a defunctionalization. Just turn the code that cased on it into those functions, and call them directly.
* Handle TagToEnum in the same big case as the other primopsJohn Ericson2020-01-163-35/+94
| | | | | | | | | | | | | Before, it was a panic because it was handled above. But there must have been an error in my reasoning (another caller?) because #17442 reported the panic was hit. But, rather than figuring out what happened, I can just make it impossible by construction. By adding just a bit more bureaucracy in the return types, I can handle TagToEnum in the same case as all the others, so the big case is is now total, and the panic is removed. Fixes #17442
* Better documentation for mkEtaWW [skip ci]Sebastian Graf2020-01-161-11/+24
| | | | | | So that hopefully I understand it faster next time. Also got rid of the confusing `orig_expr`, which makes the call site in `etaExpand` look out of sync with the passed `n` (which is not the original `n`).
* Comments in TcHsTypeSimon Peyton Jones2020-01-121-2/+2
|
* Minor refactor around quantified constraintsSimon Peyton Jones2020-01-122-13/+41
| | | | | | | | | | This patch clarifies a dark corner of quantified constraints. * See Note [Yukky eq_sel for a HoleDest] in TcSMonad * Minor refactor, breaking out new function TcInteract.doTopReactEqPred
* Comments about constraint floatingSimon Peyton Jones2020-01-121-0/+5
|
* Add comments about TH levelsSimon Peyton Jones2020-01-123-6/+12
|
* users-guide/debug-info: typo “behivior”Jean-Baptiste Mazon2020-01-121-1/+1
|
* Fix LANG=C for readelf invocation in T14999Sylvain Henry2020-01-121-1/+1
| | | | The test fails when used with LANG=fr_FR.UTF-8
* gitlab-ci: Retain bindists used by head.hackage for longerBen Gamari2020-01-121-1/+3
| | | | | Previously we would keep them for two weeks. However, on the stable branches two weeks can easily elapse with no pushes.
* Fix more typos, via an improved Levenshtein-style correctorBrian Wignall2020-01-12136-360/+360
|
* Don't zap to Any; error insteadRichard Eisenberg2020-01-1233-124/+298
| | | | | | | | | This changes GHC's treatment of so-called Naughty Quantification Candidates to issue errors, instead of zapping to Any. Close #16775. No new test cases, because existing ones cover this well.
* Overloaded Quotation Brackets (#246)Matthew Pickering2020-01-1268-1053/+1696
| | | | | | | | | | | | | | | | | | This patch implements overloaded quotation brackets which generalise the desugaring of all quotation forms in terms of a new minimal interface. The main change is that a quotation, for example, [e| 5 |], will now have type `Quote m => m Exp` rather than `Q Exp`. The `Quote` typeclass contains a single method for generating new names which is used when desugaring binding structures. The return type of functions from the `Lift` type class, `lift` and `liftTyped` have been restricted to `forall m . Quote m => m Exp` rather than returning a result in a Q monad. More details about the feature can be read in the GHC proposal. https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0246-overloaded-bracket.rst
* improve docs for HeaderInfo.getImportsAdam Sandberg Eriksson2020-01-121-1/+2
| | | | [skip ci]
* Print Core type applications with no whitespace after @ (#17643)Ryan Scott2020-01-0836-195/+160
| | | | | | | | | | | This brings the pretty-printer for Core in line with how visible type applications are normally printed: namely, with no whitespace after the `@` character (i.e., `f @a` instead of `f @ a`). While I'm in town, I also give the same treatment to type abstractions (i.e., `\(@a)` instead of `\(@ a)`) and coercion applications (i.e., `f @~x` instead of `f @~ x`). Fixes #17643.
* Bump haskeline submodule to 0.8.0.1Ben Gamari2020-01-083-0/+11
| | | | (cherry picked from commit feb3b955402d53c3875dd7a9a39f322827e5bd69)
* Module hierarchy: Renamer (cf #13009)Sylvain Henry2020-01-0847-239/+230
|
* Monomorphize HsModule to GhcPs (#17642)Ryan Scott2020-01-078-21/+19
| | | | | | | | Analyzing the call sites for `HsModule` reveals that it is only ever used with parsed code (i.e., `GhcPs`). This simplifies `HsModule` by concretizing its `pass` parameter to always be `GhcPs`. Fixes #17642.
* Remove `parallel` check from configure.acSylvain Henry2020-01-071-1/+0
| | | | `parallel` is no longer a submodule since 3cb063c805ec841ca33b8371ef8aba9329221b6c
* gitlab-ci: Pull test metrics before running testsuiteBen Gamari2020-01-072-52/+76
| | | | | Otherwise the testsuite driver may not have an up-to-date baseline.
* gitlab-ci: Rename push-test-metrics.sh to test-metrics.shBen Gamari2020-01-071-0/+0
| | | | Refactoring to follow.
* testsuite: Fix Windows platform testBen Gamari2020-01-071-2/+1
| | | | | | | | Previously we used platform.system() and while this worked fine (e.g. returned `Windows`, as expected) locally under both msys and MingW64 Python distributions, it inexplicably returned `MINGW64_NT-10.0` under MingW64 Python on CI. It seems os.name is more reliable so we now use that instead..
* configure: Find Python3 for testsuiteBen Gamari2020-01-076-3/+20
| | | | | In addition, we prefer the Mingw64 Python distribution on Windows due to #17483.
* gitlab-ci: Disallow Windows from failingBen Gamari2020-01-071-1/+0
|
* testsuite: Mark T17073 as broken on WindowsBen Gamari2020-01-071-1/+2
| | | | Due to #17607.
* Use non-empty lists to remove partiality in matching codeJohn Ericson2020-01-075-103/+105
|
* configure: Only check GCC version if CC is GCCBen Gamari2020-01-071-19/+24
| | | | | | | | | | | Also refactor FP_GCC_EXTRA_FLAGS in a few ways: * We no longer support compilers which lack support for -fno-builtin and -fwrapv so remove the condition on GccVersion * These flags are only necessary when using the via-C backend so make them conditional on Unregisterised. Fixes #15742.
* Module hierarchy: Iface (cf #13009)Sylvain Henry2020-01-0699-334/+352
|
* Fix overflow.Tamar Christina2020-01-061-1/+1
|
* testsuite: Mark cgrun057 as fragile on all platformsBen Gamari2020-01-041-1/+1
| | | | | | I have seen this fail both on x86-64/Debian 9 and armv7/Debian 9 See #17554.
* Split integerGmpInternals test in several partsSylvain Henry2020-01-049-175/+247
| | | | | This is to prepare for ghc-bignum which implements some but not all of gmp functions.
* Add lexerDbg to dump the tokens fed to the parserVladislav Zavialov2020-01-042-2/+10
| | | | | This a small utility function that comes in handy when debugging the lexer and the parser.
* Update to Cabal submodule to v3.2.0.0-alpha3Oleg Grenrus2020-01-048-19/+19
| | | | | Metric Increase: haddock.Cabal
* Add Cmm related hooksSylvain Henry2020-01-043-5/+21
| | | | | | | | | | | | | * stgToCmm hook * cmmToRawCmm hook These hooks are used by Asterius and could be useful to other clients of the GHC API. It increases the Parser dependencies (test CountParserDeps) to 184. It's still less than 200 which was the initial request (cf https://mail.haskell.org/pipermail/ghc-devs/2019-September/018122.html) so I think it's ok to merge this.
* Fix typos, via a Levenshtein-style correctorBrian Wignall2020-01-04168-362/+359
|
* Simplify mrStrGabor Greif2020-01-033-10/+3
|
* Tweak Cmm dumps to avoid generating sections for empty groupsÖmer Sinan Ağacan2019-12-311-15/+20
| | | | | | | | | | When dumping Cmm groups check if the group is empty, to avoid generating empty sections in dump files like ==================== Output Cmm ==================== [] Also fixes a few bad indentation in the code around changes.
* Fix some sloppy indentationKevin Buhr2019-12-311-3/+3
|
* Add additional Note explaining the -Iw flagKevin Buhr2019-12-311-2/+49
|
* Add "-Iw" RTS flag for minimum wait between idle GCs (#11134)Kevin Buhr2019-12-314-20/+63
|
* Testsuite: update some Haddock testsVladislav Zavialov2019-12-3112-8/+60
| | | | | | | | | | | | Fixed tests: * haddockA039: added to all.T * haddockE004: replaced with T17561 (marked as expect_broken) New tests: * haddockA040: deriving clause for a data instance * haddockA041: haddock and CPP #include
* Module hierarchy (#13009): StgSylvain Henry2019-12-3146-228/+226
|
* testsuite: Enlarge acceptance window for T1969Ben Gamari2019-12-301-1/+1
| | | | | | | | As noted in #17624, it's quite unstable, especially, for some reason, on i386 and armv7 (something about 32-bit platforms perhaps?). Metric Increase: T1969
* perf_notes: Add --zero-y argumentBen Gamari2019-12-301-12/+25
| | | | | This makes it easier to see the true magnitude of fluctuations. Also do some house-keeping in the argument parsing department.
* TcIface: Fix inverted logic in typechecking of source ticksBen Gamari2019-12-301-1/+1
| | | | | | | | | | | | | Previously we would throw away source ticks when the debug level was non-zero. This is precisely the opposite of what was intended. Fixes #17616. Metric Decrease: T13056 T9020 T9961 T12425