[Git][ghc/ghc][wip/T13786] 36 commits: gitlab-ci: Lint testsuite for framework failures

Ben Gamari gitlab at gitlab.haskell.org
Wed Jun 19 15:45:34 UTC 2019



Ben Gamari pushed to branch wip/T13786 at Glasgow Haskell Compiler / GHC


Commits:
503e830c by Ben Gamari at 2019-06-15T03:10:08Z
gitlab-ci: Lint testsuite for framework failures

This introduces a new lint job checking for framework failures and
listing broken tests.

- - - - -
b5ea9323 by Ben Gamari at 2019-06-15T03:10:08Z
lint: Only apply --interactive lint to testsuite .T files

- - - - -
5c97211c by Ben Gamari at 2019-06-15T03:10:08Z
gitlab-ci: Lint the linters

- - - - -
257165b4 by Alp Mestanogullari at 2019-06-15T03:10:46Z
Remove duplicates from 'ghc --info' output

- - - - -
5da6c86f by Ben Gamari at 2019-06-15T19:14:01Z
Bump unix submodule

Skips `executeFile001` test in `threaded2` way. Fixes #16814.

- - - - -
20b4d5ec by Ben Gamari at 2019-06-16T03:32:38Z
Disable optimisation when building Cabal lib for stage0

This disables optimisation when building Cabal for Hadrian and
stage0 `ghc-cabal`. Cabal is performance critical in neither case nor
will any performance difference here be visible to the end-user.

See #16817.

- - - - -
76b7f619 by Ben Gamari at 2019-06-16T03:32:38Z
Disable optimisation when building Cabal in development flavours

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.

- - - - -
0d2a4258 by Ben Gamari at 2019-06-16T03:33:13Z
testsuite: Introduce concurrent_ways set

Previously we just tested for the threaded2 when determining whether to
skip tests which are fragile under concurrent execution. However, this
isn't the only way which is concurrent.

- - - - -
beacb6fd by Ben Gamari at 2019-06-16T03:33:13Z
testsuite: Skip hDuplicateTo001 in concurrent ways

As noted in #16819, this operation is racy under concurrent execution.

- - - - -
ca721193 by Aiken Cairncross at 2019-06-16T03:33:50Z
Fix typo in error message

- - - - -
57b71848 by Ben Gamari at 2019-06-16T03:34:25Z
testsuite: Add assertions that way lists are in fact lists

Previously there were a few cases where operations like `omit_ways`
were incorrectly passed a single way (e.g. `omit_ways('threaded2')`).
This won't work as the author expected.

- - - - -
25ee60cd by Ryan Scott at 2019-06-16T03:35:03Z
Synchronize ClsInst.doTyConApp with TcTypeable validity checks (#15862)

Issue #15862 demonstrated examples of type constructors on which
`TcTypeable.tyConIsTypeable` would return `False`, but the `Typeable`
constraint solver in `ClsInst` (in particular, `doTyConApp`) would
try to generate `Typeable` evidence for anyway, resulting in
disaster. This incongruity was caused by the fact that `doTyConApp`
was using a weaker validity check than `tyConIsTypeable` to determine
if a type constructor warrants `Typeable` evidence or not. The
solution, perhaps unsurprisingly, is to use `tyConIsTypeable` in
`doTyConApp` instead.

To avoid import cycles between `ClsInst` and `TcTypeable`, I factored
out `tyConIsTypeable` into its own module, `TcTypeableValidity`.

Fixes #15862.

- - - - -
4138bf86 by Krzysztof Gogolewski at 2019-06-16T03:35:38Z
Remove dead code

- - - - -
db313f98 by Ben Gamari at 2019-06-16T10:26:38Z
base/Event/Poll: Drop POLLRDHUP enum item

Previously the Event enumeration produced by hsc2hs would sometimes
include a currently-unused POLLRDHUP item. This unused binding would
result in a build failure. Drop it.

- - - - -
81608e82 by Ben Gamari at 2019-06-16T10:26:38Z
testsuite: Fix T8602 on musl

Musl wants hash-bangs on all executables.

- - - - -
a0f68379 by Ben Gamari at 2019-06-16T10:26:38Z
testsuite: Ensure T5423 flushes C output buffer

Previously T5423 would fail to flush the printf output buffer.
Consequently it was platform-dependent whether the C or Haskell print
output would be emitted first.

- - - - -
543dfaab by Ben Gamari at 2019-06-16T10:26:38Z
testsuite: Flush conc059's printf buffer

Otherwise it the order out the Haskell and C output will be
system-dependent.

- - - - -
e647752e by Ben Gamari at 2019-06-16T10:26:38Z
testsuite: Ensure that ffi005 output order is predictable

The libc output buffer wasn't being flushed, making the order
system-depedent.

- - - - -
338336d3 by Ben Gamari at 2019-06-16T10:26:38Z
gitlab-ci: Build alpine release bindists

- - - - -
75c6ccf7 by Alp Mestanogullari at 2019-06-16T10:27:17Z
fix runghc's GHC detection logic to cover the "in-tree Hadrian build" scenario

Before this patch, runghc would only run the GHC detection logic on Windows and
assume that it was invoked through a wrapper script on all other platforms.
This patch lifts this limitation and makes that logic work for the scenario
where someone is calling the runghc executable directly, without passing an
explicit path to GHC.

- - - - -
3c35e140 by Ben Gamari at 2019-06-16T23:38:51Z
testsuite: Really fix #16741

The previous fix, !1095, didn't work as `--show-iface` ignores
`-dsuppress-ticks`. Rework the test instead.

- - - - -
b3bb1b06 by Ben Gamari at 2019-06-16T23:38:51Z
gitlab-ci: Don't allow failure of deb9-dwarf job

This #16741 out of the way this should now pass.

- - - - -
b965de1e by Ömer Sinan Ağacan at 2019-06-16T23:39:29Z
Use TupleSections in CmmParse.y, simplify a few exprs

- - - - -
63965ae3 by Ben Gamari at 2019-06-17T05:20:21Z
make: Clean includes/settings file

Now since this is generated by the build system we should ensure that it
is properly cleaned.

[skip ci]

- - - - -
bb141114 by Siddharth Bhat at 2019-06-17T05:20:57Z
Add link to mfix.github.io/ghc in HACKING.md

- - - - -
24afbfe9 by Ben Gamari at 2019-06-17T14:20:32Z
gitlab-ci: Run nofib on binary distributions

Updates docker images to ensure that the `time` utility is available.

- - - - -
62f0213d by Fumiaki Kinoshita at 2019-06-18T20:00:20Z
Data.Ord: give a field name getDown to Down

- - - - -
da33f2bb by Fumiaki Kinoshita at 2019-06-18T20:00:20Z
Add more newtype-derived instances to Data.Ord.Down

Metric Increase:
    haddock.base

- - - - -
dbf9ca20 by Ben Gamari at 2019-06-18T20:00:56Z
testsuite: Add testcase for #16689

- - - - -
29ec33cd by Ben Gamari at 2019-06-18T20:00:56Z
SafeHaskell: Don't throw -Wsafe warning if module is declared Safe

Fixes #16689.

- - - - -
a491e40c by Ben Gamari at 2019-06-18T20:01:31Z
hadrian: Compile UserSettings with -O0

This guarantees that the interface file for `UserSettings` doesn't 
contain any unfoldings, ensuring that a change in it requires minimal 
rebuilds.
- - - - -
74bd6b22 by Ben Gamari at 2019-06-18T20:02:07Z
testsuite: Add test for #16832

- - - - -
6a92f59d by Ben Gamari at 2019-06-18T20:02:42Z
gitlab-ci: Run alpine builds during nightly job

- - - - -
4549cadf by Andreas Klebinger at 2019-06-18T20:03:19Z
Make sure mkSplitUniqSupply stores the precomputed mask only.

mkSplitUniqSupply was lazy on the boxed char.

This caused a bunch of issues:
* The closure captured the boxed Char
* The mask was recomputed on every split of the supply.
* It also caused the allocation of MkSplitSupply to happen in it's own
(allocated) closure. The reason of which I did not further investigate.

We know force the computation of the mask inside mkSplitUniqSupply.
* This way the mask is computed at most once per UniqSupply creation.
* It allows ww to kick in, causing the closure to retain the unboxed
value.

Requesting Uniques in a loop is now faster by about 20%.

I did not check the impact on the overall compiler, but I added a test
to avoid regressions.

- - - - -
c256c391 by Ben Gamari at 2019-06-19T15:45:28Z
testsuite: Test for #13786

- - - - -
a6959d57 by Ben Gamari at 2019-06-19T15:45:28Z
ghci: Load static objects in batches

Previously in the case where GHC was dynamically linked we would load
static objects one-by-one by linking each into its own shared object and
dlopen'ing each in order. However, this meant that the link would fail
in the event that the objects had cyclic symbol dependencies.

Here we fix this by merging each "run" of static objects into a single
shared object and loading this.

Fixes #13786 for the case where GHC is dynamically linked.

- - - - -


30 changed files:

- .gitlab-ci.yml
- .gitlab/linters/check-makefiles.py
- .gitlab/linters/linter.py
- HACKING.md
- compiler/basicTypes/UniqSupply.hs
- compiler/cmm/CmmParse.y
- compiler/deSugar/Check.hs
- compiler/ghc.cabal.in
- compiler/ghci/Linker.hs
- compiler/main/DynFlags.hs
- compiler/main/HscMain.hs
- compiler/rename/RnSplice.hs
- compiler/simplCore/CoreMonad.hs
- compiler/typecheck/ClsInst.hs
- compiler/typecheck/TcEvidence.hs
- compiler/typecheck/TcRnMonad.hs
- compiler/typecheck/TcTypeable.hs
- + compiler/typecheck/TcTypeableValidity.hs
- compiler/utils/MonadUtils.hs
- ghc.mk
- hadrian/cabal.project
- hadrian/src/Settings/Flavours/Development.hs
- hadrian/src/UserSettings.hs
- libraries/base/Control/Monad/Fix.hs
- libraries/base/Data/Ord.hs
- libraries/base/GHC/Event/Poll.hsc
- libraries/base/changelog.md
- libraries/base/tests/IO/all.T
- libraries/base/tests/Numeric/all.T
- libraries/base/tests/all.T


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/5c64052dbca31b9bf27c4fd4f32ff9ea8369ace5...a6959d57c97c5817ae5e9c08f9b885b113783470

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/5c64052dbca31b9bf27c4fd4f32ff9ea8369ace5...a6959d57c97c5817ae5e9c08f9b885b113783470
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20190619/11901879/attachment-0001.html>


More information about the ghc-commits mailing list