I don't mean this to sound superior or critical.<p>I found this article a little surprising because the authors seem to have an intuition about the compiler that I have never had. I've never expected potential stack overflows from unbounded recursion to be caught by the compiler. I've been delighted every now and then when a compiler gives me a warning when it <i>can</i> detect it. But I have always had stack overflows in my mental bucket of "stuff it's my responsibility to think about".<p>Maybe this says something about how compilers have gotten smarter and more helpful since I first cut my teeth on them.
Fortunately this particular problem should go away soon. Async-fn-in-traits is due to be stabilized in the next few months [1], which means that the use of #[async_trait] will no longer be necessary, which means the compiler will correctly surface a warning for unbounded recursion.<p>[1] <a href="https://blog.rust-lang.org/inside-rust/2023/05/03/stabilizing-async-fn-in-trait.html" rel="nofollow">https://blog.rust-lang.org/inside-rust/2023/05/03/stabilizin...</a>
I don't fully understand the context or the overview of the problem, but for a large codebase, if you are using `tokio` runtime, which most rust based application go with. `tokio-console` is good for profiling and debugging, have you folks looked into that during the whole debugging process?
I personally trust debuggers and debugging tools in such circumstances, as they can easily help zeroing down on such issues.
We spent decades trying to invent a sufficiently smart compiler when we should have been inventing a sufficiently empathetic one
- @ekuber<p>It all makes sense now