summaryrefslogtreecommitdiffstatshomepage
path: root/py
Commit message (Collapse)AuthorAge
* py: Add support to call __init__ from a builtin module on first import.Damien George2015-10-12
|
* py: Allow to to build MicroPython as a static library.Paul Sokolovsky2015-10-12
| | | | | | The whole current port gets slurped into a static lib named "libmicropython.a". Maybe that's not ideal, but at least something to start with.
* py/parse: Make parser error handling cleaner, less spaghetti-like.Damien George2015-10-12
|
* py: Move constant folding from compiler to parser.Damien George2015-10-12
| | | | | | | | | | It makes much more sense to do constant folding in the parser while the parse tree is being built. This eliminates the need to create parse nodes that will just be folded away. The code is slightly simpler and a bit smaller as well. Constant folding now has a configuration option, MICROPY_COMP_CONST_FOLDING, which is enabled by default.
* py/objarray: Allow to create array of void pointers, as extension to CPython.Paul Sokolovsky2015-10-12
| | | | | Using 'P' format specifier (matches struct module). This is another shortcut for FFI, just as previously introduced "array of objects" ('O').
* py: Rename MP_BOOL() to mp_obj_new_bool() for consistency in naming.Paul Sokolovsky2015-10-11
|
* py/makeqstrdata.py: Catch and report case of empty input file.Paul Sokolovsky2015-10-11
| | | | The usual cause would be that a cross-compiler for a port is not in PATH.
* py/parse: Factor logic when creating parse node from and-rule.Damien George2015-10-08
|
* py: Don't generate unnecessary parse nodes for assignment or kwargs.Damien George2015-10-08
| | | | | This patch eliminates the need for a nested parse node for assignments and keyword arguments. It saves a little bit of RAM when parsing.
* py/emitnative: Raise ViperTypeError for unsupported unary ops.Damien George2015-10-08
|
* py/compile: Fix edge case when constant-folding negation of integer.Damien George2015-10-08
| | | | Also adds tests specifically for testing constant folding.
* modussl: SSL socket wrapper module based on axTLS.Paul Sokolovsky2015-10-06
|
* py: Allow to enable inline assembler without native emitter.Damien George2015-10-03
|
* py: Allocate parse nodes in chunks to reduce fragmentation and RAM use.Damien George2015-10-02
| | | | | | | | 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.
* py: Catch all cases of integer (big and small) division by zero.Damien George2015-10-01
|
* py/mpz: Fix bignum anding of large negative with smaller positive int.Damien George2015-10-01
|
* py/mpz: Force rhs of mpz_shl_inpl/mpz_shr_inpl to be unsigned.Damien George2015-10-01
| | | | | 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.
* py/mpz: Raise NotImplError instead of failing assertion.Damien George2015-10-01
|
* py/parsenum: Provide detailed error for int parsing with escaped bytes.Damien George2015-10-01
| | | | | | | 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.
* py/objrange: Bugfix for range_subscr() when index is a slice object.Tom Soulanille2015-09-28
|
* py/compile: Put compiler state on the C stack.Damien George2015-09-24
| | | | | It's relatively small (between 44 and 56 bytes) and helps to reduce heap pressure and fragmentation during compilation.
* py: Slightly simplify compile and emit of star/double-star arguments.Damien George2015-09-23
| | | | | Saves a few bytes of code space and eliminates need for rot_two bytecode (hence saving RAM and execution time, by a tiny bit).
* py: Fix call args when a stararg is followed by keyword args.Delio Brignoli2015-09-23
|
* py/repl: Treat escaped quotes correctly in REPL continuation.Alex March2015-09-19
| | | | | | | Escaped quotes are now recognised correctly in REPL when used inside normal quotes. Fixes: #1419
* py/objslice: Fix indent.Tom Soulanille2015-09-15
|
* py/objslice: Make slice attributes (start/stop/step) readable.Tom Soulanille2015-09-15
| | | | Configurable with MICROPY_PY_BUILTINS_SLICE_ATTRS. Disabled by default.
* py/mpz: Fix calculation of max digit storage for mpz; fix sys.maxsize.Damien George2015-09-15
| | | | | | | | 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.
* lib/mp-readline: Add auto-indent support.Damien George2015-09-12
| | | | | | | | | 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.
* stmhal: fix single precision float printing errorDave Hylands2015-09-11
| | | | Fixes #1435.
* py/lexer: Properly classify floats that look like hex numbers.Damien George2015-09-07
| | | | Eg 0e0 almost looks like a hex number but in fact is a float.
* py/lexer: Raise SyntaxError when unicode char point out of range.Damien George2015-09-07
|
* py/lexer: Raise NotImplError for unicode name escape, instead of assert.Damien George2015-09-07
|
* py/compile: Refine SyntaxError for repeated use of global/nonlocal.Damien George2015-09-07
|
* py: Eliminate some cases which trigger unused parameter warnings.Damien George2015-09-04
|
* py/objstr: Check for keyword args before checking for no posn args.Damien George2015-09-04
| | | | Otherwise something like bytes(abc=123) will succeed.
* py/objstr: For str.endswith(s, start) raise NotImpl instead of assert.Damien George2015-09-04
|
* py/objbool: Simplify dispatch of bool binary op.Damien George2015-09-04
| | | | | | 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.
* py/compile: Only compile function annotations if really needed.Damien George2015-09-04
| | | | | | 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.
* stmhal: add option to query for the current usb modeTony Abboud2015-09-03
| | | | | | 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.
* py: Use mp_not_implemented consistently for not implemented features.Damien George2015-09-03
|
* py/objstr: Simplify printing of bytes objects when unicode enabled.Damien George2015-09-03
|
* py: Inline single use of mp_obj_str_get_len in mp_obj_len_maybe.Damien George2015-09-03
| | | | | | Gets rid of redundant double check for string type. Also remove obsolete declaration of mp_obj_str_get_hash.
* py: Make "enumerate" qstr be conditional on MICROPY_PY_BUILTINS_ENUMERATE.Paul Sokolovsky2015-09-03
|
* py/binary: Add support for array('q') and array('Q').Damien George2015-09-01
|
* py/objstr: Make str.rsplit(None,n) raise NotImpl instead of assert(0).Damien George2015-09-01
|
* vm: Handle "raise X from Y" statements the best way we can.Paul Sokolovsky2015-09-01
| | | | | By issuing a warning that exception chaining is not supported, and ignoring "from Y" argument.
* modbuiltins: Consistently use indentation for #if.Paul Sokolovsky2015-08-31
|
* py/objstr: Simplify error handling for bad conversion specifier.Damien George2015-08-30
|
* py/objgetitemiter: Make it_iternext() recognize IndexError.Tom Soulanille2015-08-30
|
* py/objstr: Fix error reporting for unexpected end of modulo format str.Damien George2015-08-29
|