[GHC] #16017: ghc-8.6.1 and ghc-8.6.2 use a log of memory

GHC ghc-devs at haskell.org
Sun Dec 9 00:43:02 UTC 2018


#16017: ghc-8.6.1 and ghc-8.6.2 use a log of memory
-------------------------------------+-------------------------------------
           Reporter:  newhoggy       |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:  8.6.3
          Component:  Compiler       |           Version:  8.6.2
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 Currently GHC uses a lot of memory to build a relatively small module and
 causes my CI to fail due to there being a 4G memory limit.

 The source code can be found here:

 https://github.com/haskell-works/hw-
 json/tree/73368cee21dc72eedd5291ba689f9abf10e7fcd2

 The problem module is here:

 https://github.com/haskell-works/hw-
 json/blob/73368cee21dc72eedd5291ba689f9abf10e7fcd2/test/HaskellWorks/Data/Json/Backend/Standard/Succinct/CursorSpec.hs

 The build output follows:

 {{{
 cabal new-build --enable-tests --enable-benchmarks --project-
 file="cabal.project" -j${CABAL_THREADS:-4} all
 Build profile: -w ghc-8.6.2 -O2
 In order, the following will be built (use -v for more details):
  - hw-json-0.9.0.1 (lib) (first run)
  - hw-json-0.9.0.1 (test:hw-json-test) (first run)
  - hw-json-0.9.0.1 (exe:hw-json) (first run)
  - hw-json-0.9.0.1 (bench:bench) (first run)
 Configuring library for hw-json-0.9.0.1..
 Preprocessing library for hw-json-0.9.0.1..
 Building library for hw-json-0.9.0.1..
 [ 1 of 32] Compiling HaskellWorks.Data.Json.DecodeError (
 src/HaskellWorks/Data/Json/DecodeError.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/DecodeError.o )
 [ 2 of 32] Compiling
 HaskellWorks.Data.Json.Internal.Backend.Standard.MakeIndex (
 src/HaskellWorks/Data/Json/Internal/Backend/Standard/MakeIndex.hs,
 /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/MakeIndex.o
 )
 [ 3 of 32] Compiling HaskellWorks.Data.Json.Internal.Index (
 src/HaskellWorks/Data/Json/Internal/Index.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Index.o )
 [ 4 of 32] Compiling HaskellWorks.Data.Json.Internal.PartialIndex (
 src/HaskellWorks/Data/Json/Internal/PartialIndex.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/PartialIndex.o )
 [ 5 of 32] Compiling HaskellWorks.Data.Json.Internal.Token.Types (
 src/HaskellWorks/Data/Json/Internal/Token/Types.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Token/Types.o )
 [ 6 of 32] Compiling
 HaskellWorks.Data.Json.Internal.Backend.Standard.Token.Tokenize (
 src/HaskellWorks/Data/Json/Internal/Backend/Standard/Token/Tokenize.hs,
 /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/Token/Tokenize.o
 )
 [ 7 of 32] Compiling HaskellWorks.Data.Json.Internal.Token (
 src/HaskellWorks/Data/Json/Internal/Token.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Token.o )
 [ 8 of 32] Compiling HaskellWorks.Data.Json.Internal.Value (
 src/HaskellWorks/Data/Json/Internal/Value.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Value.o )
 [ 9 of 32] Compiling HaskellWorks.Data.Json.Internal.Word8 (
 src/HaskellWorks/Data/Json/Internal/Word8.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Word8.o )
 [10 of 32] Compiling HaskellWorks.Data.Json.Internal.Word64 (
 src/HaskellWorks/Data/Json/Internal/Word64.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Word64.o )
 [11 of 32] Compiling HaskellWorks.Data.Json.Internal.CharLike (
 src/HaskellWorks/Data/Json/Internal/CharLike.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/CharLike.o )
 [12 of 32] Compiling
 HaskellWorks.Data.Json.Internal.Backend.Standard.Blank (
 src/HaskellWorks/Data/Json/Internal/Backend/Standard/Blank.hs,
 /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/Blank.o
 )
 [13 of 32] Compiling
 HaskellWorks.Data.Json.Internal.Backend.Standard.BlankedJson (
 src/HaskellWorks/Data/Json/Internal/Backend/Standard/BlankedJson.hs,
 /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/BlankedJson.o
 )
 [14 of 32] Compiling
 HaskellWorks.Data.Json.Internal.Backend.Standard.ToInterestBits64 (
 src/HaskellWorks/Data/Json/Internal/Backend/Standard/ToInterestBits64.hs,
 /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/ToInterestBits64.o
 )
 [15 of 32] Compiling
 HaskellWorks.Data.Json.Internal.Backend.Standard.ToBalancedParens64 (
 src/HaskellWorks/Data/Json/Internal/Backend/Standard/ToBalancedParens64.hs,
 /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/ToBalancedParens64.o
 )
 [16 of 32] Compiling HaskellWorks.Data.Json.Internal.Backend.Standard.IbBp
 ( src/HaskellWorks/Data/Json/Internal/Backend/Standard/IbBp.hs,
 /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/IbBp.o
 )
 [17 of 32] Compiling HaskellWorks.Data.Json.Backend.Standard.SemiIndex (
 src/HaskellWorks/Data/Json/Backend/Standard/SemiIndex.hs, /root/project
 /dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Backend/Standard/SemiIndex.o
 )
 [18 of 32] Compiling HaskellWorks.Data.Json.Backend.Simple.SemiIndex (
 src/HaskellWorks/Data/Json/Backend/Simple/SemiIndex.hs, /root/project
 /dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Backend/Simple/SemiIndex.o )
 [19 of 32] Compiling HaskellWorks.Data.Json.LightJson (
 src/HaskellWorks/Data/Json/LightJson.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/LightJson.o )
 [20 of 32] Compiling HaskellWorks.Data.Json.PartialValue (
 src/HaskellWorks/Data/Json/PartialValue.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/PartialValue.o )
 [21 of 32] Compiling HaskellWorks.Data.Json.Type (
 src/HaskellWorks/Data/Json/Type.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Type.o )
 [22 of 32] Compiling HaskellWorks.Data.Json.Backend.Standard.Cursor (
 src/HaskellWorks/Data/Json/Backend/Standard/Cursor.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Backend/Standard/Cursor.o )
 [23 of 32] Compiling HaskellWorks.Data.Json.Cursor (
 src/HaskellWorks/Data/Json/Cursor.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Cursor.o )
 [24 of 32] Compiling
 HaskellWorks.Data.Json.Internal.Backend.Standard.Cursor.Token (
 src/HaskellWorks/Data/Json/Internal/Backend/Standard/Cursor/Token.hs,
 /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Internal/Backend/Standard/Cursor/Token.o
 )
 [25 of 32] Compiling HaskellWorks.Data.Json.Value (
 src/HaskellWorks/Data/Json/Value.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Value.o )
 [26 of 32] Compiling HaskellWorks.Data.Json.FromValue (
 src/HaskellWorks/Data/Json/FromValue.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/FromValue.o )
 [27 of 32] Compiling HaskellWorks.Data.Json.Backend.Standard.LoadCursor (
 src/HaskellWorks/Data/Json/Backend/Standard/LoadCursor.hs, /root/project
 /dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Backend/Standard/LoadCursor.o
 )
 [28 of 32] Compiling HaskellWorks.Data.Json.LoadCursor (
 src/HaskellWorks/Data/Json/LoadCursor.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/LoadCursor.o )
 [29 of 32] Compiling HaskellWorks.Data.Json.Backend.Standard.Load (
 src/HaskellWorks/Data/Json/Backend/Standard/Load.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Backend/Standard/Load.o )
 [30 of 32] Compiling HaskellWorks.Data.Json.Load (
 src/HaskellWorks/Data/Json/Load.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json/Load.o )
 [31 of 32] Compiling HaskellWorks.Data.Json (
 src/HaskellWorks/Data/Json.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/HaskellWorks/Data/Json.o )
 [32 of 32] Compiling Paths_hw_json    ( /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/autogen/Paths_hw_json.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/opt/build/Paths_hw_json.o )
 Configuring test suite 'hw-json-test' for hw-json-0.9.0.1..
 Configuring benchmark 'bench' for hw-json-0.9.0.1..
 Configuring executable 'hw-json' for hw-json-0.9.0.1..
 Preprocessing test suite 'hw-json-test' for hw-json-0.9.0.1..
 Building test suite 'hw-json-test' for hw-json-0.9.0.1..
 Preprocessing executable 'hw-json' for hw-json-0.9.0.1..
 Preprocessing benchmark 'bench' for hw-json-0.9.0.1..
 Building benchmark 'bench' for hw-json-0.9.0.1..
 Building executable 'hw-json' for hw-json-0.9.0.1..
 [ 1 of 11] Compiling
 HaskellWorks.Data.Json.Backend.Standard.Succinct.Cursor.InterestBitsSpec (
 test/HaskellWorks/Data/Json/Backend/Standard/Succinct/Cursor/InterestBitsSpec.hs,
 /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/t
 /hw-json-test/opt/build/hw-json-test/hw-json-test-
 tmp/HaskellWorks/Data/Json/Backend/Standard/Succinct/Cursor/InterestBitsSpec.o
 )
 [1 of 2] Compiling Main             ( bench/Main.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/b/bench/opt/build/bench/bench-tmp/Main.o )
 [1 of 7] Compiling App.Commands.Types ( app/App/Commands/Types.hs,
 /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x
 /hw-json/opt/build/hw-json/hw-json-tmp/App/Commands/Types.o )
 [2 of 7] Compiling App.Lens         ( app/App/Lens.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build
 /hw-json/hw-json-tmp/App/Lens.o )
 [3 of 7] Compiling App.Commands.Demo ( app/App/Commands/Demo.hs,
 /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x
 /hw-json/opt/build/hw-json/hw-json-tmp/App/Commands/Demo.o )
 [2 of 2] Compiling Paths_hw_json    ( /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/b/bench/opt/build/bench/autogen/Paths_hw_json.hs,
 /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/b/bench/opt/build/bench/bench-tmp/Paths_hw_json.o )
 Linking /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/b/bench/opt/build/bench/bench ...
 [4 of 7] Compiling App.Commands.CreateIndex (
 app/App/Commands/CreateIndex.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build
 /hw-json/hw-json-tmp/App/Commands/CreateIndex.o )
 [5 of 7] Compiling App.Commands     ( app/App/Commands.hs, /root/project
 /dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-
 json/opt/build/hw-json/hw-json-tmp/App/Commands.o )
 [ 2 of 11] Compiling
 HaskellWorks.Data.Json.Backend.Standard.Succinct.CursorSpec (
 test/HaskellWorks/Data/Json/Backend/Standard/Succinct/CursorSpec.hs,
 /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/t
 /hw-json-test/opt/build/hw-json-test/hw-json-test-
 tmp/HaskellWorks/Data/Json/Backend/Standard/Succinct/CursorSpec.o )
 [6 of 7] Compiling Main             ( app/Main.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build
 /hw-json/hw-json-tmp/Main.o )
 [7 of 7] Compiling Paths_hw_json    ( /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build
 /hw-json/autogen/Paths_hw_json.hs, /root/project/dist-
 newstyle/build/x86_64-linux/ghc-8.6.2/hw-json-0.9.0.1/x/hw-json/opt/build
 /hw-json/hw-json-tmp/Paths_hw_json.o )
 Linking /root/project/dist-newstyle/build/x86_64-linux/ghc-8.6.2/hw-
 json-0.9.0.1/x/hw-json/opt/build/hw-json/hw-json ...
 cabal: Failed to build test:hw-json-test from hw-json-0.9.0.1. The build
 process was killed (i.e. SIGKILL). The typical reason for this is that
 there
 is not enough memory available (e.g. the OS killed a process using lots of
 memory).

 Exited with code 1
 }}}

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16017>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list