| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
* replace integer-* package selection with ghc-bignum backend selection
|
|
|
|
|
|
|
| |
Previously we used the deb9-debug job which used the `validate` build
flavour which disabled `BUILD_SPHINX_PDF`. Fix this.
Fixes #16890.
|
|
|
|
|
|
|
|
|
|
| |
This updates the make and Hadrian build flavours targetting developers
to disable optimisation when building the Cabal library. Cabal tends to
tickle some very bad compiler performance cases (e.g. #16577) so
disabling optimisation here makes a sizeable impact on overall build
time.
See #16817.
|
|
|
|
|
|
| |
To cover ci conditions from ghc8.6 to 8.9, I add `-haddock` option
to `.circleci/prepare-system.sh` and .gitlab-ci.yml.
after including `mk/flavours/*`.
|
|
|
|
|
|
|
|
|
|
| |
To cover ci conditions from ghc8.6 to 8.9, I add `-haddock` option
to `mk/flavours/perf.mk` rather than `.circleci/prepare-system.sh`.
Because in windows condition of ghc-8.9, `mk/flavours/*` is included
after `prepare-system.sh`.
In addition, in linux condition of ghc-8.6, `mk/flavors/perf.mk` is used.
|
|
|
|
|
| |
This moves all URL references to Trac tickets to their corresponding
GitLab counterparts.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The splitter is an evil Perl script that processes assembler code.
Its job can be done better by the linker's --gc-sections flag. GHC
passes this flag to the linker whenever -split-sections is passed on
the command line.
This is based on @DemiMarie's D2768.
Fixes Trac #11315
Fixes Trac #9832
Fixes Trac #8964
Fixes Trac #8685
Fixes Trac #8629
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Build times when using the quick flavour:
stage1 opt | time (wall) | time (user)
-O1 | 13m | 53m
-O2 | 13m | 51m
So even when we compile stage2 with -O0 (quick)
using -O2 on stage1 is already faster.
The difference is even bigger when freezing
stage1 and doing multiple builds or compiling
stage2 with optimizations.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Our *-cross flavours force -fllvm, this adds flavours for cross
compilation to x86_64, where we can use our native code generator.
Test Plan: ./validate
Reviewers: bgamari
Reviewed By: bgamari
Subscribers: rwbarton, thomie, carter
Differential Revision: https://phabricator.haskell.org/D4443
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This flag only affects whether WARNs are printed to the build log.
ASSERT fails will still be printed and cause an abort.
Most of the WARNs in the compiler are speculative and meant to help with
debugging rather than indicative of any real errors. This causes
a lot of noise in the build log which is not helpful and makes them very
long.
Test Plan: Check that the build log is less than 27000 lines long
Reviewers: austin, bgamari, rwbarton
Reviewed By: bgamari
Subscribers: thomie, snowleopard
Differential Revision: https://phabricator.haskell.org/D3213
|
|
|
|
|
|
|
|
|
|
|
|
| |
Test Plan: harbormaster
Reviewers: nomeata, austin, bgamari
Reviewed By: bgamari
Subscribers: thomie, snowleopard
Differential Revision: https://phabricator.haskell.org/D3276
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a common thing that users who cross-compile must fight against.
It turns out that it's pretty straightforward to make is convenient.
Test Plan: Cross compile without a target `ncurses` available
Reviewers: danharaj, hvr, erikd, austin, rwbarton
Subscribers: rwbarton, thomie, snowleopard
Differential Revision: https://phabricator.haskell.org/D3177
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: austin, bgamari, RyanGlScott
Reviewed By: bgamari, RyanGlScott
Subscribers: RyanGlScott, thomie
Differential Revision: https://phabricator.haskell.org/D2824
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When CrossCompiling=YES or Stage1Only=YES, building the haddocks and the
User's Guide should be skipped, because haddock and mkUserGuidePart
depend on the GHC API.
See Note [No stage2 packages when CrossCompiling or Stage1Only] for
details.
There are several places in the build system where the variables
HADDOCK_DOCS and BUILD_SPHINX_* are checked. Instead of also checking
for the variables CrossCompiling or Stage1Only in all those places,
`make` will now exit with a nice error message when the user requests
the impossible.
Reviewers: rwbarton, austin, bgamari
Reviewed By: bgamari
Differential Revision: https://phabricator.haskell.org/D1882
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since the whole point of validation is to test the compiler, assertions
should be enabled at least for some part of the build. Previously
assertions were only enabled (1) in stage 2 compiler (2) when "slow"
setting is used. With this patch we enable assertions in stage 1
compiler in all settings, to test them on (1) the compiler itself (2)
the libraries, even with the "fast" setting.
This will make "fast" setting slower, but the difference should be quite
modest - I didn't realize a significant difference in validation times.
Reviewers: bgamari, austin, thomie
Reviewed By: thomie
Differential Revision: https://phabricator.haskell.org/D1890
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In an attempt to catch bugs involving using undef values, replace
undef literals by values likely to cause crashes or test failures.
We do this only when validating since it is a deoptimization.
This depends on D1857 to catch such bugs in the RTS (such as #11487).
Test Plan:
Did a build with
```
BuildFlavour = quick-llvm
SRC_HC_OPTS_STAGE1 = -fllvm-fill-undef-with-garbage
```
The build crashed when running ghc-stage2, as expected.
Reviewers: austin, bgamari
Reviewed By: bgamari
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D1858
|
| |
|
|
|
|
| |
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a follow up to 841924c9587c10488a18e307b573720977bf4f13,
where `-fllvm` was explicitly removed from GhcStage1HcOpts for
perf-cross.
After removing -fllvm from GhcStage1HcOpts, it should be removed from
SRC_HC_OPTS as well, because SRC_HC_OPTS are added to every Haskell
compilation. That's what this patch does.
BuildFlavour bench-cross (added in ddf79ebf69fe4a6e69d69d451a6040a53b1ea12c),
is probably never used. But for consistency, also use -fllvm here, for
building stage2 and the libraries.
Reviewed by: austin
Differential Revision: https://phabricator.haskell.org/D1228
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Just install all packages that are built. Don't make an exception for
the dph and extra packages.
You can control whether the dph and extra packages should be build using
the variables BUILD_DPH and BUILD_EXTRA_PKGS. These variables didn't
exist before. But now that they do, InstallExtraPackages isn't really
needed anymore.
Reviewed by: austin
Differential Revision: https://phabricator.haskell.org/D1227
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Note that SRC_HC_OPTS are added to every Haskell compilation. So
there isn't any need to also add `-fllvm` to GhcStage1HcOpts,
GhcStage2HcOpts and GhcLibHcOpts.
Small bug fix: make sure we test for -fllvm in SRC_HC_OPTS, to check
whether the bootstrap compiler is affected by bug #9439.
Reviewed by: austin
Differential Revision: https://phabricator.haskell.org/D1188
|
|
This allows easier diffing of different BuildFlavours, including
`mk/flavours/validate.mk`.
Reviewed By: bgamari, austin
Differential Revision: https://phabricator.haskell.org/D1050
|