PyVM is a Python Virtual Machine implemented in Rust. For learning purposes.
What can it run?
Not much. Only 39 instruction types are implemented and there are 130 different types of instructions in Python 3.8. Also, not all types are implemented neither built-in functions (but hey, we have the
So basically these are implemented:
forrequires more thing to be implemented
- Supports only functions with positional arguments
- Global and local scope but not
- Deleting variables (only from local)
Then, what is the purpose?
The purpose is learning about both Python's Virtual Machine and Rust. Hence the code is ugly and slow but this is my first program in Rust, so this is expected.
- Run any of the batch files according to the situation:
compile_to_json.bat: Creates a file called
bytecode.jsonthat contains instructions and all that stuff.
run.bat: Runs the virtual machine with the instructions from
bytecode.jsonand runs the virtual machine