| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Previously the linters were tagged with x86_64-linux, meaning that linting jobs
would often get stuck behind builds in the queue. Given that linting jobs are
fairly low-cost they hold up later build stages it is important that we reduce
this latency.
|
| |
|
|
|
|
| |
Our CircleCI builds will fail anyways without large instances.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Test Plan: Observe CircleCI
Reviewers: bgamari
Reviewed By: bgamari
Subscribers: rwbarton, carter
Differential Revision: https://phabricator.haskell.org/D5464
|
|
|
|
| |
Due to #16073.
|
| |
|
|
|
|
|
|
|
| |
It turns out that the submodules hack is useful to ensure that
CI works in forks.
This reverts commit 90ceafa8b9ad60e3c7b72cdd2dacdbeb96bdcddc.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Trac #16038 exposed the fact that TcRnDriver.checkHiBootIface
was creating a binding, in the module being compiled, for
$fxBlah = $fBlah
but $fxBlah was a /GlobalId/. But all bindings should be for
/LocalIds/ else dependency analysis goes down the tubes.
* I added a CoreLint check that an occurrence of a GlobalId
is not bound by an binding of a LocalId. (There is already
a binding-site check that no binding binds a GlobalId.)
* I refactored (and actually signficantly simplified) the
tricky code for dfuns in checkHiBootIface to ensure that
we get LocalIds for those boot-dfuns.
Alas, I then got "duplicate instance" messages when compiling
HsExpr. It turns out that this is a long-standing, but extremely
delicate, bug: even before this patch, if you compile HsExpr
with -ddump-tc-trace, you get "duplicate instance". Without
-ddump-tc-trace, it's OK. What a mess!
The reason for the duplicate-instance is now explained in
Note [Loading your own hi-boot file] in LoadIface. I fixed
it by a Gross Hack in LoadIface.loadInterface. This is at
least no worse than before.
But there should be a better way. I have opened #16081 for this.
|
|
|
|
|
|
|
|
|
| |
In tcExtendRecEnv, there is no need to us setGlobalTypeEnv
(which side-effects the tcg_type_env_var). tcExtendRecEnv
is used only when kind-checking a group of type/class decls
and no knot-tying via tcg_type_env_var is needed.
There is no change in functionality.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
candidateQTyVars was failing to return fully-zonked
tyvars, and that made things fall over chaotically
when we try to sort them into a well-scoped telescope.
Result: Trac #15795
So I made candidateQTvs guarantee to have fully-zonked
tyvars (i.e. with zonked kinds). That's a bit annoying
but not really difficult.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The validity check which rejected things like:
```lang=haskell
type family B x where
A x = x
```
Used to live in the typechecker. But it turns out that this validity
check was //only// being run on closed type families without CUSKs!
This meant that GHC would silently accept something like this:
```lang=haskell
type family B (x :: *) :: * where
A x = x
```
This patch fixes the issue by moving this validity check to the
renamer, where we can be sure that the check will //always// be run.
Test Plan: make test TEST=T16002
Reviewers: simonpj, bgamari
Reviewed By: simonpj
Subscribers: goldfire, rwbarton, carter
GHC Trac Issues: #16002
Differential Revision: https://phabricator.haskell.org/D5420
|
|
|
|
|
|
|
|
| |
When we pretty-print types, we suppress RuntimeRep variables, but
we were being too aggressive in doing so, resulting in Trac #16074.
This patch makes the suppression a bit less aggressive.
See Note [Defaulting RuntimeRep variables]
|
|
|
|
|
|
|
| |
This call plain missing, and as a result the casts
messed up deep-skolemisation in tcSubType
Fixes Trac #16033
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
GHCi's `:info` command was pretty-printined GADT
constructors suboptimally in the following ways:
1. Sometimes, fields were parenthesized when they did not need it,
e.g.,
```lang=haskell
data Foo a where
MkFoo :: (Maybe a) -> Foo a
```
I fixed this by refactoring some code in `pprIfaceConDecl` to be a
little smarter with respect to GADT syntax. See `pprFieldArgTy`
and `pprArgTy`.
2. With `-fprint-explicit-kinds` enabled, there would be times when
specified arguments would be printed without a leading `@` in GADT
return types, e.g.,
```lang=haskell
data Bar @k (a :: k) where
MkBar :: Bar k a
```
It turns out that `ppr_tc_app`, the function which pretty-prints
these return types, was not using the proper machinery to print
out the arguments, which caused the visibilities to be forgotten
entirely. I refactored `ppr_tc_app` to do this correctly.
Test Plan: make test TEST=T16030
Reviewers: goldfire, bgamari, simonpj
Reviewed By: simonpj
Subscribers: simonpj, rwbarton, carter
GHC Trac Issues: #16030
Differential Revision: https://phabricator.haskell.org/D5440
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
See #8959, this is one more place where we
can pretty-print Unicode syntax.
Test Plan: validate
Reviewers: nomeata, bgamari
Reviewed By: bgamari
Subscribers: rwbarton, carter
GHC Trac Issues: #8959
Differential Revision: https://phabricator.haskell.org/D5439
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Rank2Types is deprecated. Don't suggest to users to use it.
Reviewers: bgamari, RyanGlScott, simonpj
Reviewed By: RyanGlScott, simonpj
Subscribers: RyanGlScott, rwbarton, carter
GHC Trac Issues: #16000
Differential Revision: https://phabricator.haskell.org/D5447
|
|
|
|
|
|
|
|
|
|
|
| |
Currently we are having quite some trouble keeping up with our build volume due
to the number of configurations we have. I've split the pipeline into two
halves:
* build, which builds just vanilla deb9-linux with make and hadrian
* full-build, which builds everything else
This will trade-off some latency to more efficient use of our builders.
|
|
|
|
| |
Setting LANG causes trouble on Debian.
|
| |
|
| |
|
| |
|
|
|
|
| |
Our CircleCI builds will fail anyways without large instances.
|
|
|
|
| |
For some reason curl isn't found on the new builder.
|
|
|
|
| |
Might as well make sure it works before we retire it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Namely for:
- stripPrefix
- isPrefixOf
- intersperse
- tails
- map
- scanl
- scanl1
- scanl'
- scanr
- scanr1
- zip
- zipWith
Add examples to `zipWith` and `map`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit introduces Hadrian docs specifically
targeted at GHC devs who are used to building GHC with the make
build system, adapting a good chunk of the following quickstart
page we wrote over the last few months:
https://ghc.haskell.org/trac/ghc/wiki/Building/Hadrian/QuickStart
Reviewers: snowleopard, bgamari
Reviewed By: snowleopard
Subscribers: rwbarton, carter
Differential Revision: https://phabricator.haskell.org/D5446
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix a bug from cb882fc993b4972f7f212b291229ef9e9ade0af9. Without the
comma, all non-diverging codepaths set 'UseLibdw=NO'.
Reviewers: bgamari, nh2
Reviewed By: nh2
Subscribers: rwbarton, erikd, carter
GHC Trac Issues: #15968
Differential Revision: https://phabricator.haskell.org/D5459
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: RyanGlScott, ekmett, hvr, bgamari
Reviewed By: bgamari
Subscribers: rwbarton, carter
GHC Trac Issues: #15995
Differential Revision: https://phabricator.haskell.org/D5456
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`ghci -fno-implicit-import-qualified` didn't start with error message:
```
GHCi, version 8.6.2: http://www.haskell.org/ghc/ :? for help
<interactive>:1:6: error:
Not in scope: ‘System.IO.hSetBuffering’
No module named ‘System.IO’ is imported.
...
```
This change fixes it and update test T2452 to cover this.
Test Plan:
TEST=T2452 make accept
harbormaster build runs
Reviewers: simonmar, bgamari, RyanGlScott
Reviewed By: simonmar
Subscribers: rwbarton, carter
Differential Revision: https://phabricator.haskell.org/D5452
|
| |
|
|
|
|
|
|
| |
As discussed on ghc-devops, CircleCI is changing their billing policy to require
users of instances larger than `medium` to use a paid account. Consequently
these instances will no longer be available to us starting tomorrow.
|
| |
|
| |
|
| |
|
|
|
|
| |
See #15207.
|
| |
|
| |
|
| |
|
|
|
|
| |
The lint checks currently fail due to #15950.
|
|
|
|
| |
These run slowtest and their artifacts are preserved for two years.
|
|
|
|
| |
Namely after 2 weeks
|
|
|
|
| |
Also use 'id'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We used to enqueue another command to change directory in the external
interpreter subprocess, this is not as robust as:
* it can fail with -fno-implict-import-qualified;
* it doesn't work when we `setGHCiMonad` to something other than `IO`.
Neither of them works if `directory` package is hidden though.
Test Plan:
```
$ inplace/bin/ghc-stage2 --interactive # -fexternal-interpreter
GHCi, version 8.7.20181213: http://www.haskell.org/ghc/ :? for help
Prelude> :cd ..
Prelude> System.Directory.getCurrentDirectory
"/data/users/watashi"
Prelude> :!pwd
/data/users/watashi
Prelude>
Leaving GHCi.
```
./validate
Reviewers: simonmar, bgamari, RyanGlScott
Reviewed By: simonmar
Subscribers: rwbarton, carter
Differential Revision: https://phabricator.haskell.org/D5453
|