[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 17 commits: Add test for #22162

Marge Bot (@marge-bot) gitlab at gitlab.haskell.org
Thu Dec 8 20:55:27 UTC 2022



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


Commits:
f5f45cb9 by Matthew Pickering at 2022-12-08T15:55:10-05:00
Add test for #22162

- - - - -
854690aa by Matthew Pickering at 2022-12-08T15:55:10-05:00
ci: Add job to test interface file determinism guarantees

In this job we can run on every commit we add a test which builds the
Cabal library twice and checks that the ABI hash and interface hash is
stable across the two builds.

* We run the test 20 times to try to weed out any race conditions due to
  `-j`
* We run the builds in different temporary directories to try to weed
  out anything related to build directory affecting ABI or interface
  file hash.

Fixes #22180

- - - - -
eaea2e33 by Matthew Pickering at 2022-12-08T15:55:10-05:00
ci: Add job for testing interface stability across builds

The idea is that both the bindists should product libraries with the
same ABI and interface hash.
So the job checks with ghc-pkg to make sure the computed ABI
is the same.

In future this job can be extended to check for the other facets of
interface determinism.

Fixes #22180

- - - - -
9f1df6bc by Matthew Pickering at 2022-12-08T15:55:10-05:00
backpack: Be more careful when adding together ImportAvails

There was some code in the signature merging logic which added together
the ImportAvails of the signature and the signature which was merged
into it. This had the side-effect of making the merged signature depend
on the signature (via a normal module dependency). The intention was to
propagate orphan instances through the merge but this also messed up
recompilation logic because we shouldn't be attempting to load B.hi when
mergeing it.

The fix is to just combine the part of ImportAvails that we intended to
(transitive info, orphan instances and type family instances) rather
than the whole thing.

- - - - -
4ff743c9 by Matthew Pickering at 2022-12-08T15:55:10-05:00
Fix mk_mod_usage_info if the interface file is not already loaded

In #22217 it was observed that the order modules are compiled in affects
the contents of an interface file. This was because a module dependended
on another module indirectly, via a re-export but the interface file for
this module was never loaded because the symbol was never used in the
file.

If we decide that we depend on a module then we jolly well ought to
record this fact in the interface file! Otherwise it could lead to very
subtle recompilation bugs if the dependency is not tracked and the
module is updated.

Therefore the best thing to do is just to make sure the file is loaded
by calling the `loadSysInterface` function.  This first checks the
caches (like we did before) but then actually goes to find the interface
on disk if it wasn't loaded.

Fixes #22217

- - - - -
2fc792a3 by lrzlin at 2022-12-08T15:55:11-05:00
Add initial support for LoongArch Architecture.

- - - - -
a45c48ea by Bodigrim at 2022-12-08T15:55:14-05:00
Update submodule mtl to 2.3.1, parsec to 3.1.15.1, haddock and Cabal to HEAD

- - - - -
a1afe06d by Bodigrim at 2022-12-08T15:55:14-05:00
Allow mtl-2.3 in hadrian

- - - - -
33316e28 by Bodigrim at 2022-12-08T15:55:14-05:00
Support mtl-2.3 in check-exact

- - - - -
f82de413 by Bodigrim at 2022-12-08T15:55:14-05:00
Fix tests

- - - - -
9dce459b by Sebastian Graf at 2022-12-08T15:55:14-05:00
Make (^) INLINE (#22324)

So that we get to cancel away the allocation for the lazily used base.

We can move `powImpl` (which *is* strict in the base) to the top-level
so that we don't duplicate too much code and move the SPECIALISATION
pragmas onto `powImpl`.

The net effect of this change is that `(^)` plays along much better with
inlining thresholds and loopification (#22227), for example in `x2n1`.

Fixes #22324.

- - - - -
c2f39846 by Matthew Pickering at 2022-12-08T15:55:15-05:00
Typeable: Fix module locations of some definitions in GHC.Types

There was some confusion in Data.Typeable about which module certain
wired-in things were defined in. Just because something is wired-in
doesn't mean it comes from GHC.Prim, in particular things like LiftedRep
and RuntimeRep are defined in GHC.Types and that's the end of the story.

Things like Int#, Float# etc are defined in GHC.Prim as they have no
Haskell definition site at all so we need to generate type
representations for them (which live in GHC.Types).

Fixes #22510

- - - - -
a17edf78 by Sebastian Graf at 2022-12-08T15:55:15-05:00
Make `drop` and `dropWhile` fuse (#18964)

I copied the fusion framework we have in place for `take`.
T18964 asserts that we regress neither when fusion fires nor when it doesn't.

Fixes #18964.

- - - - -
344d1583 by Sebastian Graf at 2022-12-08T15:55:16-05:00
Do not strictify a DFun's parameter dictionaries (#22549)

... thus fixing #22549.

The details are in the refurbished and no longer dead
`Note [Do not strictify a DFun's parameter dictionaries]`.

There's a regression test in T22549.

- - - - -
2d1c7303 by John Ericson at 2022-12-08T15:55:16-05:00
Delete `rts/package.conf.in`

It is a relic of the Make build system. The RTS now uses a
`package.conf` file generated the usual way by Cabal.

- - - - -
d64d8742 by Krzysztof Gogolewski at 2022-12-08T15:55:17-05:00
Fixes around primitive literals

* The SourceText of primitive characters 'a'# did not include
  the #, unlike for other primitive literals 1#, 1##, 1.0#, 1.0##, "a"#.
  We can now remove the function pp_st_suffix, which was a hack
  to add the # back.
* Negative primitive literals shouldn't use parentheses, as described in
  Note [Printing of literals in Core]. Added a testcase to T14681.

- - - - -
e839c0af by Bryan Richter at 2022-12-08T15:55:17-05:00
testsuite: Mark conc024 fragile on Windows

- - - - -


30 changed files:

- .gitlab-ci.yml
- .gitlab/ci.sh
- compiler/CodeGen.Platform.h
- compiler/GHC/CmmToAsm.hs
- compiler/GHC/CmmToAsm/Reg/Graph/TrivColorable.hs
- compiler/GHC/CmmToAsm/Reg/Linear.hs
- compiler/GHC/CmmToAsm/Reg/Linear/FreeRegs.hs
- compiler/GHC/CmmToAsm/Reg/Target.hs
- compiler/GHC/Core/Opt/DmdAnal.hs
- compiler/GHC/CoreToStg/Prep.hs
- compiler/GHC/Driver/Pipeline/Execute.hs
- compiler/GHC/Hs/Lit.hs
- compiler/GHC/HsToCore.hs
- compiler/GHC/HsToCore/Usage.hs
- compiler/GHC/Iface/Make.hs
- compiler/GHC/Iface/Recomp.hs
- compiler/GHC/Parser/Lexer.x
- compiler/GHC/Platform.hs
- + compiler/GHC/Platform/LoongArch64.hs
- compiler/GHC/Platform/Regs.hs
- compiler/GHC/Tc/Instance/Typeable.hs
- compiler/GHC/Tc/Utils/Backpack.hs
- compiler/GHC/Types/SourceText.hs
- compiler/ghc.cabal.in
- configure.ac
- hadrian/cabal.project
- hadrian/hadrian.cabal
- hadrian/src/Oracles/Flag.hs
- libraries/Cabal
- libraries/base/GHC/List.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/b61f5645be499faa79383c2cc2f1d156c1d69a58...e839c0af64e77995a0faf8cee58ba93a117b0ae2

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/b61f5645be499faa79383c2cc2f1d156c1d69a58...e839c0af64e77995a0faf8cee58ba93a117b0ae2
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/20221208/83e1e265/attachment-0001.html>


More information about the ghc-commits mailing list