[Git][ghc/ghc][wip/eras-profiling-clean] 6 commits: Turn -Wtype-equality-out-of-scope on by default

Matthew Pickering (@mpickering) gitlab at gitlab.haskell.org
Mon Jan 15 10:15:19 UTC 2024



Matthew Pickering pushed to branch wip/eras-profiling-clean at Glasgow Haskell Compiler / GHC


Commits:
eaf8a06d by Krzysztof Gogolewski at 2024-01-11T00:43:17+01:00
Turn -Wtype-equality-out-of-scope on by default

Also remove -Wnoncanonical-{monoid,monad}-instances from -Wcompat,
since they are enabled by default. Refresh wcompat-warnings/ test
with new -Wcompat warnings.

Part of #24267

Co-authored-by: sheaf <sam.derbyshire at gmail.com>

- - - - -
42bee5aa by Sebastian Graf at 2024-01-12T21:16:21-05:00
Arity: Require called *exactly once* for eta exp with -fpedantic-bottoms (#24296)

In #24296, we had a program in which we eta expanded away an error despite the
presence of `-fpedantic-bottoms`.
This was caused by turning called *at least once* lambdas into one-shot lambdas,
while with `-fpedantic-bottoms` it is only sound to eta expand over lambdas that
are called *exactly* once.
An example can be found in `Note [Combining arity type with demand info]`.

Fixes #24296.

- - - - -
7e95f738 by Andreas Klebinger at 2024-01-12T21:16:57-05:00
Aarch64: Enable -mfma by default.

Fixes #24311

- - - - -
e43788d0 by Jason Shipman at 2024-01-14T12:47:38-05:00
Add more instances for Compose: Fractional, RealFrac, Floating, RealFloat

CLC proposal #226 https://github.com/haskell/core-libraries-committee/issues/226

- - - - -
ae6d8cd2 by Sebastian Graf at 2024-01-14T12:48:15-05:00
Pmc: COMPLETE pragmas associated with Family TyCons should apply to representation TyCons as well (#24326)

Fixes #24326.

- - - - -
3dfb22d8 by Matthew Pickering at 2024-01-15T10:14:26+00:00
rts: eras profiling mode

The eras profiling mode is useful for tracking the life-time of
closures. When a closure is written, the current era is recorded in the
profiling header. This records the era in which the closure was created.

* Enable with -he
* User mode: Use functions in GHC.Profiling.Eras to modify the era
* Automatically: --automatic-era-increment, increases the user era on major
  collections
* The first era is era 1
* -he<era> can be used with other profiling modes to select a specific
  era

If you just want to record the era but not to perform heap profiling you
can use `-he --no-automatic-heap-samples`.

Fixes #24332

- - - - -


30 changed files:

- compiler/GHC/Cmm/Parser.y
- compiler/GHC/Core/Opt/Arity.hs
- compiler/GHC/Core/Opt/OccurAnal.hs
- compiler/GHC/Core/Tidy.hs
- compiler/GHC/CoreToStg.hs
- compiler/GHC/Driver/DynFlags.hs
- compiler/GHC/Driver/Flags.hs
- compiler/GHC/Iface/Type.hs
- compiler/GHC/Stg/Lift/Analysis.hs
- compiler/GHC/StgToCmm/Prof.hs
- compiler/GHC/Types/CompleteMatch.hs
- compiler/GHC/Types/Demand.hs
- compiler/GHC/Types/Id/Make.hs
- docs/users_guide/profiling.rst
- docs/users_guide/using-warnings.rst
- docs/users_guide/using.rst
- libraries/base/base.cabal
- libraries/base/changelog.md
- libraries/base/src/Data/Functor/Compose.hs
- libraries/base/src/GHC/Profiling.hs
- + libraries/base/src/GHC/Profiling/Eras.hs
- libraries/base/src/GHC/RTS/Flags.hsc
- rts/CloneStack.c
- rts/Continuation.c
- rts/Heap.c
- rts/Interpreter.c
- rts/LdvProfile.h
- rts/Messages.c
- rts/PrimOps.cmm
- rts/ProfHeap.c


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/9dfe0a6e00eba6c8d7ab9845d01538cb4f5a4151...3dfb22d856c80b6cb69fbe4b026824da83d31fae

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/9dfe0a6e00eba6c8d7ab9845d01538cb4f5a4151...3dfb22d856c80b6cb69fbe4b026824da83d31fae
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/20240115/5608396f/attachment.html>


More information about the ghc-commits mailing list