
#9369: Data.List.unfoldr does not fuse and is not inlined. -------------------------------------+------------------------------------- Reporter: dfeuer | Owner: Type: bug | Status: new Priority: normal | Milestone: 7.8.4 Component: | Version: 7.8.3 libraries/base | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Easy (less than 1 Unknown/Multiple | hour) Type of failure: Runtime | Blocked By: performance bug | Related Tickets: Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by dfeuer): Replying to [comment:1 schyler]:
(By the way, I don't think this counts as a 'Runtime performance bug' as much as it should be categorised as a 'Compile-time performance bug' maybe..)
Good work though, +1 from me.
My interpretation, correct or not, is that compile-time performance bugs are things that lead to GHC itself running slowly. As long as I'm adding a comment, I'll note that there are functions in the libraries that are very naturally written as unfolds, but that currently are not—perhaps because the current unfold performs so poorly. The ones I've encountered so far are `groupBy` and various implementations of `enumFromTo` that have their own custom rewrite rules to get around this. I can't guarantee anything, but it would be nice to simplify those if we can do so without losing speed. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9369#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler