Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #72537

Re: Micro Python -- a lean and efficient implementation of Python 3

Path csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.mixmin.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed1a.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail
Return-Path <pmiscml@gmail.com>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.000
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'python,': 0.02; ';-)': 0.03; 'example:': 0.03; 'talks': 0.03; 'syntax': 0.04; 'cpython': 0.05; 'subject:Python': 0.06; '(except': 0.07; 'scaling': 0.07; 'subject: -- ': 0.07; 'chime': 0.09; 'feasible.': 0.09; 'parsing': 0.09; 'subset': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; 'def': 0.12; 'language.': 0.14; 'mostly': 0.14; 'windows': 0.15; 'curious:': 0.16; 'dump': 0.16; 'library).': 0.16; 'magic': 0.16; 'portable': 0.16; 'ported': 0.16; 'semantics': 0.16; 'simplified': 0.16; 'stdlib.': 0.16; 'supported.': 0.16; 'syntactic': 0.16; 'syntax,': 0.16; 'elements': 0.16; 'language': 0.16; 'wrote:': 0.18; 'library': 0.18; 'bit': 0.19; '(but': 0.19; '>>>': 0.22; 'cc:addr:python.org': 0.22; "aren't": 0.24; 'paul': 0.24; 'cc:2**0': 0.24; 'header:In-Reply-To:1': 0.27; 'chris': 0.29; 'unix': 0.29; 'statement': 0.30; "i'm": 0.30; 'url:mailman': 0.30; 'usually': 0.31; '4.0': 0.31; 'george': 0.31; 'operations.': 0.31; 'staying': 0.31; 'subject:skip:i 10': 0.31; 'run': 0.32; 'another': 0.32; 'linux': 0.33; 'url:python': 0.33; 'implemented': 0.33; 'actual': 0.34; 'core': 0.34; 'could': 0.34; 'hundreds': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'version': 0.36; 'yield': 0.36; 'url:listinfo': 0.36; 'charset:us- ascii': 0.36; 'possible': 0.36; 'url:org': 0.36; 'example,': 0.37; 'too': 0.37; 'feedback': 0.38; 'growing': 0.38; 'system,': 0.38; 'problems': 0.38; 'files': 0.38; 'fact': 0.38; 'pm,': 0.38; 'little': 0.38; 'embedded': 0.39; 'url:mail': 0.40; 'how': 0.40; 'above,': 0.60; 'catch': 0.60; 'devices': 0.61; 'lower': 0.61; 'full': 0.61; 'course': 0.61; "you'll": 0.62; 'email addr:gmail.com': 0.63; 'such': 0.63; 'more': 0.64; 'situation': 0.65; 'to:addr:gmail.com': 0.65; 'due': 0.66; 'side': 0.67; 'home': 0.69; 'industry': 0.73; 'cut': 0.74; 'touch': 0.74; 'analysis': 0.75; 'industry,': 0.78; 'cost,': 0.84; 'devices,': 0.84; 'presumably': 0.84; 'right).': 0.84; '+1000': 0.91; 'power,': 0.91
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; bh=Cmrw8DE0JIT3rMr4pxq1uY/T99INORTC2ycmduYyGwM=; b=sVQB8Y3ZcimPtNTjJXMwKbAzIdDFjoKbCbX9x/oDVfbDFdVkCdErjls2971FHlVuey ypJ5h3yCXkwhPvIQr5BRNl8NOvuEIZuvSWoYkyKifqnO8wQsEnG65KqCEsOKeDAhk7OM 4JFQE5Q4V0rUd2x/RgkviIuWWPwBnD/G3yQjgQMNrkhl+kaayqCxQabx8AgcmHxaMnJM 2cfYNPHw8RBH8IFoWCXu89ZXvvC9BP+bKm2Kd7k6HuJkGSyEUVYPGdPkTBw93pBcJLEV +likEaa3jS5yqhNzQKnyNFMl7Bek0DbOaqW0X7G1e1nDxtlxWWPkjlxD64iFm1JdpmBD 5KEw==
X-Received by 10.112.154.74 with SMTP id vm10mr33959869lbb.47.1401814192583; Tue, 03 Jun 2014 09:49:52 -0700 (PDT)
Date Tue, 3 Jun 2014 19:49:49 +0300
From Paul Sokolovsky <pmiscml@gmail.com>
To Chris Angelico <rosuav@gmail.com>
Subject Re: Micro Python -- a lean and efficient implementation of Python 3
In-Reply-To <CAPTjJmoB0eMMMhjUz++yYV2CEv=2xUXx7P8UuRvCk7y7gB-4+Q@mail.gmail.com>
References <CANw+MznPsKgJiW6e_O370VUsmVVxBfQ=M_7WUyU7+wNh+-qefA@mail.gmail.com> <CAPTjJmoB0eMMMhjUz++yYV2CEv=2xUXx7P8UuRvCk7y7gB-4+Q@mail.gmail.com>
X-Mailer Claws Mail 3.9.3 (GTK+ 2.24.10; i686-pc-linux-gnu)
MIME-Version 1.0
Content-Type text/plain; charset=US-ASCII
Content-Transfer-Encoding 7bit
Cc "python-list@python.org" <python-list@python.org>
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.15
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.10635.1401814505.18130.python-list@python.org> (permalink)
Lines 81
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1401814505 news.xs4all.nl 2868 [2001:888:2000:d::a6]:50459
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:72537

Show key headers only | View raw


Hello,

On Tue, 3 Jun 2014 23:11:46 +1000
Chris Angelico <rosuav@gmail.com> wrote:

> On Tue, Jun 3, 2014 at 10:27 PM, Damien George
> <damien.p.george@gmail.com> wrote:
> > - Supports almost full Python 3 syntax, including yield (compiles
> > 99.99% of the Python 3 standard library).
> > - 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.
> 
> I don't have an actual use-case for this, as I don't target
> microcontrollers, 

Please let me chime in, as one of MicroPython contributors. I also
don't have immediate usecase for a Python microcontroller (but seeing
how fast industry moves, I won't be surprised if in half-year it will
seem just right). Instead, I treat MicroPython as a Python
implementation which scales *down* very well. With current situation in
the industry, people mostly care about scaling up - consume more
gigabytes and gigahertz, catch more clouds and include heavier and
heavier batteries.

MicroPython goes another direction. You don't have to use it on a
microcontroller. It's just if you want/need it, you'll be able - while
still staying with your favorite language.

I'm personally interested in using MicroPython on a small embedded
Linux systems, like home routers, Internet-of-Thing devices, etc. Such
devices usually have just few hundreds of megahertz of CPU power, and
2-4MB of flash. And to cut cost, the lower bound decreases all the
time.

> but I'm curious: What parts of Py3 syntax aren't
> supported? And since you say "port as much as feasible", presumably
> there'll be parts that are never supported. Are there some syntactic
> elements that just take up way too much memory?

Syntax-wise, all Python 3.3 syntax is supported. This includes things
like yield from, annotations, etc. For example:

$ micropython 
Micro Python v1.0.1-139-g411732e on 2014-06-03; UNIX version
>>> def foo(a:int) -> float:
...     return float(a)
... 
>>> foo(4)
4.0


"99.9%" statement is due to fact that there were some problems parsing
couple of files in CPython 3.3/3.4 stdlib.

Note that above talks about syntax, not semantics. Though core
language semantics is actually now implemented pretty well. For
example, "yield from" works pretty well, so asyncio could work ;-).
(Except my analysis showed that CPython's implementation is a bit
bloated for MicroPython requirements, so I started to write a
simplified implementation from scratch).


As can be seen from the dump above, MicroPython perfectly works on a
Linux system, so we encourage any pythonista to touch a little bit of
Python magic and give it a try! ;-) And we of course interested to get
feedback how portable it is, etc.

(As a side note, it's of course possible to compile and run MicroPython
on Windows too, it's a bit more complicated than just "make".)

> 
> ChrisA
> -- 
> https://mail.python.org/mailman/listinfo/python-list



-- 
Best regards,
 Paul                          mailto:pmiscml@gmail.com

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: Micro Python -- a lean and efficient implementation of Python 3 Paul Sokolovsky <pmiscml@gmail.com> - 2014-06-03 19:49 +0300

csiph-web