Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | py: Move stream-related declarations from obj.h to stream.h. | Paul Sokolovsky | 2016-04-05 |
| | |||
* | py/obj.h: Add comment why mp_fun_kw_t takes non-const mp_map_t*. | Paul Sokolovsky | 2016-04-04 |
| | | | | | | mp_fun_kw_t takes mp_map_t* (and not const mp_map_t*) to ease passing this arg to mp_map_lookup(), which may modify its arg, depending on flags. | ||
* | py/map: Prevent map resize failure from destroying map. | Stephen Kyle | 2016-04-01 |
| | |||
* | py/ringbuf.h: Add reusable ring buffer class. | Paul Sokolovsky | 2016-03-30 |
| | | | | | | Features inline get/put operations for the highest performance. Locking is not part of implementation, operation should be wrapped with locking externally as needed. | ||
* | py/parsenum: Use pow function to apply exponent to decimal number. | Damien George | 2016-03-29 |
| | | | | | | Pow is already a dependency when compiling with floats, so may as well use it here to reduce code size and speed up the conversion for most cases. | ||
* | py/formatfloat: Fix further cases of buffer overflow in formatting. | Damien George | 2016-03-29 |
| | | | | | Includes extensive test cases to catch hopefully all cases where buffer might overflow. | ||
* | py/formatfloat: Fix case of float format where leading digit was "10". | Damien George | 2016-03-29 |
| | | | | | | | | | | When taking the logarithm of the float to determine the exponent, there are some edge cases that finish the log loop too large. Eg for an input value of 1e32-epsilon, this is actually less than 1e32 from the log-loop table and finishes as 10.0e31 when it should be 1.0e32. It is thus rendered as :e32 (: comes after 9 in ascii). There was the same problem with numbers less than 1. | ||
* | py/stream: Fix stupid thinko with variable naming/shadowing. | Paul Sokolovsky | 2016-03-27 |
| | |||
* | extmod/modlwip: Add SOL_SOCKET and SO_REUSEADDR constants for setsockopt(). | Paul Sokolovsky | 2016-03-25 |
| | |||
* | py/modio: io.BufferedWriter: Describe flushing policy. | Paul Sokolovsky | 2016-03-25 |
| | |||
* | py/modio: Implement io.BufferedWriter.flush(). | Paul Sokolovsky | 2016-03-25 |
| | |||
* | py/modio: Initial implementation of io.BufferedWriter class. | Paul Sokolovsky | 2016-03-25 |
| | | | | Just .write() method implemented currently. | ||
* | py/stream: Fix object vs ptr usecase in mp_stream_writeall(). | Paul Sokolovsky | 2016-03-24 |
| | |||
* | extmod/modwebsocket: Start module for WebSocket helper functions. | Paul Sokolovsky | 2016-03-24 |
| | | | | Currently, only write support is implemented (of limited buffer size). | ||
* | py/stream: Add mp_stream_writeall() helper function. | Paul Sokolovsky | 2016-03-24 |
| | | | | | Spools entire output buffer to a blocking stream (chunk by chunk if needed). | ||
* | py/parse: When looking up consts, check they exist before checking type. | Damien George | 2016-03-19 |
| | |||
* | py: Don't allocate an extra parse node for power exponent. | Damien George | 2016-03-16 |
| | | | | | | Previous to this patch, the "**b" in "a**b" had its own parse node with just one item (the "b"). Now, the "b" is just the last element of the power parse-node. This saves (a tiny bit of) RAM when compiling. | ||
* | py/frozenmod: Allow port to override lexer to use for frozen modules. | Paul Sokolovsky | 2016-03-16 |
| | |||
* | py/objfun: Allow inline-asm functions to be called with 4 arguments. | Damien George | 2016-03-16 |
| | |||
* | py/formatfloat: Fix buffer overflow when formatting tiny numbers. | Damien George | 2016-03-15 |
| | |||
* | py: For mp_buffer_info_t, change len type from mp_uint_t to size_t. | Damien George | 2016-03-15 |
| | |||
* | py/objarray: Fix array slice assignment when array is reallocated. | Damien George | 2016-03-14 |
| | | | | Addresses issue #1898. | ||
* | py/parsenum: Fix compiler warnings for no decl and signed comparison. | Damien George | 2016-03-14 |
| | |||
* | py: When printf'ing an object as a pointer, pass the concrete pointer. | Damien George | 2016-03-14 |
| | |||
* | py: Fix passing of some wide int types to printf varg format list. | Damien George | 2016-03-14 |
| | | | | | | Passing an mp_uint_t to a %d printf format is incorrect for builds where mp_uint_t is larger than word size (eg a nanboxing build). This patch adds some simple casting to int in these cases. | ||
* | py/argcheck: Use size_t instead of mp_uint_t to count number of args. | Damien George | 2016-03-14 |
| | |||
* | py/parsenum: Use size_t to count bytes, and int for type of base arg. | Damien George | 2016-03-14 |
| | | | | | size_t is the proper type to count number of bytes in a string. The base argument does not need to be a full mp_uint_t, int is enough. | ||
* | py: Use MP_SMALL_INT_POSITIVE_MASK to check if uint fits in a small int. | Damien George | 2016-03-10 |
| | | | | | Using the original WORD_MSBIT_HIGH-logic resulted in errors when the object model is not REPR_A or REPR_C. | ||
* | extmod/modlwip: Add dummy .makefile() method. | Paul Sokolovsky | 2016-03-09 |
| | |||
* | py/objboundmeth: Allocate arg state on stack if heap alloc fails. | Damien George | 2016-03-08 |
| | | | | | | | | | | If the heap is locked, or memory allocation fails, then calling a bound method will still succeed by allocating the argument state on the stack. The new code also allocates less stack than before if less than 4 arguments are passed. It's also a tiny bit smaller in code size. This was done as part of the ESA project. | ||
* | extmod/modlwip: Implement dummy setsockopt(). | Paul Sokolovsky | 2016-03-08 |
| | |||
* | py/emitglue: Get persistent bytecode working on Linux ARM platform. | Markus Fix | 2016-03-07 |
| | |||
* | py/stackctrl: Add mp_stack_set_top() to explicitly set stack top value. | Paul Sokolovsky | 2016-03-07 |
| | | | | Useful for embedded targets with fixed stack layout. | ||
* | extmod/vfs_fat: Add lexer, move from stmhal port for reuse. | Paul Sokolovsky | 2016-03-03 |
| | |||
* | py/qstrdefs: Add mkdir and remove qstrs for user-mountable filesystems. | Damien George | 2016-02-29 |
| | |||
* | extmod/vfs_fat: Add .rename() method. | Paul Sokolovsky | 2016-02-29 |
| | |||
* | extmod/vfs_fat: Move listdir() method from stmhal for reuse. | Paul Sokolovsky | 2016-02-28 |
| | |||
* | py: Add MICROPY_DYNAMIC_COMPILER option to config compiler at runtime. | Damien George | 2016-02-25 |
| | | | | | | | | | | | | | | This new compile-time option allows to make the bytecode compiler configurable at runtime by setting the fields in the mp_dynamic_compiler structure. By using this feature, the compiler can generate bytecode that targets any MicroPython runtime/VM, regardless of the host and target compile-time settings. Options so far that fall under this dynamic setting are: - maximum number of bits that a small int can hold; - whether caching of lookups is used in the bytecode; - whether to use unicode strings or not (lexer behaviour differs, and therefore generated string constants differ). | ||
* | py/emitinlinethumb: Use qstrs instead of char* for names of asm ops. | Damien George | 2016-02-23 |
| | | | | | | | | Reduces code size by 112 bytes on Thumb2 arch, and makes assembler faster because comparison can be a simple equals instead of a string compare. Not all ops have been converted, only those that were simple to convert and reduced code size. | ||
* | py/malloc: Provide a proper malloc-based implementation of realloc_ext. | Damien George | 2016-02-23 |
| | |||
* | py/parse: Use m_renew_maybe to ensure that memory is shrunk in-place. | Damien George | 2016-02-23 |
| | | | | | | | The chunks of memory that the parser allocates contain parse nodes and are pointed to from many places, so these chunks cannot be relocated by the memory manager. This patch makes it so that when a chunk is shrunk to fit, it is not relocated. | ||
* | py/vm: Add macros to hook into various points in the VM. | Damien George | 2016-02-17 |
| | | | | | | | | | | | | | | | | | | | | These can be used to insert arbitrary checks, polling, etc into the VM. They are left general because the VM is a highly tuned loop and it should be up to a given port how that port wants to modify the VM internals. One common use would be to insert a polling check, but only done after a certain number of opcodes were executed, so as not to slow down the VM too much. For example: #define MICROPY_VM_HOOK_COUNT (30) #define MICROPY_VM_HOOK_INIT static uint vm_hook_divisor = MICROPY_VM_HOOK_COUNT #define MICROPY_VM_HOOK_POLL if (--vm_hook_divisor == 0) { \ vm_hook_divisor = MICROPY_VM_HOOK_COUNT; extern void vm_hook_function(void); vm_hook_function(); } #define MICROPY_VM_HOOK_LOOP MICROPY_VM_HOOK_POLL #define MICROPY_VM_HOOK_RETURN MICROPY_VM_HOOK_POLL | ||
* | py/repl: Check for an identifier char after the keyword. | Alex March | 2016-02-17 |
| | | | | | - As described in the #1850. - Add cmdline tests. | ||
* | py/qstrdefs.h: qstrs for VfsFat. | Paul Sokolovsky | 2016-02-15 |
| | |||
* | py/emitnative: Add check that RHS of viper store is of integral type. | Damien George | 2016-02-15 |
| | |||
* | py/asmx64: Support all 16 regs in reg to memory move instructions. | Damien George | 2016-02-15 |
| | |||
* | py/asmx64: Add helper macro for generating REX_[WRXB] bits from a reg64. | Damien George | 2016-02-15 |
| | |||
* | extmod/vfs_fat_ffconf: Reusable FatFs module, move from stmhal/ffconf. | Paul Sokolovsky | 2016-02-15 |
| | | | | TODO: Probably merge into vfs_fat_diskio. | ||
* | extmod/vfs_fat_file: Reusable FatFs module, move from stmhal/file. | Paul Sokolovsky | 2016-02-15 |
| | |||
* | extmod/vfs_fat_diskio: Reusable FatFs module, move from stmhal/diskio. | Paul Sokolovsky | 2016-02-15 |
| |