Safe Haskell | None |
---|---|
Language | Haskell2010 |
Distribution.Types.MungedPackageName
Synopsis
Documentation
data MungedPackageName Source #
A combination of a package and component name used in various legacy
interfaces, chiefly bundled with a version as
MungedPackageId
. It's generally
better to use a
UnitId
to opaquely refer to some compilation/packing unit,
but that doesn't always work, e.g. where a "name" is needed, in which case
this can be used as a fallback.
Use
mkMungedPackageName
and
unMungedPackageName
to convert from/to a
String
.
In
3.0.0.0
representation was changed from opaque (string) to semantic representation.
Since: 2.0.0.2
Constructors
MungedPackageName ! PackageName ! LibraryName |
Instances
Eq MungedPackageName Source # | |
Defined in Distribution.Types.MungedPackageName Methods (==) :: MungedPackageName -> MungedPackageName -> Bool Source # (/=) :: MungedPackageName -> MungedPackageName -> Bool Source # |
|
Data MungedPackageName Source # | |
Defined in Distribution.Types.MungedPackageName Methods gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> MungedPackageName -> c MungedPackageName Source # gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c MungedPackageName Source # toConstr :: MungedPackageName -> Constr Source # dataTypeOf :: MungedPackageName -> DataType Source # dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c MungedPackageName ) Source # dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c MungedPackageName ) Source # gmapT :: ( forall b. Data b => b -> b) -> MungedPackageName -> MungedPackageName Source # gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> MungedPackageName -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> MungedPackageName -> r Source # gmapQ :: ( forall d. Data d => d -> u) -> MungedPackageName -> [u] Source # gmapQi :: Int -> ( forall d. Data d => d -> u) -> MungedPackageName -> u Source # gmapM :: Monad m => ( forall d. Data d => d -> m d) -> MungedPackageName -> m MungedPackageName Source # gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> MungedPackageName -> m MungedPackageName Source # gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> MungedPackageName -> m MungedPackageName Source # |
|
Ord MungedPackageName Source # | |
Defined in Distribution.Types.MungedPackageName Methods compare :: MungedPackageName -> MungedPackageName -> Ordering Source # (<) :: MungedPackageName -> MungedPackageName -> Bool Source # (<=) :: MungedPackageName -> MungedPackageName -> Bool Source # (>) :: MungedPackageName -> MungedPackageName -> Bool Source # (>=) :: MungedPackageName -> MungedPackageName -> Bool Source # max :: MungedPackageName -> MungedPackageName -> MungedPackageName Source # min :: MungedPackageName -> MungedPackageName -> MungedPackageName Source # |
|
Read MungedPackageName Source # | |
Defined in Distribution.Types.MungedPackageName Methods readsPrec :: Int -> ReadS MungedPackageName Source # readList :: ReadS [ MungedPackageName ] Source # readPrec :: ReadPrec MungedPackageName Source # readListPrec :: ReadPrec [ MungedPackageName ] Source # |
|
Show MungedPackageName Source # | |
Defined in Distribution.Types.MungedPackageName |
|
Generic MungedPackageName Source # | |
Defined in Distribution.Types.MungedPackageName Methods from :: MungedPackageName -> Rep MungedPackageName x Source # to :: Rep MungedPackageName x -> MungedPackageName Source # |
|
Binary MungedPackageName Source # | |
Defined in Distribution.Types.MungedPackageName Methods put :: MungedPackageName -> Put Source # get :: Get MungedPackageName Source # putList :: [ MungedPackageName ] -> Put Source # |
|
NFData MungedPackageName Source # | |
Defined in Distribution.Types.MungedPackageName Methods rnf :: MungedPackageName -> () Source # |
|
Structured MungedPackageName Source # | |
Defined in Distribution.Types.MungedPackageName Methods structure :: Proxy MungedPackageName -> Structure Source # structureHash' :: Tagged MungedPackageName MD5 |
|
Pretty MungedPackageName Source # |
Computes the package name for a library. If this is the public library, it will just be the original package name; otherwise, it will be a munged package name recording the original package name as well as the name of the internal library.
A lot of tooling in the Haskell ecosystem assumes that if something
is installed to the package database with the package name
We munge into a reserved namespace, "z-", and encode both the component name and the package name of an internal library using the following format: compat-pkg-name ::= "z-" package-name "-z-" library-name where package-name and library-name have "-" ( "z" + ) "-" segments encoded by adding an extra "z". When we have the public library, the compat-pkg-name is just the package-name, no surprises there!
|
Defined in Distribution.Types.MungedPackageName Methods pretty :: MungedPackageName -> Doc Source # prettyVersioned :: CabalSpecVersion -> MungedPackageName -> Doc Source # |
|
Parsec MungedPackageName Source # |
|
Defined in Distribution.Types.MungedPackageName Methods parsec :: CabalParsing m => m MungedPackageName Source # |
|
type Rep MungedPackageName Source # | |
Defined in Distribution.Types.MungedPackageName
type
Rep
MungedPackageName
=
D1
('
MetaData
"MungedPackageName" "Distribution.Types.MungedPackageName" "Cabal-3.2.1.0-3w1fQQbNnuQ5xlFGwVXcPy" '
False
) (
C1
('
MetaCons
"MungedPackageName" '
PrefixI
'
False
) (
S1
('
MetaSel
('
Nothing
::
Maybe
Symbol
) '
NoSourceUnpackedness
'
SourceStrict
'
DecidedStrict
) (
Rec0
PackageName
)
:*:
S1
('
MetaSel
('
Nothing
::
Maybe
Symbol
) '
NoSourceUnpackedness
'
SourceStrict
'
DecidedStrict
) (
Rec0
LibraryName
)))
|
decodeCompatPackageName :: PackageName -> MungedPackageName Source #
Intended for internal use only
>>>
decodeCompatPackageName "z-servant-z-lackey"
MungedPackageName (PackageName "servant") (LSubLibName (UnqualComponentName "lackey"))
encodeCompatPackageName :: MungedPackageName -> PackageName Source #
Intended for internal use only
>>>
encodeCompatPackageName $ MungedPackageName "servant" (LSubLibName "lackey")
PackageName "z-servant-z-lackey"
This is used in
cabal-install
in the Solver.
May become obsolete as solver moves to per-component solving.