| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
Fixes #19586
|
|
|
|
|
|
|
| |
This clearly identifies the presence and location of optional
semicolons in an if statement.
Closes #19813
|
|
|
|
|
|
| |
This patch just does the tidying up from #19805.
No change in behaviour.
|
|
|
|
| |
Not perfect. But I consider this to be a documentation fix for #19789.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For the fragment
blah = do {
; print "a"
; print "b"
}
capture the leading semicolon before 'print "a"' in
'al_rest' in AnnList instead of in 'al_trailing'.
Closes #19798
|
|
|
|
| |
Follow-up from !2418, see #19579
|
|
|
|
|
|
|
|
| |
The eta-reduction we do for newype axioms was generating
an inhomogeneous axiom: see #19739.
This patch fixes it in a simple way; see GHC.Tc.TyCl.Build
Note [Newtype eta and homogeneous axioms]
|
|
|
|
|
|
| |
NetBSD supports pthread_setname_np() but it expects a printf-style format string and a string argument.
Also use pthread for itimer on this platform.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch was driven by #18481, to allow visible type application
for levity-polymorphic newtypes. As so often, it started simple
but grew:
* Significant refactor: I removed HsConLikeOut from the
client-independent Language.Haskell.Syntax.Expr, and put it where it
belongs, as a new constructor `ConLikeTc` in the GHC-specific extension
data type for expressions, `GHC.Hs.Expr.XXExprGhcTc`.
That changed touched a lot of files in a very superficial way.
* Note [Typechecking data constructors] explains the main payload.
The eta-expansion part is no longer done by the typechecker, but
instead deferred to the desugarer, via `ConLikeTc`
* A little side benefit is that I was able to restore VTA for
data types with a "stupid theta": #19775. Not very important,
but the code in GHC.Tc.Gen.Head.tcInferDataCon is is much, much
more elegant now.
* I had to refactor the levity-polymorphism checking code in
GHC.HsToCore.Expr, see
Note [Checking for levity-polymorphic functions]
Note [Checking levity-polymorphic data constructors]
|
| |
|
|
|
|
|
|
|
|
| |
this causes *significant* slowdown on macOS as the linker ends
up looking through all the paths. Slowdown can be as bad as
100% or more.
(cherry picked from commit 820b0766984d42c06c977a6c32da75c429106f7f)
|
|
|
|
| |
(cherry picked from commit 07b1af0362beaaf221cbee7b17bbe0a5606fd87d)
|
|
|
|
| |
(cherry picked from commit f7062e1b0c91e8aa78e245a3dab9571206fce16d)
|
|
|
|
| |
(cherry picked from commit b821fcc7142edff69aa4c47dc1a5bd30b13c1ceb)
|
|
|
|
| |
(cherry picked from commit c3944bc89d062a4850946904133c7a1464d59012)
|
|
|
|
|
|
|
| |
-Wno-unsupported-llvm-version should suppress the LLVM version
missmatch warning that messes up the output.
(cherry picked from commit 63455300625fc12b2aafc3e339eb307510a6e8bd)
|
|
|
|
| |
(cherry picked from commit 4bea83afec009dfd3c6313cac4610d00ba1f9a3d)
|
|
|
|
| |
(cherry picked from commit 33c4d497545559a38bd8d1caf6c94e5e2a77647b)
|
|
|
|
|
|
| |
There is no libstdc++, only libc++
(cherry picked from commit 57671071adeaf0b45e86bb0ee050e007e3b161fb)
|
|
|
|
| |
(cherry picked from commit 3592d1104c47b006fd9f4127d93916f477a6e010)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This resolves the following:
Compile failed (exit code 1) errors were:
conc059_c.c:27:5: error:
error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
exit(0);
^
conc059_c.c:27:5: error:
note: include the header <stdlib.h> or explicitly provide a declaration for 'exit'
(cherry picked from commit 5a6c36ecb41fccc07c1b01fe0f330cd38c2a0c76)
|
|
|
|
|
|
|
| |
We don't pass MAKE_ARGS for windows builds, so this should unbreak
them.
(cherry picked from commit 16c13d5acfdc8053f7de9e908cc9d845e9bd34bb)
|
|
|
|
| |
(cherry picked from commit 307d34945b7d932156e533736c91097493e6181b)
|
|
|
|
|
|
|
|
|
|
| |
this prevents the testlib/driver to be overly noisy, and will also
kill some noise produiced by the aarch64-darwin cc (for now).
Fixing sysctl, will allow us to run the test's properly in a nix-shell
on aarch64-darwin
(cherry picked from commit 5109e87e13ab45d799db2013535f54ca35f1f4dc)
|
|
|
|
|
|
|
| |
This will fail for now. But allows us to add aarch64-darwin
machines to CI.
(cherry picked from commit a7d22795ed118abfe64f4fc55d96d8561007ce1e)
|
|
|
|
|
|
|
|
| |
Previously Hadrian depended implicitly upon whatever `bash` it found in
`PATH`, offerring no way for the user to override. Fix this by detecting
`sh` in `configure` and passing the result to Hadrian.
Fixes #19797.
|
|
|
|
|
| |
Since `GeneralizedNewtypeDeriving` is considered unsafe, `DerivingVia`
should be as well.
|
|
|
|
| |
Fixes #19631.
|
|
|
|
|
|
| |
derivatives
The constant CLOCK_THREAD_CPUTIME_ID is defined in a system header but it isn't acutally usable. clock_gettime(2) always returns EINVAL.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For the source
module MatchSemis where
{
a 0 = 1;
a _ = 2;
}
Make sure that the AddSemiAnn entries for the two trailing semicolons
are attached to the component Match elements.
Closes #19784
|
|
|
|
| |
non-determinism justification
|
|
|
|
|
|
|
|
|
|
|
| |
We think the compiler is ready, so we can do this for all over the 8-,
16-, and 32-bit boxed types.
We are holding off on doing all the primops at once so things are easier
to investigate.
Metric Decrease:
T12545
|
|
|
|
|
|
|
|
| |
Somewhere in the course of forward- and back-porting the keepAlive#
branch the Note which described the mechanism was dropped. Reintroduce
it.
Closes #19712.
|
|
|
|
| |
closes #19793
|
|
|
|
| |
fixes #19733
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes #19731
-------------------------
Metric Decrease:
T11545
Metric Increase:
T12545
T15304
-------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit expands the DriverMessage type with new type constructors,
making the number of diagnostics GHC can emit richer. In particular:
* Add DriverMissingHomeModules message
* Add DriverUnusedPackage message
* Add DriverUnnecessarySourceImports message
This commit adds the `DriverUnnecessarySourceImports` message and
fixes a small bug in its reporting: inside
`warnUnnecessarySourceImports` we were checking for
`Opt_WarnUnusedSourceImports` to be set, but we were emitting the
diagnostic with `WarningWithoutFlag`. This also adjusts the T10637 test to reflect that.
* Add DriverDuplicatedModuleDeclaration message
* Add DriverModuleNotFound message
* Add DriverFileModuleNameMismatch message
* Add DriverUnexpectedSignature message
* Add DriverFileNotFound message
* Add DriverStaticPointersNotSupported message
* Add DriverBackpackModuleNotFound message
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CorePrepProv is only created in CorePrep, so I thought it wouldn't be
needed in IfaceUnivCoProv. But actually IfaceSyn is used during
pretty-printing, and we can certainly pretty-print things after
CorePrep as #19768 showed.
So the simplest thing is to represent CorePrepProv in IfaceSyn.
To improve what Lint can do I also added a boolean to CorePrepProv, to
record whether it is homogeneously kinded or not. It is introduced in
two distinct ways (see Note [Unsafe coercions] in GHC.CoreToStg.Prep),
one of which may be hetero-kinded (e.g. Int ~ Int#) beause it is
casting a divergent expression; but the other is not. The boolean
keeps track.
|
|
|
|
|
|
|
|
|
|
|
| |
In function `compiler/GHC/Runtime/Heap/Inspect.hs:quantifyType` replace
`tcSplitForAllInvisTyVars` by `tcSplitNestedSigmaTys`. This will properly split
off the nested foralls in examples like `:print fmap`.
Do not remove the `forall`s from the `snd` part of the tuple returned
by `quantifyType`. It's not necessary and the reason for the bug in #12449.
Some code simplifications at the calling sites of `quantifyTypes`.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
before:
> /home/matt/Projects/persistent/persistent/Database/Persist/ImplicitIdDef.hs:1:8: error:
> File name does not match module name:
> Saw: ‘A.B.Module’
> Expected: ‘A.B.Motule’
> |
> 1 | module A.B.Motule
> | ^^^^^^^^^^>
after:
> /home/matt/Projects/persistent/persistent/Database/Persist/ImplicitIdDef.hs:1:8: error:
> File name does not match module name:
> Saw: ‘A.B.Module’
> Expected: ‘A.B.Motule’
> |
> 1 | module A.B.Motule
> | ^^^^^^^^^^>
|
|
|
|
| |
closes #19776
|
|
|
|
| |
fixes #19757
|
| |
|