| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2015-10-08 | py: Don't generate unnecessary parse nodes for assignment or kwargs. | Damien George | |
| This patch eliminates the need for a nested parse node for assignments and keyword arguments. It saves a little bit of RAM when parsing. | |||
| 2015-10-08 | py/emitnative: Raise ViperTypeError for unsupported unary ops. | Damien George | |
| 2015-10-08 | py/compile: Fix edge case when constant-folding negation of integer. | Damien George | |
| Also adds tests specifically for testing constant folding. | |||
| 2015-10-06 | modussl: SSL socket wrapper module based on axTLS. | Paul Sokolovsky | |
| 2015-10-03 | py: Allow to enable inline assembler without native emitter. | Damien George | |
| 2015-10-02 | py: Allocate parse nodes in chunks to reduce fragmentation and RAM use. | Damien George | |
| With this patch parse nodes are allocated sequentially in chunks. This reduces fragmentation of the heap and prevents waste at the end of individually allocated parse nodes. Saves roughly 20% of RAM during parse stage. | |||
| 2015-10-01 | py: Catch all cases of integer (big and small) division by zero. | Damien George | |
| 2015-10-01 | py/mpz: Fix bignum anding of large negative with smaller positive int. | Damien George | |
| 2015-10-01 | py/mpz: Force rhs of mpz_shl_inpl/mpz_shr_inpl to be unsigned. | Damien George | |
| Python semantics are that rhs of shift must be non-negative, so there's no need to handle negative values in the underlying mpz implementation. | |||
| 2015-10-01 | py/mpz: Raise NotImplError instead of failing assertion. | Damien George | |
| 2015-10-01 | py/parsenum: Provide detailed error for int parsing with escaped bytes. | Damien George | |
| This patch adds more fine grained error message control for errors when parsing integers (now has terse, normal and detailed). When detailed is enabled, the error now escapes bytes when printing them so they can be more easily seen. | |||
| 2015-09-28 | py/objrange: Bugfix for range_subscr() when index is a slice object. | Tom Soulanille | |
| 2015-09-24 | py/compile: Put compiler state on the C stack. | Damien George | |
| It's relatively small (between 44 and 56 bytes) and helps to reduce heap pressure and fragmentation during compilation. | |||
| 2015-09-23 | py: Slightly simplify compile and emit of star/double-star arguments. | Damien George | |
| Saves a few bytes of code space and eliminates need for rot_two bytecode (hence saving RAM and execution time, by a tiny bit). | |||
| 2015-09-23 | py: Fix call args when a stararg is followed by keyword args. | Delio Brignoli | |
| 2015-09-19 | py/repl: Treat escaped quotes correctly in REPL continuation. | Alex March | |
| Escaped quotes are now recognised correctly in REPL when used inside normal quotes. Fixes: #1419 | |||
| 2015-09-15 | py/objslice: Fix indent. | Tom Soulanille | |
| 2015-09-15 | py/objslice: Make slice attributes (start/stop/step) readable. | Tom Soulanille | |
| Configurable with MICROPY_PY_BUILTINS_SLICE_ATTRS. Disabled by default. | |||
| 2015-09-15 | py/mpz: Fix calculation of max digit storage for mpz; fix sys.maxsize. | Damien George | |
| When creating constant mpz's, the length of the mpz must be exactly how many digits are used (not allocated) otherwise these numbers are not compatible with dynamically allocated numbers. Addresses issue #1448. | |||
| 2015-09-12 | lib/mp-readline: Add auto-indent support. | Damien George | |
| 4 spaces are added at start of line to match previous indent, and if previous line ended in colon. Backspace deletes 4 space if only spaces begin a line. Configurable via MICROPY_REPL_AUTO_INDENT. Disabled by default. | |||
| 2015-09-11 | stmhal: fix single precision float printing error | Dave Hylands | |
| Fixes #1435. | |||
| 2015-09-07 | py/lexer: Properly classify floats that look like hex numbers. | Damien George | |
| Eg 0e0 almost looks like a hex number but in fact is a float. | |||
| 2015-09-07 | py/lexer: Raise SyntaxError when unicode char point out of range. | Damien George | |
| 2015-09-07 | py/lexer: Raise NotImplError for unicode name escape, instead of assert. | Damien George | |
| 2015-09-07 | py/compile: Refine SyntaxError for repeated use of global/nonlocal. | Damien George | |
| 2015-09-04 | py: Eliminate some cases which trigger unused parameter warnings. | Damien George | |
| 2015-09-04 | py/objstr: Check for keyword args before checking for no posn args. | Damien George | |
| Otherwise something like bytes(abc=123) will succeed. | |||
| 2015-09-04 | py/objstr: For str.endswith(s, start) raise NotImpl instead of assert. | Damien George | |
| 2015-09-04 | py/objbool: Simplify dispatch of bool binary op. | Damien George | |
| This optimises (in speed and code size) for the common case where the binary op for the bool object is supported. Unsupported binary ops still behave the same. | |||
| 2015-09-04 | py/compile: Only compile function annotations if really needed. | Damien George | |
| Function annotations are only needed when the native emitter is enabled and when the current scope is emitted in viper mode. All other times the annotations can be skipped completely. | |||
| 2015-09-03 | stmhal: add option to query for the current usb mode | Tony Abboud | |
| Fetch the current usb mode and return a string representation when pyb.usb_mode() is called with no args. The possible string values are interned as qstr's. None will be returned if an incorrect mode is set. | |||
| 2015-09-03 | py: Use mp_not_implemented consistently for not implemented features. | Damien George | |
| 2015-09-03 | py/objstr: Simplify printing of bytes objects when unicode enabled. | Damien George | |
| 2015-09-03 | py: Inline single use of mp_obj_str_get_len in mp_obj_len_maybe. | Damien George | |
| Gets rid of redundant double check for string type. Also remove obsolete declaration of mp_obj_str_get_hash. | |||
| 2015-09-03 | py: Make "enumerate" qstr be conditional on MICROPY_PY_BUILTINS_ENUMERATE. | Paul Sokolovsky | |
| 2015-09-01 | py/binary: Add support for array('q') and array('Q'). | Damien George | |
| 2015-09-01 | py/objstr: Make str.rsplit(None,n) raise NotImpl instead of assert(0). | Damien George | |
| 2015-09-01 | vm: Handle "raise X from Y" statements the best way we can. | Paul Sokolovsky | |
| By issuing a warning that exception chaining is not supported, and ignoring "from Y" argument. | |||
| 2015-08-31 | modbuiltins: Consistently use indentation for #if. | Paul Sokolovsky | |
| 2015-08-30 | py/objstr: Simplify error handling for bad conversion specifier. | Damien George | |
| 2015-08-30 | py/objgetitemiter: Make it_iternext() recognize IndexError. | Tom Soulanille | |
| 2015-08-29 | py/objstr: Fix error reporting for unexpected end of modulo format str. | Damien George | |
| 2015-08-29 | py/objstr: Fix error type for badly formatted format specifier. | Damien George | |
| Was KeyError, should be ValueError. | |||
| 2015-08-29 | py/objstr: Make string formatting 8-bit clean. | Damien George | |
| 2015-08-29 | py: Treat -m32 flag as part of CC, LD, etc. | Paul Sokolovsky | |
| Indeed, this flag efectively selects architecture target, and must consistently apply to all compiles and links, including 3rd-party libraries, unlike CFLAGS, which have MicroPython-specific setting. | |||
| 2015-08-28 | objset: frozensets are hashable. | Paul Sokolovsky | |
| 2015-08-20 | py: Add MICROPY_PY_BUILTINS_FILTER, disable for minimal ports. | Paul Sokolovsky | |
| Saves 320 bytes on x86. | |||
| 2015-08-17 | py: Remove unused compile scope flags, and irrelevant flag compute code. | Damien George | |
| 2015-08-17 | unix-cpy: Remove unix-cpy. It's no longer needed. | Damien George | |
| unix-cpy was originally written to get semantic equivalent with CPython without writing functional tests. When writing the initial implementation of uPy it was a long way between lexer and functional tests, so the half-way test was to make sure that the bytecode was correct. The idea was that if the uPy bytecode matched CPython 1-1 then uPy would be proper Python if the bytecodes acted correctly. And having matching bytecode meant that it was less likely to miss some deep subtlety in the Python semantics that would require an architectural change later on. But that is all history and it no longer makes sense to retain the ability to output CPython bytecode, because: 1. It outputs CPython 3.3 compatible bytecode. CPython's bytecode changes from version to version, and seems to have changed quite a bit in 3.5. There's no point in changing the bytecode output to match CPython anymore. 2. uPy and CPy do different optimisations to the bytecode which makes it harder to match. 3. The bytecode tests are not run. They were never part of Travis and are not run locally anymore. 4. The EMIT_CPYTHON option needs a lot of extra source code which adds heaps of noise, especially in compile.c. 5. Now that there is an extensive test suite (which tests functionality) there is no need to match the bytecode. Some very subtle behaviour is tested with the test suite and passing these tests is a much better way to stay Python-language compliant, rather than trying to match CPy bytecode. | |||
| 2015-08-13 | py: Add stream_tell method, and use for unix and stmhal file tell. | blmorris | |
