
On Thu, Apr 26, 2012 at 12:20 AM, Simon Peyton-Jones
Tristan Allwood got quite a long way with this a couple of years ago. http://research.microsoft.com/en-us/um/people/simonpj/papers/stack-trace/Deb...
While stack traces are undoubtably useful, I think this is a different
problem. At least the one I'm thinking of is. It's probably never
going to be reasonable to get a whole stack trace on every call to a
logger, but all that's actually needed is the direct call site.
That's a different (and much simpler!) problem. And at least in my
case, the logging and exception functions are all pure, so using
currentCallStack under an unsafePerformIO would be sketchy.
On Thu, Apr 26, 2012 at 7:05 AM, Joachim Breitner
using TH (which I only reluctantly advocate for general usage) you can get good location information behaviour, see
Yeah, this is the TH solution I mentioned. It requires boilerplate at every call site and put a TH dependency on every module (which seems to slow down compilation quite a lot!), but on the other hand it *does* provide zero overhead caller information. I still prefer my hacky preprocessor, even though I don't like it much either.