| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The HomeModInfoCache is a mutable cache which is updated incrementally
as the driver completes, this makes it robust to exceptions including
(SIGINT)
The interface for the cache is described by the `HomeMOdInfoCache` data
type:
```
data HomeModInfoCache = HomeModInfoCache { hmi_clearCache :: IO [HomeModInfo]
, hmi_addToCache :: HomeModInfo -> IO () }
```
The first operation clears the cache and returns its contents. This is
designed so it's harder to end up in situations where the cache is
retained throughout the execution of upsweep.
The second operation allows a module to be added to the cache.
The one slightly nasty part is in `interpretBuildPlan` where we have to
be careful to ensure that the cache writes happen:
1. In parralel
2. Before the executation continues after upsweep.
This requires some simple, localised MVar wrangling.
Fixes #20780
|
|\ |
|
| |
| |
| |
| |
| |
| | |
* Non-fatal (i.e. recoverable) parse error
* Checking infix constructors
* Extended the regression test
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We were accidentally dropping the source location information in
certain circumstances when reporting redundant constraints. This patch
makes sure that we set the TcLclEnv correctly before reporting the
warning.
Fixes #21315
|
| |
| |
| |
| |
| |
| | |
- Mention -Wforall-identifier
- Improve description of withDict
- Fix formatting
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Verifies two important properties of #includes in the RTS:
* That system headers don't appear inside of a `<BeginPrivate.h>` block
as this can hide system library symbols, resulting in very
hard-to-diagnose linker errors
* That no headers precede `Rts.h`, ensuring that __USE_MINGW_ANSI_STDIO
is set correctly before system headers are included.
|
| |
| |
| |
| | |
This fixes various violations of the newly-added RTS includes linter.
|
| |
| |
| |
| | |
It's easier to ensure that this is included first than Rts.h
|
| |
| |
| |
| |
| |
| |
| |
| | |
This no-skolem-info bug was fixed by the no-skolem-info patch
that will be part of GHC 9.4. This patch adds a regression test for
the issue reported in issue #21338.
Fixes #21338.
|
| |
| |
| |
| |
| |
| | |
Previously, the use of size[D]VarSet would involve a traversal of the
entire underlying IntMap. Since IntMaps are already spine-strict,
this is unnecessary.
|
| |
| |
| |
| | |
Fixes #20676
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The free-var test (now documented as (VD3)) was too narrow,
affecting only class predicates. #21302 demonstrated that
this wasn't enough!
Fixes #21302.
Co-authored-by: Ryan Scott <ryan.gl.scott@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch implements a small part of GHC Proposal #475.
The key change is in GHC.Types:
- data [] a = [] | a : [a]
+ data List a = [] | a : List a
And the rest of the patch makes sure that List is pretty-printed as []
in various contexts.
Updates the haddock submodule.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As #21144 showed, tryCastWorkerWrapper was calling prepareRhs, and
then unconditionally floating the bindings, without the checks of
doFloatFromRhs. That led to floating an unlifted binding into
a Rec group.
This patch refactors prepareBinding to make these checks,
and do them uniformly across all calls. A nice improvement.
Other changes
* Instead of passing around a RecFlag and a TopLevelFlag; and sometimes
a (Maybe SimplCont) for join points, define a new Simplifier-specific
data type BindContext:
data BindContext = BC_Let TopLevelFlag RecFlag
| BC_Join SimplCont
and use it consistently.
* Kill off completeNonRecX by inlining it. It was only called in
one place.
* Add a wrapper simplImpRules for simplRules.
Compile time on T9630 drops by 4.7%; little else changes.
Metric Decrease:
T9630
|
| |
| |
| |
| |
| |
| | |
Get rid of unnnecessary case clause that always matched.
Closes #20558
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
GHC merge request !963 improved warnings in the presence of
COMPLETE annotations. This allows the removal of the Fun pattern
from the complete set.
Doing so expectedly causes some redundant pattern match warnings,
in particular in GHC.Utils.Binary.Typeable and Data.Binary.Class
from the binary library; this commit addresses that.
Updates binary submodule
Fixes #20230
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Metric Decrease:
T16875
Metric Increase:
T12707
T13379
T3294
T4801
T5321FD
T5321Fun
T783
|
| |
| |
| |
| |
| | |
Since we have switched to Clang the toolchain now links against
ucrt rather than msvcrt.
|
| |
| |
| |
| | |
As is necessary on Windows.
|
| | | |
| \ | |
| \ | |
| \ | |
|\ \ \ \
| | | | |
| | | | |
| | | | | |
'wip/windows-clang-2' and 'wip/lint-rts-includes' into wip/windows-clang-join
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Verifies two important properties of #includes in the RTS:
* That system headers don't appear inside of a `<BeginPrivate.h>` block
as this can hide system library symbols, resulting in very
hard-to-diagnose linker errors
* That no headers precede `Rts.h`, ensuring that __USE_MINGW_ANSI_STDIO
is set correctly before system headers are included.
|
| | | | |
| | | | |
| | | | |
| | | | | |
This fixes various violations of the newly-added RTS includes linter.
|
| | | |/
| | | |
| | | |
| | | | |
It's easier to ensure that this is included first than Rts.h
|
| | | |
| | | |
| | | |
| | | | |
Due to #21361.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Due to #20354.
We will need to investigate this prior the release.
|
| | | |
| | | |
| | | |
| | | | |
Our toolchain on Windows doesn't currently have Windows support.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
I'll admit, I don't currently see *why* this output is reordered
but it is a fairly benign difference and I'm out of time to investigate.
|
| | | |
| | | |
| | | |
| | | | |
`abort` exits with 255, not 134, on Windows.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Some platforms (e.g. Windows/clang64) declare `environ` in `<stdlib.h>`,
not `<unistd.h>`
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Clang on Windows does not understand the `gnu_printf` attribute; use
`printf` instead.
|
| | | |
| | | |
| | | |
| | | | |
Due to #21322.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It was previously failing due to #18721 and now passes with the new
toolchain.
Closes #18721.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|