| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
|\ |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
It appears that the version of sphinx shipped on CentOS 7
reports a version string of `Sphinx v1...`. Accept the `v`.
|
| |
| |
| |
| |
| |
| | |
Due to #16177.
Also cleanup some code style issues.
|
| |
| |
| |
| | |
Darwin requires the `-r` flag to be compatible with GNU sed.
|
| | |
|
|/
|
|
| |
(cherry picked from commit ae4b0c89e0d74576425a9661b59145eb09ca8262)
|
| |
|
|
|
|
| |
To 0.9.0 and 4.17.0 respectively.
|
|
|
|
| |
Pull forward minimum version to match 9.2.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
| |
This function is used by API clients (hls).
This supercedes !6922
(cherry picked from commit 4443573b986014cb45c8e39f5867e6fc187a81db)
|
|
|
|
| |
(cherry picked from commit 5de6be0c9120550aaa15534d0a1466018eff137a)
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
| |
This module exports unsafe pointer equality operations,
so we accordingly mark it as Unsafe.
Fixes #21433
(cherry picked from commit 81cf52bb301592ff3d043d03eb9a0d547891a3e1)
|
|
|
|
|
|
|
| |
Metric Decrease:
T5631
Metric Increase:
T18223
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
| |
To current `master`.
|
|
|
|
| |
(cherry picked from commit 575454d08680801f927fe571c2a6f21600b258f1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
| |
(cherry picked from commit 5956b7d023b2d9f158872617afcfbc8a734e8fc9)
|
|
|
|
| |
(cherry picked from commit d97667c7017ac07f41bf82b29941331287b639fc)
|
|
|
|
|
|
|
|
| |
As of #18487 we no longer support 32-bit Windows.
Fixes #21372.
(cherry picked from commit 98de2e42b7ae8460e4067747b225fc9ea6b8c170)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
| |
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)
|
|
|
|
| |
(cherry picked from commit 06690e1bece1115d83d8ffe11c2bb1db45f4ab52)
|
| |
|
|
|
|
|
| |
This was added by 5e822e2608c790f335035c904859dcfb93e0639b but the patch
introducing `traceEventWith` has not been backported.
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
| |
(cherry picked from commit 47d18b0b387fbfe07e1b4fbda578a81a74ab0eeb)
|
|
|
|
| |
(cherry picked from commit 20bbf3ace6bda71b28154bec3e840e418440eac0)
|
|
|
|
| |
(cherry picked from commit 8fafacf7bae432fe20a46265af497b8fb42cbd1c)
|
|
|
|
| |
This reverts commit 02279a9c37deb34556834f706dbedc09258df753.
|
|
|
|
| |
This reverts commit 3415981c36631115bc1d7fb5b51abfcc2932a12f.
|
|
|
|
|
|
| |
Updates deepseq submodule
Fixes #20653
|
|
|
|
|
| |
These don't depend on the contents of the tarball so we can run them
straight after the fedora33 job finishes.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
One more step towards the new design of EPA.
Updates the haddock submodule.
|
|
|
|
|
|
|
| |
This allows disabling of manual control centres in code a user doesn't control like
libraries.
Fixes #18867
|