template haskell vs. -prof
Evan Laforge <qdunkan <at> gmail.com>
2015-01-23 14:16:23 GMT
I ran into trouble compiling template haskell with -prof, and came
across the ghc manual "7.9.4. Using Template Haskell with Profiling".
Unfortunately I can't use its advice directly since I put profiling
and non-profiling .o files into different directories. But in
principle it seems it should work, I just have to get ghc to load TH
from the debug build directory, which is built with -dynamic, while
continuing to load from the profile build directory.
But are there flags to get it to do that? I'm using "-osuf .hs.o
-ibuild/profile/obj". If I put ":build/debug/obj" on the -i line, it
still seems to find the profiling one. The ghc manual advice probably
gets around it by using different -osufs... I guess TH somehow ignores
-osuf? Except when I compile the debug version with osuf, if finds
them fine, so I don't really know how it works.
Is there a way I can directly tell TH where to look? It seems awkward
to rely on all these implicit and seemingly undocumented heuristics.
And, this is somewhat beside the point, but shouldn't TH theoretically
be able to load directly from .hs and compile to bytecode like ghci
can do if it doesn't find the .o file?
And, even more beside the point, the only reason I'm messing with TH
is for a really simple (one line) multi-line string literal
quasiquote. Surely I'm not the only person who would enjoy a
-XMultiLineStringLiteral extension? The alternative seems to be a
program to add or strip all of the "\n\"s, and when I want to edit,
copy out, strip, edit, paste back in, add back. At that point maybe
it's easier to just get used to all the \s... but then indentation is
all a bit off due to the leading \.