Sudden break in the output
ulysses4ever opened this issue · 6 comments
I'm using command-line tool and getting a strange break when trying to print a big record:
[nix-shell:~]$ pretty-simple
ProjectConfig {projectPackages = [], projectPackagesOptional = [], projectPackagesRepo = [], projectPackagesNamed = [], projectConfigBuildOnly = ProjectConfigBuildOnly {projectConfigVerbosity = Flag (Verbosity {vLevel = Normal, vFlags = fromList [], vQuiet = False}), projectConfigDryRun = Flag False, projectConfigOnlyDeps = Flag False, projectConfigOnlyDownload = Flag False, projectConfigSummaryFile = ["/home/artem/.cabal/logs/build.log"], projectConfigLogFile = NoFlag, projectConfigBuildReports = Flag NoReports, projectConfigReportPlanningFailure = Flag False, projectConfigSymlinkBinDir = NoFlag, projectConfigNumJobs = Flag Nothing, projectConfigKeepGoing = Flag False, projectConfigOfflineMode = Flag False, projectConfigKeepTempFiles = Flag False, projectConfigHttpTransport = NoFlag, projectConfigIgnoreExpiry = NoFlag, projectConfigCacheDir = Flag "/home/artem/.cabal/packages", projectConfigLogsDir = Flag "/home/artem/.cabal/logs", projectConfigClientInstallFlags = ClientInstallFlags {cinstInstallLibs = Flag False, cinstEnvironmentPath = NoFlag, cinstOverwritePolicy = NoFlag, cinstInstallMethod = NoFlag, cinstInstalldir = Flag "/home/artem/.cabal/bin"}}, projectConfigShared = ProjectConfigShared {projectConfigDistDir = NoFlag, projectConfigConfigFile = NoFlag, projectConfigProjectFile = NoFlag, projectConfigIgnoreProject = Flag False, projectConfigHcFlavor = Flag GHC, projectConfigHcPath = NoFlag, projectConfigHcPkg = NoFlag, projectConfigHaddockIndex = Flag "$datadir/doc/$arch-$os-$compiler/index.html", projectConfigPackageDBs = [], projectConfigRemoteRepos = [RemoteRepo {remoteRepoName = RepoName {unRepoName = "hackage.haskell.org"}, remoteRepoURI = http://hackage.haskell.org/, remoteRepoSecure = Just True, remoteRepoRootKeys = ["fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0","1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42","2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3","0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d","51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921"], remoteRepoKeyThreshold = 3, remoteRepoShouldTryHttps = True}], projectConfigLocalNoIndexRepos = [], projectConfigActiveRepos = NoFlag, projectConfigIndexState = NoFlag, projectConfigStoreDir = NoFlag, projectConfigConstraints = [], projectConfigPreferences = [], projectConfigCabalVersion = NoFlag, projectConfigSolver = Flag AlwaysModular, projectConfigAllowOlder = Nothing, projectConfigAllowNewer = Nothing, projectConfigWriteGhcEnvironmentFilesPolicy = NoFlag, projectConfigMaxBackjumps = Flag 4000, projectConfigReorderGoals = Flag (ReorderGoals False), projectConfigCountConflicts = Flag (CountConflicts True), projectConfigFineGrainedConflicts = Flag (FineGrainedConflicts True), projectConfigMinimizeConflictSet = Flag (MinimizeConflictSet False), projectConfigStrongFlags = Flag (StrongFlags False), projectConfigAllowBootLibInstalls = Flag (AllowBootLibInstalls False), projectConfigOnlyConstrained = Flag OnlyConstrainedNone, projectConfigPerComponent = Flag True, projectConfigIndependentGoals = Flag (IndependentGoals False), projectConfigPreferOldest = Flag (PreferOldest False), projectConfigProgPathExtra = ["/home/artem/.cabal/bin"]}, projectConfigProvenance = fromList [], projectConfigAllPackages = PackageConfig {packageConfigProgramPaths = MapLast {getMapLast = fromList []}, packageConfigProgramArgs = MapMappend {getMapMappend = fromList []}, packageConfigProgramPathExtra = ["/home/artem/.cabal/bin"], packageConfigFlagAssignment = fromList [], packageConfigVanillaLib = NoFlag, packageConfigSharedLib = NoFlag, packageConfigStaticLib = NoFlag, packageConfigDynExe = NoFlag, packageConfigFullyStaticExe = NoFlag, packageConfigProf = NoFlag, packageConfigProfLib = NoFlag, packageConfigProfExe = NoFlag, packageConfigProfDetail = NoFlag, packageConfigProfLibDetail = NoFlag, packageConfigConfigureArgs = [], packageConfigOptimization = Flag MaximumOptimisation, packageConfigProgPrefix = NoFlag, packageConfigProgSuffix = NoFlag, packageConfigExtraLibDirs = [], packageConfigExtraLibDirsStatic = [], packageConfigExtraFrameworkDirs = [], packageConfigExtraIncludeDirs = [], packageConfigGHCiLib = NoFlag, packageConfigSplitSections = NoFlag, packageConfigSplitObjs = NoFlag, packageConfigStripExes = NoFlag, packageConfigStripLibs = NoFlag, packageConfigTests = NoFlag, packageConfigBenchmarks = NoFlag, packageConfigCoverage = NoFlag, packageConfigRelocatable = NoFlag, packageConfigDebugInfo = NoFlag, packageConfigDumpBuildInfo = NoFlag, packageConfigRunTests = NoFlag, packageConfigDocumentation = Flag False, packageConfigHaddockHoogle = Flag False, packageConfigHaddockHtml = Flag False, packageConfigHaddockHtmlLocation = NoFlag, packageConfigHaddockForeignLibs = Flag False, packageConfigHaddockExecutables = Flag False, packageConfigHaddockTestSuites = Flag False, packageConfigHaddockBenchmarks = Flag False, packageConfigHaddockInternal = Flag False, packageConfigHaddockCss = NoFlag, packageConfigHaddockLinkedSource = Flag False, packageConfigHaddockQuickJump = Flag False, packageConfigHaddockHscolourCss = NoFlag, packageConfigHaddockContents = NoFlag, packageConfigHaddockIndex = NoFlag, packageConfigHaddockBaseUrl = NoFlag, packageConfigHaddockLib = NoFlag, packageConfigHaddockForHackage = NoFlag, packageConfigTestHumanLog = Flag "$pkgid-$test-suite.log", packageConfigTestMachineLog = Flag "$pkgid.log", packageConfigTestShowDetails = Flag Failures, packageConfigTestKeepTix = Flag False, packageConfigTestWrapper = NoFlag, packageConfigTestFailWhenNoTestSuites = Flag False, packageConfigTestTestOptions = [], packageConfigBenchmarkOptions = []}, projectConfigLocalPackages = PackageConfig {packageConfigProgramPaths = MapLast {getMapLast = fromList []}, packageConfigProgramArgs = MapMappend {getMapMappend = fromList []}, packageConfigProgramPathExtra = [], packageConfigFlagAssignment = fromList [], packageConfigVanillaLib = NoFlag, packageConfigSharedLib = NoFlag, packageConfigStaticLib = NoFlag, packageConfigDynExe = NoFlag, packageConfigFullyStaticExe = NoFlag, packageConfigProf = NoFlag, packageConfigProfLib = NoFlag, packageConfigProfExe = NoFlag, packageConfigProfDetail = NoFlag, packageConfigProfLibDetail = NoFlag, packageConfigConfigureArgs = [], packageConfigOptimization = NoFlag, packageConfigProgPrefix = NoFlag, packageConfigProgSuffix = NoFlag, packageConfigExtraLibDirs = [], packageConfigExtraLibDirsStatic = [], packageConfigExtraFrameworkDirs = [], packageConfigExtraIncludeDirs = [], packageConfigGHCiLib = NoFlag, packageConfigSplitSections = NoFlag, packageConfigSplitObjs = NoFlag, packageConfigStripExes = NoFlag, packageConfigStripLibs = NoFlag, packageConfigTests = NoFlag, packageConfigBenchmarks = NoFlag, packageConfigCoverage = NoFlag, packageConfigRelocatable = NoFlag, packageConfigDebugInfo = NoFlag, packageConfigDumpBuildInfo = NoFlag, packageConfigRunTests = NoFlag, packageConfigDocumentation = NoFlag, packageConfigHaddockHoogle = NoFlag, packageConfigHaddockHtml = NoFlag, packageConfigHaddockHtmlLocation = NoFlag, packageConfigHaddockForeignLibs = NoFlag, packageConfigHaddockExecutables = NoFlag, packageConfigHaddockTestSuites = NoFlag, packageConfigHaddockBenchmarks = NoFlag, packageConfigHaddockInternal = NoFlag, packageConfigHaddockCss = NoFlag, packageConfigHaddockLinkedSource = NoFlag, packageConfigHaddockQuickJump = NoFlag, packageConfigHaddockHscolourCss = NoFlag, packageConfigHaddockContents = NoFlag, packageConfigHaddockIndex = NoFlag, packageConfigHaddockBaseUrl = NoFlag, packageConfigHaddockLib = NoFlag, packageConfigHaddockForHackage = NoFlag, packageConfigTestHumanLog = NoFlag, packageConfigTestMachineLog = NoFlag, packageConfigTestShowDetails = NoFlag, packageConfigTestKeepTix = NoFlag, packageConfigTestWrapper = NoFlag, packageConfigTestFailWhenNoTestSuites = NoFlag, packageConfigTestTestOptions = [], packageConfigBenchmarkOptions = []}, projectConfigSpecificPackage = MapMappend {getMapMappend = fromList []}}
ProjectConfig
{ projectPackages = []
, projectPackagesOptional = []
, projectPackagesRepo = []
, projectPackagesNamed = []
, projectConfigBuildOnly = ProjectConfigBuildOnly
{ projectConfigVerbosity = Flag
( Verbosity
{ vLevel = Normal
, vFlags = fromList []
, vQuiet = False
}
)
, projectConfigDryRun = Flag False
, projectConfigOnlyDeps = Flag False
, projectConfigOnlyDownload = Flag False
, projectConfigSummaryFile = [ "/home/artem/.cabal/logs/build.log" ]
, projectConfigLogFile = NoFlag
, projectConfigBuildReports = Flag NoReports
, projectConfigReportPlanningFailure = Flag False
, projectConfigSymlinkBinDir = NoFlag
, projectConfigNumJobs = Flag Nothing
, projectConfigKeepGoing = Flag False
, projectConfigOfflineMode = Flag False
, projectConfigKeepTempFiles = Flag False
, projectConfigHttpTransport = NoFlag
, projectConfigIgnoreExpiry = NoFlag
, projectConfigCacheDir = Flag "/home/artem/.cabal/packages"
, projectConfigLogsDir = Flag "/home/artem/.cabal/logs"
, projectConfigClientInstallFlags = ClientInstallFlags
{ cinstInstallLibs = Flag False
, cinstEnvironmentPath = NoFlag
, cinstOverwritePolicy = NoFlag
, cinstInstallMethod = NoFlag
, cinstInstalldir = Flag "/home/artem/.cabal/bin"
}
}
, projectConfigShared = ProjectConfigShared
{ projectConfigDistDir = NoFlag
, projectConfigConfigFile = NoFlag
, projectConfigProjectFile = NoFlag
, projectConfigIgnoreProject = Flag False
, projectConfigHcFlavor = Flag GHC
, projectConfigHcPath = NoFlag
, projectConfigHcPkg = NoFlag
, projectConfigHaddockIndex = Flag "$datadir/doc/$arch-$os-$compiler/index.html"
, projectConfigPackageDBs = []
, projectConfigRemoteRepos =
[ RemoteRepo
{ remoteRepoName = RepoName
{ unRepoName = "hackage.haskell.org" }
, remoteRepoURI = http://hackage.haskell.org/
, remoteRepoSecure = Just True
, remoteRepoRootKeys =
[ "fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0"
, "1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42"
, "2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3"
, "0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d"
, "51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921"
]
, remoteRepoKeyThreshold = 3
, remoteRepoShouldTryHttps = True
}
]
, projectConfigLocalNoIndexRepos = []
, projectConfigActiveRepos = NoFlag
, projectConfigIndexState = NoFlag
, projectConfigStoreDir = NoFlag
, projectConfigConstraints = []
, projectConfigPreferences = []
, projectConfigCabalVersion = NoFlag
, projectConfigSolver = Flag AlwaysModular
, projectConfigAllowOlder = Nothing
, projectConfigAllowNewer = Nothing
, projectConfigWriteGhcEnvironmentFilesPolicy = NoFlag
, projectConfigMaxBackjumps = Flag 4000
, projectConfigReorderGoals = Flag ( ReorderGoals False )
, projectConfigCountConflicts = Flag ( CountConflicts True )
, projectConfigFineGrainedConflicts = Flag ( FineGrainedConflicts True )
, projectConfigMinimizeConflictSet = Flag ( MinimizeConflictSet False )
, projectConfigStrongFlags = Flag ( StrongFlags False )
, projectConfigAllowBootLibInstalls = Flag ( AllowBootLibInstalls False )
, projectConfigOnlyConstrained = Flag OnlyConstrainedNone
, projectConfigPerComponent = Flag True
, projectConfigIndependentGoals = Flag ( IndependentGoals False )
, projectConfigPreferOldest = Flag ( PreferOldest False )
, projectConfigProgPathExtra = [ "/home/artem/.cabal/bin" ]
}
, projectConfigProvenance = fromList []
, projectConfigAllPackages = PackageConfig
{ packageConfigProgramPaths = MapLast
{ getMapLast = fromList [] }
, packageConfigProgramArgs = MapMappend
{ getMapMappend = fromList [] }
, packageConfigProgramPathExtra = [ "/home/artem/.cabal/bin" ]
, packageConfigFlagAssignment = fromList []
, packageConfigVanillaLib = NoFlag
, packageConfigSharedLib = NoFlag
, packageConfigStaticLib = NoFlag
, packageConfigDynExe = NoFlag
, packageConfigFullyStaticExe = NoFlag
, packageConfigProf = NoFlag
, packageConfigProfLib = NoFlag
, packageConfigProfExe = NoFlag
, packageConfigProfDetail = NoFlag
, packageConfigProfLibDetail = NoFlag
, packageConfigConfigureArgs = []
, packageConfigOptimization = Flag MaximumOptimisation
, packageConfigProgPrefix = NoFlag
, packageConfigProgSuffix = NoFlag
, packageConfigExtraLibDirs = []
, packageConf
}
}
What's up with the last "field" packageConf
? It looks like truncated packageConfigExtraLibDirsStatic
. And where is the rest?..
Weird. It's consistently cutting off at 4096 characters, whatever the input. If you need a workaround, I've found that writing to a file and piping from cat
works.
Must be something related to Linux terminal buffers. Not my area of expertise unfortunately. @cdepillabout Any ideas?
Oh, thanks a lot for the diagnosis and workaround! That should work for me.
Actually, from a brief look at this thread, it looks like maybe this is just a Linux limit, and not something that pretty-simple
can do anything about.
I'm fine with closing if you think that would be best. Thanks again!
Great, thanks.
If you want something you can copy-paste in to, try https://georgefst.github.io/pretty-simple.
@georgefst Nice diagnosis!