- 06 Apr, 2015 4 commits
-
-
Damien George authored
-
Damien George authored
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
-
- 04 Apr, 2015 3 commits
-
-
Damien George authored
Without this patch deleting a property, or class with descriptor, will call the setter with a NULL value and lead to a crash.
-
Damien George authored
-
Damien George authored
-
- 03 Apr, 2015 10 commits
-
-
Paul Sokolovsky authored
Warnings lead to programming errors - as expected.
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
splitlines() occurs ~179 times in CPython3 standard library, so was deemed worthy to implement. The method has subtle semantic differences from just .split("\n"). It is also defined as working for any end-of-line combination, but this is currently not implemented - it works only with LF line-endings (which should be OK for text strings on any platforms, but not OK for bytes).
-
Damien George authored
-
Damien George authored
-
Damien George authored
Currently supports only x64 and Thumb2 archs.
-
Damien George authored
This implementation is smaller (in code size) than #1024.
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
- 02 Apr, 2015 7 commits
-
-
Damien George authored
Also rename call_args_t to mp_call_args_t.
-
Paul Sokolovsky authored
I.e. in this mode, C stack will never be used to call a Python function, but if there's no free heap for a call, it will be reported as RuntimeError (as expected), not MemoryError.
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
Allow for reuse for stackless design, where preparing args is separate from calling.
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
-
- 01 Apr, 2015 1 commit
-
-
Paul Sokolovsky authored
-
- 31 Mar, 2015 1 commit
-
-
Damien George authored
-
- 30 Mar, 2015 2 commits
-
-
Paul Sokolovsky authored
Conditional on MICROPY_PY_ALL_SPECIAL_METHODS.
-
Paul Sokolovsky authored
Per https://docs.python.org/3/library/functions.html#round, 2-args format guaranteedly returns float.
-
- 26 Mar, 2015 6 commits
-
-
stijn authored
Disabled by default. Enabled on unix and windows ports.
-
Damien George authored
This is a temporary fix.
-
Damien George authored
When just the bytecode emitter is needed there is no need to have a dynamic method table for the emitter back-end, and we can instead directly call the mp_emit_bc_XXX functions. This gives a significant reduction in code size and a very slight performance boost for the compiler. This patch saves 1160 bytes code on Thumb2 and 972 bytes on x86, when native emitters are disabled. Overall savings in code over the last 3 commits are: bare-arm: 1664 bytes. minimal: 2136 bytes. stmhal: 584 bytes (it has native emitter enabled). cc3200: 1736 bytes.
-
Damien George authored
First pass for the compiler is computing the scope (eg if an identifier is local or not) and originally had an entire table of methods dedicated to this, most of which did nothing. With changes from previous commit, this set of methods can be removed and the methods from the bytecode emitter used instead, with very little modification -- this is what is done in this commit. This factoring has little to no impact on the speed of the compiler (tested by compiling 3763 Python scripts and timing it). This factoring reduces code size by about 270-300 bytes on Thumb2 archs, and 400 bytes on x86.
-
Damien George authored
Saves around 230 bytes on Thumb2 and 750 bytes on x86.
-
Paul Sokolovsky authored
Continuation of refactoring applied previously to objlist.
-
- 25 Mar, 2015 4 commits
-
-
Damien George authored
It allowed such things as (a, b) += c.
-
Damien George authored
Saves around 30 bytes code on Thumb2 archs.
-
Damien George authored
-
Paul Sokolovsky authored
mp_obj_t internal representation doesn't have to be a pointer to object, it can be anything. There's also a support for back-conversion in the form of MP_OBJ_UNCAST. This is kind of optimization/status quo preserver to minimize patching the existing code and avoid doing potentially expensive MP_OBJ_CAST over and over. But then one may imagine implementations where MP_OBJ_UNCAST is very expensive. But such implementations are unlikely interesting in practice.
-
- 23 Mar, 2015 2 commits
-
-
Paul Sokolovsky authored
This change is required to unbreak some CPython stdlib modules (as included into micropython-lib).
-
Paul Sokolovsky authored
-