accessing compilation parameters from template haskell

Simon Peyton-Jones simonpj at microsoft.com
Fri Sep 16 09:21:33 CEST 2011


The difficulty here is that the TH library, by design, doesn't depend on GHC.  So we can't have a TH function
	getFlags :: Q DynFlags
or (as you suggest, more or less)
	runTc :: TcM a -> Q a
because to write those type signatures in Language.Haskell.TH.Syntax you'd need to import GHC.

There's no difficulty in *practice*!  Q more or less *is* TcM.

Still I don't really know how to get around this in a beautiful way.

Simon

| -----Original Message-----
| From: glasgow-haskell-users-bounces at haskell.org [mailto:glasgow-haskell-users-
| bounces at haskell.org] On Behalf Of Ganesh Sittampalam
| Sent: 16 September 2011 06:42
| To: GHC users
| Subject: accessing compilation parameters from template haskell
| 
| Hi,
| 
| It would be useful to access the current compilation parameters or even
| an entire RunGhc monad from inside a Template Haskell splice. Is there
| any way to do this?
| 
| The reason I want to do this is I'm using the ghc API at runtime to
| dynamically execute code, and I want both the dynamically loaded code
| and static code to use a shared runtime module that defines some types
| used for communication across the boundary. To guarantee the internal
| representations etc are the same, I store the object file of the runtime
| during compilation then load it dynamically at runtime - but to make
| this work I need to know where the object file is (-odir and -hidir) and
| I also need to know or be able to deduce the GHC DynFlags so I can
| replicate them at runtime.
| 
| I could also achieve this goal by putting my runtime in a separate
| package and installing it first, but that's less self-contained and
| would be a pain during development.
| 
| Cheers,
| 
| Ganesh
| 
| _______________________________________________
| Glasgow-haskell-users mailing list
| Glasgow-haskell-users at haskell.org
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-users




More information about the Glasgow-haskell-users mailing list