HORIZON HASKELLDocslts/ghc-10.0.xfc4e5982026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · fc4e598 · 2026-10-11

Moduleghc-10.0.0.20260917GHC2024

GHC.Unit.External.Validate

  • 4 types
  • 10 values

Validation of unit databases

6 declarations

Validates a database, removing unusable units from it (this includes removing units that the user has explicitly ignored.) Our general strategy:

  1. Remove all broken units (dangling dependencies)

  2. Remove all units that are cyclic

  3. Apply ignore flags

  4. Remove all units which have deps with mismatching ABIs

datadata UnusableUnitReason
#

The reason why a unit is unusable.

Constructors

  • IgnoredWithFlag

    We ignored it explicitly using -ignore-package.

  • BrokenDependencies [UnitId]

    This unit transitively depends on a unit that was never present in any of the provided databases.

  • CyclicDependencies [UnitId]

    This unit transitively depends on a unit involved in a cycle. Note that the list of UnitId reports the direct dependencies of this unit that (transitively) depended on the cycle, and not the actual cycle itself (which we report separately at high verbosity.)

  • IgnoredDependencies [UnitId]

    This unit transitively depends on a unit which was ignored.

  • ShadowedDependencies [UnitId]

    This unit transitively depends on a unit which was shadowed by an ABI-incompatible unit.

Instances1Outputable

Package resolver

2 declarations

Unit database closure validation

4 declarations

Utils

2 declarations