| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2015-12-17 | py/qstr: Change type of qstr from mp_uint_t to size_t. | Damien George | |
| For builds where mp_uint_t is larger than size_t, it doesn't make sense to use such a wide type for qstrs. There can only be as many qstrs as there is address space on the machine, so size_t is the correct type to use. Saves about 3000 bytes of code size when building unix/ port with MICROPY_OBJ_REPR_D. | |||
| 2015-12-17 | py/qstr: Use size_t instead of mp_uint_t when counting allocated bytes. | Damien George | |
| 2015-12-17 | py/bc: Use size_t instead of mp_uint_t to count size of state and args. | Damien George | |
| 2015-12-17 | py: Fix MICROPY_STACKLESS mode to compile with MICROPY_OBJ_REPR_D. | Damien George | |
| 2015-12-17 | py/mpprint: Implement %llu and %lld format specifiers for mp_printf. | Damien George | |
| Only enabled for MICROPY_OBJ_REPR_D. | |||
| 2015-12-16 | py/gc: Use size_t instead of mp_uint_t to count things related to heap. | Damien George | |
| size_t is the correct type to use to count things related to the size of the address space. Using size_t (instead of mp_uint_t) is important for the efficiency of ports that configure mp_uint_t to larger than the machine word size. | |||
| 2015-12-16 | py/gc: For finaliser, interpret a pointer into the heap as concrete obj. | Damien George | |
| 2015-12-16 | py/gc: Scan GC blocks as an array of pointers, not an array of objects. | Damien George | |
| The GC should search for pointers within the heap. This patch makes a difference when an object is larger than a pointer (eg 64-bit NaN boxing). | |||
| 2015-12-16 | py/modsys: Fix module globals table to use MP_ROM_QSTR. | Damien George | |
| 2015-12-14 | py/objpolyiter: Implement instance-polymorphic iterator type. | Paul Sokolovsky | |
| This allows to have single itertaor type for various internal iterator types (save rodata space by not having repeating almost-empty type structures). It works by looking "iternext" method stored in particular object instance (should be first object field after "base"). | |||
| 2015-12-13 | unix: Move modmachine into unix directory | Dave Hylands | |
| This leaves behind the common functionality in extmod/machine_mem.c which can be used by all ports. | |||
| 2015-12-12 | py/modmath: Add domain error checking to sqrt, log, log2, log10. | Michael Buesch | |
| These functions will raise 'ValueError: math domain error' on invalid input. | |||
| 2015-12-12 | py: Fix compiler to handle lambdas used as default arguments. | Damien George | |
| Addresses issue #1709. | |||
| 2015-12-10 | py: Make UNARY_OP_NOT a first-class op, to agree with Py not semantics. | Damien George | |
| Fixes #1684 and makes "not" match Python semantics. The code is also simplified (the separate MP_BC_NOT opcode is removed) and the patch saves 68 bytes for bare-arm/ and 52 bytes for minimal/. Previously "not x" was implemented as !mp_unary_op(x, MP_UNARY_OP_BOOL), so any given object only needs to implement MP_UNARY_OP_BOOL (and the VM had a special opcode to do the ! bit). With this patch "not x" is implemented as mp_unary_op(x, MP_UNARY_OP_NOT), but this operation is caught at the start of mp_unary_op and dispatched as !mp_obj_is_true(x). mp_obj_is_true has special logic to test for truthness, and is the correct way to handle the not operation. | |||
| 2015-12-10 | py/emitinlinethumb: Add support for MRS instruction. | Henrik Sölver | |
| Only IPSR and BASEPRI special registers supported at the moment, but easy to extend in the future. | |||
| 2015-12-10 | py/mkrules.mk: Don't pass COPT to linker. | Paul Sokolovsky | |
| Oftentimes, libc, libm, etc. don't come compiled with CPU compressed code option (Thumb, MIPS16, etc.), but we may still want to use such compressed code for MicroPython itself. | |||
| 2015-12-09 | py: Add mp_get_stream_raise to factor out check for stream methods. | Damien George | |
| 2015-12-09 | py: Fix calling of parent classmethod from instance of subclass. | Damien George | |
| Addresses issue #1697. | |||
| 2015-12-08 | py: Don't try to optimise for+range when args are not simple expressions. | Damien George | |
| Addresses issue #1693. | |||
| 2015-12-08 | py/misc.h: Include stdint.h only once (unconditionally at the top). | Paul Sokolovsky | |
| 2015-12-07 | py/misc.h: Include stdint.h, as large share of code now depends on it. | Paul Sokolovsky | |
| 2015-12-07 | py: Add min/max "default" keyword argument | pohmelie | |
| 2015-12-07 | py: Add MICROPY_PY_BUILTINS_MIN_MAX, disable for minimal ports. | pohmelie | |
| 2015-12-07 | py: Make it easy to build without MICROPY_PY_BUILTINS_COMPLEX. | Paul Sokolovsky | |
| Automagically skip related modules. | |||
| 2015-12-05 | py/modsys: Use MP_ROM_PTR() initializer for sys.modules. | Paul Sokolovsky | |
| Based on similar usage for sys.argv/sys.path. | |||
| 2015-12-05 | py/modsys: Implement sys.modules. | Paul Sokolovsky | |
| This for example will allow people to reload modules which didn't load successfully (e.g. due to syntax error). | |||
| 2015-12-03 | py: Fix function calls that have positional and a star-arg-with-iterator. | Damien George | |
| Addresses issue #1678. | |||
| 2015-12-03 | py/mpconfig: Actually allow to override MICROPY_BYTES_PER_GC_BLOCK. | Paul Sokolovsky | |
| 2015-12-03 | py/gc: Make GC block size be configurable. | Paul Sokolovsky | |
| 2015-12-02 | py/mpprint: Printing of doubles is now supported (by uPy own routine). | fabien.lementec | |
| 2015-11-29 | py: Add support for 64-bit NaN-boxing object model, on 32-bit machine. | Damien George | |
| To use, put the following in mpconfigport.h: #define MICROPY_OBJ_REPR (MICROPY_OBJ_REPR_D) #define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_DOUBLE) typedef int64_t mp_int_t; typedef uint64_t mp_uint_t; #define UINT_FMT "%llu" #define INT_FMT "%lld" Currently does not work with native emitter enabled. | |||
| 2015-11-29 | py: Wrap all obj-ptr conversions in MP_OBJ_TO_PTR/MP_OBJ_FROM_PTR. | Damien George | |
| This allows the mp_obj_t type to be configured to something other than a pointer-sized primitive type. This patch also includes additional changes to allow the code to compile when sizeof(mp_uint_t) != sizeof(void*), such as using size_t instead of mp_uint_t, and various casts. | |||
| 2015-11-29 | py: Add MP_ROM_* macros and mp_rom_* types and use them. | Damien George | |
| 2015-11-29 | py/gc: Move away from using mp_uint_t, instead use uintptr_t and size_t. | Damien George | |
| The GC works with concrete pointers and so the types should reflect this. | |||
| 2015-11-29 | py: Use uintptr_t instead of mp_uint_t in MP_TAGPTR_* macros. | Damien George | |
| 2015-11-29 | py: Make mp_setup_code_state take concrete pointer for func arg. | Damien George | |
| 2015-11-29 | py/emit: Change type of arg of load_const_obj from void* to mp_obj_t. | Damien George | |
| 2015-11-29 | py: Change qstr_* functions to use size_t as the type for str len arg. | Damien George | |
| 2015-11-29 | py: Change mp_print_strn_t func type to use size_t for the str length. | Damien George | |
| 2015-11-27 | py/asmx86: Fix function definition to use int32_t instead of int. | Damien George | |
| 2015-11-27 | py/binary: Make use of MP_ALIGN. | Damien George | |
| 2015-11-25 | py/mpconfig.h: Allow to build without alloca() for ANSI C compliance. | Paul Sokolovsky | |
| Define MICROPY_NO_ALLOCA=1 and memory will be allocated from heap instead and freed by garbage collection. | |||
| 2015-11-25 | extmod/fsusermount: Make configurable with MICROPY_FSUSERMOUNT. | Paul Sokolovsky | |
| 2015-11-25 | extmod: Move fsusermount.c from stmhal for cross-port reuse. | Paul Sokolovsky | |
| 2015-11-24 | windows/py: Support 64bit mingw-w64 builds | stijn | |
| - add mp_int_t/mp_uint_t typedefs in mpconfigport.h - fix integer suffixes/formatting in mpconfig.h and mpz.h - use MICROPY_NLR_SETJMP=1 in Makefile since the current nlrx64.S implementation causes segfaults in gc_free() - update README | |||
| 2015-11-24 | nlr: Use single preprocessor symbol to check if building on Windows | stijn | |
| 2015-11-23 | py/compile: Do proper checking of * and ** in function definition. | Damien George | |
| This patch checks that there is only one *, and that ** is last in the arg list. | |||
| 2015-11-23 | py: Check that second argument to hasattr is actually a string. | Damien George | |
| Fixes issue #1623. | |||
| 2015-11-23 | py/emitglue: Implement persistent saving and loading of const objects. | Damien George | |
| 2015-11-23 | py/emitglue: Add feature-flag header to .mpy to detect bytecode compat. | Damien George | |
| Loading .mpy files will now check to make sure that the target VM can support the bytecode. | |||
