summaryrefslogtreecommitdiff
path: root/py
AgeCommit message (Collapse)Author
2019-06-25py/mkrules.mk: Use $(CPP) not $(CC) -E for preprocessor rule.Paul m. p. P
2019-06-19py/nlrthumb: Save and restore VFP registers s16-s21 when CPU has them.Damien George
These s16-s21 registers are used by gcc so need to be saved. Future versions of gcc (beyond v9.1.0), or other compilers, may eventually need additional registers saved/restored. See issue #4844.
2019-06-05extmod: Factor out makefile rules from py.mk to new extmod.mk file.Damien George
To logically separate extmod related rules out, and prevent py.mk from growing too large.
2019-06-05py/obj: Optimise small-int comparison to 0 in mp_obj_is_true.Yonatan Goldschmidt
Instead of converting to a small-int at runtime this can be done at compile time, then we only have a simple comparison during runtime. This reduces code size on some ports (e.g -4 on qemu-arm, -52 on unix nanbox), and for others at least doesn't increase code size.
2019-06-03mpy-cross: Do not automatically build mpy-cross, rather do it manually.Damien George
Building mpy-cross automatically leads to some issues with the build process and slows it down. Instead, require it to be built manually.
2019-05-29py/nativeglue: Remove dependency on mp_fun_table in dyn-compiler mode.Damien George
mpy-cross uses MICROPY_DYNAMIC_COMPILER and MICROPY_EMIT_NATIVE but does not actually need to execute native functions, and does not need mp_fun_table. This commit makes it so mp_fun_table and all its entries are not built when MICROPY_DYNAMIC_COMPILER is enabled, significantly reducing the size of the mpy-cross executable and allowing it to be built on more machines/OS's.
2019-05-29py/nativeglue: Make private glue funs all static, remove commented code.Damien George
2019-05-29all: Bump version to 1.11.v1.11Damien George
2019-05-27py/vm: Remove obsolete comments about matching of exception opcodes.Damien George
These are incorrect since 5a2599d96299ad37cda954f1de345159f9acf11c
2019-05-22py/mkrules.mk: Remove unnecessary ; in makefile.Sebastien Rinsoz
This ; make Windows compilation fail with GNU makefile 4.2.1. It was added in 0dc85c9f86735c35cf14555482b2c8923cf31a6a as part of a shell if- statement, but this if-statement was subsequently removed in 23a693ec2d8c2a194f61482dc0e1adb070fb6ad4 so the semicolon is not needed.
2019-05-22py: Update makefiles to use $(TOUCH) instead of hard coded "touch".Sebastien Rinsoz
The variable $(TOUCH) is initialized with the "touch" value in mkenv.mk like for the other command line tools (rm, echo, cp, mkdir etc). With this, for example, Windows users can specify the path of touch.exe.
2019-05-21py: Update makefiles to use $(CAT) variable instead of hard coded "cat".Sébastien Rinsoz
The variable $(CAT) is initialised with the "cat" value in mkenv.mk like for the other command line tools (rm, echo, cp, mkdir etc). With this, for example, Windows users can specify the path of cat.exe.
2019-05-21py/objarray: Add decode method to bytearray.stijn
Reuse the implementation for bytes since it works the same way regardless of the underlying type. This method gets added for CPython compatibility of bytearray, but to keep the code simple and small array.array now also has a working decode method, which is non-standard but doesn't hurt.
2019-05-17various: Update early copyright years to match actual edit history.Damien George
2019-05-17various: Add and update my copyright line based on git history.Paul Sokolovsky
For modules I initially created or made substantial contributions to.
2019-05-14py/objarray: Add support for memoryview.itemsize attribute.stijn
This allows figuring out the number of bytes in the memoryview object as len(memview) * memview.itemsize. The feature is enabled via MICROPY_PY_BUILTINS_MEMORYVIEW_ITEMSIZE and is disabled by default.
2019-05-13py/persistentcode: Change "len" type to size_t for mp_obj_str_get_data.Henrik Vendelbo
2019-05-09py/misc.h: Rename _MP_STRINGIFY to not use leading underscore in ident.Damien George
Macro identifiers with a leading underscore are reserved.
2019-05-09py/objgenerator: Remove unneeded forward decl and clean up white space.Damien George
2019-05-09py/objgenerator: Fix handling of None passed as 2nd arg to throw().Damien George
Fixes issue #4527.
2019-05-07mpy-cross: Add --version command line option to print version info.Damien George
Prints something like: MicroPython v1.10-304-g8031b7a25 on 2019-05-02; mpy-cross emitting mpy v4
2019-05-06py: remove "if (0)" and "if (false)" branches.Jun Wu
Prior to this commit, building the unix port with `DEBUG=1` and `-finstrument-functions` the compilation would fail with an error like "control reaches end of non-void function". This change fixes this by removing the problematic "if (0)" branches. Not all branches affect compilation, but they are all removed for consistency.
2019-05-06extmod/moducryptolib: Add AES-CTR support.Yonatan Goldschmidt
Selectable at compile time via MICROPY_PY_UCRYPTOLIB_CTR. Disabled by default.
2019-05-03py/native: Improve support for bool type in viper functions.Damien George
Variables with type bool now act more like an int, and there is proper casting to/from Python objects.
2019-05-01py/asmthumb: Support asm_thumb code running on normal ARM processors.Damien George
With this change, @micropython.asm_thumb functions will work on standard ARM processors (that are in ARM state by default), in scripts and precompiled .mpy files. Addresses issue #4675.
2019-04-23py/mpprint: Support printing %ld and %lu formats on 64-bit archs.Damien George
Fixes issue #4702.
2019-04-15py/runtime: Fix mp_unpack_ex so seq can't be reclaimed by GC during use.Damien George
The issue described in the comment added here can be seen by forcing a gc_collect() at the start of each call to gc_alloc().
2019-04-15py/objset: Remove unused forward declaration and clean up whitespace.Damien George
2019-04-15py/runtime: Optimise to not create temp float for int to power negative.Damien George
2019-04-12py/makedefs: Use io.open with utf-8 encoding when processing source.Damien George
In case (user) source code contains utf-8 encoded data and the default locale is not utf-8. See #4592.
2019-03-26py/nlrthumb: Add support for iOS where the C func is _nlr_push_tail.Romain Goyet
2019-03-26py/scheduler: Convert micropythyon.schedule() to a circular buffer.Andrew Leech
This means the schedule operates on a first-in, first-executed manner rather than the current last-in, first executed.
2019-03-20py/runtime: Remove long-obsolete MICROPY_FSUSERMOUNT init code.Damien George
In 1808b2e8d5c9fff8020628a7849a537ffa9790e3 it was replaced by MICROPY_VFS and related code.
2019-03-14py/compile: Check that arch is set when compiling native, viper or asm.Damien George
2019-03-14py/compile: Support multiple inline asm emitters.Damien George
2019-03-14py/compile: Add support to select the native emitter at runtime.Damien George
2019-03-14py/nativeglue: Rename native convert funs to match other native helpers.Damien George
2019-03-14py: Move mp_native_type_from_qstr() from emitnative.c to nativeglue.c.Damien George
2019-03-08py: Update and rework build system for including external C modules.Andrew Leech
How to use this feature is documented in docs/develop/cmodules.rst.
2019-03-08py: Implement a module system for external, user C modules.Ayke van Laethem
This system makes it a lot easier to include external libraries as static, native modules in MicroPython. Simply pass USER_C_MODULES (like FROZEN_MPY_DIR) as a make parameter.
2019-03-08py: Allow registration of modules at their definition.Andrew Leech
During make, makemoduledefs.py parses the current builds c files for MP_REGISTER_MODULE(module_name, obj_module, enabled_define) These are used to generate a header with the required entries for "mp_rom_map_elem_t mp_builtin_module_table[]" in py/objmodule.c
2019-03-08py/persistentcode: Bump .mpy version to 4.Damien George
2019-03-08py: Add support to save native, viper and asm code to .mpy files.Damien George
This commit adds support for saving and loading .mpy files that contain native code (native, viper and inline-asm). A lot of the ground work was already done for this in the form of removing pointers from generated native code. The changes here are mainly to link in qstr values to the native code, and change the format of .mpy files to contain native code blocks (possibly mixed with bytecode). A top-level summary: - @micropython.native, @micropython.viper and @micropython.asm_thumb/ asm_xtensa are now allowed in .py files when compiling to .mpy, and they work transparently to the user. - Entire .py files can be compiled to native via mpy-cross -X emit=native and for the most part the generated .mpy files should work the same as their bytecode version. - The .mpy file format is changed to 1) specify in the header if the file contains native code and if so the architecture (eg x86, ARMV7M, Xtensa); 2) for each function block the kind of code is specified (bytecode, native, viper, asm). - When native code is loaded from a .mpy file the native code must be modified (in place) to link qstr values in, just like bytecode (see py/persistentcode.c:arch_link_qstr() function). In addition, this now defines a public, native ABI for dynamically loadable native code generated by other languages, like C.
2019-03-08py/emitglue: Remove union in mp_raw_code_t to combine bytecode & native.Damien George
2019-03-08py/emitnative: Adjust accounting of size of const_table.Damien George
n_obj no longer includes a count for mp_fun_table to make it a bit simpler.
2019-03-08py/emitnative: Provide concentrated points of qstr emit.Damien George
2019-03-08py/emitnative: Consolidate where HASCONSTS is set to load-const-obj fun.Damien George
Simplifies the code and fixes handling of the Ellipsis const in native code generation (which also needs the constant table so must set this flag).
2019-03-08py: Add independent config for debugging sentinel object values.Damien George
The new compile-time option is MICROPY_DEBUG_MP_OBJ_SENTINELS, disabled by default. This is to allow finer control of whether this debugging feature is enabled or not (because, for example, this setting must be the same for mpy-cross and the MicroPython main code when using native code generation).
2019-03-05py/persistentcode: Define static qstr set to reduce size of mpy files.Damien George
When encoded in the mpy file, if qstr <= QSTR_LAST_STATIC then store two bytes: 0, static_qstr_id. Otherwise encode the qstr as usual (either with string data or a reference into the qstr window). Reduces mpy file size by about 5%.
2019-03-05py/persistentcode: Pack qstrs directly in bytecode to reduce mpy size.Damien George
Instead of emitting two bytes in the bytecode for where the linked qstr should be written to, it is now replaced by the actual qstr data, or a reference into the qstr window. Reduces mpy file size by about 10%.