
#14461: Reuse free variable lists through nested closures -------------------------------------+------------------------------------- Reporter: tdammers | Owner: alexbiehl Type: task | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: 7258 | Differential Rev(s): Wiki Page: NestedClosures | -------------------------------------+------------------------------------- Comment (by simonpj): Yes you could do that in Core, but the simplifier would immediately undo it by eliminating the inner case. However, in our proposed STG-level transformation, I think we could indeed transform {{{ case e of x { T a b c -> let [a b c] f = \[] -> ... } }}} to {{{ case e of x { T _ _ _ -> let [x{a,b,c}] f = \[] -> ... } }}} using the notation on the wiki page. I'm beginning to think that it might be easier to do this free-var-finding stuff as a STG-to-STG pass with a single purpose, rather than as part of Core-to-STG. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14461#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler