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


Groups > comp.lang.python > #98457 > unrolled thread

[ANN] MicroPython 1.5

Started byPaul Sokolovsky <pmiscml@gmail.com>
First post2015-11-08 02:00 +0300
Last post2015-11-09 08:47 +1100
Articles 6 — 4 participants

Back to article view | Back to comp.lang.python


Contents

  [ANN] MicroPython 1.5 Paul Sokolovsky <pmiscml@gmail.com> - 2015-11-08 02:00 +0300
    Re: [ANN] MicroPython 1.5 Paul Rubin <no.email@nospam.invalid> - 2015-11-08 10:28 -0800
      Re: [ANN] MicroPython 1.5 paul.hermeneutic@gmail.com - 2015-11-08 12:08 -0700
      Re: [ANN] MicroPython 1.5 Paul Sokolovsky <pmiscml@gmail.com> - 2015-11-08 22:27 +0200
      Re: [ANN] MicroPython 1.5 Paul Sokolovsky <pmiscml@gmail.com> - 2015-11-08 22:53 +0200
      Re: [ANN] MicroPython 1.5 Chris Angelico <rosuav@gmail.com> - 2015-11-09 08:47 +1100

#98457 — [ANN] MicroPython 1.5

FromPaul Sokolovsky <pmiscml@gmail.com>
Date2015-11-08 02:00 +0300
Subject[ANN] MicroPython 1.5
Message-ID<mailman.132.1446996971.16136.python-list@python.org>
Hello,

MicroPython is a lean and efficient Python implementation for
microcontrollers, embedded, and mobile systems (which also runs just as
fine on desktops of course).

https://github.com/micropython/micropython

Recent 1.5 release is an important milestone for the project, major
changes including:

1. Advanced REPL support with smart auto-indent and auto-completion for
comfortable interactive typing pf Python code, easily switchable to
paste mode to copy pre-made code snippets.

2. Support for client SSL connections.

3. upip, MicroPython builtin package manager, is now fully standalone
thanks to SSL support.

4. There's new, elaborated API to access hardware features ("machine"
module).

5. There're now 2 well-supported microcontroller boards for
MicroPython, and dozen(s) community-supported ones.

6. MicroPython was selected as one of the languages supported for BBC
micro:bit initiative:
http://ntoll.org/article/story-micropython-on-microbit

7. There's work on native efficient JNI bridge, inspired by Kivy's
PyJNIus module, included into growing Android port.


More detailed changelog for this version is at
https://github.com/micropython/micropython/releases/tag/v1.5

MicroPython supports growing subset of Python3 standard library
(including simplified asyncio package) - not included by default with
an executable, but easily installable per-module using builtin "upip"
package manager:
https://github.com/micropython/micropython-lib


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

[toc] | [next] | [standalone]


#98471

FromPaul Rubin <no.email@nospam.invalid>
Date2015-11-08 10:28 -0800
Message-ID<87ziyotkfr.fsf@nightsong.com>
In reply to#98457
Paul Sokolovsky <pmiscml@gmail.com> writes:
> Recent 1.5 release is an important milestone for the project, major
> changes including:

Thanks for posting this.  We don't hear enough about MicroPython on
this newsgroup so it's good to get these announcements.

Is the language still Python 3.4?  Will it implement 3.5 sometime soon?

> 1. Advanced REPL support with smart auto-indent and auto-completion

Hmm does this make the code footprint significantly bigger?

> 2. Support for client SSL connections.

Nice.  Does it check the server certificate?  Is it based on TLSLite by
any chance?

> 5. There're now 2 well-supported microcontroller boards for
> MicroPython, and dozen(s) community-supported ones.

The PyBoard is very nice, but what is the other one?  I don't see
anything about it on the MicroPython web site.  (Hmm, maybe you mean the
Micro Bit).

Btw, I notice that the "store" page doesn't show any products under my
normal adblock settings.  It's probably best to make it a normal page
instead of an AJAX one.

> MicroPython supports growing subset of Python3 standard library
> (including simplified asyncio package)

This would look much nicer with the new Python 3.5 syntax.

[toc] | [prev] | [next] | [standalone]


#98473

Frompaul.hermeneutic@gmail.com
Date2015-11-08 12:08 -0700
Message-ID<mailman.143.1447009727.16136.python-list@python.org>
In reply to#98471
What is the possibility that MicroPython could be another build from the
base python.org sources? Python already gets built for a variety of
architectures. Could a MicroPython be another one? In that way, it would
always be up to date on language changes.

On Sun, Nov 8, 2015 at 11:28 AM, Paul Rubin <no.email@nospam.invalid> wrote:

> Paul Sokolovsky <pmiscml@gmail.com> writes:
> > Recent 1.5 release is an important milestone for the project, major
> > changes including:
>
> Thanks for posting this.  We don't hear enough about MicroPython on
> this newsgroup so it's good to get these announcements.
>
> Is the language still Python 3.4?  Will it implement 3.5 sometime soon?
>
> > 1. Advanced REPL support with smart auto-indent and auto-completion
>
> Hmm does this make the code footprint significantly bigger?
>
> > 2. Support for client SSL connections.
>
> Nice.  Does it check the server certificate?  Is it based on TLSLite by
> any chance?
>
> > 5. There're now 2 well-supported microcontroller boards for
> > MicroPython, and dozen(s) community-supported ones.
>
> The PyBoard is very nice, but what is the other one?  I don't see
> anything about it on the MicroPython web site.  (Hmm, maybe you mean the
> Micro Bit).
>
> Btw, I notice that the "store" page doesn't show any products under my
> normal adblock settings.  It's probably best to make it a normal page
> instead of an AJAX one.
>
> > MicroPython supports growing subset of Python3 standard library
> > (including simplified asyncio package)
>
> This would look much nicer with the new Python 3.5 syntax.
> --
> https://mail.python.org/mailman/listinfo/python-list
>

[toc] | [prev] | [next] | [standalone]


#98475

FromPaul Sokolovsky <pmiscml@gmail.com>
Date2015-11-08 22:27 +0200
Message-ID<mailman.145.1447014486.16136.python-list@python.org>
In reply to#98471
Hello,

On Sun, 08 Nov 2015 10:28:24 -0800
Paul Rubin <no.email@nospam.invalid> wrote:

> Paul Sokolovsky <pmiscml@gmail.com> writes:
> > Recent 1.5 release is an important milestone for the project, major
> > changes including:
> 
> Thanks for posting this.  We don't hear enough about MicroPython on
> this newsgroup so it's good to get these announcements.
> 
> Is the language still Python 3.4?  Will it implement 3.5 sometime
> soon?

Yes, we already implement the most important 3.5 feature - ability to
format bytes: b"foo%s" % b"bar" ;-).

> > 1. Advanced REPL support with smart auto-indent and auto-completion
> 
> Hmm does this make the code footprint significantly bigger?

No, as everything else in MicroPython, code implementing this feature
is well-optimized, it did cost few hundreds of bytes to implement.

> > 2. Support for client SSL connections.
> 
> Nice.  Does it check the server certificate?  

The driving force for adding SSL was being able to download package
from PyPI (for builtin upip package manager). Unfortunately, PyPI forces
SSL, so previously we had to fallback to wget for downloads, which
limited upip to unix-like systems. So, the way we use SSL is as bloated
plain HTTP, just to workaround PyPI's maintainers' decision to raise
the bar too high to access it. Consequently, nobody yet worked on
certificate checking and other stuff.

> Is it based on TLSLite by any chance?

I had an idea to port TLSLite and even submitted couple of patches to
it, I had an idea to write a module titled "insecureSSL" which would
just emulate SSL by doing as little as possible processing and using
static session keys, etc. - just to prove the point that there can't be
security without both parties consenting, and mis-applied "security" is
nothing but a denial-of-service. But I gave up in the end, deciding to
take that productively and add generic SSL client support using axTLS
library (which was also optimized to meet MicroPython code size
standards).

(You see, these questions touched ranty feelings - thanks for
asking ;-) ).

> > 5. There're now 2 well-supported microcontroller boards for
> > MicroPython, and dozen(s) community-supported ones.
> 
> The PyBoard is very nice, but what is the other one?  I don't see
> anything about it on the MicroPython web site.  (Hmm, maybe you mean
> the Micro Bit).

It's WiPy, http://wipy.io/ , WiFi-enabled board which had successful
kickstarter in the spring and last month shipped ready boards. Micro
Bit would take some time before general availability of course.

> Btw, I notice that the "store" page doesn't show any products under my
> normal adblock settings.  It's probably best to make it a normal page
> instead of an AJAX one.
> 
> > MicroPython supports growing subset of Python3 standard library
> > (including simplified asyncio package)
> 
> This would look much nicer with the new Python 3.5 syntax.

There was initial patch to add initial async/await support a week within
corresponding PEP was initially posted. But we decided not to haste with
it, or we can add feature which nobody really uses (while we have bunch
of features which almost everyone would use, but which aren't yet
there). So, we decided yo do our homework, and let asyncio/async-await
people do theirs on popularizing it (every 10th Python programmer
using it seems like good target, now it's probably every 10,000th if not
100,000th).


Thanks for the feedback!

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

[toc] | [prev] | [next] | [standalone]


#98476

FromPaul Sokolovsky <pmiscml@gmail.com>
Date2015-11-08 22:53 +0200
Message-ID<mailman.146.1447016021.16136.python-list@python.org>
In reply to#98471
Hello,

On Sun, 8 Nov 2015 12:08:20 -0700
paul.hermeneutic@gmail.com wrote:

> What is the possibility that MicroPython could be another build from
> the base python.org sources? Python already gets built for a variety
> of architectures. Could a MicroPython be another one? In that way, it
> would always be up to date on language changes.

There's zero possibility for this - MicroPython is from-scratch
implementation carefully optimized for code size and memory usage,
that's how it's up to 50 times smaller than CPython and can run with
~1000 times less RAM than CPython usually runs with.

Support for the latest features is not the aim of MicroPython, instead
it's being able to use the same great language on systems where CPython
simply could never run. That necessitates being on a diet and leaving
out not just the latest lesser-known features, but even quite a few of
old more widely known ones.

That said, the core of the language is there and any Python programmer
should feel straight at home. And it's Python*3*, so it's pretty fresh
anyway, knowing that half of our community still sits on Python2 and
never tried Python3. (Hacking on MicroPython is how I get to use
Python3 myself, on my dayjob we still use Python2).

[]

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

[toc] | [prev] | [next] | [standalone]


#98478

FromChris Angelico <rosuav@gmail.com>
Date2015-11-09 08:47 +1100
Message-ID<mailman.148.1447019261.16136.python-list@python.org>
In reply to#98471
On Mon, Nov 9, 2015 at 7:53 AM, Paul Sokolovsky <pmiscml@gmail.com> wrote:
> On Sun, 8 Nov 2015 12:08:20 -0700
> paul.hermeneutic@gmail.com wrote:
>
>> What is the possibility that MicroPython could be another build from
>> the base python.org sources? Python already gets built for a variety
>> of architectures. Could a MicroPython be another one? In that way, it
>> would always be up to date on language changes.
>
> There's zero possibility for this - MicroPython is from-scratch
> implementation carefully optimized for code size and memory usage,
> that's how it's up to 50 times smaller than CPython and can run with
> ~1000 times less RAM than CPython usually runs with.

Putting this another way: MicroPython is a *different implementation*
of Python, which just happens to be in the same language as CPython. A
number of Python implementations are listed here:

https://wiki.python.org/moin/PythonImplementations

Each one is a distinct implementation of (some version of) the same
language spec called "Python", which is different from a build target
of CPython. For example, there are several implementations designed to
run inside a web browser, and while it's theoretically possible to
port some other Python implementation to JavaScript (which is what
PyPyJS did with PyPy), it's usually easier to instead implement
something specifically in/for JS (eg Brython). There's no way to say
"CPython, go build yourself for the platform known as Mozilla
Firefox", because that would be hopelessly inefficient.

ChrisA

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web