iex-rs / iex

Idiomatic exceptions for Rust
67 stars 4 forks source link

chore: add some task to github todo #6

Open dzmitry-lahoda opened 1 month ago

dzmitry-lahoda commented 1 month ago

if any improvement needed, please add some tasks to github?

purplesyringa commented 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.

dzmitry-lahoda commented 1 month ago

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?

purplesyringa commented 1 month ago

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.