Source: micropython
Version: 1.19.1+ds-1
Severity: normal

uasyncio is extremely useful in MicroPython programs in my experience,
as it allows for concurrency in environments where there may be
otherwise limited (no threads etc.). It's been supported by MicroPython
for a while, and I see in upstream's git master that it's has been
recently renamed to "asyncio", as it's considered close enough to
CPython.

While the upstream Unix port enables (u)asyncio by default, the Debian
MicroPython builds do not ship with it. I also checked with 1.20.0+ds-1,
as found in salsa.

I believe this is because this is enabled by
  ports/unix/variants/standard/manifest.py
Manifets are disabled in the Debian builds by building with
FROZEN_MANIFEST=.

Removing FROZEN_MANIFEST= from d/rules resulted in the build system
complaining about the omission of micropython-lib. Extracting the
official 1.20 micropython-lib tarball to lib/micropython-lib, however,
made the build work:
   MicroPython v1.20.0+ds-1 on 2023-08-07; linux [GCC 13.2.0] version
   Use Ctrl-D to exit, Ctrl-E for paste mode
   >>> import uasyncio
   >>>

So the solution here is a bit more involved: it requires shipping
micropython-lib, for example leveraging multiple tarball support and
gbp-import-orig's component support.

On that matter, the build above also enabled "mip", the new package
manager and flagship feature of v1.20:
   >>> import mip
   >>>
(There are some mbedTLS DEBUG messages being emitted when fetching from
e.g. GitHub, that I haven't tracked down yet, but that's getting a
little offtopic.)

Given the deviation from the upstream default, and how core these
features are, I'm marking this as "normal", rather than "wishlist". But
up to you :)

Thanks for your work in maintaining MicroPython!

Best,
Faidon

Reply via email to