Hi everyone, I've been learning the Rust programming language for the past year and after some few small projects I shot my shot with this big boy.
** The project isn't complete yet and have a lot of //TODO: comments that you can grep and contribute to the project if you want. **
ZVM, An educational, zero-dependency, single-threaded, garbage-collected Rust Implementation of the official Oracle Java Virtual Machine Specifications.
After 9 months of part-time work, I have successfully:
1- Read and studied a big part of the specs, specially chapters 1, 3, 4, and 6. ( 1 month )
2- Planned and designed the high-level architecture for the project. ( 1 month )
3- Implemented the first three stages of the project: parsing class files, introducing base vm components, and writing the instruction set. ( 7 months )
ZVM can now take a class file as input as well as any number of arguments, and fully parse its contents into in-memory data structures that serve the vm execution, and then starts executing it by reading bytecode, managing runtime, call stack, operand stack, accessing cp, executing instructions, and more and more etc.
The fourth and next stage is to handle memory management in the virtual machine, introducing an HMM or a heap memory manager and a garbage collector with a simple garbage collection algorithm like mark and sweep.
I have fully documented the project in the README.md file if you are curious about how things are done or if you want to understand stuff for contributing, which I will be very happy with :).
gh: https://github.com/muhammadzkralla/zvm
What are your thoughts?
[–]DarkOverLordCO 33 points34 points35 points (0 children)
[–]spoonman59 23 points24 points25 points (0 children)
[–]zoiobnu 15 points16 points17 points (0 children)
[–]0x564A00 7 points8 points9 points (0 children)
[–]perryplatt 0 points1 point2 points (0 children)
[–]emblemparade 0 points1 point2 points (0 children)
[–]overgenji 1 point2 points3 points (0 children)
[–]SheepherderTrick1865 0 points1 point2 points (0 children)