summaryrefslogtreecommitdiffstatshomepage
path: root/py
Commit message (Collapse)AuthorAge
* py: In inline assembler, add return statement to fix flow logic.Damien George2015-02-24
|
* py: Factor some code in inline thumb assembler to reduce code size.Damien George2015-02-24
|
* py: Make more asmthumb functions inline to reduce code size.Damien George2015-02-24
|
* py: Reduce code size of inline thumb assembler by using static tables.Damien George2015-02-24
| | | | Reduces stmhal by about 300 bytes ROM.
* py: Update parse.c&mpconfig.h to reflect rename of mp_lexer_show_token.nhtshot2015-02-23
| | | | | This function is only used when DEBUG_PRINTERS and USE_RULE_NAME are enabled.
* py: Implement UnicodeError.Paul Sokolovsky2015-02-23
| | | | | Still too shy to implement UnicodeEncodeError which was really needed for micropython-lib case.
* py: Make math special functions configurable and disabled by default.Damien George2015-02-22
| | | | | | | 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.
* py: Add few more special methods.Paul Sokolovsky2015-02-22
|
* py: Expose mp_obj_list_remove as a public function.Damien George2015-02-21
|
* py: Fix mp_obj_print() to work when Python streams are not used.Paul Sokolovsky2015-02-17
|
* py: Revamp mp_obj_print() to use Python streams.Paul Sokolovsky2015-02-17
| | | | | | | 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.
* py: Implement bl/bx instructions for inline Thumb assembler.Damien George2015-02-16
|
* py: Implement "it" instruction for inline Thumb assembler.Damien George2015-02-16
|
* py: More robust checking in inline assembler compiler.Damien George2015-02-16
|
* builtinimport: Revamp&refactor handling of relative imports.Paul Sokolovsky2015-02-16
| | | | | | | | | 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.
* builtinimport: Improve debugging output.Paul Sokolovsky2015-02-16
|
* stackctrl: Encode "recursion depth exceeded" message as qstr.Paul Sokolovsky2015-02-15
| | | | So corresponding exception can be thrown even under tight memory conditions.
* objexcept: Optimize traceback allocation for exception.Paul Sokolovsky2015-02-15
| | | | | | Traceback allocation for exception will now never lead to recursive MemoryError exception - if there's no memory for traceback, it simply won't be created.
* objexcept: Optimize using messages without formatting substitutions.Paul Sokolovsky2015-02-15
| | | | | They are directly cast to str object, skipping allocation of formatting buffer.
* nlr: Add even more optional debugging logging.Paul Sokolovsky2015-02-15
| | | | | Has to be enabled by manual editing, but at least it's there, as debugging NLR issues may be weird.
* nlr: If DEBUG, guard against recursive nlr_push().Paul Sokolovsky2015-02-15
| | | | | | Pushing same NLR record twice would lead to "infinite loop" in nlr_jump (but more realistically, it will crash as soon as NLR record on stack is overwritten).
* py: Make old_globals part of mp_code_state structure.Paul Sokolovsky2015-02-15
| | | | | Conceptually it is part of code state, so let it be allocated in the same way as the rest of state.
* py: Use TextIOWrapper only if PY_IO_FILEIO def'd; cast size_t for print.Damien George2015-02-15
|
* py: Simplify and remove redundant code for __iter__ method lookup.Damien George2015-02-15
|
* py: Fix loading of immediate pointer in Thumb assembler.Damien George2015-02-15
| | | | Addresses issue #1117.
* py: Check for valid file when creating lexer for execfile.Damien George2015-02-15
| | | | Addresses issue #1119.
* py: Cleanup duplication in instance_is_callable/instance_call.stijn2015-02-14
|
* py: Add setattr builtin.stijn2015-02-14
|
* py/asm*.c: Typo fixes in comments.Paul Sokolovsky2015-02-14
|
* py: Implement clz and rbit for inline Thumb assembler.Damien George2015-02-13
|
* py: Implement sdiv/udiv for inline Thumb assembler.Damien George2015-02-13
|
* py: Implement push/pop for inline Thumb assembler.Damien George2015-02-13
|
* py: Expose compile.c:list_get as mp_parse_node_extract_list.Damien George2015-02-13
|
* py: Make inline assembler raise proper SyntaxError exception on error.Damien George2015-02-13
| | | | Also gives line number of location of error. Very useful!
* py: Add ldrex and strex to thumb2 inline assembler.Damien George2015-02-12
| | | | These are useful for implementing atomic lock operations.
* py: Reuse value stack in VM WITH_CLEANUP opcode to reduce C-stack size.Damien George2015-02-10
| | | | Saves 8 bytes C-stack on stmhal and 16 bytes on unix x86.
* py: Add option to micropython.qstr_info() to dump actual qstrs.Damien George2015-02-10
|
* py: Don't unnecessarily create a bound method.Damien George2015-02-09
|
* py: Allow subclass of native object to delegate to the native buffer_p.Damien George2015-02-09
| | | | Addresses issue #1109.
* py: Remove obsolete MP_F_LOAD_CONST_{INT,DEC} from emitnative.c.Damien George2015-02-09
|
* objstr: Fix bytes creation from array of long ints.Paul Sokolovsky2015-02-09
|
* py: Add MICROPY_OBJ_BASE_ALIGNMENT to help with 16-bit ports.Damien George2015-02-08
|
* py: Initialise variables in mp_parse correctly, to satisfy gcc warning.Damien George2015-02-08
|
* py: Parse big-int/float/imag constants directly in parser.Damien George2015-02-08
| | | | | | | | | Previous to this patch, a big-int, float or imag constant was interned (made into a qstr) and then parsed at runtime to create an object each time it was needed. This is wasteful in RAM and not efficient. Now, these constants are parsed straight away in the parser and turned into objects. This allows constants with large numbers of digits (so addresses issue #1103) and takes us a step closer to #722.
* py: Fix instance lookup, since object is not a real type.Damien George2015-02-08
|
* py: Protect mp_parse and mp_compile with nlr push/pop block.Damien George2015-02-07
| | | | | | | | | | To enable parsing constants more efficiently, mp_parse should be allowed to raise an exception, and mp_compile can already raise a MemoryError. So these functions need to be protected by an nlr push/pop block. This patch adds that feature in all places. This allows to simplify how mp_parse and mp_compile are called: they now raise an exception if they have an error and so explicit checking is not needed anymore.
* py: Put mp_sys_path, mp_sys_argv and gc_collected in mp_state_ctx_t.Damien George2015-02-07
| | | | | Without mp_sys_path and mp_sys_argv in the root pointer section of the state, their memory was being incorrectly collected by GC.
* py: Make list.sort keep stack usage within O(log(N)) bound.Damien George2015-02-02
| | | | | | | Also fix list.sort so it works with user-defined types, and parse the keyword arguments properly. Addresses issue #338.
* py: Fix cmath.log10; fix printing of complex number with negative imag.Damien George2015-02-02
|
* py: Add MICROPY_PY_ALL_SPECIAL_METHODS and __iadd__ special method under it.Paul Sokolovsky2015-01-31
|