
#14519: Exponential runtime performance regression in GHC 8.2 + Data.Text.Lazy + Text.RE.TDFA -------------------------------------+------------------------------------- Reporter: ntc2 | Owner: tdammers Type: bug | Status: new Priority: normal | Milestone: 8.4.1 Component: Compiler | Version: 8.2.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: Runtime | Test Case: performance bug | https://github.com/ntc2/ghc-8.2.1 | -regex-lazy-text- | bug/tree/07b7bb32c6e90e8f2d2eada4b59943f37e632d53 Blocked By: | Blocking: Related Tickets: #13745, #14564 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by tdammers): Quick data point: in a test case using a modified `Lazy.hs`, the bad behavior can be reproduced when running certain regular expressions against a large test data set, but not others: - `^def `: bad - `^def[^.]`: bad - `^[^.]`: good - `^d[^.]`: good - `^de[^.]`: good - `^def[^.]`: bad - `^[^.]def`: good (I picked `[^.]` as a subexpression that can never match). Particularly interesting is `^de[^.]` vs. `^def[^.]`: it seems that having to consume 4 or more tokens from the start of the input triggers the bad behavior. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14519#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler