[GHC] #10528: compile time performance regression with OverloadedStrings and Text

GHC ghc-devs at haskell.org
Fri Jul 24 16:31:09 UTC 2015


#10528: compile time performance regression with OverloadedStrings and Text
-------------------------------------+-------------------------------------
        Reporter:  jakewheat         |                   Owner:  bgamari
            Type:  bug               |                  Status:  new
        Priority:  high              |               Milestone:  7.10.3
       Component:  Compiler          |                 Version:  7.10.2-rc2
      Resolution:                    |                Keywords:
Operating System:  Linux             |            Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  performance bug                    |               Test Case:
      Blocked By:                    |                Blocking:
 Related Tickets:                    |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by bgamari):

 In both 7.10.1 and 7.10.2 the following simplifications occur (in
 chronological order),

  * First 7.10.1 and 7.10.2 both inline `Data.Text.$fIsStringText` and
 `Data.String.fromString` (something like once for each binding)
  * In the next simplifier run they both inline `GHC.Base.build` and
 `GHC.Base.pack` (again, something like once per binding)
  * In the next simplifier iteration 7.10.1 does no inlining. 7.10.2,
 however, keeps going, inlining `Data.Text.Internal.Fusion.unstream`,
 `Data.Text.Internal.Fusion.Common.map`,
 `Data.Text.Internal.Fusion.Common.streamList`, `Data.Text.Internal.safe`,
 and `Data.Text.Internal.Fusion.Types.$WYield` (again, proportional to the
 number of bindings).

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


More information about the ghc-tickets mailing list