[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