summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* base: Update Unicode database to 12.1.0wip/unicode-versionBen Gamari2020-02-102-6/+5
| | | | | Using `curl https://www.unicode.org/Public/12.1.0/ucd/UnicodeData.txt | libraries/base/cbits/ubconfc 12.1.0`.
* base: Expose GHC.Unicode.unicodeVersionBen Gamari2020-02-106-12/+65
| | | | | | | | | | | | | This exposes a Data.Version.Version representing the version of the Unicode database used by `base`. This should clear up some confusion I have seen in tickets regarding with which Unicode versions a given GHC can be expected to work. While in town I also regenerated (but did not update) the Unicode database with database 12.0.0. Strangely, the file cited in the README no longer existed. Consequently, I used https://www.unicode.org/Public/12.0.0/ucd/UnicodeData.txt and was slightly surprised to find that there were a few changes.
* Add regression test for #13142Ömer Sinan Ağacan2020-02-092-0/+161
| | | | Closes #13142
* 8.10 Release notes for improvements to the pattern-match checker [skip ci]Sebastian Graf2020-02-091-0/+14
| | | | A little late to the game, but better late than never.
* Force -fPIC for intree GMP (fix #17799)Sylvain Henry2020-02-093-46/+2
| | | | | Configure intree GMP with `--with-pic` instead of patching it. Moreover the correct patching was only done for x86_64/darwin (see #17799).
* Fix -ddump-stg-final.Andreas Klebinger2020-02-092-3/+2
| | | | Once again make sure this dumps the STG used for codegen.
* Fix #14628: Panic (No skolem Info) in GHCiRoland Senn2020-02-097-11/+52
| | | | | | | | | | | | | | This patch implements the [sugggestion from Simon (PJ)](https://gitlab.haskell.org/ghc/ghc/issues/14628#note_146559): - Make `TcErrors.getSkolemInfo` return a `SkolemInfo` rather than an `Implication`. - If `getSkolemInfo` gets `RuntimeUnk`s, just return a new data constructor in `SkolemInfo`, called `RuntimeUnkSkol`. - In `TcErrors.pprSkols` print something sensible for a `RuntimeUnkSkol`. The `getSkolemInfo` function paniced while formating suggestions to add type annotations (subfunction `suggestAddSig`) to a *"Couldn't match type ‘x’ with ‘y’"* error message. The `getSkolemInfo` function didn't find any Implication value and paniced. With this patch the `getSkolemInfo` function does no longer panic, if it finds `RuntimeUnkSkol`s. As the panic occured while processing an error message, we don't need to implement any new error message!
* hadrian: Windows fixes (bindists, CI)Alp Mestanogullari2020-02-095-25/+37
| | | | | | | | | | | | | | | | | | | This commit implements a few Windows-specific fixes which get us from a CI job that can't even get as far as starting the testsuite driver, to a state where we can run the entire testssuite (but have test failures to fix). - Don't forget about a potential extension for the haddock program, when preparing the bindist. - Build the timeout program, used by the testsuite driver on Windows in place of the Python script used elsewhere, using the boot compiler. We could alternatively build it with the compiler that we're going to test but this would be a lot more tedious to write. - Implement a wrapper-script less installation procedure for Windows, in `hadrian/bindist/Makefile. - Make dependencies a bit more accurate in the aforementioned Makefile. - Update Windows/Hadrian CI job accordingly. This patch fixes #17486.
* Fix an outdated note linkArnaud Spiwack2020-02-091-1/+1
| | | | | This link appears to have been forgotten in 0dad81ca5fd1f63bf8a3b6ad09787559e8bd05c0 .
* hadrian: Fix --test-summary argumentBen Gamari2020-02-091-4/+4
| | | | This appears to be a cut-and-paste error.
* hadrian: Add --test-metrics argumentBen Gamari2020-02-093-1/+14
| | | | | Allowing the test metric output to be captured to a file, a la the METRIC_FILE environment variable of the make build system.
* Add a test for #15712Krzysztof Gogolewski2020-02-093-0/+25
|
* rts: Fix need_prealloc being reset when retainer profiling is onDaniel Gröber2020-02-081-1/+1
|
* rts: Fix Arena blocks accounting for MBlock sized allocationsDaniel Gröber2020-02-081-1/+1
| | | | | | | | When requesting more than BLOCKS_PER_MBLOCK blocks allocGroup can return a different number of blocks than requested. Here we use the number of requested blocks, however arenaFree will subtract the actual number of blocks we got from arena_blocks (possibly) resulting in a negative value and triggering ASSERT(arena_blocks >= 0).
* base: Drop out-of-date commentBen Gamari2020-02-081-12/+0
| | | | | | | | | | | The comment in GHC.Base claimed that ($) couldn't be used in that module as it was wired-in. However, this is no longer true; ($) is merely known key and is defined in Haskell (with a RuntimeRep-polymorphic type) in GHC.Base. The one piece of magic that ($) retains is that it a special typing rule to allow type inference with higher-rank types (e.g. `runST $ blah`; see Note [Typing rule for ($)] in TcExpr).
* Add regression test for #12760Ömer Sinan Ağacan2020-02-082-0/+37
| | | | | | The bug seems to be fixed in the meantime, make sure it stays fixed. Closes #12760
* Import qualified Prelude in parserÖmer Sinan Ağacan2020-02-081-0/+1
| | | | | This is in preparation of backwards-incompatible changes in happy. See https://github.com/simonmar/happy/issues/166
* includes: Avoid using single-line comments in HsFFI.hBen Gamari2020-02-082-15/+23
| | | | | While single-line comments are supported by C99, dtrace on SmartOS apparently doesn't support them yet.
* Rename ghcAssert to stgAssert in hp2ps/Main.h.Andreas Klebinger2020-02-081-2/+2
| | | This fixes #17763
* Add mkHieFileWithSource which doesn't read the source file from diskMatthew Pickering2020-02-081-5/+14
| | | | cc/ @pepeiborra
* Remove redundant caseSylvain Henry2020-02-081-4/+2
| | | | This alternative is redundant and triggers no warning when building with 8.6.5
* Update to hie-bios 0.3.2 style program cradlePepe Iborra2020-02-082-2/+4
|
* users-guide: Clarify that bundled patsyns were introduced in GHC 8.0Ben Gamari2020-02-081-3/+5
| | | | Closes #17094.
* Apply suggestion to libraries/base/GHC/List.hsJulien Debon2020-02-081-1/+1
|
* doc(Data.List): Add some examples to Data.ListJulien Debon2020-02-082-6/+72
|
* testsuite: Add test for #15316Ben Gamari2020-02-083-0/+28
| | | | This is the full testcase for T15316.
* hadrian: Depend upon libray dependencies when configuring packagesBen Gamari2020-02-082-1/+12
| | | | This will hopefully fix #17631.
* Fix GhcThreaded settingBen Gamari2020-02-086-2/+15
| | | | | | | | | | | | | | This adopts a patch from NetBSD's packaging fixing the `GhcThreaded` option of the make build system. In addition we introduce a `ghcThreaded` option in hadrian's `Flavour` type. Also fix Hadrian's treatment of the `Use Threaded` entry in `settings`. Previously it would incorrectly claim `Use Threaded = True` if we were building the `threaded` runtime way. However, this is inconsistent with the `make` build system, which defines it to be whether the `ghc` executable is linked against the threaded runtime. Fixes #17692.
* Optimize unpackCString# to allocate less.Andreas Klebinger2020-02-081-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.
* hadrian: Allow override of Cabal configuration in hadrian.settingsBen Gamari2020-02-082-20/+32
| | | | | Fixes #17612 by adding a `cabal.configure.opts` key for `hadrian.settings`.
* Bump stm and process submodulesBen Gamari2020-02-082-0/+0
|
* Introduce -Wcompat-unqualified-importsBen Gamari2020-02-0811-5/+102
| | | | | | | | | | | | | This implements the warning proposed in option (B) of the Data.List.singleton CLC [discussion][]. This warning, which is included in `-Wcompat` is intended to help users identify imports of modules that will change incompatibly in future GHC releases. This currently only includes `Data.List` due to the expected specialisation and addition of `Data.List.singleton`. Fixes #17244. [discussion]: https://groups.google.com/d/msg/haskell-core-libraries/q3zHLmzBa5E/PmlAs_kYAQAJ
* testsuite: Fix -Wcompat-unqualified-imports issuesBen Gamari2020-02-08101-108/+144
|
* compiler: Qualify imports of Data.ListBen Gamari2020-02-0831-48/+56
|
* Fix hs_try_putmvar losing track of running capDylan Yudaken2020-02-083-0/+26
| | | | If hs_try_putmvar was called through an unsafe import, it would lose track of the running cap causing a deadlock
* Introduce IsPass; refactor wrappers.Richard Eisenberg2020-02-0853-1213/+785
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are two main payloads of this patch: 1. This introduces IsPass, which allows e.g. printing code to ask what pass it is running in (Renamed vs Typechecked) and thus print extension fields. See Note [IsPass] in Hs.Extension 2. This moves the HsWrap constructor into an extension field, where it rightly belongs. This is done for HsExpr and HsCmd, but not for HsPat, which is left as an exercise for the reader. There is also some refactoring around SyntaxExprs, but this is really just incidental. This patch subsumes !1721 (sorry @chreekat). Along the way, there is a bit of refactoring in GHC.Hs.Extension, including the removal of NameOrRdrName in favor of NoGhcTc. This meant that we had no real need for GHC.Hs.PlaceHolder, so I got rid of it. Updates haddock submodule. ------------------------- Metric Decrease: haddock.compiler -------------------------
* Remove unnecessary parenthesesRichard Eisenberg2020-02-081-14/+14
|
* slightly better named cost-centres for simple pattern bindings #17006Adam Sandberg Eriksson2020-02-082-9/+40
| | | | | | | | | | | | | | | ``` main = do print $ g [1..100] a where g xs x = map (`mod` x) xs a :: Int = 324 ``` The above program previously attributed the cost of computing 324 to a cost centre named `(...)`, with this change the cost is attributed to `a` instead. This change only affects simple pattern bindings (decorated variables: type signatures, parens, ~ annotations and ! annotations).
* Comments onlywip/T17509Simon Peyton Jones2020-02-061-0/+28
|
* Use foldTyCo for exactTyCoVarsOfTypeSimon Peyton Jones2020-02-063-87/+70
| | | | | | | | | | | | | This entailed * Adding a tcf_view field to TyCoFolder * Moving exactTyCoVarsOtType to TcType. It properly belongs there, since only the typechecker calls this function. But it also means that we can "see" and inline tcView. Metric Decrease: T14683
* Use foldTyCo for coVarsOfTypeSimon Peyton Jones2020-02-061-32/+57
|
* Simplify closeOverKindsSimon Peyton Jones2020-02-063-23/+29
|
* Use foldTyCo for noFreeVarsOfTypeSimon Peyton Jones2020-02-061-64/+15
|
* Reform the free variable finders for typesSimon Peyton Jones2020-02-064-239/+543
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch delivers on (much of) #17509. * Introduces the shallow vs deep free variable distinction * Introduce TyCoRep.foldType, foldType :: Monoid a => TyCoFolder env a -> env -> Type -> a and use it in the free variable finders. * Substitution in TyCoSubst * ASSERTs are on for checkValidSubst * checkValidSubst uses shallowTyCoVarsOfTypes etc Quite a few things still to do * We could use foldType in lots of other places * We could use mapType for substitution. (Check that we get good code!) * Some (but not yet all) clients of substitution can now save time by using shallowTyCoVarsOfTypes * All calls to tyCoVarsOfTypes should be inspected; most of them should be shallow. Maybe. * Currently shallowTyCoVarsOfTypes still returns unification variables, but not CoVarHoles. Reason: we need to return unification variables in some of the calls in TcSimplify, eg when promoting. * We should do the same thing for tyCoFVsOfTypes, which is currently unchanged. * tyCoFVsOfTypes returns CoVarHoles, because of the use in TcSimplify.mkResidualConstraints. See Note [Emitting the residual implication in simplifyInfer] * #17509 talks about "relevant" variables too.
* Move closeOverKinds and friends to TyCoFVsBen Gamari2020-02-062-29/+37
|
* VarSet: Introduce nonDetFoldVarSetBen Gamari2020-02-061-0/+4
|
* gitlab-ci: Allow Windows builds to fail againBen Gamari2020-02-051-0/+1
| | | Due to T7702 and the process issues described in #17777.
* Add regression test for #17773Ryan Scott2020-02-053-0/+32
|
* Remove CafInfo-related code from STG lambda lift passÖmer Sinan Ağacan2020-02-052-33/+5
| | | | | | | After c846618ae0 we don't have accurate CafInfos for Ids in the current module and we're free to introduce new CAFFY or non-CAFFY bindings or change CafInfos of existing binders; so no we no longer need to maintain CafInfos in Core or STG passes.
* testlib: Extend existing *_opts in extra_*_optsÖmer Sinan Ağacan2020-02-052-7/+10
| | | | | | | | | | | | Previously we'd override the existing {run,hc} opts in extra_{run,hc}_opts, which caused flakiness in T1969, see #17712. extra_{run,hc}_opts now extends {run,hc} opts, instead of overriding. Also we shrank the allocation area for T1969 in order to increase residency sampling frequency. Fixes #17712