cargo-call-stack
Whole program static stack analysis (by japaric)
python-rant
Why you should avoid using Python for large projects (by mwlon)
cargo-call-stack | python-rant | |
---|---|---|
5 | 2 | |
555 | 10 | |
- | - | |
0.0 | 0.0 | |
2 months ago | over 2 years ago | |
Rust | ||
Apache License 2.0 | - |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cargo-call-stack
Posts with mentions or reviews of cargo-call-stack.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2024-03-25.
-
Why choose async/await over threads?
Yes, it's what I wrote about in the last paragraph. If you can compute maximum stack size of a function, then you can avoid dynamic allocation with fibers as well. You are right that such implementations do not exist in right now, but I think it's technically possible as demonstrated by tools such as https://github.com/japaric/cargo-call-stack The main stumbling block here is FFI, historically shared libraries do not have any annotations about stack usage, so functions with bounded stack usage would not be able to use even libc.
-
Ask not what the compiler can do for you
For rust code, I have found https://github.com/japaric/cargo-call-stack to be the best available option, as it does take advantage of how Rust types are implemented in LLVM-IR to handle function pointers / dynamic dispatch a little better. An even better solution would try to use MIR type information as well to further narrow down targets of dynamic calls in a Rust-specific way, but no such tool exists that I know of.
-
Debugging and profiling embedded applications.
cargo-call-stack Static stack analysis!
-
In defense of complicated programming languages
Generators can just dump stuff on the stack. They have additional their own stack for storing their state. If you can prove an upper amount of creation of generators in the call graph, that would however work. There is for example this nice tool for Rust doing the overapproximation.
-
Understanding thread stack sizes and how alpine is different
Not easy at all.
I know that in the small-embedded world, people do work on such things.
Eg https://github.com/japaric/cargo-call-stack
python-rant
Posts with mentions or reviews of python-rant.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-01-25.
-
In defense of complicated programming languages
A similar argument from the opposite angle: why the "simple" programming language Python isn't great for real software
- Python environment
What are some alternatives?
When comparing cargo-call-stack and python-rant you can also consider the following projects:
hyperswitch - An open source payments switch written in Rust to make payments fast, reliable and affordable
itm - ARMv7-M ITM packet protocol decoder library crate and CLI tool.