summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Try making textBeside_ strict in the third arg.wip/andreask/ppr_bangAndreas Klebinger2022-05-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It seems this causes quite a few thunks. Which all end up being forced anyway. So I just made the field of the constructor strict instead. ------------------------- Metric Decrease: CoOpt_Read ManyAlternatives ManyConstructors T10421 T12425 T12707 T13035 T13056 T13253 T13379 T14683 T15164 T15703 T16577 T18140 T18282 T18304 T18698a T18698b T18923 T1969 T19695 T20049 T3064 T3294 T4801 T5321FD T5321Fun T5631 T5642 T6048 T783 T9198 T9233 T9961 WWRec Metric Increase: InstanceMatching T12227 -------------------------
* Add mention of -hi to RTS --helpMatthew Pickering2022-05-111-0/+2
| | | | Fixes #21546
* Add a missing guard in GHC.HsToCore.Utils.is_flat_prod_patSimon Peyton Jones2022-05-115-1/+48
| | | | This missing guard gave rise to #21519.
* rts: Drop setExecutableBen Gamari2022-05-113-29/+0
| | | | | Since f6e366c058b136f0789a42222b8189510a3693d1 setExecutable has been dead code. Drop it.
* Add back Debian9 CI jobsMatthew Pickering2022-05-112-0/+180
| | | | | | | We still build Deb9 bindists for now due to Ubuntu 18 and Linux Mint 19 not being at EOL until April 2023 and they still need tinfo5. Fixes #21469
* gitlab-ci: Check for dynamic msys2 dependenciesBen Gamari2022-05-111-0/+13
| | | | | | Both #20878 and #21196 were caused by unwanted dynamic dependencies being introduced by boot libraries. Ensure that we catch this in CI by attempting to run GHC in an environment with a minimal PATH.
* Specialiser: saturate DFuns correctlySimon Peyton Jones2022-05-111-4/+7
| | | | | | | | | | | Ticket #21489 showed that the saturation mechanism for DFuns (see Note Specialising DFuns) should use both UnspecType and UnspecArg. We weren't doing that; but this MR fixes that problem. No test case because it's hard to tickle, but it showed up in Gergo's work with GHC-as-a-library.
* EPA: do statement with leading semicolon has wrong anchorAlan Zimmerman2022-05-116-6/+31
| | | | | | | | | | | | | The code do; a <- doAsync; b Generated an incorrect Anchor for the statement list that starts after the first semicolon. This commit fixes it. Closes #20256
* Make floating-point abs IEEE 754 compliantARATA Mizuki2022-05-114-45/+3
| | | | | | The old code used by via-C backend didn't handle the sign bit of NaN. See #21043.
* FIND_LLVM_PROG: Recognize llvm suffix used by FreeBSD, ie llc10.mikael2022-05-111-2/+2
|
* hadrian: Only copy and install libffi headers when using in-tree libffiMatthew Pickering2022-05-103-5/+7
| | | | | | | | When passed `--use-system-libffi` then we shouldn't copy and install the headers from the system package. Instead the headers are expected to be available as a runtime dependency on the users system. Fixes #21485 #21487
* hadrian: Don't pass -j to haddockMatthew Pickering2022-05-101-3/+1
| | | | | | | | | | | This has high potential for oversubcribing as many haddock jobs can be spawned in parralel which will each request the given number of capabilities. Once -jsem is implemented (#19416, !5176) we can expose that haddock via haddock and use that to pass a semaphore. Ticket #21136
* docs: Fix path to GHC API docs in index.htmlMatthew Pickering2022-05-103-3/+1
| | | | | | | | | | | | In the make bindists we generate documentation in docs/ghc-<VER> but the hadrian bindists generate docs/ghc/ so the path to the GHC API docs was wrong in the index.html file. Rather than make the hadrian and make bindists the same it was easier to assume that if you're using the mkDocs script that you're using hadrian bindists. Fixes #21509
* Use the wrapper for an unlifted bindingSimon Peyton Jones2022-05-103-3/+12
| | | | | | | We assumed the wrapper for an unlifted binding is the identity, but as #21516 showed, that is no always true. Solution is simple: use it.
* packaging: Build perf builds with -split-sectionsMatthew Pickering2022-05-102-1/+14
| | | | | | | | | In 8f71d958 the make build system was made to use split-sections on linux systems but it appears this logic never made it to hadrian. There is the split_sections flavour transformer but this doesn't appear to be used for perf builds on linux. Closes #21135
* hadrian: Fix split-sections transformerMatthew Pickering2022-05-101-4/+7
| | | | | | | | | | | | The splitSections transformer has been broken since -dynamic-too support was implemented in hadrian. This is because we actually build the dynamic way when building the dynamic way, so the predicate would always fail. The fix is to just always pass `split-sections` even if it doesn't do anything for a particular way. Fixes #21138
* Check for uninferrable variables in tcInferPatSynDeclSimon Peyton Jones2022-05-1012-43/+88
| | | | | | | | | | This fixes #21479 See Note [Unquantified tyvars in a pattern synonym] While doing this, I found that some error messages pointed at the pattern synonym /name/, rather than the /declaration/ so I widened the SrcSpan to encompass the declaration.
* configure: Check for ffi.hBen Gamari2022-05-101-3/+10
| | | | | | | As noted in #21485, we checked for ffi.h yet then failed to throw an error if it is missing. Fixes #21485.
* driver: Make -no-keep-o-files -no-keep-hi-files work in --make modeMatthew Pickering2022-05-106-9/+30
| | | | | | | | | | | | It seems like it was just an oversight to use the incorrect DynFlags (global rather than local) when implementing these two options. Using the local flags allows users to request these intermediate files get cleaned up, which works fine in --make mode because 1. Interface files are stored in memory 2. Object files are only cleaned at the end of session (after link) Fixes #21349
* update INSTALLEric Lindblad2022-05-101-3/+3
|
* Improve "Glomming" noteGergo ERDI2022-05-101-0/+6
| | | | | | Add a paragraph that clarifies that `occurAnalysePgm` finding out-of-order references, and thus needing to glom, is not a cause for concern when its root cause is rewrite rules.
* STG: only print cost-center if asked toSylvain Henry2022-05-094-8/+9
|
* Correct base's changelog for 4.16.1.0Hécate Moonlight2022-05-091-4/+9
| | | | | | | This commit reaffects the new Ix instances of the foreign integral types from base 4.17 to 4.16.1.0 closes #21529
* avoid hadrian/bindist/Makefile install_docs error when --docs=noneJens Petersen2022-05-091-3/+4
| | | | | | | | | When docs are disabled the bindist does not have docs/ and hence docs-utils/ is not generated. Here we just test that docs-utils exists before attempting to install prologue.txt and gen_contents_index to avoid the error: /usr/bin/install: cannot stat 'docs-utils/prologue.txt': No such file or directory make: *** [Makefile:195: install_docs] Error 1
* add test case for #21446Teo Camarasu2022-05-093-0/+12
|
* Respect -po when heap profiling (#21446)Teo Camarasu2022-05-091-15/+21
|
* Tweak GHC.CmmToAsm.CFG.delEdgeSimon Jakobi2022-05-081-4/+1
| | | | mapAdjust is more efficient than mapAlter.
* Change Specialise to use OrdList.Rob2022-05-081-23/+23
| | | | | | | Fixes #21362 Metric Decrease: T16875
* ci: Generate source-tarball in release jobsMatthew Pickering2022-05-061-0/+1
| | | | | We need to distribute the source tarball so we should generate it in the CI pipeline.
* Fix name of windows release bindist in doc-tarball jobMatthew Pickering2022-05-061-1/+1
|
* Comments only: Note [AppCtxt]Simon Peyton Jones2022-05-061-2/+36
|
* template-haskell: Fix representation of OPAQUE pragmasMatthew Pickering2022-05-064-8/+33
| | | | | | | | | | There is a mis-match between the TH representation of OPAQUE pragmas and GHC's internal representation due to how OPAQUE pragmas disallow phase annotations. It seemed most in keeping to just fix the wired in name issue by adding a special case to the desugaring of INLINE pragmas rather than making TH/GHC agree with how the representation should look. Fixes #21463
* Allow `let` just before pure/return in ApplicativeDoZiyang Liu2022-05-067-19/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following is currently rejected: ```haskell -- F is an Applicative but not a Monad x :: F (Int, Int) x = do a <- pure 0 let b = 1 pure (a, b) ``` This has bitten me multiple times. This MR contains a simple fix: only allow a "let only" segment to be merged with the next (and not the previous) segment. As a result, when the last one or more statements before pure/return are `LetStmt`s, there will be one more segment containing only those `LetStmt`s. Note that if the `let` statement mentions a name bound previously, then the program is still rejected, for example ```haskell x = do a <- pure 0 let b = a + 1 pure (a, b) ``` or the example in #18559. To support this would require a more complex approach, but this is IME much less common than the previous case.
* testsuite: Add test for #21465Ben Gamari2022-05-054-0/+64
|
* rts: Ensure that XMM registers are preserved on Win64Ben Gamari2022-05-053-30/+41
| | | | | | | | Previously we only preserved the bottom 64-bits of the callee-saved 128-bit XMM registers, in violation of the Win64 calling convention. Fix this. Fixes #21465.
* ci: Add job to check that jobs.yaml is up-to-dateMatthew Pickering2022-05-051-0/+22
| | | | | | | | There have been quite a few situations where jobs.yaml has been out of date. It's better to add a CI job which checks that it's right. We don't want to use a staged pipeline because it obfuscates the structure of the pipeline.
* Start 9.6.1-notessheaf2022-05-054-435/+27
| | | | | Updates the documentation notes to start tracking changes for the 9.6.1 release (instead of 9.4).
* add since annotations for instances of ByteArrayTeo Camarasu2022-05-051-0/+9
|
* SpecConstr: Properly create rules for call patterns representing partial ↵Andreas Klebinger2022-05-053-28/+74
| | | | | | | | | | | | | applications The main fix is that in addVoidWorkerArg we now add the argument to the front. This fixes #21448. ------------------------- Metric Decrease: T16875 -------------------------
* Give the two T19569 tests different namesMatthew Craven2022-05-055-2/+2
|
* Fix broken rules for (^) with known small powersMatthew Craven2022-05-052-13/+12
|
* Add a test for the bracketing in rules for (^)Matthew Craven2022-05-052-0/+57
|
* Explain that 'fail s' should run in the monad itselfTom Ellis2022-05-051-0/+4
|
* Remove two uses of IntMap.sizeSimon Jakobi2022-05-052-2/+2
| | | | | | | | | | | IntMap.size is O(n). The new code should be slightly more efficient. The transformation of GHC.CmmToAsm.CFG.calcFreqs.nodeCount can be described formally as the transformation: (\sum_{0}^{n-1} \sum_{0}^{k-1} i_nk) + n ==> (\sum_{0}^{n-1} 1 + \sum_{0}^{k-1} i_nk)
* adjustors: align comment about number of integer like arguments with ↵Adam Sandberg Ericsson2022-05-051-3/+3
| | | | implementation for Amd4+MinGW implementation
* Fix several note references, part 2Krzysztof Gogolewski2022-05-0528-88/+41
|
* gitlab/ci: Fix name of bootstrap compiler directoryBen Gamari2022-05-041-2/+2
| | | | | | | | Windows binary distributions built with Hadrian have a target platform suffix in the name of their root directory. Teach `ci.sh` about this fact. (cherry picked from commit df5752f39671f6d04d8cd743003469ae5eb67235)
* gitlab-ci: Don't run make job in release pipelinesBen Gamari2022-05-041-1/+1
| | | | (cherry picked from commit 16d6a8ff011f2194485387dcca1c00f8ddcdbdeb)
* configure: Make sphinx version check more robustBen Gamari2022-05-041-1/+1
| | | | | | | It appears that the version of sphinx shipped on CentOS 7 reports a version string of `Sphinx v1...`. Accept the `v`. (cherry picked from commit a9197a292fd4b13308dc6664c01351c7239357ed)
* gitlab-ci: Always preserve artifacts, even in failed jobsBen Gamari2022-05-042-72/+145
| | | | (cherry picked from commit fd08b0c91ea3cab39184f1b1b1aafcd63ce6973f)