| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
| |
Summary: This is generated when building `ghc-cabal`.
Reviewers: hvr, bgamari, austin
Subscribers: rwbarton, thomie
Differential Revision: https://phabricator.haskell.org/D3813
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Finish the work started in
7d1909ad110f05c8cb2fb0689ee75857ceb945f6.
Test Plan: If it builds, ship it
Reviewers: austin, bgamari
Subscribers: rwbarton, thomie
Differential Revision: https://phabricator.haskell.org/D3812
|
|
|
|
|
|
| |
This was a simple slip, that gave rise to the bug reported in
comment:13 of Trac #14045. We were supplying roles to mkAlgTyCon
that didn't match the tyvars.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cabal's parser has been rewritten in terms of Parsec (which is not
enabled yet in Cabal-2.0 by default, but can be enabled by a cabal
flag). The plan for Cabal is to drop support for the non-parsec parser,
so we need to prepare GHC to cope with new situation.
However, this means that lib:Cabal requires three new library
dependency submodules,
- parsec
- text
- mtl
What complicates matters is that we need to build `ghc-cabal` early on
during the bootstrap phase which currently needs to invoke `ghc --make`
directly. So these additional dependencies need to be integrated into
the monolithic `ghc --make` invocation which produces the `ghc-cabal`
executable.
Test Plan: `./validate --fast` passed
Reviewers: austin, bgamari
Subscribers: erikd, phadej, rwbarton, thomie
Differential Revision: https://phabricator.haskell.org/D3757
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GHC 8.2.1 is out, so now GHC's support window only extends back to GHC
8.0. This means we can delete gobs of code that was only used for GHC
7.10 support. Hooray!
Test Plan: ./validate
Reviewers: hvr, bgamari, austin, goldfire, simonmar
Reviewed By: bgamari
Subscribers: Phyx, rwbarton, thomie
Differential Revision: https://phabricator.haskell.org/D3781
|
|
|
|
|
|
|
| |
No need to mark the binders with markNonTailCalled, as they already have been
marked as such in rhs_udss' via adjust.
Differential Revision: https://phabricator.haskell.org/D3810
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gcc complains about this while building with Hadrian,
```
rts/RetainerProfile.c: In function ‘computeRetainerSet’:
rts/RetainerProfile.c:1758:18: error:
error: variable ‘rtl’ set but not used
[-Werror=unused-but-set-variable]
RetainerSet *rtl;
^~~
|
1758 | RetainerSet *rtl;
| ^
```
Reviewers: austin, erikd, simonmar, Phyx
Reviewed By: Phyx
Subscribers: Phyx, rwbarton, thomie
Differential Revision: https://phabricator.haskell.org/D3801
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Test Plan: make test TEST=T14058
Reviewers: mpickering, austin, bgamari, simonpj
Reviewed By: simonpj
Subscribers: simonpj, rwbarton, thomie
GHC Trac Issues: #14058
Differential Revision: https://phabricator.haskell.org/D3808
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For some reason these weren't handled. I seem to remember thinking I had
a reason for omitting them when writing the original patch, but I don't
recall what that reason was at this point and clearly workers do show up
in interface files.
Test Plan: Validate against T14051
Reviewers: austin
Subscribers: rwbarton, thomie, RyanGlScott
GHC Trac Issues: #14051
Differential Revision: https://phabricator.haskell.org/D3805
|
| |
|
| |
|
|
|
|
|
|
|
| |
This is refactoring only... elimiante all positional uses
of the data constructor Match in favour of field names.
No change in behaviour.
|
|
|
|
| |
See comment:22 in Trac #13594
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bizarrely, we were not rejecting
!x = e
Fix:
* In the test in DsBinds.dsTopLHsBinds, use isBangedHsBind, not
isBangedPatBind. (Indeed the latter dies altogther.)
* Implement isBangedHsBind in HsUtils;
be sure to handle AbsBinds
All this was shown up by Trac #13594
|
|
|
|
|
|
|
|
| |
I discovered that in
let x = MkT y in ....(MKT y |> co)....
we weren't CSE'ing the (MkT y). The fix is easy.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Trac #14035 showed that -XStrict was generating some TERRIBLE
desugarings, espcially for bindings with INLINE pragmas. Reason: with
-XStrict, all AbsBinds (even for non-recursive functions) went via the
general-case deguaring for AbsBinds, namely "generate a tuple and
select from it", even though in this case there was only one variable
in the tuple. And that in turn interacts terribly badly with INLINE
pragmas.
This patch cleans things up:
* I killed off AbsBindsSig completely, in favour of a boolean flag
abs_sig in AbsBinds. See Note [The abs_sig field of AbsBinds]
This allowed me to delete lots of code; and instance-method
declarations can enjoy the benefits too. (They could have
before, but no one had changed them to use AbsBindsSig.)
* I refactored all the AbsBinds handling in DsBinds into a new
function DsBinds.dsAbsBinds. This allowed me to handle the
strict case uniformly
|
|
|
|
|
| |
* Clarify the comments around the mc_strictness field of FunRhs
* Use record field names consistently for FunRhs
|
|
|
|
|
|
| |
as requested in #14045.
[skip ci] comments only
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Test Plan: ./validate on harbormaster
Reviewers: austin, hvr, bgamari, erikd, Phyx
Reviewed By: Phyx
Subscribers: Phyx, rwbarton, thomie
GHC Trac Issues: #12494
Differential Revision: https://phabricator.haskell.org/D3726
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Correct a couple more spots in the TH pretty-printer by applying the
appropriate parenthesization for infix names. Fixes #13887 (again).
Test Plan: make test TEST=T13887
Reviewers: austin, bgamari
Subscribers: rwbarton, thomie
GHC Trac Issues: #13887
Differential Revision: https://phabricator.haskell.org/D3802
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, we checked the number of patterns in a data instances
for all data families whose kind did not end in a kind variable.
But, of course, undersaturating instances can happen even without
the kind ending in a kind variable. So I've omitted the arity check.
Data families aren't as particular about their arity as type families
are (because data families can be undersaturated). Still, this change
degrades error messages when instances don't have the right arity;
now, instead of reporting a simple mismatch in the number of patterns,
GHC reports kind errors. The new errors are fully accurate, but perhaps
not as easy to work with. Still, with the new flexibility of allowing
data family instances with varying numbers of patterns, I don't see
a better way.
This commit also improves source fidelity in some error messages,
requiring more changes than really are necessary. But without these
changes, error messages around mismatched associated instance heads
were poor.
test cases: indexed-types/should_compile/T14045,
indexed-types/should_fail/T14045a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was proposed by David Feuer
(https://mail.haskell.org/pipermail/libraries/2016-August/027293.html)
and solves #14029.
The implementation is a copy of the '<&>' operator in Control.Lens.Lens.
Add tests for following Data.Functor operators: '<$>', '<&>', '<$' and '$>'.
'<&>' was added for solving #14029. '<$>', '<$' and '$>' were probably
untested.
Reviewers: austin, hvr, bgamari, RyanGlScott
Reviewed By: RyanGlScott
Subscribers: RyanGlScott, rwbarton, thomie
Differential Revision: https://phabricator.haskell.org/D3800
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Test Plan: Validate, ensure the `f7` program of `IPLocation` doesn't
crash.
Reviewers: gridaphobe, austin, hvr
Reviewed By: gridaphobe
Subscribers: rwbarton, thomie
GHC Trac Issues: #14028
Differential Revision: https://phabricator.haskell.org/D3795
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These ignore commandline arguments for ignore and commandline as well as
GHCRTS arguments for ignoreAll. Passing RTS flags given on the command
line along to the program by simply skipping processing of these flags
by the RTS.
This fixes #12870.
Test Plan: ./validate
Reviewers: austin, hvr, bgamari, erikd, simonmar
Reviewed By: simonmar
Subscribers: Phyx, rwbarton, thomie
GHC Trac Issues: #12870
Differential Revision: https://phabricator.haskell.org/D3740
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes #13710.
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Test Plan: validate
Reviewers: bgamari, austin, simonpj
Reviewed By: simonpj
Subscribers: simonpj, rwbarton, thomie
GHC Trac Issues: #13710
Differential Revision: https://phabricator.haskell.org/D3743
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was an old workaround for #5252. Fixes #13173.
Reviewers: austin, bgamari
Reviewed By: bgamari
Subscribers: rwbarton, thomie
Differential Revision: https://phabricator.haskell.org/D3763
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is only supported by Python 3.5 and later, which is too new for us
to rely on.
Reviewers: austin
Subscribers: rwbarton, thomie, RyanGlScott
GHC Trac Issues: #14050
Differential Revision: https://phabricator.haskell.org/D3803
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ld.gold is particularly picky that we declare all of our link
dependencies on Nix. See #14022.
Test Plan: Validate on Nix
Reviewers: austin
Subscribers: hvr, rwbarton, thomie
GHC Trac Issues: #14022
Differential Revision: https://phabricator.haskell.org/D3787
|
|
|
|
| |
This broke in the fix for #13541.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If you have ld.gold and ld.lld, then ld.gold will be selected by the
detection logic. This patch prioritizes lld by changing the order. The
rationale for checking lld first is that it's (right now) not part of,
say, a default Linux distro installation and if it's available, it's
very likely that it was installed explicitly and should be seen as a
sign of preference. On FreeBSD LLVM is the (default) base toolchain and
the changed order makes sense there as well, since ld.gold can be
available in /usr/local via ports/pkg. I don't have access to macOS and
can't say anything about their LLVM toolchain.
At some point we could add a check for LD=ld.lld or LD=ld.gold as an
optional override to explicitly select a linker.
Since I cannot really remove gcc on Linux, this was the only way to
configure GHC to use ld.lld.
Reviewers: austin, hvr, bgamari
Reviewed By: bgamari
Subscribers: rwbarton, thomie, erikd
Tags: PHID-PROJ-5azim3sqhsf7wzvlvaag
Differential Revision: https://phabricator.haskell.org/D3790
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is another change needed for #13825 (also based on D38 by Simon
Marlow).
With the change, we count the stack depth in bytes (instead of words).
We also introduce some `newtype`s to help with the change.
Note that this only changes how `ByteCodeGen` works and shouldn't
affect the generated bytecode.
Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com>
Test Plan: ./validate
Reviewers: bgamari, simonmar, austin, hvr
Reviewed By: bgamari, simonmar
Subscribers: rwbarton, thomie
GHC Trac Issues: #13825
Differential Revision: https://phabricator.haskell.org/D3746
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows to customize the location where binary distributions are
placed with `make binary-dist`.
E.g. using:
```
BINARY_DIST_DIR=/path/to/bindists make binary-dist
```
will place binary dists outside of the source tree into the given
folder.
This change falls back to ".", which is the old behaviour.
Test Plan: build binary-dist
Reviewers: bgamari, austin
Reviewed By: bgamari
Subscribers: rwbarton, thomie
Differential Revision: https://phabricator.haskell.org/D3798
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: austin
Subscribers: rwbarton, thomie
GHC Trac Issues: #14028
Differential Revision: https://phabricator.haskell.org/D3788
|
|
|
|
|
|
|
|
|
|
|
|
| |
Test Plan: Validate, try ingesting into Jenkins.
Reviewers: austin
Subscribers: rwbarton, thomie
GHC Trac Issues: #13716
Differential Revision: https://phabricator.haskell.org/D3796
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tangentially related to my prior work on trac ticket #12758.
Signed-off-by: Jared Weakly <jweakly@pdx.edu>
Reviewers: austin, bgamari
Subscribers: rwbarton, thomie
Differential Revision: https://phabricator.haskell.org/D3792
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Some recent commits happened to fix other issues:
* c2417b87ff59c92fbfa8eceeff2a0d6152b11a47 fixed #13601 and #13780
* 8e15e3d370e9c253ae0dbb330e25b72cb00cdb76 fixed the original program in #13877
Let's add regression tests for each of these to ensure they stay fixed.
Test Plan: make test TEST="T13601 T13780a T13780c T13877"
Reviewers: goldfire, bgamari, austin
Reviewed By: bgamari
Subscribers: rwbarton, thomie
GHC Trac Issues: #13601, #13780, #13877
Differential Revision: https://phabricator.haskell.org/D3794
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Types and kinds are now the same in GHC... well, except in the code
that involves Template Haskell, where types and kinds are given separate
treatment. This aims to unify that treatment in the `DsMeta` module.
The gist of this patch is replacing all uses of `repLKind` with `repLTy`.
This is isn't quite as simple as one might imagine, since `repLTy` returns a
`Core (Q Type)` (a monadic expression), whereas `repLKind` returns a
`Core Kind` (a pure expression). This causes many awkward impedance mismatches.
One option would be to change every combinator in `Language.Haskell.TH.Lib` to
take `KindQ` as an argument instead of `Kind`. But this would be a breaking
change of colossal proportions.
Instead, this patch takes a somewhat different approach. This migrates the
existing `Language.Haskell.TH.Lib` module to
`Language.Haskell.TH.Lib.Internal`, and changes all `Kind`-related combinators
in `Language.Haskell.TH.Lib.Internal` to live in `Q`. The new
`Language.Haskell.TH.Lib` module then re-exports most of
`Language.Haskell.TH.Lib.Internal` with the exception of the `Kind`-related
combinators, for which it redefines them to be their current definitions (which
don't live in `Q`). This allows us to retain backwards compatibility with
previous `template-haskell` releases, but more importantly, it allows GHC to
make as many changes to the `Internal` code as it wants for its purposes
without fear of disrupting the public API.
This solves half of #11785 (the other half being `TcSplice`).
Test Plan: ./validate
Reviewers: goldfire, austin, bgamari
Reviewed By: goldfire
Subscribers: rwbarton, thomie
GHC Trac Issues: #11785
Differential Revision: https://phabricator.haskell.org/D3751
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Previously, if `reifyInstances` failed to discover a `Name` during
renaming, it would blindy charge into typechecking, at which point GHC would
become very confused at the absence of that `Name` and throw an internal error.
A simple workaround is to fail eagerly after renaming errors.
Test Plan: make test TEST=T13837
Reviewers: goldfire, austin, bgamari, simonpj
Reviewed By: simonpj
Subscribers: simonpj, rwbarton, thomie
GHC Trac Issues: #13837
Differential Revision: https://phabricator.haskell.org/D3793
|
|
|
|
|
| |
This was provoked by an ASSERT failure when debugging #14038,
but it's a godo idea anyway.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Trac #14000 showed up two errors
* In TcRnTypes.dropInsolubles we dropped all implications, which
might contain the very insolubles we wanted to keep. This was
an outright error, and is why the out-of-scope error was actually
lost altogether in Trac #14000
* In TcSimplify.simplifyInfer, if there are definite (insoluble)
errors, it's better to suppress the following ambiguity test,
because the type may be bogus anyway. See TcSimplify
Note [Quantification with errors]. This fix seems a bit clunky,
but it'll do for now.
|
|
|
|
|
|
|
|
| |
This ASSERT failure (in substTy) was reported in Trac #14024.
This patch gets the in-scope set right.
(Does not fix tests T13822 or T13594.)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
In Check.hs (pattern match ovelap checking) we to figure out the
instantiation of a pattern synonym from the type of the pattern. We
were doing this utterly wrongly. Trac #13768 demonstrated this
bogosity.
The fix is easy; and is described in PatSyn.hs
Note [Pattern synonym result type]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Get utf8 encoded arguments before we call hs_init and use them
instead of ignoring hs_init arguments. This reduces differing
behaviour of the RTS between windows and linux and simplifies
the code involved.
A few testcases were changed to expect the same result on windows
as on linux after the changes.
This fixes #13940.
Test Plan: ./validate
Reviewers: austin, hvr, bgamari, erikd, simonmar, Phyx
Subscribers: Phyx, rwbarton, thomie
GHC Trac Issues: #13940
Differential Revision: https://phabricator.haskell.org/D3739
|