Skip to content

stack takes too long to find out that there is no work to do #1235

@sjakobi

Description

@sjakobi

Steps to reproduce:

$ cd stack
$ stack build
$ stack build --verbose

Expected:
Stack quickly realizes that there is no work to do and exits.

Actual:

Version 0.1.7.0, Git revision 7264ef6d99f19091f6521722aa620f4b59dba9e3 (dirty) (2415 commits) x86_64
2015-10-26 04:13:13.885705: [debug] Checking for project config at: /home/simon/src/stack/stack.yaml @(stack_FHzONQT9HI3ATX2xQH198L:Stack.Config src/Stack/Config.hs:554:9)
2015-10-26 04:13:13.885916: [debug] Loading project config file stack.yaml @(stack_FHzONQT9HI3ATX2xQH198L:Stack.Config src/Stack/Config.hs:577:13)
2015-10-26 04:13:13.887741: [debug] Run process: ldd /home/simon/.local/bin/stack @(stack_FHzONQT9HI3ATX2xQH198L:System.Process.Read src/System/Process/Read.hs:272:3)
2015-10-26 04:13:13.904957: [debug] Trying to decode /home/simon/.stack/build-plan-cache/x86_64-linux/lts-3.7.cache @(stack_FHzONQT9HI3ATX2xQH198L:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:53:5)
2015-10-26 04:13:13.927123: [debug] Success decoding /home/simon/.stack/build-plan-cache/x86_64-linux/lts-3.7.cache @(stack_FHzONQT9HI3ATX2xQH198L:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:62:13)
2015-10-26 04:13:13.92793: [debug] Run process: ghc --info @(stack_FHzONQT9HI3ATX2xQH198L:System.Process.Read src/System/Process/Read.hs:272:3)
2015-10-26 04:13:13.993673: [debug] Run process: ghc --numeric-version @(stack_FHzONQT9HI3ATX2xQH198L:System.Process.Read src/System/Process/Read.hs:272:3)
2015-10-26 04:13:14.032049: [debug] Run process: ghc-pkg --no-user-package-db field --simple-output Cabal version @(stack_FHzONQT9HI3ATX2xQH198L:System.Process.Read src/System/Process/Read.hs:272:3)
2015-10-26 04:13:14.0626: [debug] Run process: ghc-pkg --no-user-package-db list --global @(stack_FHzONQT9HI3ATX2xQH198L:System.Process.Read src/System/Process/Read.hs:272:3)
2015-10-26 04:13:14.094419: [debug] Run process: locale -a @(stack_FHzONQT9HI3ATX2xQH198L:System.Process.Read src/System/Process/Read.hs:272:3)
2015-10-26 04:13:14.115801: [debug] Checking resolver: lts-3.7 @(stack_FHzONQT9HI3ATX2xQH198L:Stack.Build.Source src/Stack/Build/Source.hs:162:17)
2015-10-26 04:13:14.115972: [debug] Trying to decode /home/simon/.stack/build-plan-cache/x86_64-linux/lts-3.7.cache @(stack_FHzONQT9HI3ATX2xQH198L:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:53:5)
2015-10-26 04:13:14.139067: [debug] Success decoding /home/simon/.stack/build-plan-cache/x86_64-linux/lts-3.7.cache @(stack_FHzONQT9HI3ATX2xQH198L:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:62:13)
2015-10-26 04:13:14.157555: [debug] Trying to decode /home/simon/.stack/indices/Hackage/00-index.cache @(stack_FHzONQT9HI3ATX2xQH198L:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:53:5)
2015-10-26 04:13:14.726689: [debug] Success decoding /home/simon/.stack/indices/Hackage/00-index.cache @(stack_FHzONQT9HI3ATX2xQH198L:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:62:13)
2015-10-26 04:13:14.899557: [debug] Run process: ghc-pkg --global --no-user-package-db dump --expand-pkgroot @(stack_FHzONQT9HI3ATX2xQH198L:System.Process.Read src/System/Process/Read.hs:272:3)
2015-10-26 04:13:14.98411: [debug] Run process: ghc-pkg --user --no-user-package-db --package-db /home/simon/.stack/snapshots/x86_64-linux/lts-3.7/7.10.2/pkgdb/ dump --expand-pkgroot @(stack_FHzONQT9HI3ATX2xQH198L:System.Process.Read src/System/Process/Read.hs:272:3)
2015-10-26 04:13:15.152178: [debug] Run process: ghc-pkg --user --no-user-package-db --package-db /home/simon/src/stack/.stack-work/install/x86_64-linux/lts-3.7/7.10.2/pkgdb/ dump --expand-pkgroot @(stack_FHzONQT9HI3ATX2xQH198L:System.Process.Read src/System/Process/Read.hs:272:3)
2015-10-26 04:13:15.197502: [debug] Ignoring package iso8601-time, from (InstalledTo Local,"/home/simon/src/stack/.stack-work/install/x86_64-linux/lts-3.7/7.10.2/pkgdb/"), due to  it being unknown to the resolver / extra-deps. @(stack_FHzONQT9HI3ATX2xQH198L:Stack.Build.Installed src/Stack/Build/Installed.hs:189:5)
2015-10-26 04:13:15.198028: [debug] Trying to decode /home/simon/.stack/indices/Hackage/00-index.cache @(stack_FHzONQT9HI3ATX2xQH198L:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:53:5)
2015-10-26 04:13:15.71894: [debug] Success decoding /home/simon/.stack/indices/Hackage/00-index.cache @(stack_FHzONQT9HI3ATX2xQH198L:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:62:13)
2015-10-26 04:13:15.719419: [debug] Trying to decode /home/simon/.stack/indices/Hackage/00-index.cache @(stack_FHzONQT9HI3ATX2xQH198L:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:53:5)
2015-10-26 04:13:16.263889: [debug] Success decoding /home/simon/.stack/indices/Hackage/00-index.cache @(stack_FHzONQT9HI3ATX2xQH198L:Data.Binary.VersionTagged src/Data/Binary/VersionTagged.hs:62:13)
2015-10-26 04:13:16.415685: [debug] Run process: ghc-pkg --no-user-package-db list --global @(stack_FHzONQT9HI3ATX2xQH198L:System.Process.Read src/System/Process/Read.hs:272:3)

This takes about 2.6s on my machine. Among other things stack decodes ~/.stack/indices/Hackage/00-index.cache three times which accounts for about 1.6s.

Is all this work really necessary to discover that there is no building to be done?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions