| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Triggered by an observation by Joachim, Simon felt the urge to clean up
the CSE code a bit. This is the result.
(Code by Simon, commit message and other leg-work by Joachim)
Differential Revision: https://phabricator.haskell.org/D2074
|
|
|
|
|
|
|
| |
This reverts commit 28fe0eea4d161b707f67aae26fddaa2e60d8a901 due to
various regressions. I’m not sure why my local
./validate --slow
run did not catch this, though.
|
|
|
|
|
|
|
|
| |
Richard accidetally introduced this change in his big kind-equality
patch. The code is wrong, and potentially could cause binders to
be re-ordered.
Worth merging to 8.0.
|
|
|
|
|
|
|
|
|
| |
as suggested in ticket:11770#comment:1. This code was buggy (#11770),
and the occurrence analyzer does the same job anyways.
This also elaborates the notes in the occurrence analyzer accordingly.
Differential Revision: https://phabricator.haskell.org/D2070
|
|
|
|
|
|
| |
The result of a series of patches on type-error messages for
pattern synonyms had become a bit baroque. This tidies it up
a bit. Still not fantastic, but better.
|
|
|
|
|
|
|
|
|
| |
For some reason a SigSkol had an ExpType in it, and there were
lots of places where we needed it to have a TcType. And was indeed
always a Check. All a lot of fuss about nothing.
Delete code, fewer failure points, types are more precise.
All good.
|
|
|
|
|
| |
Mainly to make it clearer that tauifyExpType
is a no-op on (Check ty)
|
|
|
|
|
|
|
|
|
|
| |
* Move the several calls of tauifyMultipleMatches into tcMatches,
so that it can be called only once, and the invariants are
clearer
* I discovered in doing this that HsLamCase had a redundant and
tiresome argument, so I removed it. That in turn allowed some
modest but nice code simplification
|
| |
|
|
|
|
| |
No change in behaviour
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This turns `Any` into a standard wired-in type family defined in
`GHC.Types`, instead its current incarnation as a magical creature
provided by the `GHC.Prim`. Also kill `AnyK`.
See #10886.
Test Plan: Validate
Reviewers: simonpj, goldfire, austin, hvr
Reviewed By: simonpj
Subscribers: goldfire, thomie
Differential Revision: https://phabricator.haskell.org/D2049
GHC Trac Issues: #10886
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Test Plan: validate
Reviewers: thomie, austin, bgamari
Reviewed By: bgamari
Subscribers: hvr
Differential Revision: https://phabricator.haskell.org/D2058
GHC Trac Issues: #11763
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Define MIN_VERSION_pkgname and VERSION_pkgname macros for all exposed
packages, without requiring -hide-all-packages.
See #10970 comment 7-10 for discussion.
Reviewers: duncan, ezyang, bgamari, austin
Reviewed By: ezyang
Subscribers: hvr, rwbarton
Differential Revision: https://phabricator.haskell.org/D1869
GHC Trac Issues: #10970
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is no benefit to be had from inlining this function and it may
defeat rewrite rules if inlined early. See #11772..
Test Plan: Validate, nofib
Reviewers: simonpj, austin
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D2057
GHC Trac Issues: #11772
|
|
|
|
|
|
| |
This performs the same refactoring performed in D1980 for Eq on Ord,
rewriting the class operations in terms of monomorphic helpers than can
be reliably matched in rewrite rules.
|
|
|
|
| |
Otherwise rewrite rules may not get an opporunity to fire.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 8626d76a72 added checking of the return value when reading from
the `timer_fd` and calling `sysErrorBelch` to print a warning message.
However some error causes (like EINTR) are benign and should just be
ignored.
Test Plan: validate
Reviewers: hvr, austin, bgamari
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D2040
|
|
|
|
|
| |
To clarify what the "pure unifier" does, compared to the
"impure unifiers" in the type checker.
|
|
|
|
|
|
|
|
|
|
|
|
| |
when in fact it does. This was pointed out by Johannes Bechberger and
supported with seemingly statistically sound evidence in his Bachelor
thesis: Of the benchmark shootout programs, 80% benefit significantly by
switchtng from -O to -O2.
See https://uqudy.serpens.uberspace.de/blog/2016/02/08/ghc-performance-over-time/
for a few raw numbers.
Differential Revision: https://phabricator.haskell.org/D2065
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As pointed out by @simonpj on D2044 we don't need
to compute the free vars of the range of the substitution
as most of them are already carried by the monad.
This should be a tiny performance improvement over the version
from before D2044.
Also removes an extra function that is now unnecessary.
Test Plan: ./validate && ./validate --slow
Reviewers: goldfire, simonpj, austin, bgamari
Reviewed By: simonpj
Subscribers: thomie, simonmar, simonpj
Differential Revision: https://phabricator.haskell.org/D2060
GHC Trac Issues: #11371
|
| |
|
|
|
|
|
| |
and use normalise_errmsg_fun to check the core output in all.T, instead
relying on code in the Makefile.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This should require -XScopedTypeVariables. It seems this was previously
handled by RnTypes.rnHsBndrSig which called RnTypes.badKindSigErr but
this was broken in Simon's refactor of wildcards,
1e041b7382b6aa329e4ad9625439f811e0f27232. Here we re-introduce a check
in RnPat. See #11663.
Test Plan: Validate with `T11663`
Reviewers: austin, simonpj
Reviewed By: austin
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D2054
GHC Trac Issues: #11663
|
| |
|
|
|
|
| |
too verbose, and usualy preceded by Str= anyways.
|
|
|
|
|
| |
to be consistent with the other uses of nop vs. top in Demand.hs. Also,
stop prettyprinting top strictness signatures in Core dumps.
|
|
|
|
| |
This is a result of the discussion in ticket:11731#comment:9.
|
| |
|
|
|
|
|
| |
(likely introduced by 99d4e5b4a0bd32813ff8c74e91d2dcf6b3555176, possibly
due to a merge mistake).
|
|
|
|
|
|
|
|
|
|
| |
The report now distinguishes thunks (in the variants single-entry and
standard thunks), constructors and functions (possibly single-entry).
Forthermore, for standard thunks (AP and selector), do not count an
entry when they are allocated. It is not possible to count their
entries, as their code is shared, but better count nothing than count
the wrong thing.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch cleans up various POSIX and XOPEN defines.
We aim to switch to C99 solely and for this the lowest version
of supported POSIX/XOPEN is:
_XOPEN_SOURCE 600
_POSIX_C_SOURCE 200112L
Test Plan:
tested on Solaris 11 and OpenBSD 5.9. Should be good
also on Solaris 10, FreeBSD and DragonFlyBSD. We need to test
on Mac OS X, Linux and MinGW
Reviewers: austin, bgamari, erikd, hvr
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D2056
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Test Plan: currently no test plan
Reviewers: hvr, RyanGlScott, bgamari, austin
Reviewed By: RyanGlScott, bgamari, austin
Subscribers: thomie, RyanGlScott, andrewthad
Differential Revision: https://phabricator.haskell.org/D2051
GHC Trac Issues: #11756
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need the free vars of `t2` to satisfy the substitution
invariant. Luckily they are in the in-scope carried around.
Test Plan: ./validate
Reviewers: bgamari, austin, goldfire, simonpj
Reviewed By: simonpj
Subscribers: thomie, simonmar
Differential Revision: https://phabricator.haskell.org/D2044
GHC Trac Issues: #11371
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We will use `ty` in the range of the substitution, hence
the substitution needs `ty`'s free vars in-scope.
They don't seem easily available by other means, so we
just compute them.
Test Plan: ./validate
Reviewers: austin, goldfire, bgamari, simonpj
Reviewed By: simonpj
Subscribers: thomie, simonmar
Differential Revision: https://phabricator.haskell.org/D2043
GHC Trac Issues: #11371
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`ty` doesn't have to be a closed type, so we need to add its
free vars to the in-scope set. They don't seem to be
available anywhere nearby, so we have to compute them.
Test Plan: ./validate
Reviewers: goldfire, austin, bgamari, simonpj
Reviewed By: simonpj
Subscribers: thomie, simonmar
Differential Revision: https://phabricator.haskell.org/D2042
GHC Trac Issues: #11371
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Test Plan: Read it
Reviewers: austin
Reviewed By: austin
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D2052
GHC Trac Issues: #7411, #11197, #11554, #11715
|
| |
|
|
|
|
| |
Per Simon's request.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are implemented using `MVars` which have known caveats. Suggest
the use of `TChan` from the stm library instead.
Test Plan: n/a
Reviewers: austin, hvr, bgamari
Reviewed By: bgamari
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D2047
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is to be merged once a fix for the Harbormaster build script has
been applied.
This reverts commit a14296c2660521db8ba965065687e45cee4e3401. These were
previously disabled due to Harbormaster validation failures.
Also, apply CPP check to .c and .h files in addition to Haskell sources.
Test Plan: Let Harbormaster validate
Reviewers: austin
Reviewed By: austin
Subscribers: hvr, thomie
Differential Revision: https://phabricator.haskell.org/D1580
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Solaris is quite picky about C and POSIX version combination.
For recent change to C99 we need to switch _XPG6 on which means
_XOPEN_SOURCE should be defined to 600
Reviewers: austin, bgamari, erikd
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D2053
|
|
|
|
|
| |
This was probably missed during the big build-system refactoring in
34cc75e1a62638f2833815746ebce0a9114dc26b
|
|
|
|
|
|
|
|
|
| |
Most notably, this pulls in the following changes
> Fix breakByte and spanByte rewrite rules
> Implement `stripPrefix`/`stripSuffix`
The first patch is related to #11688
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The test for the existence of the executable breaks on MS Windows. It is
furthermore needless, because if the test can be executed the executable
is obviously there.
Reviewers: austin, bgamari, Phyx
Reviewed By: Phyx
Subscribers: Phyx, thomie
Differential Revision: https://phabricator.haskell.org/D2050
GHC Trac Issues: #4114
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the first phase of addressing #11757 which aims to make C99
support a base-line requirement for GHC and clean up the code-base to
use C99 facilities when sensible.
This patch exploits the logic/heuristic used by `AC_PROG_CC_C99` to
determine the flags needed in case the C compiler isn't able to compile
C99 code in its current mode. We can't use `AC_PROG_CC_C99` directly
though because GHC's build-system expects CC to contain a filename
without any flags, while `AC_PROG_CC_C99` would e.g. result in
`CC="gcc -std=gnu99"`. Morever, we support different `CC`s for
stage0/1/2, so we need a version of `AC_PROG_CC_C99` for which we can
specify the `CC`/`CFLAGS` variables to operate on. This is what
`FP_SET_CFLAGS_C99` does.
Note that Clang has been defaulting to C99+ for a long time, while GCC 5
defaults to C99+ as well. So this has mostly an affect on older GCCs
versions prior to 5.0 and possibly compilers other than GCC/Clang (which
are not officially supported for building GHC anyway).
Reviewers: kgardas, erikd, bgamari, austin
Reviewed By: erikd
Differential Revision: https://phabricator.haskell.org/D2045
|