[Git][ghc/ghc][wip/recomp-mhu-fixes] 5 commits: Don't write o-boot files in Interactive mode

Matthew Pickering (@mpickering) gitlab at gitlab.haskell.org
Tue Dec 27 12:24:29 UTC 2022



Matthew Pickering pushed to branch wip/recomp-mhu-fixes at Glasgow Haskell Compiler / GHC


Commits:
7eb3d284 by Matthew Pickering at 2022-12-27T12:24:17+00:00
Don't write o-boot files in Interactive mode

We should not be producing object files when in interactive mode but we
still produced the dummy o-boot files. These never made it into a
`Linkable` but then confused the recompilation checker.

Fixes #22669

- - - - -
68a53395 by Matthew Pickering at 2022-12-27T12:24:17+00:00
Improve driver diagnostic messages by including UnitId in message

Currently the driver diagnostics don't give any indication about which unit they correspond to.

For example `-Wmissing-home-modules` can fire multiple times for each different home unit and gives no indication about which unit it's actually reporting about.

Perhaps a longer term fix is to generalise the providence information away from a SrcSpan so that these kind of whole project errors can be reported with an accurate provenance. For now we can just include the `UnitId` in the error message.

Fixes #22678

- - - - -
34d4f704 by Matthew Pickering at 2022-12-27T12:24:17+00:00
Key ModSummary cache by UnitId as well as FilePath

Multiple units can refer to the same files without any problem. Just
another assumption which needs to be updated when we may have multiple
home units.

However, there is the invariant that within each unit each file only
maps to one module, so as long as we also key the cache by UnitId then
we are all good.

This led to some confusing behaviour in GHCi when reloading,
multipleHomeUnits_shared distils the essence of what can go wrong.

Fixes #22679

- - - - -
26575c53 by Matthew Pickering at 2022-12-27T12:24:17+00:00
Finder: Look in current unit before looking in any home package dependencies

In order to preserve existing behaviour it's important to look within the current component before consideirng a module might come from an external component.

This already happened by accident in `downsweep`, (because roots are used to repopulated the cache) but in the `Finder` the logic was the wrong way around.

Fixes #22680

- - - - -
a415a312 by Matthew Pickering at 2022-12-27T12:24:17+00:00
Debug: Print full NodeKey when pretty printing ModuleGraphNode

This is helpful when debugging multiple component issues.

- - - - -


30 changed files:

- compiler/GHC/Driver/Errors/Ppr.hs
- compiler/GHC/Driver/Errors/Types.hs
- compiler/GHC/Driver/Make.hs
- compiler/GHC/Driver/Pipeline/Execute.hs
- compiler/GHC/Unit/Finder.hs
- compiler/GHC/Unit/Module/Graph.hs
- testsuite/tests/driver/Makefile
- + testsuite/tests/driver/T22669.hs
- + testsuite/tests/driver/T22669.hs-boot
- testsuite/tests/driver/all.T
- + testsuite/tests/driver/multipleHomeUnits/A.hs
- testsuite/tests/driver/multipleHomeUnits/all.T
- + testsuite/tests/driver/multipleHomeUnits/multipleHomeUnits_import_order.stderr
- + testsuite/tests/driver/multipleHomeUnits/multipleHomeUnits_shared.stderr
- + testsuite/tests/driver/multipleHomeUnits/multipleHomeUnits_warnings.stderr
- + testsuite/tests/driver/multipleHomeUnits/order-matters1/A.hs
- + testsuite/tests/driver/multipleHomeUnits/order-matters1/B.hs
- + testsuite/tests/driver/multipleHomeUnits/order-matters2/A.hs
- + testsuite/tests/driver/multipleHomeUnits/order-matters2/B.hs
- + testsuite/tests/driver/multipleHomeUnits/shared.script
- + testsuite/tests/driver/multipleHomeUnits/unitOrder1
- + testsuite/tests/driver/multipleHomeUnits/unitOrder2
- + testsuite/tests/driver/multipleHomeUnits/unitShared1
- + testsuite/tests/driver/multipleHomeUnits/unitShared2
- + testsuite/tests/driver/multipleHomeUnits/unitWarnings
- testsuite/tests/warnings/should_compile/MissingMod.stderr
- testsuite/tests/warnings/should_compile/T13727/T13727a.stderr
- testsuite/tests/warnings/should_compile/T13727/T13727b.stderr
- testsuite/tests/warnings/should_compile/T13727/T13727f.stderr
- testsuite/tests/warnings/should_compile/T13727/T13727g.stderr


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/decfbf409e5484a034649db1638f3a1bcb7a5a46...a415a312c629de4214db05264530fdccd8fe9a89

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/decfbf409e5484a034649db1638f3a1bcb7a5a46...a415a312c629de4214db05264530fdccd8fe9a89
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/20221227/0d3b1704/attachment.html>


More information about the ghc-commits mailing list