-
810cc685
by Rodrigo Mesquita at 2026-06-26T12:54:21-04:00
perf: Share Module in Iface Symbol Table
This commit modifies the structure of the serialized `SymbolTable Name`
to then re-use and share the `Module` (both on disk and in memory) across
all `Name`s from the same module.
The new structure looks like:
<total name count>
$modules.size
for (mod, names) in $modules:
$mod
$names.size
for table_ix, occ in $names
$table_ix
$occ
i.e. we put the module just once, followed by all names in that module.
When deserializing, we deserialize the module just once, and all the
following `Name`s are constructed with a pointer to that same decoded
`Module`.
In `hoogle-test`, we must use `DNameEnv` rather than `Map Name`,
otherwise the output fixities order was susceptible to changes in the
uniques assigned to each Names, which is not stable.
Fixes #27401
-------------------------
Metric Decrease:
InstanceMatching
LinkableUsage01
LinkableUsage02
hard_hole_fits
-------------------------
-
349c4045
by Simon Hengel at 2026-06-26T12:54:22-04:00
Rename `MCDiagnostic` to `InternalMCDiagnostic`
`MCDiagnostic` is meant to be used for compiler diagnostics.
Any code that creates `MCDiagnostic` directly, without going through
`GHC.Driver.Errors.printMessage`, sidesteps `-fdiagnostics-as-json` (see
e.g. !14616, !14475, !14492 !14548).
To avoid this in the future, this change more narrowly controls who
creates `MCDiagnostic` (see #24113).
-
3e2e509b
by Facundo Domínguez at 2026-06-26T12:54:26-04:00
Encapsulate options of occurAnalysePgm in a record
-
bc693049
by Facundo Domínguez at 2026-06-26T12:54:26-04:00
Allow to configure the occurrence analyser to retain some dead bindings
This is needed by plugins that are the only consumers of a binding which
is otherwise unused in the program.
See Note [Controlling elimination of dead bindings in occurrence analysis]
added in this commit, or
https://gitlab.haskell.org/ghc/ghc/-/issues/27240 for more discussion.
-
4ce66380
by Copilot at 2026-06-26T12:54:26-04:00
Address documentation feedback
-
a0263f9c
by Copilot at 2026-06-26T12:54:27-04:00
Keep the imp_rules parameter of occurPgmAnalysePgm and add occ_opts to OccEnv
-
633b0995
by Copilot at 2026-06-26T12:54:27-04:00
Strengthen T27240.hs with a binding that should be removed
-
48cf34d9
by Copilot at 2026-06-26T12:54:27-04:00
Move the reference #27240 to a related paragraph
-
859c956d
by Simon Hengel at 2026-06-26T12:54:27-04:00
Remove deprecated flag `-ddump-json` (see #24113)
This was first deprecated in 9.10.1.