All Projects → progval → pythonvm-rust

progval / pythonvm-rust

Licence: GPL-3.0 license
An incomplete stackless interpreter of Python bytecode, written in Rust.

Programming Languages

rust
11053 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to pythonvm-rust

Retina
A regex-based programming language.
Stars: ✭ 202 (+210.77%)
Mutual labels:  interpreter
Arturo
Simple, expressive & portable programming language for efficient scripting
Stars: ✭ 225 (+246.15%)
Mutual labels:  interpreter
Hackide
hackIDE is an online code editor, compiler and interpreter based on Django, powered by HackerEarth API! Go, hack it!
Stars: ✭ 242 (+272.31%)
Mutual labels:  interpreter
Codi.vim
📔 The interactive scratchpad for hackers.
Stars: ✭ 2,464 (+3690.77%)
Mutual labels:  interpreter
Cpython Internals
Dive into CPython internals, trying to illustrate every detail of CPython implementation
Stars: ✭ 3,084 (+4644.62%)
Mutual labels:  interpreter
Gwion
🎵 strongly-timed musical programming language
Stars: ✭ 235 (+261.54%)
Mutual labels:  interpreter
Pcbasic
PC-BASIC - A free, cross-platform emulator for the GW-BASIC family of interpreters
Stars: ✭ 196 (+201.54%)
Mutual labels:  interpreter
Xstate
State machines and statecharts for the modern web.
Stars: ✭ 18,300 (+28053.85%)
Mutual labels:  interpreter
Swift Lispkit
Interpreter framework for Lisp-based extension and scripting languages on macOS and iOS. LispKit is based on the R7RS standard for Scheme. Its compiler generates bytecode for a virtual machine. LispKit is fully implemented in Swift 5.
Stars: ✭ 228 (+250.77%)
Mutual labels:  interpreter
Openj9
Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Stars: ✭ 2,802 (+4210.77%)
Mutual labels:  interpreter
Logo
A Logo interpreter written in Swift
Stars: ✭ 207 (+218.46%)
Mutual labels:  interpreter
Jquery.terminal
jQuery Terminal Emulator - JavaScript library for creating web-based terminals with custom commands
Stars: ✭ 2,623 (+3935.38%)
Mutual labels:  interpreter
Tabloid
A minimal programming language inspired by clickbait headlines
Stars: ✭ 235 (+261.54%)
Mutual labels:  interpreter
Basic
Basic Interpreter for the ESP8266
Stars: ✭ 206 (+216.92%)
Mutual labels:  interpreter
Go Pry
An interactive REPL for Go that allows you to drop into your code at any point.
Stars: ✭ 2,747 (+4126.15%)
Mutual labels:  interpreter
Cub
The Cub Programming Language
Stars: ✭ 198 (+204.62%)
Mutual labels:  interpreter
Hexagony
A two-dimensional, hexagonal programming language.
Stars: ✭ 228 (+250.77%)
Mutual labels:  interpreter
NatsuLang
No description or website provided.
Stars: ✭ 96 (+47.69%)
Mutual labels:  interpreter
Gobasic
A BASIC interpreter written in golang.
Stars: ✭ 253 (+289.23%)
Mutual labels:  interpreter
Mond
A scripting language for .NET Core
Stars: ✭ 237 (+264.62%)
Mutual labels:  interpreter

pythonvm-rust

Build Status

A Python virtual machine, written in Rust.

Status

This project is inactive. Check out RustPython instead

Features

  • prints strings to stdout
  • basic exceptions
  • for loops
  • functions, positional arguments, keyword arguments, *args, **kwargs
  • useable as a library
  • a fine-grained sandbox

Goals

  • Compatible with CPython 3.6's bytecode, in order to take advantage of FAT Python
  • Support CPython's implementation of the standard library
  • No crash, even when messing with code objects
  • Bytecode optimizations at runtime
  • Less bounded by the GIL than CPython

Dependencies

  • CPython 3.6 (used as a parser and bytecode compiler).
  • Rust
  • Cargo

Try it

  1. git clone https://github.com/progval/pythonvm-rust.git
  2. cd pythonvm-rust
  3. python3 -m compileall -b pythonlib examples
  4. cargo run pythonlib/ examples/helloworld.pyc
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].