Open dzmitry-lahoda opened 1 month ago
For transparency:
I'm currently working on a custom performant stack unwinder. It's supposed to significantly increase the performance of the error path, as well as lead to simplification of the #[iex]
API. At the moment, my main goal is to get this unwinder released, tested, and then integrate it into iex.
After that, iex is to be extended to support multiple backends. Namely, it should work with the unwinder disabled, relying on Rust panics (almost like it works now), but also with panic = "abort"
by downgrading to Result
.
I have other question, does it work with tokio runtime? As I see by design using set_hook/catch_unwind with whatever design does not handle tokio runtime well, until manual integration with tokio is done.
Does iex needs special integration with tokio runtime (specifically how it manages context switching of its thread pool) and thread aborts?
As far as I can see, iex
should work with tokio just fine, as it doesn't utilize set_hook
. I haven't tested that yet though.
if any improvement needed, please add some tasks to github?