summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* testsuite: Add test for #5889Douglas Wilson2017-11-093-2/+73
| | | | | | | | | | | | | | Test Plan: make test TEST=5889 Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie GHC Trac Issues: #5889 Differential Revision: https://phabricator.haskell.org/D4158
* Remove unreliable Core Lint empty case checksDavid Feuer2017-11-093-19/+53
| | | | | | | | | | | | | | | | | | | Trac #13990 shows that the Core Lint checks for empty case are unreliable, and very hard to make reliable. The consensus (among simonpj, nomeata, and goldfire) seems to be that they should be removed altogether. Do that. Add test Reviewers: goldfire, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie GHC Trac Issues: #13990 Differential Revision: https://phabricator.haskell.org/D4161
* Update comment in GHC.Real (trac#14432)Bodigrim2017-11-091-3/+1
| | | | | | | | | | | | Reviewers: hvr, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie GHC Trac Issues: #14432 Differential Revision: https://phabricator.haskell.org/D4171
* base: Fix #14425Ben Gamari2017-11-092-2/+4
| | | | | | | | | | | | Test Plan: Validate Reviewers: hvr Subscribers: rwbarton, thomie GHC Trac Issues: #14425 Differential Revision: https://phabricator.haskell.org/D4167
* base: Normalize style of approxRationalBen Gamari2017-11-091-22/+25
| | | | | | | | | | | | Stumbled upon this odd bit of style while looking at #14425. Usually I don't like to do this sort of reformatting, but this seemed like it would be necessary in the course fo fixing #14425. Reviewers: hvr Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D4168
* base: Add test for #14425Ben Gamari2017-11-093-0/+8
| | | | | | | | | | | | Test Plan: Validate Reviewers: hvr Subscribers: rwbarton, thomie GHC Trac Issues: #14425 Differential Revision: https://phabricator.haskell.org/D4166
* Merge initial Hadrian snapshotBen Gamari2017-11-09112-0/+8898
|\ | | | | | | | | We will continue to pull in squashed snapshots periodically until we eventually discontinue development in Hadrian's GitHub repository.
| * Merge commit '7b0b9f603bb1215e2b7af23c2404d637b95a4988' as 'hadrian'Andrey Mokhov2017-11-06112-0/+8898
| |\
| | * Squashed 'hadrian/' content from commit 438dc57Andrey Mokhov2017-11-06112-0/+8898
| | | | | | | | | | git-subtree-dir: hadrian git-subtree-split: 438dc576e7b84c473a09d1d7ec7798a30303bc4e
* | Update Win32 version for GHC 8.4.Tamar Christina2017-11-0916-17/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update to Win32 2.6 which is the expected version release for 8.4 This involves moving Cabal forward which brings some backwards incompatible changes that needs various fixups. Bump a bunch of submodules Test Plan: ./validate Reviewers: austin, bgamari, angerman Reviewed By: bgamari, angerman Subscribers: angerman, thomie, rwbarton Differential Revision: https://phabricator.haskell.org/D4133
* | testsuite: Fix output of T14394Ben Gamari2017-11-091-1/+7
| |
* | Remove left-overs from compareByteArray# inline conversionHerbert Valerio Riedel2017-11-093-16/+0
| | | | | | | | | | | | | | These removes left-overs from e3ba26f8b49700b41ff4672f3f7f6a4e453acdcc where I implemented `compareByteArray#` as an out-of-line primop, which got optimised into an inline primop shortly afterwards (as per 7673561555ae354fd9eed8de1e57c681906e2d49).
* | Invoke lintUnfolding only on top-level unfoldings (#14430)Joachim Breitner2017-11-082-20/+29
| | | | | | | | | | | | | | | | | | | | | | | | as nested unfoldings are linted together with the top-level unfolding, and lintUnfolding does the wrong things for nestd unfoldings that mention join points. The easiest way of doing that was to pass a TopLevel flag through `tcUnfolding`, which is invoked both for top level and nested unfoldings. Differential Revision: https://phabricator.haskell.org/D4169
* | WIP on Doing a combined Step 1 and 3 for Trees That GrowAlan Zimmerman2017-11-0858-1691/+2432
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow Trees that grow extension points are added for - ValBinds - HsPat - HsLit - HsOverLit - HsType - HsTyVarBndr - HsAppType - FieldOcc - AmbiguousFieldOcc Updates haddock submodule Test Plan: ./validate Reviewers: shayan-najd, simonpj, austin, goldfire, bgamari Subscribers: goldfire, rwbarton, thomie, mpickering Differential Revision: https://phabricator.haskell.org/D4147
* | Fix in-scope set in simplifierSimon Peyton Jones2017-11-083-25/+56
| | | | | | | | | | | | | | | | | | This patch fixes Trac #14408. The problem was that the StaticEnv field of an ApplyToVar or Select continuation didn't have enough variables in scope. The fix is simple, and I documented the invariant in Note [StaticEnv invariant] in SimplUtils. No change in behaviour: this just stops an ASSERT from tripping.
* | Minimise provided dictionaries in pattern synonymsSimon Peyton Jones2017-11-0829-114/+206
| | | | | | | | | | | | | | | | | | | | | | Trac #14394 showed that it's possible to get redundant constraints in the inferred provided constraints of a pattern synonym. This patch removes the redundancy with mkMinimalBySCs. To do this I had to generalise the type of mkMinimalBySCs slightly. And, to reduce confusing reversal, I made it stable: it now returns its result in the same order as its input. That led to a raft of error message wibbles, mostly for the better.
* | Fix another dark corner in the shortcut solverSimon Peyton Jones2017-11-084-34/+71
| | | | | | | | | | | | | | | | | | | | The shortcut solver for type classes (Trac #12791) was eagerly solving a constaint from an OVERLAPPABLE instance. It happened to be the only one in scope, so it was unique, but since it's specfically flagged as overlappable it's really a bad idea to solve using it, rather than using the Given dictionary. This led to Trac #14434, a nasty and hard to identify bug.
* | Imrpove comments about equality typesSimon Peyton Jones2017-11-082-12/+15
| |
* | Merge remote-tracking branch 'github/pr/83'Ben Gamari2017-11-086-23/+370
|\ \
| * | Factor out builds into steps. Address ghc/ghc#83 comments.Mateusz Kowalczyk2017-11-073-86/+88
| | | | | | | | | | | | This should greatly improve log output.
| * | Revert "Sdist -> bindist -> tests"Mateusz Kowalczyk2017-11-072-25/+6
| | | | | | | | | | | | This reverts commit e1d38d6f7decee1e513d44bb3bce08bd004bfa4d.
| * | Sdist -> bindist -> testsMateusz Kowalczyk2017-11-072-6/+25
| | |
| * | Set up AppVeyor, Windows CI.Mateusz Kowalczyk2017-11-071-0/+43
| | |
| * | Set up Linux, OSX and FreeBSD on CircleCI.Mateusz Kowalczyk2017-11-076-23/+325
| | |
* | | base: Escape \ in CallStack exampleChris Martin2017-11-071-1/+1
| | | | | | | | | | | | [skip ci]
* | | Update link to Haskeline user preferencesTaylor Fausak2017-11-071-1/+1
| | | | | | | | | | | | | | | | | | Unfortunately trac.haskell.org doesn't exist anymore. [skip ci]
* | | Revert "WIP on combining Step 1 and 3 of Trees That Grow"Ben Gamari2017-11-0757-2333/+1615
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 0ff152c9e633accca48815e26e59d1af1fe44ceb. Sadly this broke when bootstrapping with 8.0.2 due to #14396. Reverts haddock submodule.
* | | relnotes: Note enabling of -fllvm-pass-vectorse-in-regsBen Gamari2017-11-071-0/+4
| | | | | | | | | | | | [skip ci]
* | | relnotes: Clarify a few thingsBen Gamari2017-11-071-4/+4
| | | | | | | | | | | | [skip ci]
* | | testsuite: Bump haddock.compiler allocationsBen Gamari2017-11-071-1/+2
|/ / | | | | | | | | This is due to alanz's recent trees that grow patch, almost certainly because of the increased surface area of libghc.
* | WIP on combining Step 1 and 3 of Trees That GrowAlan Zimmerman2017-11-0756-1614/+2331
|/ | | | | | | | | | | | | | | | | | | | | | | | | See https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow Trees that grow extension points are added for - ValBinds - HsPat - HsLit - HsOverLit - HsType - HsTyVarBndr - HsAppType - FieldOcc - AmbiguousFieldOcc Updates haddock submodule Test Plan: ./validate Reviewers: shayan-najd, simonpj, austin, goldfire, bgamari Subscribers: goldfire, rwbarton, thomie, mpickering Differential Revision: https://phabricator.haskell.org/D4147
* base: Add examples to Bifunctor documentationJulie Moronuki2017-11-061-1/+36
|
* Specialise lcm :: Word -> Word -> Word (trac#14424)Bodigrim2017-11-061-0/+1
|
* Update autoconf test for gcc to require 4.7 and upPeter Trommler2017-11-064-28/+3
| | | | | | | | | | | | | | | | | | | Fixing #14244 required the newer gcc atomic built-ins that are provided from 4.7 and up. This updates the test to check for minimum gcc version 4.7. The version tests for 3.4 (!), 4.4, and 4.6 are no longer needed and can be removed. This makes the build system simpler. Test Plan: validate Reviewers: austin, bgamari, hvr, simonmar Reviewed By: bgamari Subscribers: rwbarton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D4165
* DynFlags: Introduce -show-mods-loaded flagBen Gamari2017-11-067-21/+50
| | | | | | | | | | | | | | | | | | | This flag reintroduces the verbose module name output produced by GHCi's :load command behind a new flag, -show-mods-loaded. This was originally removed in D3651 but apparently some tools (e.g. haskell-mode) rely on this output. Addresses #14427. Test Plan: Validate Reviewers: svenpanne Reviewed By: svenpanne Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D4164
* Update ErrorCall documentation for the location argumentÖmer Sinan Ağacan2017-11-061-2/+2
| | | | | | | | | | Reviewers: hvr, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D4163
* Typo in glasgow_exts.rstDouglas Wilson2017-11-061-1/+1
| | | | | | | | | | Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D4157
* cmm/CBE: Fix a few more zip usesBen Gamari2017-11-061-3/+8
| | | | | | | | | | | | | | | Ensure that we don't consider lists of equal length to be equal when they are not. I noticed these while working on the fix for #14361. Reviewers: austin, simonmar, michalt Reviewed By: michalt Subscribers: rwbarton, thomie GHC Trac Issues: #14361 Differential Revision: https://phabricator.haskell.org/D4153
* cmm/CBE: Fix comparison between blocks of different lengthsBen Gamari2017-11-061-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously CBE computed equality by taking the lists of middle nodes of the blocks being compared and zipping them together. It would then map over this list with the equality relation, and accumulate the result. However, this is completely wrong: Consider what will happen when we compare a block with no middle nodes with one with one or more. The result of `zip` will be empty and consequently the pass may conclude that the two are indeed equivalent (if their last nodes also match). This is very bad and the cause of #14361. The solution I chose was just to write out an explicit recursion, like I distinctly recall considering doing when I first wrote this code. Unfortunately I was feeling clever at the time. Unfortunately this case was just rare enough not to be triggered by the testsuite. I still need to find a testcase that doesn't have external dependencies. Test Plan: Need to find a more minimal testcase Reviewers: austin, simonmar, michalt Reviewed By: michalt Subscribers: michalt, rwbarton, thomie, hvr GHC Trac Issues: #14361 Differential Revision: https://phabricator.haskell.org/D4152
* rts/win32: Emit exception handler output to stderrBen Gamari2017-11-061-15/+15
| | | | | | | | | | | | | | Test Plan: Validate Reviewers: Phyx, austin, erikd, simonmar Reviewed By: Phyx Subscribers: rwbarton, thomie GHC Trac Issues: #14415 Differential Revision: https://phabricator.haskell.org/D4151
* testsuite: Bump metrics of haddock.CabalBen Gamari2017-11-061-1/+2
|
* Clean up comments about match algorithm a bit.klebinger.andreas@gmx.at2017-11-031-66/+43
|
* change example from msum to mfilterJulie Moronuki2017-11-031-2/+2
|
* Fix documentation and comment issuesCyd Parser2017-11-034-11/+16
|
* Deserialize all function TypeRepsDavid Feuer2017-11-021-7/+12
| | | | | | | | | | | | | | Previously, we could only deserialize `TypeRep (a -> b)` if both `a` and `b` had kind `Type`. Now, we do it regardless of their runtime representations. Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D4137
* Name TypeRep constructor fieldsDavid Feuer2017-11-021-44/+88
| | | | | | | | | | | | | | Give `TypeRep` constructor fields names, and use them when pattern matching and constructing values. This is a bit verbose, but makes it obvious which field means what. Reviewers: austin, hvr, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D4136
* Bump haddock submodulealexbiehl2017-11-023-2/+3
| | | | | | | | Reviewers: austin, bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D4144
* llvmGen: Pass vector arguments in vector registers by defaultBen Gamari2017-11-022-2/+15
| | | | | | | | | | | | | | | Earlier this year Edward Kmett requested [1] that we enable passing of vector values in vector registers by default. The GHC calling convention changes have been in LLVM for a number of years now so let's just flip the switch. [1] https://mail.haskell.org/pipermail/ghc-devs/2017-March/013905.html Reviewers: austin Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D4142
* CmmSink: Use a IntSet instead of a listalexbiehl2017-11-021-7/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CmmProcs which have *lots* of local variables take a considerable amount of time in CmmSink. This was noticed by @tdammers in #7258 while compiling files with large records (~200-400 fields). Before: ``` Sun Oct 29 19:58 2017 Time and Allocation Profiling Report (Final) ghc-stage2 +RTS -p -RTS -B/Users/alexbiehl/git/ghc/inplace/lib /Users/alexbiehl/Downloads/W2.hs -fforce-recomp -O2 total time = 26.00 secs (25996 ticks @ 1000 us, 1 processor) total alloc = 14,921,627,912 bytes (excludes profiling overheads) COST CENTRE MODULE SRC %time %alloc sink CmmPipeline compiler/cmm/CmmPipeline.hs:(104,13)-(105,59) 55.7 15.9 SimplTopBinds SimplCore compiler/simplCore/SimplCore.hs:761:39-74 19.5 30.6 FloatOutwards SimplCore compiler/simplCore/SimplCore.hs:471:40-66 4.2 9.0 RegAlloc-linear AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(658,27)-(660,55) 4.0 11.1 pprNativeCode AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(529,37)-(530,65) 2.8 6.3 NewStranal SimplCore compiler/simplCore/SimplCore.hs:480:40-63 1.6 3.7 OccAnal SimplCore compiler/simplCore/SimplCore.hs:(739,22)-(740,67) 1.5 3.5 StgCmm HscMain compiler/main/HscMain.hs:(1426,13)-(1427,62) 1.2 2.4 regLiveness AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(591,17)-(593,52) 1.2 1.9 genMachCode AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(580,17)-(582,62) 0.9 1.8 NativeCodeGen CodeOutput compiler/main/CodeOutput.hs:171:18-78 0.9 2.1 CoreTidy HscMain compiler/main/HscMain.hs:1253:27-67 0.8 1.9 ``` After: ``` Sun Oct 29 19:18 2017 Time and Allocation Profiling Report (Final) ghc-stage2 +RTS -p -RTS -B/Users/alexbiehl/git/ghc/inplace/lib /Users/alexbiehl/Downloads/W2.hs -fforce-recomp -O2 total time = 13.31 secs (13307 ticks @ 1000 us, 1 processor) total alloc = 15,772,184,488 bytes (excludes profiling overheads) COST CENTRE MODULE SRC %time %alloc SimplTopBinds SimplCore compiler/simplCore/SimplCore.hs:761:39-74 38.3 29.0 sink CmmPipeline compiler/cmm/CmmPipeline.hs:(104,13)-(105,59) 13.2 20.3 RegAlloc-linear AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(658,27)-(660,55) 8.3 10.5 FloatOutwards SimplCore compiler/simplCore/SimplCore.hs:471:40-66 8.1 8.5 pprNativeCode AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(529,37)-(530,65) 5.4 5.9 NewStranal SimplCore compiler/simplCore/SimplCore.hs:480:40-63 3.1 3.5 OccAnal SimplCore compiler/simplCore/SimplCore.hs:(739,22)-(740,67) 2.9 3.3 StgCmm HscMain compiler/main/HscMain.hs:(1426,13)-(1427,62) 2.3 2.3 regLiveness AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(591,17)-(593,52) 2.1 1.8 NativeCodeGen CodeOutput compiler/main/CodeOutput.hs:171:18-78 1.7 2.0 genMachCode AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(580,17)-(582,62) 1.6 1.7 CoreTidy HscMain compiler/main/HscMain.hs:1253:27-67 1.4 1.8 foldNodesBwdOO Hoopl.Dataflow compiler/cmm/Hoopl/Dataflow.hs:(397,1)-(403,17) 1.1 0.8 ``` Reviewers: austin, bgamari, simonmar Reviewed By: bgamari Subscribers: duog, rwbarton, thomie, tdammers GHC Trac Issues: #7258 Differential Revision: https://phabricator.haskell.org/D4145
* rts/PrimOps.cmm: add declaration for heapOverflow closureSergei Trofimovich2017-11-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Before the change UNREG ghc build failed as: ``` rts_dist_HC rts/dist/build/PrimOps.o /tmp/ghc2370_0/ghc_4.hc: In function 'stg_newByteArrayzh': /tmp/ghc2370_0/ghc_4.hc:26:13: error: error: 'base_GHCziIOziException_heapOverflow_closure' undeclared (first use in this function) R1.w = (W_)&base_GHCziIOziException_heapOverflow_closure; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 26 | R1.w = (W_)&base_GHCziIOziException_heapOverflow_closure; | ^ ``` It's an UNREG-specific failure because C backend always requires declarations to be known. Added missing declaration. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>