[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 6 commits: Use platform in Iface Binary

Marge Bot gitlab at gitlab.haskell.org
Fri May 1 08:17:19 UTC 2020



 Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC


Commits:
2cf5d330 by Sylvain Henry at 2020-05-01T04:17:11-04:00
Use platform in Iface Binary

- - - - -
48c8d671 by Sylvain Henry at 2020-05-01T04:17:11-04:00
Refactor PprDebug handling

If `-dppr-debug` is set, then PprUser and PprDump styles are silently
replaced with PprDebug style. This was done in `mkUserStyle` and
`mkDumpStyle` smart constructors. As a consequence they needed a
DynFlags parameter.

Now we keep the original PprUser and PprDump styles until they are used
to create an `SDocContext`. I.e. the substitution is only performed in
`initSDocContext`.

- - - - -
81e5ed90 by Sylvain Henry at 2020-05-01T04:17:11-04:00
Remove PprStyle param of logging actions

Use `withPprStyle` instead to apply a specific style to a SDoc.

- - - - -
5fadf4c1 by Sylvain Henry at 2020-05-01T04:17:11-04:00
Fully remove PprDebug

PprDebug was a pain to deal with consistently as it is implied by
`-dppr-debug` but it isn't really a PprStyle. We remove it completely
and query the appropriate SDoc flag instead (`sdocPprDebug`) via
helpers (`getPprDebug` and its friends).

- - - - -
78393245 by Sebastian Graf at 2020-05-01T04:17:11-04:00
PmCheck: Only call checkSingle if we would report warnings

- - - - -
a6e8bbfd by Sebastian Graf at 2020-05-01T04:17:12-04:00
PmCheck: Pick up `EvVar`s bound in `HsWrapper`s for long-distance info

`HsWrapper`s introduce evidence bindings through `WpEvLam` which the
pattern-match coverage checker should be made aware of.

Failing to do so caused #18049, where the resulting impreciseness of
imcompleteness warnings seemingly contradicted with
`-Winaccessible-code`.

The solution is simple: Collect all the evidence binders of an
`HsWrapper` and add it to the ambient `Deltas` before desugaring
the wrapped expression.

But that means we pick up many more evidence bindings, even when they
wrap around code without a single pattern match to check! That regressed
`T3064` by over 300%, so now we are adding long-distance info lazily
through judicious use of `unsafeInterleaveIO`.

Fixes #18049.

- - - - -


30 changed files:

- compiler/GHC.hs
- compiler/GHC/Cmm/Pipeline.hs
- compiler/GHC/CmmToAsm.hs
- compiler/GHC/CmmToLlvm/Base.hs
- compiler/GHC/Core/Lint.hs
- compiler/GHC/Core/Opt/Driver.hs
- compiler/GHC/Core/Opt/Monad.hs
- compiler/GHC/Core/Opt/Simplify.hs
- compiler/GHC/Core/Ppr.hs
- compiler/GHC/Core/Rules.hs
- compiler/GHC/Core/TyCo/Ppr.hs
- compiler/GHC/Core/TyCon.hs
- compiler/GHC/Driver/Backpack.hs
- compiler/GHC/Driver/CodeOutput.hs
- compiler/GHC/Driver/Make.hs
- compiler/GHC/Driver/Pipeline.hs
- compiler/GHC/Driver/Session.hs
- compiler/GHC/Hs/Binds.hs
- compiler/GHC/Hs/Expr.hs
- compiler/GHC/Hs/Pat.hs
- compiler/GHC/HsToCore/Binds.hs
- compiler/GHC/HsToCore/Expr.hs
- compiler/GHC/HsToCore/Match.hs
- compiler/GHC/HsToCore/PmCheck.hs
- compiler/GHC/Iface/Binary.hs
- compiler/GHC/Iface/Ext/Utils.hs
- compiler/GHC/Iface/Load.hs
- compiler/GHC/Iface/Tidy.hs
- compiler/GHC/Iface/Type.hs
- compiler/GHC/Runtime/Debugger.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/aa0ebc8c1716ed18319c261da192e839f2fe688a...a6e8bbfd6161dfca0f5772e84f3f94a6de9c3baf

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/aa0ebc8c1716ed18319c261da192e839f2fe688a...a6e8bbfd6161dfca0f5772e84f3f94a6de9c3baf
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/20200501/5bfa1750/attachment-0001.html>


More information about the ghc-commits mailing list