Re: [GHC] #7542: GHC doesn't optimize (strict) composition with id

#7542: GHC doesn't optimize (strict) composition with id --------------------------------------------+------------------------------ Reporter: shachaf | Owner: simonpj Type: bug | Status: new Priority: normal | Milestone: 7.8.1 Component: Compiler | Version: 7.6.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Runtime performance bug | Unknown/Multiple Test Case: | Difficulty: Unknown Blocking: | Blocked By: | Related Tickets: --------------------------------------------+------------------------------ Comment (by nomeata): @ekmett: Ok, thanks for the input. So clearly it should _not_ be closed then. So what you’d like to see is to have GHC behave here as if `-fpedantic- bottoms` is on always. Obviously, one could make that flag the default, but there must be reasons why it is not the default. What I find surprising: The core generated for {{{ mkIdDot2 :: (a -> b) -> a -> Id b mkIdDot2 f = f `seq` \x -> MkId (f x) }}} is {{{ mkIdDot2 = (λ f. f) |> (some cast involving Id)) }}} which is the same core that we get with `mkIdDot2 = coerce` (hey, no unsafe!), but the latter produces the desired `map2 = map`... hard to see (without knowing the simplifier by heart) where this goes wrong. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/7542#comment:13 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC