Admin message

Due to a large amount of spam we do not allow new users to create repositories, they are "external" users. If you are a new user and want to create a repository, for example for forking GHC, open a new issue on ghc/ghc using the "get-verified" issue template

Add stack annotation primop
## Motivation Reading the IPE Backtrace can be quite unhelpful, see #26040. The apparent solution to add `HasCallStack` constraints is unsatisfactory as well, as it changes the public API of the function and may affect optimisation. Adding `HasCallStack` just for debugging is also a tedious process, either automated via a plugin or done manually. However, if the exception is thrown from within library code that lacks `HasCallStack` constraints, then the callstacks are often still useless! ## Proposal To improve upon this situation, we introduce a new primop called `annotateStack# :: a -> IO b -> IO b` (simplified), which allows the user to push stack frames containing arbitrary data. This data can be recovered when decoding the stack, allowing us to enhance IPE backtraces with additional, human-readable stack entries. The main advantage over `HasCallStack` constraints are: * Doesn't need to change the signature of a function * remains an implementation detail * More general, as more than just source locations can be added These stack frames are otherwise no-ops and supposed to be cheap, so adding them to the implementation of a function has a negligible performance impact.
issue