Make reraise_kj_exception
available to downstream
#344
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.
I'm using Pycapnp in a project, where we compile
.capnp
files directly to Cython instead of using the dynamic interface (for speed). For this, we need access to thereraise_kj_exception
C function defined by Pycapnp. This is not possible, because Cython does not automatically make this function available to downstream users.My previous solution, in #301, was rather flawed. The file
capabilityHelper.cpp
, wherereraise_kj_exception
is defined, was bundled into the distribution, so that this file could be included in downstream libraries. This turns out to be a terrible idea, because it redefines a bunch of other things likeReadPromiseAdapter
. For reasons not entirely clear to me, this leads to segmentation faults. This PR revers #301.Instead, in this PR I've made
reraise_kj_exception
a Cython-level function, that can be used by downstream libraries. The C-level variant has been renamed toc_reraise_kj_exception
.