Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!xlned.com!feeder1.xlned.com!newsfeed.xs4all.nl!newsfeed3a.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.002 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'python,': 0.02; 'scripts': 0.03; 'cpython': 0.05; 'subject:Python': 0.06; 'memory.': 0.07; 'subject: -- ': 0.07; 'compact': 0.09; 'feasible.': 0.09; 'modes': 0.09; 'pointers': 0.09; 'read-only': 0.09; 'subset': 0.09; 'contribute': 0.11; 'python': 0.11; 'language,': 0.12; 'windows': 0.15; '(read': 0.16; '80k': 0.16; 'assembler': 0.16; 'cleanly': 0.16; 'fits': 0.16; 'heap': 0.16; 'library).': 0.16; 'optimised': 0.16; 'ported': 0.16; 'runtime.': 0.16; 'syntax,': 0.16; 'library': 0.18; 'bit': 0.19; 'properly': 0.19; 'stack': 0.19; 'written': 0.21; 'machine': 0.22; 'code,': 0.22; 'memory': 0.22; 'compilation': 0.24; 'features,': 0.24; 'integer': 0.24; 'certain': 0.27; 'unix': 0.29; 'compared': 0.30; 'message- id:@mail.gmail.com': 0.30; 'team.': 0.31; 'aims': 0.31; 'arm': 0.31; 'enabled': 0.31; 'faster,': 0.31; 'linux.': 0.31; 'operations.': 0.31; 'subject:skip:i 10': 0.31; 'compatible': 0.32; 'run': 0.32; 'announce': 0.33; 'mac': 0.33; 'minimal': 0.33; 'at:': 0.34; 'basic': 0.35; 'info': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'ram': 0.36; 'yield': 0.36; 'possible': 0.36; 'hi,': 0.36; 'url:org': 0.36; 'growing': 0.38; 'to:addr:python- list': 0.38; 'embedded': 0.39; 'to:addr:python.org': 0.39; 'even': 0.60; 'most': 0.60; 'full': 0.61; 'new': 0.61; 'simple': 0.61; 'such': 0.63; 'more': 0.64; 'employing': 0.68; 'skip:w 40': 0.68; 'skip:w 30': 0.69; 'inline': 0.74; 'attractive': 0.81; 'goals': 0.81; 'low': 0.83; '200k': 0.84; 'benchmark': 0.84; 'compiles': 0.84; 'devices,': 0.84; 'features:': 0.84; 'sporting': 0.84; 'doubling': 0.91; 'time)': 0.91; 'suited': 0.93 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=EmB95Zqd/78tZuf3RYvZ+T3lz/Q2Rmd1wXsCFV+bEOc=; b=l0lpAKeYR/kq6qvZw18oHySAUzoEir4ynamLqW6hHxFKGPgPOw31xf1rfuQy1BoObN 12uZAtZYfQ0kbJm8YhN7KxAtqU0/c0vjOGmSCd+bQzTMvioJqRVurgCcW1n+9AjRgcKA 58muk4+iqeCAkDdiricjHYManqF9Sv9gPa2/Uoz4A2ZCWOQLxIupt6yviIlZZEuX4VfF X4HGk4sIOIU955EJMzEELMmmd7RrTwGag6mOVb5FNdRNRIezQA4AAQLy3hG+k+FkCMR1 zce2i35UZrMnCOihSjp9ftILIasUJmJRWJRRpsJq9o8CjLloybGZd3bh9lhStSSwrXF9 IXsQ== MIME-Version: 1.0 X-Received: by 10.224.46.66 with SMTP id i2mr12906304qaf.22.1401798431593; Tue, 03 Jun 2014 05:27:11 -0700 (PDT) Date: Tue, 3 Jun 2014 13:27:11 +0100 Subject: Micro Python -- a lean and efficient implementation of Python 3 From: Damien George To: python-list@python.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 48 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1401798433 news.xs4all.nl 2858 [2001:888:2000:d::a6]:39820 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:72511 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.