summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix histograms for ticky codeMateusz Lenik2016-05-1810-301/+75
| | | | | | | | | | | | | | | | | | | | This patch fixes Cmm generation required to produce histograms when compiling with -ticky flag, strips dead code from rts/Ticky.c and reworks it to use a shared constant in both C and Haskell code. Fixes #8308. Test Plan: T8308 Reviewers: jstolarek, simonpj, austin Reviewed By: simonpj Subscribers: mpickering, simonpj, bgamari, mlen, thomie, jstolarek Differential Revision: https://phabricator.haskell.org/D931 GHC Trac Issues: #8308
* Make inert_model and inert_eqs deterministic setsBartosz Nitka2016-05-1811-52/+93
| | | | | | | | | | | | | | | | | | | | The order inert_model and intert_eqs fold affects the order that the typechecker looks at things. I've been able to experimentally confirm that the order of equalities and the order of the model matter for determinism. This is just a straigthforward replacement of nondeterministic VarEnv for deterministic DVarEnv. Test Plan: ./validate Reviewers: simonpj, goldfire, austin, bgamari, simonmar Reviewed By: simonmar Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2232 GHC Trac Issues: #4012
* Update .mailmap [skip ci]Thomas Miedema2016-05-181-2/+7
|
* Testsuite: don't warn when mk/ghcconfig_* hasn't been created yetThomas Miedema2016-05-181-1/+1
| | | | [skip ci]
* Testsuite: T10052 requires interpreter (#11730)Thomas Miedema2016-05-181-2/+2
|
* rts: More const correct-ness fixesErik de Castro Lopo2016-05-1821-103/+138
| | | | | | | | | | | | | | | | | | | | In addition to more const-correctness fixes this patch fixes an infelicity of the previous const-correctness patch (995cf0f356) which left `UNTAG_CLOSURE` taking a `const StgClosure` pointer parameter but returning a non-const pointer. Here we restore the original type signature of `UNTAG_CLOSURE` and add a new function `UNTAG_CONST_CLOSURE` which takes and returns a const `StgClosure` pointer and uses that wherever possible. Test Plan: Validate on Linux, OS X and Windows Reviewers: Phyx, hsyl20, bgamari, austin, simonmar, trofi Reviewed By: simonmar, trofi Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2231
* rules/build-prog: Ensure programs depend upon their transitive depsBen Gamari2016-05-171-1/+3
| | | | | | | | | | Previously programs only depended upon the direct dependencies; while I would have thought that this would be sufficient, somehow we were getting to the link step of building `ghc-pkg` before `ghc-boot-th` was built (despite the fact that `ghc-boot` has a direct dependency on `ghc-boot-th`). See #12078.
* rules: Fix name of ghc-boot-th libraryBen Gamari2016-05-171-1/+1
| | | | There was a missing `#`. Hadrian couldn't come soon enough.
* Delete libraries/ghci/GNUmakefile [skip ci]Thomas Miedema2016-05-171-4/+0
| | | | | This file should not have been included in the repository, as it is generated by `./boot`.
* Testsuite: don't skip concio001 and concio001_thrThomas Miedema2016-05-172-4/+4
| | | | | I think they were skipped before because they write to the same output file (concio001). This is no longer a problem.
* Testsuite: delete unused file [skip ci]Thomas Miedema2016-05-171-3/+0
|
* Testsuite: delete old cleanup code (#11980)Thomas Miedema2016-05-174-156/+13
|
* Testsuite: run tests in /tmp after copying required filesThomas Miedema2016-05-177-27/+743
| | | | | | | | | | | | | | | | | | | | | | | Major change to the testsuite driver. For each TEST: * create a directory `<testdir>` inside `/tmp`. * link/copy all source files that the test needs into `<testdir>`. * run the test inside `<testdir>`. * delete `<testdir>` Extra files are (temporarily) tracked in `testsuite/driver/extra_files.py`, but can also be specified using the `extra_files` setup function. Differential Revision: https://phabricator.haskell.org/D1187 Reviewed by: Rufflewind, bgamari Trac: #11980
* Document determinism in shortOutIndirectionsBartosz Nitka2016-05-171-1/+5
| | | | | | | | | | | | | | | | | varEnvElts didn't introduce nondeterminism here. This makes it obvious that it could and explains why it doesn't. Test Plan: ./validate Reviewers: bgamari, simonmar, austin, simonpj Reviewed By: simonpj Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2228 GHC Trac Issues: #4012
* Add ghc-boot-th to rules/foreachLibraryBen Gamari2016-05-171-1/+3
| | | | | This may have been the cause of various build failures on FreeBSD and Solaris.
* Set `USE_MMAP` at configure timeErik de Castro Lopo2016-05-172-35/+47
| | | | | | | | | | | | | | | Summary: The `USE_MMAP` macro is used in the run time linker and was being set with some really ugly CPP hackery. Setting in the configure script is much neater. Reviewers: rwbarton, hvr, austin, simonmar, bgamari Reviewed By: hvr, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2223
* Remove html_theme requirement of haddock docsBen Gamari2016-05-161-0/+0
| | | | Updates haddock submodule.
* Another bump of haddock submoduleBen Gamari2016-05-161-0/+0
| | | | | | Trying to ensure consistent haddock documentation across Sphinx versions is far too much work for too little benefit; reverting Alabaster vendorization.
* Kill varSetElems in tcInferPatSynDeclBartosz Nitka2016-05-161-16/+26
| | | | | | | | | | | | | | | | | | | varSetElems introduces unnecessary non-determinism and while I didn't estabilish experimentally that this matters here I'm convinced that it will, because I expect pattern synonyms to end up in interface files. Test Plan: ./validate Reviewers: austin, simonmar, bgamari, mpickering, simonpj Reviewed By: simonpj Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2206 GHC Trac Issues: #4012
* Move Extension type to ghc-boot-thBen Gamari2016-05-1616-143/+242
| | | | | | | | | | | | | | | | | | | | This creates a new package, `ghc-boot-th`, to contain the `Extension` type, which now lives in `GHC.LanguageExtension.Type`. This ensures that the transitive dependency set of the `template-haskell` package remains minimal. The `GHC.LanguageExtensions.Type` module is also re-exported by `ghc-boot`, which provides an orphan `binary` instance as well. Test Plan: Validate Reviewers: goldfire, thomie, hvr, austin Reviewed By: thomie Subscribers: RyanGlScott, thomie, erikd, ezyang Differential Revision: https://phabricator.haskell.org/D2224
* testsuite/ImpSafe03: Normalize version of bytestringBen Gamari2016-05-161-1/+3
|
* PPC: Implement SMP primitives using gcc built-insPeter Trommler2016-05-162-65/+9
| | | | | | | | | | | | | | | | | | | | | | | The SMP primitives were missing appropriate memory barriers (sync, isync instructions) on all PowerPCs. Use the built-ins _sync_* provided by gcc and clang. This reduces code size significantly. Remove broken mark for concprog001 on powerpc64. The referenced ticket number (11259) was wrong. Test Plan: validate on powerpc and ARM Reviewers: erikd, austin, simonmar, bgamari, hvr Reviewed By: bgamari, hvr Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2225 GHC Trac Issues: #12070
* PPC NCG: Fix pretty printing of st[wd]ux instr.Peter Trommler2016-05-161-1/+2
| | | | | | | | | | | | | | | | | Printing STU was mixed up. The tab character must appear after the 'x'. Test Plan: validate on powerpc Reviewers: bgamari, austin, erikd Reviewed By: austin, erikd Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2214 GHC Trac Issues: #12054
* Bump haddock submoduleBen Gamari2016-05-161-0/+0
| | | | Vendorise alabaster theme for older sphinx releases.
* Update bytestring submodule to 0.10.8.1 release tagHerbert Valerio Riedel2016-05-151-0/+0
|
* Fix a performance issue with -fprint-expanded-synonymsÖmer Sinan Ağacan2016-05-154-79/+226
| | | | | | | | | | | | | | | | | | | | | | | | The type synonym expander was doing redundant work by looking at same types again and again. This patch fixes the loop code when both of the types can be expanded, to do `O(min(n, m))` comparisons and `O(n + m)` expansions, where `n` is expansions of the first type and `m` is expansions of the second type. Reported by sjcjoosten in T10547. Test Plan: Added a regression test that was taking several minutes to type check before this patch. Reviewers: bgamari, simonpj, austin, ezyang Reviewed By: bgamari, simonpj, austin, ezyang Subscribers: simonpj, thomie Differential Revision: https://phabricator.haskell.org/D2198 GHC Trac Issues: #10547
* Bump haddock submoduleBen Gamari2016-05-141-0/+0
| | | | | This includes various fixes to Haddock's integration with the GHC build system.
* Test Trac #12039Simon Peyton Jones2016-05-133-0/+10
|
* Refactor some ppr functions to use pprUFMBartosz Nitka2016-05-1212-20/+27
| | | | | | | | | | | | | | | | | Nondeterminism doesn't matter in these places and pprUFM makes it obvious. I've flipped the order of arguments for convenience. Test Plan: ./validate Reviewers: simonmar, bgamari, austin, simonpj Reviewed By: simonpj Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2205 GHC Trac Issues: #4012
* Fix comments about scavenging WEAK objectsTakano Akio2016-05-124-12/+6
| | | | | | | | | | | | | | | | | | This is a follow-up of D2189. If fixes some comments, deletes a section in the User's Guide about the bug, and updates .mailmap as suggested on the WorkinConventions wiki page. Test Plan: It compiles. Reviewers: austin, simonmar, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2202 GHC Trac Issues: #11108
* RtsUtils: Use `size_t` instead of `int` where appropriateErik de Castro Lopo2016-05-122-16/+12
| | | | | | | | | | | | | | | | | | | Functions like `stgMallocBytes` take a size parameter which was of type `int`, but is commonly used as `stgMallocBytes (sizeof (...))`. This is problematic because the `sizeof` operator returns `size_t` so that on 64 bit systems, in this common use case the `size_t` parameter would be truncated to 32 bits when passed to `stgMallocBytes` where it was cast back to `size_t`. Test Plan: Validate on Linux, OS X and Windows Reviewers: austin, hvr, bgamari, simonmar, hsyl20 Reviewed By: hvr, bgamari, simonmar, hsyl20 Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2201
* rts: Make function pointer parameters `const` where possibleErik de Castro Lopo2016-05-128-23/+23
| | | | | | | | | | | | | | | | If a function takes a pointer parameter and doesn't update what the pointer points to, we can add `const` to the parameter declaration to document that no updates occur. Test Plan: Validate on Linux, OS X and Windows Reviewers: austin, Phyx, bgamari, simonmar, hsyl20 Reviewed By: bgamari, simonmar, hsyl20 Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2200
* Use StgHalfWord instead of a CPP #ifTomas Carnecky2016-05-121-8/+3
| | | | | | | | | | Reviewers: simonmar, bgamari, austin Reviewed By: bgamari, austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2183
* Kill varEnvElts in specImportsBartosz Nitka2016-05-123-12/+73
| | | | | | | | | | | | | | | | | We need the order of specialized binds and rules to be deterministic, so we use a deterministic set here. Test Plan: ./validate Reviewers: simonmar, bgamari, austin, simonpj Reviewed By: simonpj Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2197 GHC Trac Issues: #4012
* Document zonkTyCoVarsAndFV determinismBartosz Nitka2016-05-121-1/+6
| | | | | | | | | | | | | | | | | I've changed it to use nonDetEltsUFM and documented why it's OK. Test Plan: it builds Reviewers: bgamari, austin, simonmar, goldfire, simonpj Reviewed By: simonpj Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2204 GHC Trac Issues: #4012
* Allow putting Haddocks on derived instancesRyan Scott2016-05-125-5/+35
| | | | | | | | | | | | | | | | | | | | | | | | Currently, one can document top-level instance declarations, but derived instances (both those in `deriving` clauses and standalone `deriving` instances) do not enjoy the same privilege. This makes the necessary changes to the parser to enable attaching Haddock comments for derived instances. Updates haddock submodule. Fixes #11768. Test Plan: ./validate Reviewers: hvr, bgamari, austin Reviewed By: austin Subscribers: thomie, mpickering Differential Revision: https://phabricator.haskell.org/D2175 GHC Trac Issues: #11768
* Make Generic1 poly-kindedRyanGlScott2016-05-1217-129/+846
| | | | | | | | | | | | | | | | | | | | | | | This generalizes the `Generic1` typeclass to be of kind `k -> *`, and this also makes the relevant datatypes and typeclasses in `GHC.Generics` poly-kinded. If `PolyKinds` is enabled, `DeriveGeneric` derives `Generic1` instances such that they use the most general kind possible. Otherwise, deriving `Generic1` defaults to make an instance where the argument is of kind `* -> *` (the current behavior). Fixes #10604. Depends on D2117. Test Plan: ./validate Reviewers: kosmikus, dreixel, goldfire, austin, hvr, simonpj, bgamari Reviewed By: simonpj, bgamari Subscribers: thomie, ekmett Differential Revision: https://phabricator.haskell.org/D2168 GHC Trac Issues: #10604
* Fix deriveTyData's kind unification when two kind variables are unifiedRyanGlScott2016-05-125-7/+77
| | | | | | | | | | | | | | | | | | | | | | | | | When `deriveTyData` attempts to unify two kind variables (which can happen if both the typeclass and the datatype are poly-kinded), it mistakenly adds an extra mapping to its substitution which causes the unification to fail when applying the substitution. This can be prevented by checking both the domain and the range of the original substitution to see which kind variables shouldn't be put into the domain of the substitution. A more in-depth explanation is included in `Note [Unification of two kind variables in deriving]`. Fixes #11837. Test Plan: ./validate Reviewers: simonpj, hvr, goldfire, niteria, austin, bgamari Reviewed By: bgamari Subscribers: niteria, thomie Differential Revision: https://phabricator.haskell.org/D2117 GHC Trac Issues: #11837
* Add TH support for pattern synonyms (fixes #8761)Dominik Bollmann2016-05-1220-164/+833
| | | | | | | | | | | | | | | | | | This commit adds Template Haskell support for pattern synonyms as requested by trac ticket #8761. Test Plan: ./validate Reviewers: thomie, jstolarek, osa1, RyanGlScott, mpickering, austin, goldfire, bgamari Reviewed By: goldfire, bgamari Subscribers: rdragon Differential Revision: https://phabricator.haskell.org/D1940 GHC Trac Issues: #8761
* Bump haddock submoduleBen Gamari2016-05-121-0/+0
|
* docs: add skeleton 8.2.1 release notesAustin Seipp2016-05-123-797/+194
| | | | | | | | | | | | | | | | | | | Summary: Out with the old, in with the new. Not much has diverged yet, but it's good to get this out of the way early. Signed-off-by: Austin Seipp <austin@well-typed.com> Test Plan: Built and looked at the documentation. Reviewers: bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2066
* Make absentError not depend on uniquesBartosz Nitka2016-05-121-1/+8
| | | | | | | | | | | | | | | | | As explained in the comment it will cause changes in inlining if we don't suppress them. Test Plan: ./validate Reviewers: bgamari, austin, simonpj, goldfire, simonmar Reviewed By: simonmar Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2203 GHC Trac Issues: #4012
* Don't prematurely force TyThing thunks with -ddump-if-trace.Edward Z. Yang2016-05-111-1/+4
| | | | | | | | | | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: simonpj, austin, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2187
* Remove stale comment.Edward Z. Yang2016-05-111-4/+0
| | | | | | | | | | | | | | | Summary: The code was reordered before tcRnImports in 3c44a46b352a4eb7ff72eb3aa5495b25dee8351f. I don't think the new code is buggy. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> Reviewers: simonpj, austin, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2186
* Remove a copy of System.Random and use reqlib('random')Simon Marlow2016-05-113-600/+4
|
* Make random an "extra" packageSimon Marlow2016-05-111-1/+1
| | | | | It will get built as part of "validate --slow". We have 11 tests that depend on random, so this enables more tests to work.
* Fix ASSERT failure and re-enable setnumcapabilities001Simon Marlow2016-05-113-13/+62
| | | | | | | | | | | | The assertion failure was fairly benign, I think, but this fixes it. I've been running the test repeatedly for the last 30 mins and it hasn't triggered. There are other problems exposed by this test (see #12038), but I've worked around those in the test itself for now. I also copied the relevant bits of the parallel library here so that we don't need parallel for the test to run.
* Document SCC determinismBartosz Nitka2016-05-1112-15/+102
| | | | | | | | | | | | | | | | | | | | | | I've documented the guarantees that stronglyConnCompFromEdgedVertices provides and commented on the call sites to explain why they are OK from determinism standpoint. I've changed the functions to nonDetUFM versions, so that it's explicit they could introduce nondeterminism. I haven't defined container (VarSet, NameSet) specific versions, so that we have less functions to worry about. Test Plan: this is mostly just documentation, it should have no runtime effect Reviewers: bgamari, simonmar, austin, simonpj Reviewed By: simonpj Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2194 GHC Trac Issues: #4012
* Remove some varSetElems in dsCmdStmtBartosz Nitka2016-05-111-3/+5
| | | | | | | | | | | | | | | | | varSetElems introduces unnecessary determinism and it's easy to preserve determinism here. Test Plan: ./validate Reviewers: goldfire, simonmar, austin, bgamari, simonpj Reviewed By: simonpj Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2195 GHC Trac Issues: #4012
* Handle promotion failures when scavenging a WEAK (#11108)Takano Akio2016-05-113-3/+42
| | | | | | | | | | | | | | | | | | | | | | Previously, we ignored promotion failures when evacuating fields of a WEAK object. When a failure happens, this resulted in an WEAK object pointing to another object in a younger generation, causing crashes. I used the test case from #11746 to check that the fix is working. However I haven't managed to produce a test case that quickly reproduces the issue. Test Plan: ./validate Reviewers: austin, bgamari, simonmar Reviewed By: simonmar Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2189 GHC Trac Issues: #11108