module Distribution.Simple.Errors
( CabalException (..)
, FailedDependency (..)
, exceptionCode
, exceptionMessage
) where
import Distribution.Compat.Prelude
import Distribution.Compiler
import Distribution.InstalledPackageInfo
import Distribution.ModuleName
import Distribution.Package
import Distribution.PackageDescription
import Distribution.Pretty
( Pretty (pretty)
, prettyShow
)
import Distribution.Simple.InstallDirs
import Distribution.Simple.PreProcess.Types (Suffix)
import Distribution.Simple.SetupHooks.Errors
import Distribution.System (OS)
import Distribution.Types.MissingDependency (MissingDependency)
import Distribution.Types.VersionRange.Internal ()
import Distribution.Version
import Text.PrettyPrint
data FailedDependency
= DependencyNotExists PackageName
| DependencyMissingInternal PackageName LibraryName
| DependencyNoVersion Dependency
deriving (Int -> FailedDependency -> ShowS
[FailedDependency] -> ShowS
FailedDependency -> [Char]
(Int -> FailedDependency -> ShowS)
-> (FailedDependency -> [Char])
-> ([FailedDependency] -> ShowS)
-> Show FailedDependency
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FailedDependency -> ShowS
showsPrec :: Int -> FailedDependency -> ShowS
$cshow :: FailedDependency -> [Char]
show :: FailedDependency -> [Char]
$cshowList :: [FailedDependency] -> ShowS
showList :: [FailedDependency] -> ShowS
Show)
data CabalException
= NoBenchMarkProgram FilePath
| EnableBenchMark
| BenchMarkNameDisabled String
| NoBenchMark String
|
NoLibraryFound
| CompilerNotInstalled CompilerFlavor
| CantFindIncludeFile String
| UnsupportedTestSuite String
| UnsupportedBenchMark String
| NoIncludeFileFound String
| NoModuleFound ModuleName [Suffix]
| RegMultipleInstancePkg
| SuppressingChecksOnFile
| NoSupportDirStylePackageDb
| OnlySupportSpecificPackageDb
| FailedToParseOutputDescribe String PackageId
| DumpFailed String String
| FailedToParseOutputDump String
| ListFailed String
| FailedToParseOutputList String
| ProgramNotFound String
| NoSupportForHoogle
| NoSupportForQuickJumpFlag
| NoGHCVersionFromHaddock
| NoGHCVersionFromCompiler
| HaddockAndGHCVersionDoesntMatch Version Version
| MustHaveSharedLibraries
| HaddockPackageFlags [(InstalledPackageInfo, [UnitId])]
| UnknownCompilerFlavor CompilerFlavor
| FailedToDetermineTarget
| NoMultipleTargets
| REPLNotSupported
| NoSupportBuildingTestSuite TestType
| NoSupportBuildingBenchMark BenchmarkType
| BuildingNotSupportedWithCompiler
| PkgDumpFailed
| FailedToParseOutput
| CantFindSourceModule ModuleName
| VersionMismatchJS FilePath Version FilePath Version
| VersionMismatchGHCJS FilePath Version FilePath Version
| GlobalPackageDBLimitation
| GlobalPackageDBSpecifiedFirst
| MatchDirFileGlob String
| MatchDirFileGlobErrors [String]
| ErrorParsingFileDoesntExist FilePath
| FailedParsing String
| NotFoundMsg
| UnrecognisedBuildTarget [String]
| ReportBuildTargetProblems [(String, [String], String)]
| UnknownBuildTarget [(String, [(String, String)])]
| AmbiguousBuildTarget [(String, [(String, String)])]
| CheckBuildTargets String
| VersionMismatchGHC FilePath Version FilePath Version
| CheckPackageDbStackPost76
| CheckPackageDbStackPre76
| GlobalPackageDbSpecifiedFirst
| CantInstallForeignLib
| NoSupportForPreProcessingTest TestType
| NoSupportForPreProcessingBenchmark BenchmarkType
| CantFindSourceForPreProcessFile String
| TestType
| BenchmarkType
| UnlitException String
| RunProgramInvocationException FilePath String
| GetProgramInvocationException FilePath String
| GetProgramInvocationLBSException FilePath String
| CheckSemaphoreSupport
| NoLibraryForPackage
| SanityCheckHookedBuildInfo UnqualComponentName
| ConfigureScriptNotFound FilePath
| NoValidComponent
| ConfigureEitherSingleOrAll
| ConfigCIDValidForPreComponent
| SanityCheckForEnableComponents
| SanityCheckForDynamicStaticLinking
| UnsupportedLanguages PackageIdentifier CompilerId [String]
| UnsupportedLanguageExtension PackageIdentifier CompilerId [String]
| CantFindForeignLibraries [String]
| ExpectedAbsoluteDirectory FilePath
| FlagsNotSpecified [FlagName]
| EncounteredMissingDependency [MissingDependency]
| CompilerDoesn'tSupportThinning
| CompilerDoesn'tSupportReexports
| CompilerDoesn'tSupportBackpack
| LibraryWithinSamePackage [PackageId]
| ReportFailedDependencies [FailedDependency] String
| NoPackageDatabaseSpecified
| HowToFindInstalledPackages CompilerFlavor
| PkgConfigNotFound String String
| BadVersion String String PkgconfigVersion
| UnknownCompilerException
| NoWorkingGcc
| NoOSSupport OS String
| NoCompilerSupport String
| InstallDirsNotPrefixRelative (InstallDirs FilePath)
| ExplainErrors (Maybe (Either [Char] [Char])) [String]
| CheckPackageProblems [String]
| LibDirDepsPrefixNotRelative FilePath FilePath
| CombinedConstraints Doc
| CantParseGHCOutput
| IncompatibleWithCabal String String
| Couldn'tFindTestProgram FilePath
| TestCoverageSupport
| Couldn'tFindTestProgLibV09 FilePath
| TestCoverageSupportLibV09
| RawSystemStdout String
| FindFile FilePath
| FindModuleFileEx ModuleName [Suffix] [FilePath]
| MultipleFilesWithExtension String
| NoDesc
| MultiDesc [String]
| RelocRegistrationInfo
| CreatePackageDB
| WithHcPkg String
| RegisMultiplePkgNotSupported
| RegisteringNotImplemented
| NoTestSuitesEnabled
| TestNameDisabled String
| NoSuchTest String
| ConfigureProgram String FilePath
| RequireProgram String
| NoProgramFound String VersionRange
| BadVersionDb String Version VersionRange FilePath
| UnknownVersionDb String VersionRange FilePath
| MissingCoveredInstalledLibrary UnitId
| SetupHooksException SetupHooksException
| MultiReplDoesNotSupportComplexReexportedModules PackageName ComponentName
deriving (Int -> CabalException -> ShowS
[CabalException] -> ShowS
CabalException -> [Char]
(Int -> CabalException -> ShowS)
-> (CabalException -> [Char])
-> ([CabalException] -> ShowS)
-> Show CabalException
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CabalException -> ShowS
showsPrec :: Int -> CabalException -> ShowS
$cshow :: CabalException -> [Char]
show :: CabalException -> [Char]
$cshowList :: [CabalException] -> ShowS
showList :: [CabalException] -> ShowS
Show)
exceptionCode :: CabalException -> Int
exceptionCode :: CabalException -> Int
exceptionCode CabalException
e = case CabalException
e of
NoBenchMarkProgram{} -> Int
1678
EnableBenchMark{} -> Int
1453
BenchMarkNameDisabled{} -> Int
2781
NoBenchMark{} -> Int
1654
CabalException
NoLibraryFound -> Int
2546
CompilerNotInstalled{} -> Int
7465
CantFindIncludeFile{} -> Int
3876
UnsupportedTestSuite{} -> Int
3245
UnsupportedBenchMark{} -> Int
9123
NoIncludeFileFound{} -> Int
2987
NoModuleFound{} -> Int
6421
RegMultipleInstancePkg{} -> Int
3421
SuppressingChecksOnFile{} -> Int
5436
CabalException
NoSupportDirStylePackageDb -> Int
2980
CabalException
OnlySupportSpecificPackageDb -> Int
6547
FailedToParseOutputDescribe{} -> Int
7218
DumpFailed{} -> Int
6736
FailedToParseOutputDump{} -> Int
9076
ListFailed{} -> Int
5109
FailedToParseOutputList{} -> Int
7650
ProgramNotFound{} -> Int
4123
NoSupportForHoogle{} -> Int
8706
NoSupportForQuickJumpFlag{} -> Int
7086
CabalException
NoGHCVersionFromHaddock -> Int
5045
CabalException
NoGHCVersionFromCompiler -> Int
4098
HaddockAndGHCVersionDoesntMatch{} -> Int
1998
MustHaveSharedLibraries{} -> Int
6032
HaddockPackageFlags{} -> Int
4569
UnknownCompilerFlavor{} -> Int
3102
FailedToDetermineTarget{} -> Int
5049
NoMultipleTargets{} -> Int
6091
REPLNotSupported{} -> Int
1098
NoSupportBuildingTestSuite{} -> Int
4106
NoSupportBuildingBenchMark{} -> Int
5320
BuildingNotSupportedWithCompiler{} -> Int
7077
PkgDumpFailed{} -> Int
2291
FailedToParseOutput{} -> Int
5500
CantFindSourceModule{} -> Int
8870
VersionMismatchJS{} -> Int
9001
VersionMismatchGHCJS{} -> Int
4001
GlobalPackageDBLimitation{} -> Int
5002
GlobalPackageDBSpecifiedFirst{} -> Int
3901
MatchDirFileGlob{} -> Int
9760
MatchDirFileGlobErrors{} -> Int
6661
ErrorParsingFileDoesntExist{} -> Int
1234
FailedParsing{} -> Int
6565
NotFoundMsg{} -> Int
8011
UnrecognisedBuildTarget{} -> Int
3410
ReportBuildTargetProblems{} -> Int
5504
UnknownBuildTarget{} -> Int
4444
AmbiguousBuildTarget{} -> Int
7865
CheckBuildTargets{} -> Int
4733
VersionMismatchGHC{} -> Int
4000
CheckPackageDbStackPost76{} -> Int
3000
CheckPackageDbStackPre76{} -> Int
5640
GlobalPackageDbSpecifiedFirst{} -> Int
2345
CantInstallForeignLib{} -> Int
8221
NoSupportForPreProcessingTest{} -> Int
3008
NoSupportForPreProcessingBenchmark{} -> Int
6990
CantFindSourceForPreProcessFile{} -> Int
7554
NoSupportPreProcessingTestExtras{} -> Int
7886
NoSupportPreProcessingBenchmarkExtras{} -> Int
9999
UnlitException{} -> Int
5454
RunProgramInvocationException{} -> Int
8012
GetProgramInvocationException{} -> Int
7300
GetProgramInvocationLBSException{} -> Int
6578
CheckSemaphoreSupport{} -> Int
2002
NoLibraryForPackage{} -> Int
8004
SanityCheckHookedBuildInfo{} -> Int
6007
ConfigureScriptNotFound{} -> Int
4567
NoValidComponent{} -> Int
5680
ConfigureEitherSingleOrAll{} -> Int
2001
ConfigCIDValidForPreComponent{} -> Int
7006
SanityCheckForEnableComponents{} -> Int
5004
SanityCheckForDynamicStaticLinking{} -> Int
4007
UnsupportedLanguages{} -> Int
8074
UnsupportedLanguageExtension{} -> Int
5656
CantFindForeignLibraries{} -> Int
4574
ExpectedAbsoluteDirectory{} -> Int
6662
FlagsNotSpecified{} -> Int
9080
EncounteredMissingDependency{} -> Int
8010
CompilerDoesn'tSupportThinning{} -> Int
4003
CompilerDoesn'tSupportReexports{} -> Int
3456
CompilerDoesn'tSupportBackpack{} -> Int
5446
LibraryWithinSamePackage{} -> Int
7007
ReportFailedDependencies{} -> Int
4321
NoPackageDatabaseSpecified{} -> Int
2300
HowToFindInstalledPackages{} -> Int
3003
PkgConfigNotFound{} -> Int
7123
BadVersion{} -> Int
7600
UnknownCompilerException{} -> Int
3022
NoWorkingGcc{} -> Int
1088
NoOSSupport{} -> Int
3339
NoCompilerSupport{} -> Int
2290
InstallDirsNotPrefixRelative{} -> Int
6000
ExplainErrors{} -> Int
4345
CheckPackageProblems{} -> Int
5559
LibDirDepsPrefixNotRelative{} -> Int
6667
CombinedConstraints{} -> Int
5000
CantParseGHCOutput{} -> Int
1980
IncompatibleWithCabal{} -> Int
8123
Couldn'tFindTestProgram{} -> Int
5678
TestCoverageSupport{} -> Int
7890
Couldn'tFindTestProgLibV09{} -> Int
9012
TestCoverageSupportLibV09{} -> Int
1076
RawSystemStdout{} -> Int
3098
FindFile{} -> Int
2115
FindModuleFileEx{} -> Int
6663
MultipleFilesWithExtension{} -> Int
3333
NoDesc{} -> Int
7654
MultiDesc{} -> Int
5554
RelocRegistrationInfo{} -> Int
4343
CreatePackageDB{} -> Int
6787
WithHcPkg{} -> Int
9876
RegisMultiplePkgNotSupported{} -> Int
7632
RegisteringNotImplemented{} -> Int
5411
NoTestSuitesEnabled{} -> Int
9061
TestNameDisabled{} -> Int
8210
NoSuchTest{} -> Int
8000
ConfigureProgram{} -> Int
5490
RequireProgram{} -> Int
6666
NoProgramFound{} -> Int
7620
BadVersionDb{} -> Int
8038
UnknownVersionDb{} -> Int
1008
MissingCoveredInstalledLibrary{} -> Int
9341
SetupHooksException SetupHooksException
err ->
SetupHooksException -> Int
setupHooksExceptionCode SetupHooksException
err
MultiReplDoesNotSupportComplexReexportedModules{} -> Int
9355
versionRequirement :: VersionRange -> String
versionRequirement :: VersionRange -> [Char]
versionRequirement VersionRange
range
| VersionRange -> Bool
isAnyVersion VersionRange
range = [Char]
""
| Bool
otherwise = [Char]
" version " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ VersionRange -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow VersionRange
range
exceptionMessage :: CabalException -> String
exceptionMessage :: CabalException -> [Char]
exceptionMessage CabalException
e = case CabalException
e of
NoBenchMarkProgram [Char]
cmd -> [Char]
"Could not find benchmark program \"" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
cmd [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"\". Did you build the package first?"
CabalException
EnableBenchMark -> [Char]
"No benchmarks enabled. Did you remember to \'Setup configure\' with " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"\'--enable-benchmarks\'?"
BenchMarkNameDisabled [Char]
bmName -> [Char]
"Package configured with benchmark " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
bmName [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" disabled."
NoBenchMark [Char]
bmName -> [Char]
"no such benchmark: " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
bmName
CabalException
NoLibraryFound -> [Char]
"No executables and no library found. Nothing to do."
CompilerNotInstalled CompilerFlavor
compilerFlavor -> [Char]
"installing with " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ CompilerFlavor -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow CompilerFlavor
compilerFlavor [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"is not implemented"
CantFindIncludeFile [Char]
file -> [Char]
"can't find include file " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
file
UnsupportedTestSuite [Char]
test_type -> [Char]
"Unsupported test suite type: " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
test_type
UnsupportedBenchMark [Char]
benchMarkType -> [Char]
"Unsupported benchmark type: " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
benchMarkType
NoIncludeFileFound [Char]
f -> [Char]
"can't find include file " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
f
NoModuleFound ModuleName
m [Suffix]
suffixes ->
[Char]
"Could not find module: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ ModuleName -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow ModuleName
m
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" with any suffix: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [[Char]] -> [Char]
forall a. Show a => a -> [Char]
show ((Suffix -> [Char]) -> [Suffix] -> [[Char]]
forall a b. (a -> b) -> [a] -> [b]
map Suffix -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow [Suffix]
suffixes)
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
".\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"If the module "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"is autogenerated it should be added to 'autogen-modules'."
CabalException
RegMultipleInstancePkg -> [Char]
"HcPkg.register: the compiler does not support registering multiple instances of packages."
CabalException
SuppressingChecksOnFile -> [Char]
"HcPkg.register: the compiler does not support suppressing checks on files."
CabalException
NoSupportDirStylePackageDb -> [Char]
"HcPkg.writeRegistrationFileDirectly: compiler does not support dir style package dbs"
CabalException
OnlySupportSpecificPackageDb -> [Char]
"HcPkg.writeRegistrationFileDirectly: only supports SpecificPackageDB for now"
FailedToParseOutputDescribe [Char]
programId PackageIdentifier
pkgId -> [Char]
"failed to parse output of '" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
programId [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" describe " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ PackageIdentifier -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow PackageIdentifier
pkgId [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"'"
DumpFailed [Char]
programId [Char]
exception -> [Char]
programId [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" dump failed: " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
exception
FailedToParseOutputDump [Char]
programId -> [Char]
"failed to parse output of '" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
programId [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" dump'"
ListFailed [Char]
programId -> [Char]
programId [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" list failed"
FailedToParseOutputList [Char]
programId -> [Char]
"failed to parse output of '" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
programId [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" list'"
ProgramNotFound [Char]
progName -> [Char]
"The program '" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
progName [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"' is required but it could not be found"
CabalException
NoSupportForHoogle -> [Char]
"Haddock 2.0 and 2.1 do not support the --hoogle flag."
CabalException
NoSupportForQuickJumpFlag -> [Char]
"Haddock prior to 2.19 does not support the --quickjump flag."
CabalException
NoGHCVersionFromHaddock -> [Char]
"Could not get GHC version from Haddock"
CabalException
NoGHCVersionFromCompiler -> [Char]
"Could not get GHC version from compiler"
HaddockAndGHCVersionDoesntMatch Version
ghcVersion Version
haddockGhcVersion ->
[Char]
"Haddock's internal GHC version must match the configured "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"GHC version.\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"The GHC version is "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ Version -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow Version
ghcVersion
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" but "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"haddock is using GHC version "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ Version -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow Version
haddockGhcVersion
CabalException
MustHaveSharedLibraries -> [Char]
"Must have vanilla or shared libraries enabled in order to run haddock"
HaddockPackageFlags [(InstalledPackageInfo, [UnitId])]
inf ->
[Char]
"internal error when calculating transitive "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"package dependencies.\nDebug info: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [(InstalledPackageInfo, [UnitId])] -> [Char]
forall a. Show a => a -> [Char]
show [(InstalledPackageInfo, [UnitId])]
inf
UnknownCompilerFlavor CompilerFlavor
compilerFlavor -> [Char]
"dumpBuildInfo: Unknown compiler flavor: " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ CompilerFlavor -> [Char]
forall a. Show a => a -> [Char]
show CompilerFlavor
compilerFlavor
CabalException
FailedToDetermineTarget -> [Char]
"Failed to determine target."
CabalException
NoMultipleTargets -> [Char]
"The 'repl' command does not support multiple targets at once."
CabalException
REPLNotSupported -> [Char]
"A REPL is not supported with this compiler."
NoSupportBuildingTestSuite TestType
test_type -> [Char]
"No support for building test suite type " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ TestType -> [Char]
forall a. Show a => a -> [Char]
show TestType
test_type
NoSupportBuildingBenchMark BenchmarkType
benchMarkType -> [Char]
"No support for building benchmark type " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ BenchmarkType -> [Char]
forall a. Show a => a -> [Char]
show BenchmarkType
benchMarkType
CabalException
BuildingNotSupportedWithCompiler -> [Char]
"Building is not supported with this compiler."
CabalException
PkgDumpFailed -> [Char]
"pkg dump failed"
CabalException
FailedToParseOutput -> [Char]
"failed to parse output of 'pkg dump'"
CantFindSourceModule ModuleName
moduleName -> [Char]
"can't find source for module " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ ModuleName -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow ModuleName
moduleName
VersionMismatchJS [Char]
ghcjsProgPath Version
ghcjsVersion [Char]
ghcjsPkgProgPath Version
ghcjsPkgGhcjsVersion ->
[Char]
"Version mismatch between ghcjs and ghcjs-pkg: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ ShowS
forall a. Show a => a -> [Char]
show [Char]
ghcjsProgPath
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" is version "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ Version -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow Version
ghcjsVersion
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ ShowS
forall a. Show a => a -> [Char]
show [Char]
ghcjsPkgProgPath
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" is version "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ Version -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow Version
ghcjsPkgGhcjsVersion
VersionMismatchGHCJS [Char]
ghcjsProgPath Version
ghcjsGhcVersion [Char]
ghcjsPkgProgPath Version
ghcjsPkgVersion ->
[Char]
"Version mismatch between ghcjs and ghcjs-pkg: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ ShowS
forall a. Show a => a -> [Char]
show [Char]
ghcjsProgPath
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" was built with GHC version "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ Version -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow Version
ghcjsGhcVersion
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ ShowS
forall a. Show a => a -> [Char]
show [Char]
ghcjsPkgProgPath
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" was built with GHC version "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ Version -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow Version
ghcjsPkgVersion
CabalException
GlobalPackageDBLimitation ->
[Char]
"With current ghc versions the global package db is always used "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"and must be listed first. This ghc limitation may be lifted in "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"the future, see https://gitlab.haskell.org/ghc/ghc/-/issues/5977"
CabalException
GlobalPackageDBSpecifiedFirst ->
[Char]
"If the global package db is specified, it must be "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"specified first and cannot be specified multiple times"
MatchDirFileGlob [Char]
pathError -> [Char]
pathError
MatchDirFileGlobErrors [[Char]]
errors -> [[Char]] -> [Char]
unlines [[Char]]
errors
ErrorParsingFileDoesntExist [Char]
filePath -> [Char]
"Error Parsing: file \"" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
filePath [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"\" doesn't exist. Cannot continue."
FailedParsing [Char]
name -> [Char]
"Failed parsing \"" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
name [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"\"."
CabalException
NotFoundMsg ->
[Char]
"The package has a './configure' script. "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"If you are on Windows, This requires a "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"Unix compatibility toolchain such as MinGW+MSYS or Cygwin. "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"If you are not on Windows, ensure that an 'sh' command "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"is discoverable in your path."
UnrecognisedBuildTarget [[Char]]
target ->
[[Char]] -> [Char]
unlines
[ [Char]
"Unrecognised build target '" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
name [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"'."
| [Char]
name <- [[Char]]
target
]
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"Examples:\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" - build foo -- component name "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"(library, executable, test-suite or benchmark)\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" - build Data.Foo -- module name\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" - build Data/Foo.hsc -- file name\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" - build lib:foo exe:foo -- component qualified by kind\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" - build foo:Data.Foo -- module qualified by component\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" - build foo:Data/Foo.hsc -- file qualified by component"
ReportBuildTargetProblems [([Char], [[Char]], [Char])]
targets ->
[[Char]] -> [Char]
unlines
[ [Char]
"Unrecognised build target '"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
target
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"'.\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"Expected a "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char] -> [[Char]] -> [Char]
forall a. [a] -> [[a]] -> [a]
intercalate [Char]
" or " [[Char]]
expected
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
", rather than '"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
got
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"'."
| ([Char]
target, [[Char]]
expected, [Char]
got) <- [([Char], [[Char]], [Char])]
targets
]
UnknownBuildTarget [([Char], [([Char], [Char])])]
targets ->
[[Char]] -> [Char]
unlines
[ [Char]
"Unknown build target '"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
target
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"'.\nThere is no "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char] -> [[Char]] -> [Char]
forall a. [a] -> [[a]] -> [a]
intercalate
[Char]
" or "
[ ShowS
mungeThing [Char]
thing [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" '" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
got [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"'"
| ([Char]
thing, [Char]
got) <- [([Char], [Char])]
nosuch
]
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"."
| ([Char]
target, [([Char], [Char])]
nosuch) <- [([Char], [([Char], [Char])])]
targets
]
where
mungeThing :: ShowS
mungeThing [Char]
"file" = [Char]
"file target"
mungeThing [Char]
thing = [Char]
thing
AmbiguousBuildTarget [([Char], [([Char], [Char])])]
targets ->
[[Char]] -> [Char]
unlines
[ [Char]
"Ambiguous build target '"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
target
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"'. It could be:\n "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [[Char]] -> [Char]
unlines
[ [Char]
" "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
ut
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" ("
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
bt
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
")"
| ([Char]
ut, [Char]
bt) <- [([Char], [Char])]
amb
]
| ([Char]
target, [([Char], [Char])]
amb) <- [([Char], [([Char], [Char])])]
targets
]
CheckBuildTargets [Char]
errorStr -> [Char]
errorStr
VersionMismatchGHC [Char]
ghcProgPath Version
ghcVersion [Char]
ghcPkgProgPath Version
ghcPkgVersion ->
[Char]
"Version mismatch between ghc and ghc-pkg: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
ghcProgPath
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" is version "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ Version -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow Version
ghcVersion
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
ghcPkgProgPath
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" is version "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ Version -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow Version
ghcPkgVersion
CabalException
CheckPackageDbStackPost76 ->
[Char]
"If the global package db is specified, it must be "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"specified first and cannot be specified multiple times"
CabalException
CheckPackageDbStackPre76 ->
[Char]
"With current ghc versions the global package db is always used "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"and must be listed first. This ghc limitation is lifted in GHC 7.6,"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"see https://gitlab.haskell.org/ghc/ghc/-/issues/5977"
CabalException
GlobalPackageDbSpecifiedFirst ->
[Char]
"If the global package db is specified, it must be "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"specified first and cannot be specified multiple times"
CabalException
CantInstallForeignLib -> [Char]
"Can't install foreign-library symlink on non-Linux OS"
NoSupportForPreProcessingTest TestType
tt ->
[Char]
"No support for preprocessing test "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"suite type "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ TestType -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow TestType
tt
NoSupportForPreProcessingBenchmark BenchmarkType
tt ->
[Char]
"No support for preprocessing benchmark type "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ BenchmarkType -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow BenchmarkType
tt
CantFindSourceForPreProcessFile [Char]
errorStr -> [Char]
errorStr
NoSupportPreProcessingTestExtras TestType
tt ->
[Char]
"No support for preprocessing test suite type "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ TestType -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow TestType
tt
NoSupportPreProcessingBenchmarkExtras BenchmarkType
tt ->
[Char]
"No support for preprocessing benchmark "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"type "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ BenchmarkType -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow BenchmarkType
tt
UnlitException [Char]
str -> [Char]
str
RunProgramInvocationException [Char]
path [Char]
errors -> [Char]
"'" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
path [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"' exited with an error:\n" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
errors
GetProgramInvocationException [Char]
path [Char]
errors -> [Char]
"'" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
path [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"' exited with an error:\n" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
errors
GetProgramInvocationLBSException [Char]
path [Char]
errors -> [Char]
"'" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
path [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"' exited with an error:\n" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
errors
CabalException
CheckSemaphoreSupport ->
[Char]
"Your compiler does not support the -jsem flag. "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"To use this feature you must use GHC 9.8 or later."
CabalException
NoLibraryForPackage ->
[Char]
"The buildinfo contains info for a library, "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"but the package does not have a library."
SanityCheckHookedBuildInfo UnqualComponentName
exe1 ->
[Char]
"The buildinfo contains info for an executable called '"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ UnqualComponentName -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow UnqualComponentName
exe1
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"' but the package does not have an "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"executable with that name."
ConfigureScriptNotFound [Char]
fp -> [Char]
"configure script not found at " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
fp [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"."
CabalException
NoValidComponent -> [Char]
"No valid component targets found"
CabalException
ConfigureEitherSingleOrAll -> [Char]
"Can only configure either a single component or all of them"
CabalException
ConfigCIDValidForPreComponent -> [Char]
"--cid is only supported for per-component configure"
CabalException
SanityCheckForEnableComponents ->
[Char]
"--enable-tests/--enable-benchmarks are incompatible with"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" explicitly specifying a component to configure."
CabalException
SanityCheckForDynamicStaticLinking ->
[Char]
"--enable-executable-dynamic and --enable-executable-static"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" are incompatible with each other."
UnsupportedLanguages PackageIdentifier
pkgId CompilerId
compilerId [[Char]]
langs ->
[Char]
"The package "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ PackageIdentifier -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow PackageIdentifier
pkgId
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" requires the following languages which are not "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"supported by "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ CompilerId -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow CompilerId
compilerId
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
": "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char] -> [[Char]] -> [Char]
forall a. [a] -> [[a]] -> [a]
intercalate [Char]
", " [[Char]]
langs
UnsupportedLanguageExtension PackageIdentifier
pkgId CompilerId
compilerId [[Char]]
exts ->
[Char]
"The package "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ PackageIdentifier -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow PackageIdentifier
pkgId
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" requires the following language extensions which are not "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"supported by "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ CompilerId -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow CompilerId
compilerId
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
": "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char] -> [[Char]] -> [Char]
forall a. [a] -> [[a]] -> [a]
intercalate [Char]
", " [[Char]]
exts
CantFindForeignLibraries [[Char]]
unsupportedFLibs ->
[Char]
"Cannot build some foreign libraries: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char] -> [[Char]] -> [Char]
forall a. [a] -> [[a]] -> [a]
intercalate [Char]
", " [[Char]]
unsupportedFLibs
ExpectedAbsoluteDirectory [Char]
fPath -> [Char]
"expected an absolute directory name for --prefix: " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
fPath
FlagsNotSpecified [FlagName]
diffFlags ->
[Char]
"'--exact-configuration' was given, "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"but the following flags were not specified: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char] -> [[Char]] -> [Char]
forall a. [a] -> [[a]] -> [a]
intercalate [Char]
", " ((FlagName -> [Char]) -> [FlagName] -> [[Char]]
forall a b. (a -> b) -> [a] -> [b]
map FlagName -> [Char]
forall a. Show a => a -> [Char]
show [FlagName]
diffFlags)
EncounteredMissingDependency [MissingDependency]
missing ->
[Char]
"Encountered missing or private dependencies:\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ ( Doc -> [Char]
render
(Doc -> [Char])
-> ([MissingDependency] -> Doc) -> [MissingDependency] -> [Char]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Doc -> Doc
nest Int
4
(Doc -> Doc)
-> ([MissingDependency] -> Doc) -> [MissingDependency] -> Doc
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Doc] -> Doc
sep
([Doc] -> Doc)
-> ([MissingDependency] -> [Doc]) -> [MissingDependency] -> Doc
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Doc -> [Doc] -> [Doc]
punctuate Doc
comma
([Doc] -> [Doc])
-> ([MissingDependency] -> [Doc]) -> [MissingDependency] -> [Doc]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (MissingDependency -> Doc) -> [MissingDependency] -> [Doc]
forall a b. (a -> b) -> [a] -> [b]
map MissingDependency -> Doc
forall a. Pretty a => a -> Doc
pretty
([MissingDependency] -> [Char]) -> [MissingDependency] -> [Char]
forall a b. (a -> b) -> a -> b
$ [MissingDependency]
missing
)
CabalException
CompilerDoesn'tSupportThinning ->
[Char]
"Your compiler does not support thinning and renaming on "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"package flags. To use this feature you must use "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"GHC 7.9 or later."
CabalException
CompilerDoesn'tSupportReexports ->
[Char]
"Your compiler does not support module re-exports. To use "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"this feature you must use GHC 7.9 or later."
CabalException
CompilerDoesn'tSupportBackpack ->
[Char]
"Your compiler does not support Backpack. To use "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"this feature you must use GHC 8.1 or later."
LibraryWithinSamePackage [PackageIdentifier]
internalPkgDeps ->
[Char]
"The field 'build-depends: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char] -> [[Char]] -> [Char]
forall a. [a] -> [[a]] -> [a]
intercalate [Char]
", " ((PackageIdentifier -> [Char]) -> [PackageIdentifier] -> [[Char]]
forall a b. (a -> b) -> [a] -> [b]
map (PackageName -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow (PackageName -> [Char])
-> (PackageIdentifier -> PackageName)
-> PackageIdentifier
-> [Char]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PackageIdentifier -> PackageName
forall pkg. Package pkg => pkg -> PackageName
packageName) [PackageIdentifier]
internalPkgDeps)
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"' refers to a library which is defined within the same "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"package. To use this feature the package must specify at "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"least 'cabal-version: >= 1.8'."
ReportFailedDependencies [FailedDependency]
failed [Char]
hackageUrl -> [Char] -> [[Char]] -> [Char]
forall a. [a] -> [[a]] -> [a]
intercalate [Char]
"\n\n" ((FailedDependency -> [Char]) -> [FailedDependency] -> [[Char]]
forall a b. (a -> b) -> [a] -> [b]
map FailedDependency -> [Char]
reportFailedDependency [FailedDependency]
failed)
where
reportFailedDependency :: FailedDependency -> [Char]
reportFailedDependency (DependencyNotExists PackageName
pkgname) =
[Char]
"there is no version of "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ PackageName -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow PackageName
pkgname
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" installed.\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"Perhaps you need to download and install it from\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
hackageUrl
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ PackageName -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow PackageName
pkgname
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"?"
reportFailedDependency (DependencyMissingInternal PackageName
pkgname LibraryName
lib) =
[Char]
"internal dependency "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ Doc -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow (LibraryName -> Doc
prettyLibraryNameComponent LibraryName
lib)
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" not installed.\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"Perhaps you need to configure and install it first?\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"(This library was defined by "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ PackageName -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow PackageName
pkgname
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
")"
reportFailedDependency (DependencyNoVersion Dependency
dep) =
[Char]
"cannot satisfy dependency " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ Dependency -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow (Dependency -> Dependency
simplifyDependency Dependency
dep) [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"\n"
CabalException
NoPackageDatabaseSpecified ->
[Char]
"No package databases have been specified. If you use "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"--package-db=clear, you must follow it with --package-db= "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"with 'global', 'user' or a specific file."
HowToFindInstalledPackages CompilerFlavor
flv ->
[Char]
"don't know how to find the installed packages for "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ CompilerFlavor -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow CompilerFlavor
flv
PkgConfigNotFound [Char]
pkg [Char]
versionReq ->
[Char]
"The pkg-config package '"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
pkg
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"'"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
versionReq
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" is required but it could not be found."
BadVersion [Char]
pkg [Char]
versionReq PkgconfigVersion
v ->
[Char]
"The pkg-config package '"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
pkg
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"'"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
versionReq
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" is required but the version installed on the"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" system is version "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ PkgconfigVersion -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow PkgconfigVersion
v
CabalException
UnknownCompilerException -> [Char]
"Unknown compiler"
CabalException
NoWorkingGcc ->
[[Char]] -> [Char]
unlines
[ [Char]
"No working gcc"
, [Char]
"This package depends on a foreign library but we cannot "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"find a working C compiler. If you have it in a "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"non-standard location you can use the --with-gcc "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"flag to specify it."
]
NoOSSupport OS
os [Char]
what ->
[Char]
"Operating system: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ OS -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow OS
os
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
", does not support "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
what
NoCompilerSupport [Char]
comp ->
[Char]
"Compiler: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
comp
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
", does not support relocatable builds"
InstallDirsNotPrefixRelative InstallDirs [Char]
installDirs -> [Char]
"Installation directories are not prefix_relative:\n" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ InstallDirs [Char] -> [Char]
forall a. Show a => a -> [Char]
show InstallDirs [Char]
installDirs
ExplainErrors Maybe (Either [Char] [Char])
hdr [[Char]]
libs ->
[[Char]] -> [Char]
unlines ([[Char]] -> [Char]) -> [[Char]] -> [Char]
forall a b. (a -> b) -> a -> b
$
[ if Bool
plural
then [Char]
"Missing dependencies on foreign libraries:"
else [Char]
"Missing dependency on a foreign library:"
| Bool
missing
]
[[Char]] -> [[Char]] -> [[Char]]
forall a. [a] -> [a] -> [a]
++ case Maybe (Either [Char] [Char])
hdr of
Just (Left [Char]
h) -> [[Char]
"* Missing (or bad) header file: " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
h]
Maybe (Either [Char] [Char])
_ -> []
[[Char]] -> [[Char]] -> [[Char]]
forall a. [a] -> [a] -> [a]
++ case [[Char]]
libs of
[] -> []
[[Char]
lib] -> [[Char]
"* Missing (or bad) C library: " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
lib]
[[Char]]
_ ->
[ [Char]
"* Missing (or bad) C libraries: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char] -> [[Char]] -> [Char]
forall a. [a] -> [[a]] -> [a]
intercalate [Char]
", " [[Char]]
libs
]
[[Char]] -> [[Char]] -> [[Char]]
forall a. [a] -> [a] -> [a]
++ [if Bool
plural then [Char]
messagePlural else [Char]
messageSingular | Bool
missing]
[[Char]] -> [[Char]] -> [[Char]]
forall a. [a] -> [a] -> [a]
++ case Maybe (Either [Char] [Char])
hdr of
Just (Left [Char]
_) -> [[Char]
headerCppMessage]
Just (Right [Char]
h) ->
[ (if Bool
missing then [Char]
"* " else [Char]
"")
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"Bad header file: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
h
, [Char]
headerCcMessage
]
Maybe (Either [Char] [Char])
_ -> []
where
plural :: Bool
plural = [[Char]] -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length [[Char]]
libs Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
2
missing :: Bool
missing =
Bool -> Bool
not ([[Char]] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null [[Char]]
libs)
Bool -> Bool -> Bool
|| case Maybe (Either [Char] [Char])
hdr of Just (Left [Char]
_) -> Bool
True; Maybe (Either [Char] [Char])
_ -> Bool
False
messageSingular :: [Char]
messageSingular =
[Char]
"This problem can usually be solved by installing the system "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"package that provides this library (you may need the "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"\"-dev\" version). If the library is already installed "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"but in a non-standard location then you can use the flags "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"--extra-include-dirs= and --extra-lib-dirs= to specify "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"where it is."
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"If the library file does exist, it may contain errors that "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"are caught by the C compiler at the preprocessing stage. "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"In this case you can re-run 'Setup configure' with the "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"verbosity flag -v3 to see the error messages."
messagePlural :: [Char]
messagePlural =
[Char]
"This problem can usually be solved by installing the system "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"packages that provide these libraries (you may need the "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"\"-dev\" versions). If the libraries are already installed "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"but in a non-standard location then you can use the flags "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"--extra-include-dirs= and --extra-lib-dirs= to specify "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"where they are."
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"If the library files do exist, it may contain errors that "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"are caught by the C compiler at the preprocessing stage. "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"In this case you can re-run 'Setup configure' with the "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"verbosity flag -v3 to see the error messages."
headerCppMessage :: [Char]
headerCppMessage =
[Char]
"If the header file does exist, it may contain errors that "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"are caught by the C compiler at the preprocessing stage. "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"In this case you can re-run 'Setup configure' with the "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"verbosity flag -v3 to see the error messages."
headerCcMessage :: [Char]
headerCcMessage =
[Char]
"The header file contains a compile error. "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"You can re-run 'Setup configure' with the verbosity flag "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"-v3 to see the error messages from the C compiler."
CheckPackageProblems [[Char]]
errors -> [Char] -> [[Char]] -> [Char]
forall a. [a] -> [[a]] -> [a]
intercalate [Char]
"\n\n" [[Char]]
errors
LibDirDepsPrefixNotRelative [Char]
l [Char]
p ->
[Char]
"Library directory of a dependency: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ ShowS
forall a. Show a => a -> [Char]
show [Char]
l
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"\nis not relative to the installation prefix:\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ ShowS
forall a. Show a => a -> [Char]
show [Char]
p
CombinedConstraints Doc
dispDepend ->
Doc -> [Char]
render (Doc -> [Char]) -> Doc -> [Char]
forall a b. (a -> b) -> a -> b
$
[Char] -> Doc
text [Char]
"The following package dependencies were requested"
Doc -> Doc -> Doc
$+$ Int -> Doc -> Doc
nest Int
4 Doc
dispDepend
Doc -> Doc -> Doc
$+$ [Char] -> Doc
text [Char]
"however the given installed package instance does not exist."
CabalException
CantParseGHCOutput -> [Char]
"Can't parse --info output of GHC"
IncompatibleWithCabal [Char]
compilerName [Char]
packagePathEnvVar ->
[Char]
"Use of "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
compilerName
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"'s environment variable "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
packagePathEnvVar
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" is incompatible with Cabal. Use the "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"flag --package-db to specify a package database (it can be "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"used multiple times)."
Couldn'tFindTestProgram [Char]
cmd ->
[Char]
"Could not find test program \""
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
cmd
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"\". Did you build the package first?"
CabalException
TestCoverageSupport -> [Char]
"Test coverage is only supported for packages with a library component."
Couldn'tFindTestProgLibV09 [Char]
cmd ->
[Char]
"Could not find test program \""
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
cmd
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"\". Did you build the package first?"
CabalException
TestCoverageSupportLibV09 -> [Char]
"Test coverage is only supported for packages with a library component."
RawSystemStdout [Char]
errors -> [Char]
errors
FindFile [Char]
fileName -> [Char]
fileName [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" doesn't exist"
FindModuleFileEx ModuleName
mod_name [Suffix]
extensions [[Char]]
searchPath ->
[Char]
"Could not find module: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ ModuleName -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow ModuleName
mod_name
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" with any suffix: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [[Char]] -> [Char]
forall a. Show a => a -> [Char]
show ((Suffix -> [Char]) -> [Suffix] -> [[Char]]
forall a b. (a -> b) -> [a] -> [b]
map Suffix -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow [Suffix]
extensions)
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" in the search path: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [[Char]] -> [Char]
forall a. Show a => a -> [Char]
show [[Char]]
searchPath
MultipleFilesWithExtension [Char]
buildInfoExt -> [Char]
"Multiple files with extension " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
buildInfoExt
CabalException
NoDesc ->
[Char]
"No cabal file found.\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"Please create a package description file <pkgname>.cabal"
MultiDesc [[Char]]
l ->
[Char]
"Multiple cabal files found.\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"Please use only one of: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char] -> [[Char]] -> [Char]
forall a. [a] -> [[a]] -> [a]
intercalate [Char]
", " [[Char]]
l
CabalException
RelocRegistrationInfo ->
[Char]
"Distribution.Simple.Register.relocRegistrationInfo: \
\not implemented for this compiler"
CabalException
CreatePackageDB ->
[Char]
"Distribution.Simple.Register.createPackageDB: "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"not implemented for this compiler"
WithHcPkg [Char]
name ->
[Char]
"Distribution.Simple.Register."
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
name
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
":\
\not implemented for this compiler"
CabalException
RegisMultiplePkgNotSupported -> [Char]
"Registering multiple package instances is not yet supported for this compiler"
CabalException
RegisteringNotImplemented -> [Char]
"Registering is not implemented for this compiler"
CabalException
NoTestSuitesEnabled ->
[Char]
"No test suites enabled. Did you remember to 'Setup configure' with "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"\'--enable-tests\'?"
TestNameDisabled [Char]
tName ->
[Char]
"Package configured with test suite "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
tName
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" disabled."
NoSuchTest [Char]
tName -> [Char]
"no such test: " [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
tName
ConfigureProgram [Char]
name [Char]
path ->
[Char]
"Cannot find the program '"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
name
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"'. User-specified path '"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
path
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"' does not refer to an executable and "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"the program is not on the system path."
RequireProgram [Char]
progName -> [Char]
"The program '" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
progName [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"' is required but it could not be found."
NoProgramFound [Char]
progName VersionRange
versionRange ->
[Char]
"The program '"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
progName
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"'"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ VersionRange -> [Char]
versionRequirement VersionRange
versionRange
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" is required but it could not be found."
BadVersionDb [Char]
progName Version
version VersionRange
range [Char]
locationPath ->
[Char]
"The program '"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
progName
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"'"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ VersionRange -> [Char]
versionRequirement VersionRange
range
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" is required but the version found at "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
locationPath
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" is version "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ Version -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow Version
version
UnknownVersionDb [Char]
progName VersionRange
versionRange [Char]
locationPath ->
[Char]
"The program '"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
progName
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"'"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ VersionRange -> [Char]
versionRequirement VersionRange
versionRange
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" is required but the version of "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
locationPath
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" could not be determined."
MissingCoveredInstalledLibrary UnitId
unitId ->
[Char]
"Failed to find the installed unit '"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ UnitId -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow UnitId
unitId
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"' in package database stack."
SetupHooksException SetupHooksException
err ->
SetupHooksException -> [Char]
setupHooksExceptionMessage SetupHooksException
err
MultiReplDoesNotSupportComplexReexportedModules PackageName
pname ComponentName
cname ->
[Char]
"When attempting start the repl for "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ ComponentName -> [Char]
showComponentName ComponentName
cname
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" from package "
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ PackageName -> [Char]
forall a. Pretty a => a -> [Char]
prettyShow PackageName
pname
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
" a module renaming was found.\n"
[Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"Multi-repl does not work with complicated reexported-modules until GHC-9.12."