- Dec 09, 2017
-
-
Paul Sokolovsky authored
This target removes any stray files (i.e. something not committed to git) from scripts/ and modules/ dirs (or whatever FROZEN_DIR and FROZEN_MPY_DIR is set to). The expected workflow is: 1. make clean-frozen 2. micropython -m upip -p modules <packages_to_freeze> 3. make As it can be expected that people may drop random thing in those dirs which they can miss later, the content is actually backed up before cleaning.
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
This is second part of fun_bc_call() vs mp_obj_fun_bc_prepare_codestate() common code refactor. This factors out code to initialize codestate object. After this patch, mp_obj_fun_bc_prepare_codestate() is effectively DECODE_CODESTATE_SIZE() followed by allocation followed by INIT_CODESTATE(), and fun_bc_call() starts with that too.
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
fun_bc_call() starts with almost the same code as mp_obj_fun_bc_prepare_codestate(), the only difference is a way to allocate the codestate object (heap vs stack with heap fallback). Still, would be nice to avoid code duplication to make further refactoring easier. So, this commit factors out the common code before the allocation - decoding and calculating codestate size. It produces two values, so structured as a macro which writes to 2 variables passed as arguments.
-
- Dec 08, 2017
-
-
Paul Sokolovsky authored
Or it will be truncated on a 64-bit platform.
-
Paul Sokolovsky authored
To allow easier override it for custom tracing.
-
Paul Sokolovsky authored
E.g.: >>> 1+1 binary 26 __add__ 3 3 Output is similar to bytecode dump (numeric code, then op name).
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
Tinytest library was misplaced under tools/. By convention, any target libraries belong to lib/, while tools/ contains host-side tools.
-
Paul Sokolovsky authored
Command-line argc and argv should be passed, and as we don't have them, placeholders were passed, but incorrectly. As we don't have them, just pass 0/NULL. Looking at the source, this migh lead to problems under Windows, but this test doesn't run under Windows. Also, use "%d" printf format consistently with the rest of the codebase.
-
Paul Sokolovsky authored
-
Damien George authored
The assembler back-end for most architectures needs to know if a jump is backwards in order to emit optimised machine code, and they do this by checking if the destination label has been set or not. So always reset label offsets to -1 (this reverts partially the previous commit, with some minor optimisation for the if-logic with the pass variable).
-
Damien George authored
Clearing the labels to -1 is purely a debugging measure. For release builds there is no need to do it as the label offset table should always have the correct value assigned.
-
- Dec 07, 2017
-
-
Paul Sokolovsky authored
Accessing them will crash immediately instead still working for some time, until overwritten by some other data, leading to much less deterministic crashes.
-
Paul Sokolovsky authored
This is mostly a workaround for forceful rebuilding of mpy-cross on every codebase change. If this file has debug logging enabled (by patching), mpy-cross build failed.
-
Paul Sokolovsky authored
Error out if they're set incompatibly.
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
Before that, the output was truncated to 32 bits. Only "%x" format is handled, because a typical use is for addresses. This refactor actually decreased x86_64 code size by 30 bytes.
-
Paul Sokolovsky authored
Before, the output was truncated to 32 bits.
-
- Dec 06, 2017
-
-
Paul Sokolovsky authored
Lack of spaces between them led to weird option artifacts like -Ifoo-Dbar.
-
Paul Sokolovsky authored
-
- Dec 05, 2017
-
-
Paul Sokolovsky authored
-
Damien George authored
This allows the function to raise an exception when unknown keyword args are passed in. This patch also reduces code size by (in bytes): bare-arm: -24 minimal x86: -76 unix x64: -56 unix nanbox: -84 stm32: -40 esp8266: -68 cc3200: -48 Furthermore, this patch adds space (" ") to the set of ROM qstrs which means it doesn't need to be put in RAM if it's ever used.
-
- Dec 04, 2017
-
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
Return the result of called function. If exception happened, return MP_OBJ_NULL. Allows to use mp_call_function_*_protected() with callbacks returning values, etc.
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
Similar to existing m_new_obj_with_finaliser().
-
- Dec 03, 2017
-
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
This is the proper fix for https://github.com/micropython/micropython/issues/3442.
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
-
- Dec 01, 2017
-
-
Paul Sokolovsky authored
Required for #include <zephyr.h> to work.
-
Damien George authored
5-pin JTAG and 2-pin SWD are logically separate interfaces so encode them in the AF tables as separate entries (separated by /, not -).
-
Damien George authored
Based on ST datasheet, DocID029041 Rev 3, DM00273119.pdf.
-
- Nov 30, 2017
-
-
Paul Sokolovsky authored
-
Paul Carver authored
The parameter order in the example for ticks_diff was incorrect. If it's "too early" that means that scheduled time is greater than current time and if it's "running late" then scheduled time would be less than current time.
-
Damien George authored
This commit essentially reverts aa9dbb1b where this if-condition was added. It seems that even when that commit was made the code was never reached by any tests, nor reachable by analysis (see below). The same is true with the code as it currently stands: no test triggers this if-condition, nor any uasyncio examples. Analysing the flow of the program also shows that it's not reachable: ==START== -> to trigger this if condition mp_execute_bytecode() must return MP_VM_RETURN_YIELD with *sp==MP_OBJ_STOP_ITERATION -> mp_execute_bytecode() can only return MP_VM_RETURN_YIELD from the MP_BC_YIELD_VALUE bytecode, which can happen in 2 ways: -> 1) from a "yield <x>" in bytecode, but <x> must always be a proper object, never MP_OBJ_STOP_ITERATION; ==END1== -> 2) via yield from, via mp_resume() which must return MP_VM_RETURN_YIELD with ret_value==MP_OBJ_STOP_ITERATION, which can happen in 3 ways: -> 1) it delegates to mp_obj_gen_resume(); go back to ==START== -> 2) it returns MP_VM_RETURN_YIELD directly but with a guard that ret_val!=MP_OBJ_STOP_ITERATION; ==END2== -> 3) it returns MP_VM_RETURN_YIELD with ret_val set from mp_call_method_n_kw(), but mp_call_method_n_kw() must return a proper object, never MP_OBJ_STOP_ITERATION; ==END3== The above shows there is no way to trigger the if-condition and it can be removed.
-