RE: specifing user RTS options to GHCi

I would like to be able to use the -xc option in ghci, since this is where I do most of my debugging anyway. I can put
:set -prof -auto-all :set -osuf prof.sun4.o -hisuf prof.sun4.hi
in my .ghci file, but I can't get ghci to run my code with -xc enabled. If I try to ":set +RTS -xc", ghci doesn't know this options; if I pass then to ghci on the commandline (i.e., "% ghci +RTS -xc") it (rightfully) tells me that ghci wasn't built for profiling.
Is there any way to do this and, if not, might it find its way in?
I'm afraid there isn't a way to do this. The long answer: GHCi runs the interpreted code on top of the same RTS as it is running itself, and for -xc to work, that means the RTS has to be a profiling version. The profiled version of the RTS differs from the normal version in several ways: heap objects have an extra field, info tables have extra fields, and so on. The bytecode compiler and interpreter don't have the necessary knowledge to generate and run bytecode in this different environment.
p.s., I think the -xc option is seriously undervalued -- I know that I didn't know about it for about a year of using ghc even after asking if such a thing could be done in various places (clf, mostly).
Yes, we should probably advertise it more. Please feel free to send us documentation patches...
Perhaps it should go in the option list for +RTS?
It is in the option list for +RTS - but only when the binary is compiled for profiling. Cheers, Simon
participants (1)
-
Simon Marlow