[Git][ghc/ghc][wip/T15336] 22 commits: Disable optimisation when building Cabal lib for stage0

Ben Gamari gitlab at gitlab.haskell.org
Tue Jun 18 13:34:05 UTC 2019



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


Commits:
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

- - - - -
68627b65 by Ben Gamari at 2019-06-18T13:33:57Z
ghci: Don't rely on resolution of System.IO to base module

Previously we would hackily evaluate a textual code snippet to compute
actions to disable I/O buffering and flush the stdout/stderr handles.
This broke in a number of ways (#15336, #16563).

Instead we now ship a module (`GHC.GHCi.Helpers`) with `base` containing
the needed actions. We can then easily refer to these via `Orig` names.

- - - - -
db015ba7 by Ben Gamari at 2019-06-18T13:33:57Z
testsuite: Add test for #16563

- - - - -


30 changed files:

- .gitlab-ci.yml
- HACKING.md
- compiler/cmm/CmmParse.y
- compiler/deSugar/Check.hs
- compiler/ghc.cabal.in
- compiler/prelude/PrelNames.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
- ghc/GHCi/UI/Monad.hs
- hadrian/cabal.project
- hadrian/src/Settings/Flavours/Development.hs
- libraries/base/GHC/Event/Poll.hsc
- + libraries/base/GHC/GHCi/Helpers.hs
- libraries/base/base.cabal
- libraries/base/tests/IO/all.T
- libraries/base/tests/Numeric/all.T
- libraries/base/tests/all.T
- mk/flavours/devel1.mk
- mk/flavours/devel2.mk
- mk/flavours/validate.mk
- testsuite/config/ghc
- testsuite/driver/testlib.py
- testsuite/tests/codeGen/should_compile/all.T


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/750b199a0d971ebc02b367fcd19c4d646e8bf664...db015ba752ef352b50f2d15f200a585387be630f

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/750b199a0d971ebc02b367fcd19c4d646e8bf664...db015ba752ef352b50f2d15f200a585387be630f
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/20190618/3327a1b3/attachment.html>


More information about the ghc-commits mailing list