[GHC] #14766: Hole-y partial type signatures greatly slow down compile times

#14766: Hole-y partial type signatures greatly slow down compile times -------------------------------------+------------------------------------- Reporter: harpocrates | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: Compile-time Unknown/Multiple | performance bug Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- This time, I actually mean it. :) Originally reported [https://github.com/simonmar/happy/issues/109 here], I distilled the example from [https://github.com/simonmar/happy/issues/109#issuecomment-362957245 this comment] into a one file test case. `Sigs.hs` is exactly like `NoSigs.hs`, except for the fact that it has a bunch of extra type signatures that have a lot of holes. On my machine, this is what compilation times are (I gave up timing after 15 minutes): || GHC version || 8.0.2 || 8.2.1 || 8.4.1 (445554b6d9a2263f969e25bb9f532dd0c3a9dc8c) || || `NoSigs.hs` || 24.13s || 22.93s || 34.05s || || `Sigs.hs` || >15m || >15m || >15m || -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14766 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#14766: Hole-y partial type signatures greatly slow down compile times -------------------------------------+------------------------------------- Reporter: harpocrates | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): Fantastic. Where can I find `Sigs.hs` and `NoSigs.hs`? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14766#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#14766: Hole-y partial type signatures greatly slow down compile times -------------------------------------+------------------------------------- Reporter: harpocrates | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by harpocrates): * Attachment "NoSigs.y" added. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14766 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#14766: Hole-y partial type signatures greatly slow down compile times -------------------------------------+------------------------------------- Reporter: harpocrates | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by harpocrates): * Attachment "Sigs.y" added. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14766 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#14766: Hole-y partial type signatures greatly slow down compile times -------------------------------------+------------------------------------- Reporter: harpocrates | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by harpocrates): Unfortunately, `Sigs.hs` and `NoSigs.hs` are too big to upload. Here they are on [https://gist.github.com/harpocrates/93af4a98fb7bab62cf3fb1517279a48c GitHub gists]. Alternately, you can generate them (or rather generate very similar files, modulo some CPP) via: {{{ $ happy-1.19.8 -agc Sigs.y -o Sigs.hs $ happy-1.19.8 -agc NoSigs.y -o NoSigs.hs }}} Note that you _must_ use `happy` version 1.19.8 or later. Sorry for any confusion! -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14766#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#14766: Hole-y partial type signatures greatly slow down compile times -------------------------------------+------------------------------------- Reporter: harpocrates | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Description changed by harpocrates: Old description:
This time, I actually mean it. :)
Originally reported [https://github.com/simonmar/happy/issues/109 here], I distilled the example from [https://github.com/simonmar/happy/issues/109#issuecomment-362957245 this comment] into a one file test case. `Sigs.hs` is exactly like `NoSigs.hs`, except for the fact that it has a bunch of extra type signatures that have a lot of holes. On my machine, this is what compilation times are (I gave up timing after 15 minutes):
|| GHC version || 8.0.2 || 8.2.1 || 8.4.1 (445554b6d9a2263f969e25bb9f532dd0c3a9dc8c) || || `NoSigs.hs` || 24.13s || 22.93s || 34.05s || || `Sigs.hs` || >15m || >15m || >15m ||
New description: This time, I actually mean it. :) Originally reported [https://github.com/simonmar/happy/issues/109 here], I distilled the example from [https://github.com/simonmar/happy/issues/109#issuecomment-362957245 this comment] into a one file test case. `Sigs.hs` is exactly like `NoSigs.hs`, except for the fact that it has a bunch of extra type signatures that have a lot of holes. On my machine, this is what compilation times are (I gave up timing after 15 minutes): || GHC version || 8.0.2 || 8.2.1 || 8.4.1 (445554b6d9a2263f969e25bb9f532dd0c3a9dc8c) || || `NoSigs.hs` || 24.13s || 22.93s || 34.05s || || `Sigs.hs` || >15m || ~13m || >15m || -- -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14766#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#14766: Hole-y partial type signatures greatly slow down compile times -------------------------------------+------------------------------------- Reporter: harpocrates | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonmar): How does this relate to #14683? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14766#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#14766: Hole-y partial type signatures greatly slow down compile times -------------------------------------+------------------------------------- Reporter: harpocrates | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by harpocrates): Replying to [comment:4 simonmar]:
How does this relate to #14683?
The issues are AFAICT unrelated. The [https://github.com/simonmar/happy/issues/109 Happy issue] is really about this - it just so happens that while attempting to reproduce that issue, I stumbled on #14683 (and incorrectly assumed it too was partial-type- signature related). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14766#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#14766: Hole-y partial type signatures greatly slow down compile times -------------------------------------+------------------------------------- Reporter: harpocrates | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: | PartialTypeSignatures Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by simonpj): * keywords: => PartialTypeSignatures -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14766#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC