summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* TcPlugin_CtId test for irreducible givensPavol Vargovcik2022-05-136-0/+116
|
* TcPlugin can read and resolve irreducible givensPavol Vargovcik2022-05-131-2/+8
|
* Merge remote-tracking branch 'origin/wip/backports-9.4' into ghc-9.4Ben Gamari2022-05-126-85/+164
|\
| * gitlab-ci: Fix Windows toolchain installationghc-9.4.1-alpha1Ben Gamari2022-04-301-1/+1
| |
| * gitlab/ci: Fix name of bootstrap compiler directoryBen Gamari2022-04-301-2/+2
| |
| * gitlab-ci: Don't run make job in release pipelinesBen Gamari2022-04-301-1/+1
| |
| * configure: Make sphinx version check more robustBen Gamari2022-04-301-1/+1
| | | | | | | | | | It appears that the version of sphinx shipped on CentOS 7 reports a version string of `Sphinx v1...`. Accept the `v`.
| * gitlab-ci: Use ld.lld on ARMv7/LinuxBen Gamari2022-04-302-8/+14
| | | | | | | | | | | | Due to #16177. Also cleanup some code style issues.
| * testsuite/T7275: Use sed -rBen Gamari2022-04-301-1/+1
| | | | | | | | Darwin requires the `-r` flag to be compatible with GNU sed.
| * gitlab-ci: Always preserve artifacts, even in failed jobsBen Gamari2022-04-302-72/+145
| |
* | add since annotations for instances of ByteArrayTeo Camarasu2022-05-051-0/+9
|/ | | | (cherry picked from commit ae4b0c89e0d74576425a9661b59145eb09ca8262)
* Bump haddock submoduleBen Gamari2022-04-301-0/+0
|
* Bump ghc-prim and base versionsBen Gamari2022-04-3042-50/+52
| | | | To 0.9.0 and 4.17.0 respectively.
* Update supported LLVM versionsBen Gamari2022-04-292-1/+7
| | | | Pull forward minimum version to match 9.2.
* Bump Haddock submoduleBen Gamari2022-04-291-0/+0
|
* rts/m32: Fix assertion failureBen Gamari2022-04-291-0/+3
| | | | | | | | | | | | This fixes an assertion failure in the m32 allocator due to the imprecisely specified preconditions of `m32_allocator_push_filled_list`. Specifically, the caller must ensure that the page type is set to filled prior to calling `m32_allocator_push_filled_list`. While this issue did result in an assertion failure in the debug RTS, the issue is in fact benign. (cherry picked from commit 37825ce283b6dbcb532f51fade090a69afc2d078)
* Provide efficient unionMG function for combining two module graphs.Matthew Pickering2022-04-281-4/+25
| | | | | | | | This function is used by API clients (hls). This supercedes !6922 (cherry picked from commit 4443573b986014cb45c8e39f5867e6fc187a81db)
* Add note about inefficiency in returnMemoryToOSFabian Thorand2022-04-281-0/+8
| | | | (cherry picked from commit 5de6be0c9120550aaa15534d0a1466018eff137a)
* Update docs for change to type-checking pluginssheaf2022-04-282-2/+13
| | | | | | | | There was no mention of the changes to type-checking plugins in the 9.4.1 notes, and the extending_ghc documentation contained a reference to an outdated type. (cherry picked from commit 7f618fd308b8db016009254aa8bbeb935d9d30e6)
* Mark GHC.Prim.PtrEq as Unsafesheaf2022-04-284-1/+14
| | | | | | | | | This module exports unsafe pointer equality operations, so we accordingly mark it as Unsafe. Fixes #21433 (cherry picked from commit 81cf52bb301592ff3d043d03eb9a0d547891a3e1)
* Bump bytestring, process, and text submodulesBen Gamari2022-04-284-2/+2
| | | | | | | Metric Decrease: T5631 Metric Increase: T18223
* Fix unification of ConcreteTvs, removing IsRefl#sheaf2022-04-2787-1206/+1847
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes the unification of concrete type variables. The subtlety was that unifying concrete metavariables is more subtle than other metavariables, as decomposition is possible. See the Note [Unifying concrete metavariables], which explains how we unify a concrete type variable with a type 'ty' by concretising 'ty', using the function 'GHC.Tc.Utils.Concrete.concretise'. This can be used to perform an eager syntactic check for concreteness, allowing us to remove the IsRefl# special predicate. Instead of emitting two constraints `rr ~# concrete_tv` and `IsRefl# rr concrete_tv`, we instead concretise 'rr'. If this succeeds we can fill 'concrete_tv', and otherwise we directly emit an error message to the typechecker environment instead of deferring. We still need the error message to be passed on (instead of directly thrown), as we might benefit from further unification in which case we will need to zonk the stored types. To achieve this, we change the 'wc_holes' field of 'WantedConstraints' to 'wc_errors', which stores general delayed errors. For the moement, a delayed error is either a hole, or a syntactic equality error. hasFixedRuntimeRep_MustBeRefl is now hasFixedRuntimeRep_syntactic, and hasFixedRuntimeRep has been refactored to directly return the most useful coercion for PHASE 2 of FixedRuntimeRep. This patch also adds a field ir_frr to the InferResult datatype, holding a value of type Maybe FRROrigin. When this value is not Nothing, this means that we must fill the ir_ref field with a type which has a fixed RuntimeRep. When it comes time to fill such an ExpType, we ensure that the type has a fixed RuntimeRep by performing a representation-polymorphism check with the given FRROrigin This is similar to what we already do to ensure we fill an Infer ExpType with a type of the correct TcLevel. This allows us to properly perform representation-polymorphism checks on 'Infer' 'ExpTypes'. The fillInferResult function had to be moved to GHC.Tc.Utils.Unify to avoid a cyclic import now that it calls hasFixedRuntimeRep. This patch also changes the code in matchExpectedFunTys to make use of the coercions, which is now possible thanks to the previous change. This implements PHASE 2 of FixedRuntimeRep in some situations. For example, the test cases T13105 and T17536b are now both accepted. Fixes #21239 and #21325 ------------------------- Metric Decrease: T18223 T5631 ------------------------- (cherry picked from commit 47ccaa0d17e8150ef09770e3b774e43ee63d3983)
* Relax "suppressing errors" assert in reportWantedssheaf2022-04-271-4/+9
| | | | | | | | | | | | | The assertion in reportWanteds that we aren't suppressing all the Wanted constraints was too strong: it might be the case that we are inside an implication, and have already reported an unsolved Wanted from outside the implication. It is possible that all Wanteds inside the implication have been rewritten by the outer Wanted, so we shouldn't throw an assertion failure in that case. Fixes #21405 (cherry picked from commit 93c16b94ebff03c81c2285eb2b622dc62f9bca16)
* decideMonoTyVars: account for CoVars in candidatessheaf2022-04-274-3/+34
| | | | | | | | | | | | | | The "candidates" passed to decideMonoTyVars can contain coercion holes. This is because we might well decide to quantify over some unsolved equality constraints, as long as they are not definitely insoluble. In that situation, decideMonoTyVars was passing a set of type variables that was not closed over kinds to closeWrtFunDeps, which was tripping up an assertion failure. Fixes #21404 (cherry picked from commit 1e4dcf230a50b00350e084ca43e9d098ff865b22)
* Bump Cabal submoduleBen Gamari2022-04-261-0/+0
| | | | To current `master`.
* testsuite: Add testcase for #21141Ben Gamari2022-04-252-0/+27
| | | | (cherry picked from commit 575454d08680801f927fe571c2a6f21600b258f1)
* Ensure that wired-in exception closures aren't GC'dBen Gamari2022-04-254-40/+101
| | | | | | | | | | | | | | | | | As described in Note [Wired-in exceptions are not CAFfy], a small set of built-in exception closures get special treatment in the code generator, being declared as non-CAFfy despite potentially containing CAF references. The original intent of this treatment for the RTS to then add StablePtrs for each of the closures, ensuring that they are not GC'd. However, this logic was not applied consistently and eventually removed entirely in 951c1fb0. This lead to #21141. Here we fix this bug by reintroducing the StablePtrs and document the status quo. Closes #21141. (cherry picked from commit e8e0955f7f330dbad5da8d669a4c24fc2953b0bd)
* rts: Factor out built-in GC rootsBen Gamari2022-04-251-35/+41
| | | | (cherry picked from commit 5956b7d023b2d9f158872617afcfbc8a734e8fc9)
* Mention new MutableByteArray# wrapper in base changelog.Andreas Klebinger2022-04-251-1/+1
| | | | (cherry picked from commit d97667c7017ac07f41bf82b29941331287b639fc)
* get-win32-tarballs: Drop i686 architectureBen Gamari2022-04-251-2/+2
| | | | | | | | As of #18487 we no longer support 32-bit Windows. Fixes #21372. (cherry picked from commit 98de2e42b7ae8460e4067747b225fc9ea6b8c170)
* Fix a shadowing issue in StgUnarise.Andreas Klebinger2022-04-251-1/+23
| | | | | | | | | | | | | | | | | | | For I assume performance reasons we don't record no-op replacements during unarise. This lead to problems with code like this: f = \(Eta_B0 :: VoidType) x1 x2 -> ... let foo = \(Eta_B0 :: LiftedType) -> g x y Eta_B0 in ... Here we would record the outer Eta_B0 as void rep, but would not shadow Eta_B0 inside `foo` because this arg is single-rep and so doesn't need to replaced. But this means when looking at occurence sites we would check the env and assume it's void rep based on the entry we made for the (no longer in scope) outer `Eta_B0`. Fixes #21396 and the ticket has a few more details. (cherry picked from commit 77b51d1ed4555359759c81b7b60c19ff8bc2c5e2)
* rts: Ensure that the interpreter doesn't disregard tagsBen Gamari2022-04-251-4/+4
| | | | | | | Previously the interpreter's handling of `RET_BCO` stack frames would throw away the tag of the returned closure. This resulted in #21390. (cherry picked from commit 219834d9c27a26ad1d00000c500a6124450ccf32)
* testsuite: Add test for #21390Ben Gamari2022-04-256-0/+44
| | | | (cherry picked from commit 06690e1bece1115d83d8ffe11c2bb1db45f4ab52)
* Bump version to 9.4.0Ben Gamari2022-04-232-1/+1
|
* testsuite: Drop reference to non-existent traceEventWithBen Gamari2022-04-235-8/+0
| | | | | This was added by 5e822e2608c790f335035c904859dcfb93e0639b but the patch introducing `traceEventWith` has not been backported.
* Fix missing SymCo in pushCoercionIntoLambdasheaf2022-04-131-1/+5
| | | | | | | | | There was a missing SymCo in pushCoercionIntoLambda. Currently this codepath is only used with rewrite rules, so this bug managed to slip by, but trying to use pushCoercionIntoLambda in other contexts revealed the bug. (cherry picked from commit 5f8d6e65f3d8268c70d6a8434ba9df03087a22eb)
* Add regression test for #19569Andreas Klebinger2022-04-133-0/+53
| | | | (cherry picked from commit 47d18b0b387fbfe07e1b4fbda578a81a74ab0eeb)
* Update changelog.Philip Hazelden2022-04-131-0/+3
| | | | (cherry picked from commit 20bbf3ace6bda71b28154bec3e840e418440eac0)
* Add tests for several trace functions.Philip Hazelden2022-04-136-0/+31
| | | | (cherry picked from commit 8fafacf7bae432fe20a46265af497b8fb42cbd1c)
* Revert "Rename [] to List (#21294)"GHC GitLab CI2022-04-1322-98/+46
| | | | This reverts commit 02279a9c37deb34556834f706dbedc09258df753.
* Revert "HsUniToken for :: in GADT constructors (#19623)"GHC GitLab CI2022-04-1314-74/+18
| | | | This reverts commit 3415981c36631115bc1d7fb5b51abfcc2932a12f.
* Bump deepseq to 1.4.7.0Matthew Pickering2022-04-091-0/+0
| | | | | | Updates deepseq submodule Fixes #20653
* ci: Remove doc-tarball dependency from perf and perf-nofib jobsMatthew Pickering2022-04-091-5/+0
| | | | | These don't depend on the contents of the tarball so we can run them straight after the fedora33 job finishes.
* ci: Fix nightly head.hackage pipelinesMatthew Pickering2022-04-091-1/+15
| | | | | | This also needs a corresponding commit to head.hackage, I also made the job explicitly depend on the fedora33 job so that it isn't blocked by a failing windows job, which causes docs-tarball to fail.
* Tiny documentation wibbleSimon Peyton Jones2022-04-081-2/+2
| | | | | | | | | | | | This commit commit 83363c8b04837ee871a304cf85207cf79b299fb0 Author: Simon Peyton Jones <simon.peytonjones@gmail.com> Date: Fri Mar 11 16:55:38 2022 +0000 Use prepareBinding in tryCastWorkerWrapper refactored completeNonRecX away, but left a Note referring to it. This MR fixes that Note.
* Disallow (->) as a data constructor name (#16999)Vladislav Zavialov2022-04-084-3/+11
| | | | | | | | | | | | | | The code was misusing isLexCon, which was never meant for validation. In fact, its documentation states the following: Use these functions to figure what kind of name a 'FastString' represents; these functions do /not/ check that the identifier is valid. Ha! This sign can't stop me because I can't read. The fix is to use okConOcc instead. The other checks (isTcOcc or isDataOcc) seem superfluous, so I also removed those.
* ci: Replace "always" with "on_success" to stop build jobs running before ↵Matthew Pickering2022-04-082-64/+64
| | | | | | | | | hadrian-ghci has finished See https://docs.gitlab.com/ee/ci/yaml/#when * always means, always run not matter what * on_success means, run if the dependencies have built successfully
* Docs: datacon eta-expansion, rep-poly checkssheaf2022-04-088-37/+111
| | | | | | | | | | | | | | | | | | | The existing notes weren't very clear on how the eta-expansion of data constructors that occurs in tcInferDataCon/dsConLike interacts with the representation polymorphism invariants. So we explain with a few more details how we ensure that the representation-polymorphic lambdas introduced by tcInferDataCon/dsConLike don't end up causing problems, by checking they are properly instantiated and then relying on the simple optimiser to perform beta reduction. A few additional changes: - ConLikeTc just take type variables instead of binders, as we never actually used the binders. - Removed the FRRApp constructor of FRROrigin; it was no longer used now that we use ExpectedFunTyOrigin. - Adds a bit of documentation to the constructors of ExpectedFunTyOrigin.
* HsUniToken for :: in GADT constructors (#19623)Vladislav Zavialov2022-04-0814-18/+74
| | | | | | One more step towards the new design of EPA. Updates the haddock submodule.
* Add flag -fprof-manual which controls if GHC should honour manual cost centres.Andreas Klebinger2022-04-088-1/+61
| | | | | | | This allows disabling of manual control centres in code a user doesn't control like libraries. Fixes #18867