Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This has been annoying me for ages - C++ exceptions weren't making it through to Python so debugging errors was a nightmare. As discussed in #359, I thought this was a Windows issue but, I think, this is just because, on Windows, there's no default exception handler so a C++ program that throws e.g. a
std::exception
into the ether, displays no output and terminates. This is what was happening with all exceptions emanating from C++ (aside for, for some reason, exceptions generated bycreate_backend
which I had manually added an exception handler for previously 🤷♂️). After reading the documentation again, there is some additional SWIG directives which can be added to add a blanket mapping of standard C++ exceptions to SWIG (which in turn maps them to Python) (https://github.com/swig/swig/blob/master/Lib/exception.i#L289-L307). This seems to work very nicely even from the CUDA code that was emitting the weird warnings discussed in #359!Fixed #359