| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Breaks fragile tests into two groups, allowing us to easily preserve
stdout/stderr of failing fragile tests.
|
|
|
|
|
| |
It seems that the regular expression parser changed in GitLab 12.1 and
now does now support forward slashes in the RE, even when escaped.
|
|
|
|
|
|
|
| |
As mentioned in #16997, GHC currently complains about this import.
In general I'm reluctant to paper over things like this but in the case
of an hs-boot file I think adding an import list is the right thing to
do regardless of the bug.
|
|
|
|
|
| |
Previously it was awkwardly in TyCoFVs (and before that in TyCoRep).
Type seems like a sensible place for it to live.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This breaks up the monstrous TyCoReps module into several new modules by
topic:
* TyCoRep: Contains the `Coercion`, `Type`, and related type
definitions and a few simple predicates but nothing further
* TyCoPpr: Contains the the pretty-printer logic
* TyCoFVs: Contains the free variable computations (and
`tyConAppNeedsKindSig`, although I suspect this should change)
* TyCoSubst: Contains the substitution logic for types and coercions
* TyCoTidy: Contains the tidying logic for types
While we are able to eliminate a good number of `SOURCE` imports (and
make a few others smaller) with this change, we must introduce one new
`hs-boot` file for `TyCoPpr` so that `TyCoRep` can define `Outputable`
instances for the types it defines.
Metric Increase:
haddock.Cabal
haddock.compiler
|
|
|
|
|
|
|
|
|
|
| |
The `mkEtaWW` case for newtypes forgot to apply the substitution to
the newtype coercion, resulting in the Core Lint errors observed
in #16979. Easily fixed.
Fixes #16979.
Co-authored-by: Ryan Scott <ryan.gl.scott@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Effects as I measured them:
RTS Size: +0.1%
Compile times: -0.5%
Runtine nofib: -1.1%
Nofib runtime result seems to mostly come from the `CS` benchmark
which is very sensible to alignment changes so this is likely over
represented.
However the compile time changes are realistic.
This is related to #16961.
|
|
|
|
|
|
|
| |
https://github.com/snowleopard/hadrian/issues/187 was superseded by
https://github.com/snowleopard/hadrian/issues/669, which has also
been closed.
So, optimistically, dropping this as a limitation issue.
|
|
|
|
|
|
|
|
|
|
| |
Also adds Note [Getting from RuntimeRep to PrimRep], which
deocuments a related thorny process.
This Note addresses #16964, which correctly observes that
documentation for this thorny design is lacking.
Documentation only.
|
| |
|
|
|
|
| |
Generic1 instances to Kleisli
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
separate file and add -ddump-cmm-verbose-by-proc to keep old behaviour (#16930)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GHC used to reject programs of this form:
```
newtype Age = MkAge Int
deriving Eq via Const Int a
```
That's because an earlier implementation of `DerivingVia` would
generate the following instance:
```
instance Eq Age where
(==) = coerce @(Const Int a -> Const Int a -> Bool)
@(Age -> Age -> Bool)
(==)
```
Note that the `a` in `Const Int a` is not bound anywhere, which
causes all sorts of issues. I figured that no one would ever want to
write code like this anyway, so I simply banned "floating" `via` type
variables like `a`, checking for their presence in the aptly named
`reportFloatingViaTvs` function.
`reportFloatingViaTvs` ended up being implemented in a subtly
incorrect way, as #15831 demonstrates. Following counsel with the
sage of gold fire, I decided to abandon `reportFloatingViaTvs`
entirely and opt for a different approach that would _accept_
the instance above. This is because GHC now generates this instance
instead:
```
instance forall a. Eq Age where
(==) = coerce @(Const Int a -> Const Int a -> Bool)
@(Age -> Age -> Bool)
(==)
```
Notice that we now explicitly quantify the `a` in
`instance forall a. Eq Age`, so everything is peachy scoping-wise.
See `Note [Floating `via` type variables]` in `TcDeriv` for the full
scoop.
A pleasant benefit of this refactoring is that it made it much easier
to catch the problem observed in #16181, so this patch fixes that
issue too.
Fixes #15831. Fixes #16181.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
Rec {
x2_r10T :: Lib.Bar
[GblId, Unf=OtherCon []] =
CCS_DONT_CARE Lib.Bar! [x3_r10U];
x3_r10U :: Lib.Foo
[GblId, Unf=OtherCon []] =
CCS_DONT_CARE Lib.Foo! [x1_r10p x2_r10T];
end Rec }
After:
Rec {
x2_r10T :: Lib.Bar
[GblId, Unf=OtherCon []] =
CCS_DONT_CARE Lib.Bar! [x3_r10U];
x3_r10U :: Lib.Foo
[GblId, Unf=OtherCon []] =
CCS_DONT_CARE Lib.Foo! [x1_r10p x2_r10T];
end Rec }
|
|
|
|
|
|
|
|
|
| |
Before, `type DefUses = [DefUse]`. But lists are a terrible choice of
data structure here, as we frequently append to the right of a
`DefUses`, which yields some displeasing asymptotics. Let's instead
use `OrdList`, which has constant-time appending to the right.
This is one step on the way to #10347.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Use show! in source tarball job. Since we aren't actually building
anything in this job `show` won't
work.
* Fix Docker image name
* Make `version` file contain only version string
|
|
|
|
|
| |
Now that the target macros are not being used, we remove them. This
prevents target hardcoding regressions.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since MR !1025 fixed the Windows build, allowing us to build a binary
distribution, we can now run the testsuite in that CI job.
This required fixing 'createFileLink': it should not try to create
symlinks on Windows (that requires admin priviledges, which Hadrian can't
assume). We now instead fall back to copying.
This patch also removes some duplicated logic for iserv in the test rules,
where we handle our dependency on the iserv binaries in a special way.
|
|
|
|
|
| |
Now that we have absolute paths for submodules (since a76b233d) we no
longer need this script.
|
| |
|
|
|
|
|
| |
As fromFlag is partial. The only case where we used fromFlag is when
determining whether to strip libraries; we now assume that we shouldn't.
|
|
|
|
|
|
|
|
|
|
| |
To display the free variables for a single breakpoint, GHCi pulls out the
information from the fields `modBreaks_breakInfo` and `modBreaks_vars`
of the `ModBreaks` data structure. For a specific breakpoint this gives 2
lists of types 'Id` (`Var`) and `OccName`. They are used to create the Id's
for the free variables and must be kept in sync:
If we remove an element from the Names list, then we also must remove the
corresponding element from the OccNames list.
|
|
|
|
|
|
|
|
|
|
|
| |
Kqueue/kevent implementation used to ignore events to be unsubscribed
from when events to be subscribed to were provided. This resulted in a
lost notification subscription, when GHC runtime didn't listen for any
events, yet the kernel considered otherwise and kept waking up the IO
manager thread.
This commit fixes this issue by always adding and removing all of the
provided subscriptions.
|
|
|
|
|
|
|
|
|
|
| |
This makes it simpler to load Modules importing it
when using ghc-the-package.
-------------------------
Metric Decrease:
haddock.compiler
-------------------------
|
|
|
| |
This was removed from make in 077b92fa39839a8e83cd87398435424403cf6486
|
| |
|
|
|
|
|
| |
This commit fixes #16874 by using `fsep` rather than `sep` when pretty
printing long patterns and expressions.
|
| |
|
|
|
|
| |
This was requested in #15650.
|
|
|
|
|
|
|
|
|
| |
This makes the `maintainer-clean` rule in `ghc.mk` slightly more
sophisticated so that it does not remove the version-controlled
file `libraries/ghc-boot/ghc.mk`, which was checked into version
control in commit 24782b89907ab36fb5aef3a17584f4c10f1e2690.
Fixes #16953.
|
|
|
|
| |
-fno-max-relevant-binds
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
9366e019 introduced a check for orphan roles to fix #8485
6ab5da99 changed the lookup code and made the check redundant.
Now it is removed.
|
| |
|
|
|
|
| |
As noted in #16909.
|
|
|
|
| |
Fixed in #14759.
|
|
|
|
|
| |
This requires code loading and therefore can't be run in the profiled
ways when GHC is dynamically linked.
|
|
|
|
|
|
|
| |
As noted in #11645 and #8862, forking and profiling don't go well
together.
Bumps hpc and unix submodules.
|
| |
|
| |
|
|
|
|
| |
Previously it was not marked as broken in profthreaded
|