
#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 ntc2): @simonpj, you can reproduce by checking out the repo with the `slow-regex` test package (https://github.com/ntc2/ghc-8.2.1-regex-lazy-text-bug), building it, and then running the `slow-regex` executable that produces with arguments "text-lazy" and the name of one of the test files. E.g. {{{ slow-regex text-lazy defs-10000.txt }}} The `defs-10000.txt` test file is included with the test package. With GHC 8.2.2, using new Cabal: {{{ git clone git@github.com:ntc2/ghc-8.2.1-regex-lazy-text-bug.git cd ghc-8.2.1-regex-lazy-text-bug.git cabal new-build slow-regex ./dist-newstyle/build/x86_64-linux/ghc-8.2.2/slow-regex-0.1.0.0/c/slow- regex/build/slow-regex/slow-regex text-lazy defs-10000.txt }}} With GHC 8.2.2, using Stack: {{{ git clone git@github.com:ntc2/ghc-8.2.1-regex-lazy-text-bug.git cd ghc-8.2.1-regex-lazy-text-bug.git stack build --stack-yaml stack-ghc-8.2.2.yaml slow-regex stack exec --stack-yaml stack-ghc-8.2.2.yaml slow-regex text-lazy defs-10000.txt }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14519#comment:20 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler