Daniel Watkins eecddd417b Distinguish between a mutable and non-mutable borrow of vm.current_frame
This renames the existing (mutable) VirtualMachine.current_frame to
current_frame_mut and introduces VirtualMachine.current_frame which is
(a) public, and (b) does not take a mutable reference.

(This also switches callers to use the non-mutable version where
possible.)
2018-08-25 19:35:48 -04:00
2018-07-07 14:00:30 +02:00
2018-07-31 22:11:40 +02:00
2018-08-12 18:26:41 +01:00
2018-08-10 20:36:44 -04:00
2018-07-07 17:14:45 +02:00
2018-07-28 18:43:23 +02:00
2018-07-07 14:00:30 +02:00
2018-07-31 22:11:40 +02:00

RustPython

A Python Interpreter written in Rust 🐍 😱 🤘.

Build Status

Usage (Not implemented yet)

To test RustPython, do the following:

$ git clone https://github.com/RustPython/RustPython
$ cd RustPython
$ cargo run demo.py
42

Or use the interactive shell:

$ cargo run
Welcome to rustpython
>>>>> 2+2
4

Or use pip to install extra modules:

$ cargo run -m pip install requests

Goals

  • Full python environment entirely in Rust (not CPython bindings)
  • A clean implementation without compatibility hacks

Code organization

- `parser`: python lexing, parsing and ast
- `vm`: python virtual machine
- `src`: using the other subcrates to bring rustpython to life.
- `docs`: documentation (work in progress)
- `py_code_object`: CPython bytecode to rustpython bytecode convertor (work in progress)
- `tests`: integration test snippets

Community

Chat with us on gitter.

Credit

The initial work was based on windelbouwman/rspython and shinglyu/RustPython

Links

These are some useful links to related projects:

Description
A Python Interpreter written in Rust
Readme MIT 109 MiB
Languages
Rust 84.5%
Python 14.5%
JavaScript 0.7%
EJS 0.1%
CSS 0.1%