-
c56567ec
by Simon Peyton Jones at 2026-01-15T23:19:04+00:00
Add evals for strict data-con args in worker-functions
This fixes #26722, by adding an eval in a worker for
arguments of strict data constructors, even if the
function body uses them strictly.
See (WIS1) in Note [Which Ids should be strictified]
I took the opportunity to make substantial improvements in the
documentation for call-by-value functions. See especially
Note [CBV Function Ids: overview] in GHC.Types.Id.Info
Note [Which Ids should be CBV candidates?] ditto
Note [EPT enforcement] in GHC.Stg.EnforceEpt
among others.
-
9719ce5d
by Simon Peyton Jones at 2026-01-15T23:19:04+00:00
Improve `interestingArg`
This function analyses a function's argument to see if it is
interesting enough to deserve an inlining discount. Improvements
for
* LitRubbish arguments
* exprIsExpandable arguments
See Note [Interesting arguments] which is substantially rewritten.
-
7b616b9f
by Cheng Shao at 2026-01-16T06:45:00-05:00
compiler: fix regression when compiling foreign stubs in the rts unit
This patch fixes a regression when compiling foreign stubs in the rts
unit introduced in 05e25647f72bc102061af3f20478aa72bff6ff6e. A simple
revert would fix it, but it's better to implement a proper fix with
comment for better understanding of the underlying problem, see the
added comment for explanation.
Co-authored-by: Codex <codex@openai.com>
-
c343ef64
by Sylvain Henry at 2026-01-16T06:45:51-05:00
base: remove GHC.JS.Prim.Internal.Build (#23432)
See accepted CLC proposal https://github.com/haskell/core-libraries-committee/issues/329
-
643cc5e9
by Simon Peyton Jones at 2026-01-16T12:23:48+00:00
Work in progress on unfoldings re-engineering
-
6dd9a7f2
by Simon Peyton Jones at 2026-01-16T12:23:48+00:00
Fix a bad, subtle bug in exprIsConApp_maybe
In extend_in_scope We were simply overwriting useful bindings in the
in-scope set, notably ones that had unfoldings. That could lead to
repeated simplifier iterations.
-
9d3512a6
by Simon Peyton Jones at 2026-01-16T12:24:32+00:00
Minor refactoring...
Plus: don't be so eager to inline when argument is a non-value,
but has some struture.
We want *some* incentive though.
-
957256d3
by Simon Peyton Jones at 2026-01-16T12:26:15+00:00
Adjust
* Reduce caseElimDiscount to 10
Example: f_nand in spectral/hartel/event is quite big but was still
getting inlined; that make f_simulate too big for SpecConstr
* Increase jumpSize. Not so much cheaper than tail calls.
I'm trying making them the same size.
-
d4a49670
by Simon Peyton Jones at 2026-01-16T12:26:15+00:00
Typo
-
1c711a53
by Simon Peyton Jones at 2026-01-16T12:26:16+00:00
Wibbles
-
e388a025
by Simon Peyton Jones at 2026-01-16T12:26:16+00:00
Wibble unused variables
-
e497bf91
by Simon Peyton Jones at 2026-01-16T12:26:16+00:00
Make case expressions and applications a bit bigger
-
593743bb
by Simon Peyton Jones at 2026-01-16T12:26:16+00:00
Wibbles
-
b335d5d7
by Simon Peyton Jones at 2026-01-16T12:40:20+00:00
Wibble