Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | py: In inline assembler, add return statement to fix flow logic. | Damien George | 2015-02-24 |
| | |||
* | py: Factor some code in inline thumb assembler to reduce code size. | Damien George | 2015-02-24 |
| | |||
* | py: Make more asmthumb functions inline to reduce code size. | Damien George | 2015-02-24 |
| | |||
* | py: Reduce code size of inline thumb assembler by using static tables. | Damien George | 2015-02-24 |
| | | | | Reduces stmhal by about 300 bytes ROM. | ||
* | py: Update parse.c&mpconfig.h to reflect rename of mp_lexer_show_token. | nhtshot | 2015-02-23 |
| | | | | | This function is only used when DEBUG_PRINTERS and USE_RULE_NAME are enabled. | ||
* | py: Implement UnicodeError. | Paul Sokolovsky | 2015-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 George | 2015-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 Sokolovsky | 2015-02-22 |
| | |||
* | py: Expose mp_obj_list_remove as a public function. | Damien George | 2015-02-21 |
| | |||
* | py: Fix mp_obj_print() to work when Python streams are not used. | Paul Sokolovsky | 2015-02-17 |
| | |||
* | py: Revamp mp_obj_print() to use Python streams. | Paul Sokolovsky | 2015-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 George | 2015-02-16 |
| | |||
* | py: Implement "it" instruction for inline Thumb assembler. | Damien George | 2015-02-16 |
| | |||
* | py: More robust checking in inline assembler compiler. | Damien George | 2015-02-16 |
| | |||
* | builtinimport: Revamp&refactor handling of relative imports. | Paul Sokolovsky | 2015-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 Sokolovsky | 2015-02-16 |
| | |||
* | stackctrl: Encode "recursion depth exceeded" message as qstr. | Paul Sokolovsky | 2015-02-15 |
| | | | | So corresponding exception can be thrown even under tight memory conditions. | ||
* | objexcept: Optimize traceback allocation for exception. | Paul Sokolovsky | 2015-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 Sokolovsky | 2015-02-15 |
| | | | | | They are directly cast to str object, skipping allocation of formatting buffer. | ||
* | nlr: Add even more optional debugging logging. | Paul Sokolovsky | 2015-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 Sokolovsky | 2015-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 Sokolovsky | 2015-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 George | 2015-02-15 |
| | |||
* | py: Simplify and remove redundant code for __iter__ method lookup. | Damien George | 2015-02-15 |
| | |||
* | py: Fix loading of immediate pointer in Thumb assembler. | Damien George | 2015-02-15 |
| | | | | Addresses issue #1117. | ||
* | py: Check for valid file when creating lexer for execfile. | Damien George | 2015-02-15 |
| | | | | Addresses issue #1119. | ||
* | py: Cleanup duplication in instance_is_callable/instance_call. | stijn | 2015-02-14 |
| | |||
* | py: Add setattr builtin. | stijn | 2015-02-14 |
| | |||
* | py/asm*.c: Typo fixes in comments. | Paul Sokolovsky | 2015-02-14 |
| | |||
* | py: Implement clz and rbit for inline Thumb assembler. | Damien George | 2015-02-13 |
| | |||
* | py: Implement sdiv/udiv for inline Thumb assembler. | Damien George | 2015-02-13 |
| | |||
* | py: Implement push/pop for inline Thumb assembler. | Damien George | 2015-02-13 |
| | |||
* | py: Expose compile.c:list_get as mp_parse_node_extract_list. | Damien George | 2015-02-13 |
| | |||
* | py: Make inline assembler raise proper SyntaxError exception on error. | Damien George | 2015-02-13 |
| | | | | Also gives line number of location of error. Very useful! | ||
* | py: Add ldrex and strex to thumb2 inline assembler. | Damien George | 2015-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 George | 2015-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 George | 2015-02-10 |
| | |||
* | py: Don't unnecessarily create a bound method. | Damien George | 2015-02-09 |
| | |||
* | py: Allow subclass of native object to delegate to the native buffer_p. | Damien George | 2015-02-09 |
| | | | | Addresses issue #1109. | ||
* | py: Remove obsolete MP_F_LOAD_CONST_{INT,DEC} from emitnative.c. | Damien George | 2015-02-09 |
| | |||
* | objstr: Fix bytes creation from array of long ints. | Paul Sokolovsky | 2015-02-09 |
| | |||
* | py: Add MICROPY_OBJ_BASE_ALIGNMENT to help with 16-bit ports. | Damien George | 2015-02-08 |
| | |||
* | py: Initialise variables in mp_parse correctly, to satisfy gcc warning. | Damien George | 2015-02-08 |
| | |||
* | py: Parse big-int/float/imag constants directly in parser. | Damien George | 2015-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 George | 2015-02-08 |
| | |||
* | py: Protect mp_parse and mp_compile with nlr push/pop block. | Damien George | 2015-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 George | 2015-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 George | 2015-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 George | 2015-02-02 |
| | |||
* | py: Add MICROPY_PY_ALL_SPECIAL_METHODS and __iadd__ special method under it. | Paul Sokolovsky | 2015-01-31 |
| |