Hello guile-dev! I'm working on a revised patch to improve the reporting of exception locations, after last month's initial flawed attempt.
The new patch takes the more radical approach of capturing the stack when an exception is created, including it as part of the compound exception object. This should ensure that we capture a correctly trimmed stack, while avoiding the complexities of pre-unwind handlers. This is similar to other dynamic languages where it's common to bundle stack info with exception objects. This approach will probably have a negative impact on code which is sensitive to the performance of exception creation; capturing the stack is more expensive than NOT capturing it. Is this something that we need to be concerned about? I'm still working on integrating these changes into Guile, but thought it's worth getting early feedback on this one. Patch to follow! Cheers, Andrew