Paul Sokolovsky
66c11ec581
objtype: Clarify code by consistently using common subexpression.
10 years ago
Damien George
d4bd37a561
py: Fix printing of error message when parsing malformed integer.
10 years ago
Damien George
1ef26b35c1
py, extmod: Remove include of unnecessary system headers.
10 years ago
Damien George
836e46976f
py: In pfenv_vprintf, adjust type from mp_uint_t to unsigned int.
10 years ago
Damien George
fa1edff006
py: Remove unnecessary and unused sgn argument from pfenv_print_mp_int.
10 years ago
Damien George
6837d46c1d
py: Fix builtin abs so it works for bools and bignum.
10 years ago
Damien George
42e0c59308
py: Add MICROPY_COMP_{DOUBLE,TRIPLE}_TUPLE_ASSIGN config options.
These allow to fine-tune the compiler to select whether it optimises
tuple assignments of the form a, b = c, d and a, b, c = d, e, f.
Sensible defaults are provided.
10 years ago
Damien George
a77ffe66b2
py: In compiler, put macro guard around potentially unused asm vars.
10 years ago
Damien George
848dd0e762
py: Make some mpz functions static and remove unused ones.
10 years ago
Peter D. Gray
b2a237d337
py: Add support for start/stop/step attributes of builtin range object.
10 years ago
Paul Sokolovsky
cb0fc063ed
objmemoryview: Introduce mp_obj_new_memoryview().
This follows existing pattern for object constructor API and allows to
create memoryview objects e.g. in external modules.
10 years ago
Paul Sokolovsky
24c1000741
objarray: Support array('O'), array of objects, as extension to CPython.
Might be useful at least for memoryview hacks.
10 years ago
Paul Sokolovsky
16b1f5e842
objarray: Fix typo in null TYPECODE_MASK.
10 years ago
Damien George
d891452a73
py: Add MICROPY_MALLOC_USES_ALLOCATED_SIZE to allow simpler malloc API.
10 years ago
Paul Sokolovsky
e104acdb8c
runtime: Typo fixes in comments.
10 years ago
Damien George
dc790977d4
py: In inline assembler, reset labels on code-size pass.
10 years ago
Damien George
3665d0b2ff
py: Simplify some inline-assembler error messages, but retain meaning.
Just to reduce code size. Messages are still to the point and
unambiguous.
10 years ago
Damien George
9c5cabb502
py: Give error for duplicate label in inline assembler.
10 years ago
stijn
803264bb17
py: Guard against redef of nlr_push with DEBUG + MICROPY_NLR_SETJMP.
10 years ago
Damien George
67c5f89af5
py: In inline assembler, fix branch out-of-range error reporting.
Should only give an error on the last pass of the assembler, since
that's when we are certain about the branch size.
10 years ago
Damien George
db1e10d5ea
py: Use SMALL_INT creation macro in builtin sum.
10 years ago
Damien George
9f142f0c84
py: For inline assembler, add bcc_n and bcc_w ops.
Addresses issue #1143 .
10 years ago
Damien George
a2e383820d
py: Clean up and comment out unused functions in mpz.
10 years ago
Damien George
62a3a287d9
py: Set compiler scope before folding constants so error messages work.
Addresses issue #1140 .
10 years ago
Damien George
7711afbb4a
py: Combine complie functions for or_test/and_test to reduce code size.
Saves around 60 bytes code on Thumb2 archs.
10 years ago
Damien George
63f3832e81
py: Combine emit functions for jump true/false to reduce code size.
Saves 116 bytes for stmhal and 56 bytes for cc3200 port.
10 years ago
Damien George
0b2fd91890
py: Combine logic for compiling and/or tests, to reduce code size.
Reduces code size by 72 bytes on Thumb2 archs.
10 years ago
Paul Sokolovsky
cefcbb22b2
objarray: Implement array slice assignment.
This is rarely used feature which takes enough code to implement, so is
controlled by MICROPY_PY_ARRAY_SLICE_ASSIGN config setting, default off.
But otherwise it may be useful, as allows to update arbitrary-sized data
buffers in-place.
Slice is yet to implement, and actually, slice assignment implemented in
such a way that RHS of assignment should be array of the exact same item
typecode as LHS. CPython has it more relaxed, where RHS can be any sequence
of compatible types (e.g. it's possible to assign list of int's to a
bytearray slice).
Overall, when all "slice write" features are implemented, it may cost ~1KB
of code.
10 years ago
Damien George
0bb971370b
py: Transform assert logic in compiler to save code space.
Saves about 250 code bytes for Thumb2 archs.
10 years ago
Damien George
4d77e1a034
py: Use m_{new,renew,del} consistently.
This is so all memory requests go through the same interface.
10 years ago
Damien George
4852e09c79
py: Fix adding of traceback so that it appends to existing info.
This makes exception traceback info self contained (ie doesn't rely on
list object, which was a bit of a hack), reduces code size, and reduces
RAM footprint of exception by eliminating the list object.
Addresses part of issue #1126 .
10 years ago
Damien George
12d6d777e1
py: Small optimisation of logic flow in BC_WITH_CLEANUP bytecode.
Slightly smaller code, and does not need to use C stack to save
temporaries.
10 years ago
Damien George
534574348e
py: Make inline assembler raise exception when branch not in range.
Addresses issue #1132 .
10 years ago
Damien George
993f067fa2
py: In inline assembler, add return statement to fix flow logic.
10 years ago
Damien George
e5315f7ffd
py: Factor some code in inline thumb assembler to reduce code size.
10 years ago
Damien George
e41b21c01e
py: Make more asmthumb functions inline to reduce code size.
10 years ago
Damien George
8f7976ba0d
py: Reduce code size of inline thumb assembler by using static tables.
Reduces stmhal by about 300 bytes ROM.
10 years ago
nhtshot
5d323defe4
py: Update parse.c&mpconfig.h to reflect rename of mp_lexer_show_token.
This function is only used when DEBUG_PRINTERS and USE_RULE_NAME are
enabled.
10 years ago
Paul Sokolovsky
71ebd4b7f0
py: Implement UnicodeError.
Still too shy to implement UnicodeEncodeError which was really needed for
micropython-lib case.
10 years ago
Damien George
5cbeacebdb
py: Make math special functions configurable and disabled by default.
The implementation of these functions is very large (order 4k) and they
are rarely used, so we don't enable them by default.
They are however enabled in stmhal and unix, since we have the room.
10 years ago
Paul Sokolovsky
e06cf89f04
py: Add few more special methods.
10 years ago
Damien George
eff359e114
py: Expose mp_obj_list_remove as a public function.
10 years ago
Paul Sokolovsky
8c705233f3
py: Fix mp_obj_print() to work when Python streams are not used.
10 years ago
Paul Sokolovsky
1f91e92cc6
py: Revamp mp_obj_print() to use Python streams.
Most of printing infrastructure now uses streams, but mp_obj_print() used
libc's printf(), which led to weird buffering issues in output. So, switch
mp_obj_print() to streams too, even though it may make sense to move it to
a separate file, as it is purely a debugging function now.
10 years ago
Damien George
eff10f66a6
py: Implement bl/bx instructions for inline Thumb assembler.
10 years ago
Damien George
42495392da
py: Implement "it" instruction for inline Thumb assembler.
10 years ago
Damien George
3d7bf5d4b1
py: More robust checking in inline assembler compiler.
10 years ago
Paul Sokolovsky
9e6c82960e
builtinimport: Revamp&refactor handling of relative imports.
Relative imports are based of a package, so we're currently at a module
within a package, we should get to package first.
Also, factor out path travsering operation, but this broke testing for
boundary errors with relative imports. TODO: reintroduce them, together
with proper tests.
10 years ago
Paul Sokolovsky
078172dcab
builtinimport: Improve debugging output.
10 years ago
Paul Sokolovsky
e8432b3c72
stackctrl: Encode "recursion depth exceeded" message as qstr.
So corresponding exception can be thrown even under tight memory conditions.
10 years ago