
#9388: Narrow the scope of the notorious "state hack" -------------------------------------+------------------------------------- Reporter: simonpj | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: None/Unknown | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by nomeata): Has someone implemented this without telling us? In GHC-7.8.4, compiling {{{ pr :: String -> IO () pr x = putStrLn (reverse x) }}} without the state hack yields {{{ pr = \ x_arX -> let s_aQl = reverse1 x_arX ([]) in (\ eta_aQm -> hPutStr2 stdout s_aQl True eta_aQm) `cast` ... }}} and only with the state hack, we get the good {{{ pr1 = \ x_arX eta_B1 -> hPutStr2 stdout (reverse x_arX) True eta_B1 }}} But with GHC HEAD, the output is good with and without `-fno-state-hack`. So either something implemented this, or the state hack flag gets ignored for some reason. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9388#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler