
#10382: Template Haskell (non-quasi) quotes should work with stage 1 compiler -------------------------------------+------------------------------------- Reporter: ezyang | Owner: ezyang Type: feature request | Status: new Priority: normal | Milestone: 7.12.1 Component: Template Haskell | Version: 7.11 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: None/Unknown | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: Phab:D876 -------------------------------------+------------------------------------- Comment (by angerman): Sorry for being a little late to the discussion. Ideally, I would prefer that a stage1 compiler would try and go ahead with compiling template haskell, until it figures it can't. Motivation being: when ever I find time to hack on out-of-process-template-haskell (effectively trying to bring over luites th approach from ghcjs), I have to inject lots of ifdefs into the ghc code to even get ghc to the point where it starts to complain that it can't compile the splice instead of refusing to even try it right from the start. I haven't had much time to work on it throughout the last half year but would love to continue with it. I'll leave some of the relevant links here: - https://mail.haskell.org/pipermail/ghc-devs/2014-December/007555.html - https://ghc.haskell.org/trac/ghc/wiki/TemplateHaskell/CrossCompilation From my understanding, and please correct me if I'm wrong, th splices fall into three categories: - (a) IO - can be anything includiing arbitarary IO actions at compile time. - (b) Target dependent - reading target intrinsic values (maxBound :: Int) - (c) everything else that does not include (a) or (b). where (c) should be fine to compile on the host, (b) could probably be also compiled on the host if all the target intrinsic information is taken care of. (a) is going to be interesting, as at least with the out-of- process-th appraoch, you would be running the code on a device that might not have the same environment. Such that thinks like looking up git revisions would have to fail. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10382#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler