
#10528: compile time performance regression with OverloadedStrings and Text -------------------------------------+------------------------------------- Reporter: jakewheat | Owner: 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: -------------------------------------+------------------------------------- Changes (by bgamari): * owner: bgamari => * status: merge => new Comment: Unfortunately for reasons I don't yet understand, my testcase was not reliably reproducing the issue, which led me to believe that the phase control annotations resolved the issue. Sadly, it seems that this is not the case. Simon, I am a bit concerned that the phase control annotations aren't actually sufficient to resolve this issue. The problem being that the rules are being rewritten during the compilation of the module which defines them (`Data.Text.Show`); consequently the rules making it in to the interface file are still being rewritten to, {{{ "TEXT literal" [2] forall a :: Addr# unstream (map safe (streamList @ Char (build @ Char (\ @ b -> unpackFoldrCString# @ b a)))) = unpackCString# a }}} Perhaps I misunderstood: did you not expect this issue to be fixed via phase control? It seems that the only solution here is to fix the underlying issue: ensure that the LHS is not rewritten by merging the fix from comment:15. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10528#comment:22 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler