Micro Python -- a lean and efficient implementation of Python 3
Damien George
damien.p.george at gmail.com
Tue Jun 3 08:27:11 EDT 2014
Hi,
We would like to announce Micro Python, an implementation of Python 3
optimised to have a low memory footprint.
While Python has many attractive features, current implementations
(read CPython) are not suited for embedded devices, such as
microcontrollers and small systems-on-a-chip. This is because CPython
uses an awful lot of RAM -- both stack and heap -- even for simple
things such as integer addition.
Micro Python is a new implementation of the Python 3 language, which
aims to be properly compatible with CPython, while sporting a very
minimal RAM footprint, a compact compiler, and a fast and efficient
runtime. These goals have been met by employing many tricks with
pointers and bit stuffing, and placing as much as possible in
read-only memory.
Micro Python has the following features:
- Supports almost full Python 3 syntax, including yield (compiles
99.99% of the Python 3 standard library).
- Most scripts use significantly less RAM in Micro Python, and various
benchmark programs run faster, compared with CPython.
- A minimal ARM build fits in 80k of program space, and with all
features enabled it fits in around 200k on Linux.
- Micro Python needs only 2k RAM for a basic REPL.
- It has 2 modes of AOT (ahead of time) compilation to native machine
code, doubling execution speed.
- There is an inline assembler for use in time-critical
microcontroller applications.
- It is written in C99 ANSI C and compiles cleanly under Unix (POSIX),
Mac OS X, Windows and certain ARM based microcontrollers.
- It supports a growing subset of Python 3 types and operations.
- Part of the Python 3 standard library has already been ported to
Micro Python, and work is ongoing to port as much as feasible.
More info at:
http://micropython.org/
You can follow the progress and contribute at github:
www.github.com/micropython/micropython
www.github.com/micropython/micropython-lib
--
Damien / Micro Python team.
More information about the Python-list
mailing list