
#13360: Add a flag to enable inferring HasCallStack constraints -------------------------------------+------------------------------------- Reporter: gridaphobe | Owner: (none) Type: feature request | Status: new Priority: normal | Milestone: 8.4.1 Component: Compiler | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by gridaphobe): Interesting! So it appears that the overhead is coming from the contents of each entry in the call stack. I'm a bit surprised by this, the `String` and `SrcLoc` should both be floated out and shared between calls (like you did manually with `spuriousSrcLoc`). I wouldn't expect that to cause such an overhead. It would be good to isolate which part of the stack entries is causing the overhead, e.g. Is it the `String`s? (we could use `Addr#` like GHC does for compiler-generated errors) Is the number of fields in a `SrcLoc` causing one of GHC's size heuristics to act strangely? etc. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13360#comment:25 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler