[Python-apps-team] Bug#926561: RFP: micropython -- Unix/Linux port of MicroPython for board-independent use on the host

Thorsten Glaser tg at mirbsd.de
Sun Apr 7 00:21:08 BST 2019


Package: wnpp
Severity: wishlist

* Package name    : micropython
  Version         : 1.10
  Upstream Author : Damien George <dpg39 at cam.ac.uk> and others
* URL             : https://github.com/micropython/micropython#the-unix-version
* License         : MIT
  Programming Lang: C, Assembly, Python
  Description     : Unix/Linux port of MicroPython for board-independent use on the host

The Unix port of MicroPython allows testing of programs intended
for microcontrollers on the local Debian host machine (except for
hardware-specific parts). It can also be used as another, tiny but
mostly compatible, Python 3 runtime for small scripts (but it
comes with FFI and JNI support). This port uses optimised assembly
code on ARM/Thumb, MIPS, i386 and amd64, and setjmp/longjmp-based
fallback code on all other architectures.


Notes to porters:

• this needs excessie Makefile patching (e.g. to not hardcode the
  path to OpenJDK 7 on AMD64)

• it seems to aggregate submodules for some dependencies (which we
  can do with the multiple-origtgz feature of dpkg), but care MUST
  be taken to use system libraries whereever possible

• licence review of course must take those extra modules into account
  (“MIT” is what the main repo declares); readline support means all
  dependencies likely must be GPLv3-compatible

• enable as many features as we can, but if it’s too hard, start out
  with a reduced set (e.g. no JNI?)

• I fully expect this to work on all architectures, even m68k and x32
  (which is tricky because it’s often autodetected as amd64 but cannot
  use the amd64 JIT code, I just checked asmx64.c to see that)

• if nobody is working on this, I might do it myself, under the
  Teckids Debian Taskforce umbrella, which might mean comaintainers

• this is distinct from firmware-microbit-micropython whose origtgz
  content completely differs (fork of micropython?) but I’ll Cc its
  maintainers anyway

• the same origtgz MIGHT be used to build multiple binary packages;
  perhaps not the microbit one, but definitely the javascript one
  (which uses emscripten) and perhaps {bare,qemu}-arm; the unix port
  also builds a FreeDOS/djgpp binary if desired, but this should be
  considered afterwards, first get the native host unix port done


More information about the Python-apps-team mailing list