Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | py/makeversionhdr.py: Work with backslashes in paths. | omtinez | 2015-10-30 |
| | | | | | This script may be called by Windows IDEs (e.g. Visual Studio) and be passed paths with backslashes. | ||
* | extmod/modlwip: slip: Use stream protocol and be port-independent. | Paul Sokolovsky | 2015-10-27 |
| | | | | | Based on the original patch by Galen Hazelwood: https://github.com/micropython/micropython/pull/1517 . | ||
* | Makefiles: Remove duplicate object files when linking. | Paul Sokolovsky | 2015-10-24 |
| | | | | | | | | | | | Scenario: module1 depends on some common file from lib/, so specifies it in its SRC_MOD, and the same situation with module2, then common file from lib/ eventually ends up listed twice in $(OBJ), which leads to link errors. Make is equipped to deal with such situation easily, quoting the manual: "The value of $^ omits duplicate prerequisites, while $+ retains them and preserves their order." So, just use $^ consistently in all link targets. | ||
* | py/nlrthumb: Make compatible with Cortex-M0 (ARMv6M instr set). | Damien George | 2015-10-20 |
| | |||
* | py: With obj repr "C", change raw str accessor from macro to function. | Damien George | 2015-10-20 |
| | | | | | | This saves around 1000 bytes (Thumb2 arch) because in repr "C" it is costly to check and extract a qstr. So making such check/extract a function instead of a macro saves lots of code space. | ||
* | py: Add object repr "C", where 30-bit floats are stuffed in obj word. | Damien George | 2015-10-20 |
| | | | | | | This new object representation puts floats into the object word instead of on the heap, at the expense of reducing their precision to 30 bits. It only makes sense when the word size is 32-bits. | ||
* | py: Make float representation configurable with object representation. | Damien George | 2015-10-20 |
| | |||
* | py: Move float e/pi consts to objfloat and make mp_obj_float_t private. | Damien George | 2015-10-20 |
| | |||
* | py: Add mp_obj_is_float function (macro) and use it where appropriate. | Damien George | 2015-10-20 |
| | |||
* | all: Make netutils.h available to all ports by default. | Paul Sokolovsky | 2015-10-19 |
| | | | | | Generally, ports should inherit INC from py.mk, append to it, not overwrite it. TODO: Likely should do the same for other vars too. | ||
* | unix/modtime: Implement ticks_ms(), ticks_us() and ticks_diff(). | Paul Sokolovsky | 2015-10-19 |
| | | | | | All of these functions return positive small int, thus range is 2 bits less than word size (30 bit on 32-bit systems, 62 bit on 64-bit systems). | ||
* | py: Add lsl/lsr/asr opcode support to inline Thumb2 assembler. | Damien George | 2015-10-19 |
| | |||
* | py/stream: Allow to reuse is_nonblocking_error(). | Paul Sokolovsky | 2015-10-18 |
| | |||
* | py: Add support for _ in REPL to hold last computed value. | Damien George | 2015-10-17 |
| | | | | Only available when MICROPY_CAN_OVERRIDE_BUILTINS is enabled. | ||
* | py: Add option for inline assembler to support ARMv7-M instructions. | Damien George | 2015-10-16 |
| | | | | | | Cortex-M0, M0+ and M1 only have ARMv6-M Thumb/Thumb2 instructions. M3, M4 and M7 have a superset of these, named ARMv7-M. This patch adds a config option to enable support of the superset of instructions. | ||
* | py: Fix with+for+return bug by popping for-iter when unwinding exc stack. | Damien George | 2015-10-15 |
| | | | | Addresses issue #1182. | ||
* | py: Remove dependency on printf/fwrite in mp_plat_print. | Damien George | 2015-10-15 |
| | | | | See issue #1500. | ||
* | py/compile: Remove unnecessary label in compilation of for statement. | Damien George | 2015-10-14 |
| | |||
* | py: Fix build of ARM native emitter due to recent viper changes. | Damien George | 2015-10-14 |
| | | | | Addresses #1510. | ||
* | py/qstr: Fix calc of qstr memory usage, due to new qstr chunk allocation. | Damien George | 2015-10-13 |
| | |||
* | py: Implement ptr32 load and store in viper emitter. | Damien George | 2015-10-13 |
| | |||
* | py: Add support to call __init__ from a builtin module on first import. | Damien George | 2015-10-12 |
| | |||
* | py: Allow to to build MicroPython as a static library. | Paul Sokolovsky | 2015-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 George | 2015-10-12 |
| | |||
* | py: Move constant folding from compiler to parser. | Damien George | 2015-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 Sokolovsky | 2015-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 Sokolovsky | 2015-10-11 |
| | |||
* | py/makeqstrdata.py: Catch and report case of empty input file. | Paul Sokolovsky | 2015-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 George | 2015-10-08 |
| | |||
* | py: Don't generate unnecessary parse nodes for assignment or kwargs. | Damien George | 2015-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 George | 2015-10-08 |
| | |||
* | py/compile: Fix edge case when constant-folding negation of integer. | Damien George | 2015-10-08 |
| | | | | Also adds tests specifically for testing constant folding. | ||
* | modussl: SSL socket wrapper module based on axTLS. | Paul Sokolovsky | 2015-10-06 |
| | |||
* | py: Allow to enable inline assembler without native emitter. | Damien George | 2015-10-03 |
| | |||
* | py: Allocate parse nodes in chunks to reduce fragmentation and RAM use. | Damien George | 2015-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 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 | 2015-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 George | 2015-10-01 |
| | |||
* | py/parsenum: Provide detailed error for int parsing with escaped bytes. | Damien George | 2015-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 Soulanille | 2015-09-28 |
| | |||
* | py/compile: Put compiler state on the C stack. | Damien George | 2015-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 George | 2015-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 Brignoli | 2015-09-23 |
| | |||
* | py/repl: Treat escaped quotes correctly in REPL continuation. | Alex March | 2015-09-19 |
| | | | | | | | Escaped quotes are now recognised correctly in REPL when used inside normal quotes. Fixes: #1419 | ||
* | py/objslice: Fix indent. | Tom Soulanille | 2015-09-15 |
| | |||
* | py/objslice: Make slice attributes (start/stop/step) readable. | Tom Soulanille | 2015-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 George | 2015-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 George | 2015-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 error | Dave Hylands | 2015-09-11 |
| | | | | Fixes #1435. |