summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* rts/PEi386: Fix handling of weak symbolsBen Gamari2022-05-133-2/+13
| | | | | | | | Previously we would flag the symbol as weak but failed to set its address, which must be computed from an "auxiliary" symbol entry the follows the weak symbol. Fixes #21556.
* rts: Add debug output on ocResolve failureBen Gamari2022-05-131-1/+4
| | | | This makes it easier to see how resolution failures nest.
* Fix printing of brackets in multiplicities (#20315)jackohughes2022-05-138-10/+27
| | | | | | | | | Change mulArrow to allow for printing of correct application precedence where necessary and update callers of mulArrow to reflect this. As part of this, move mulArrow from GHC/Utils/Outputtable to GHC/Iface/Type. Fixes #20315
* Update extending_ghc for TcPlugin changessheaf2022-05-121-6/+6
| | | | | The documentation still mentioned Derived constraints and an outdated datatype TcPluginResult.
* Decouple dynflags in GHC.Core.Opt.Arity (related to #17957)Andre Marianiello2022-05-122-24/+31
| | | | | Metric Decrease: T16875
* Move CmmParserConfig and PDConfig into GHC.Cmm.Parser.ConfigAndre Marianiello2022-05-125-13/+29
|
* Remove Module argument from initCmmParserConfigAndre Marianiello2022-05-123-9/+6
|
* Decouple dynflags in Cmm parser (related to #17957)Andre Marianiello2022-05-126-26/+67
|
* 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
|