How does TH know to load non-profiled object code when compiling profiled?

2016-01-07 Thread Edward Z. Yang
I've been looking for the code that implements this logic, but I can't seem to find it. (For what it's worth, compiler plugins *incorrectly* load the profiling interface when compiling profiled, which is wrong and something I'd like to fix.) Simon Marlow, do you happen to know? Edward __

Re: How does TH know to load non-profiled object code when compiling profiled?

2016-01-07 Thread Simon Marlow
On 07/01/2016 16:28, Edward Z. Yang wrote: I've been looking for the code that implements this logic, but I can't seem to find it. (For what it's worth, compiler plugins *incorrectly* load the profiling interface when compiling profiled, which is wrong and something I'd like to fix.) Simon Marl

Re: How does TH know to load non-profiled object code when compiling profiled?

2016-01-07 Thread Edward Z. Yang
Thanks! In fact, I have just realized that Template Haskell does something very dodgy when it is loading profiled code: it will use the *profiled* interface files (things that are used in splices are brought into scope with import) to figure out what is going on with the *non-profiled* object file

Re: How does TH know to load non-profiled object code when compiling profiled?

2016-01-08 Thread Simon Marlow
Correct, it's entirely dodgy. (I seem to remember a Note about this somewhere, but I can't find it right now) In any case, -fexternal-interpreter fixes this properly. Cheers, Simon On 08/01/2016 05:21, Edward Z. Yang wrote: Thanks! In fact, I have just realized that Template Haskell does so