Skip to content

Amend list of wired-in packages #6749

Open
@TeofilC

Description

@TeofilC

Stack currently has special behaviour for a list of wired-in packages:

wiredInPackages :: Set PackageName
wiredInPackages = case mparsed of
Just parsed -> Set.fromList parsed
Nothing -> impureThrow WiredInPackagesNotParsedBug
where
mparsed = mapM parsePackageName
[ "rts"
-- Said to be not a \'real\' package
, "ghc-prim"
-- A magic package
, "ghc-bignum"
-- A magic package
, "integer-gmp"
-- No longer magic > 1.0.3.0 (GHC >= 9.0) and deprecated in favour of
-- ghc-bignum. With GHC 9.8.4 at least, there seems to be no problem in
-- using it.
, "integer-simple"
-- A magic package
, "base"
-- A magic package
, "template-haskell"
-- A magic package
, "ghc"
-- A magic package
, "interactive"
-- Type and class declarations at the GHCi command prompt are treated as
-- if they were defined in modules all sharing a common package
-- interactive. See 'Note [The interactive package]' at
-- https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Runtime/Context.hs
-- With GHC 9.8.4 at least, there seems to be no problem in using it.
]

Many of these packages are no longer wired-in (and many never were). While ghc-internal is not on this list but it is a wired-in package.

We should re-examine this list and its uses. Ideally we would have as little special casing as possible.

See also a similar issue for Cabal: haskell/cabal#10087

See also this GHC MR to add the unit-id of ghc-internal to the output of ghc --info: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/13297
and the cabal-install PR to make use of it: haskell/cabal#10982

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions