Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | py/modgc: Remove obsolete extern declaration. | Damien George | 2015-12-17 |
| | |||
* | py/compile: Use size_t or uintptr_t instead of mp_uint_t. | Damien George | 2015-12-17 |
| | |||
* | py/parse: Replace mp_int_t/mp_uint_t with size_t etc, where appropriate. | Damien George | 2015-12-17 |
| | |||
* | py/qstr: Change type of qstr from mp_uint_t to size_t. | Damien George | 2015-12-17 |
| | | | | | | | | | | 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. | ||
* | 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 | 2015-12-17 |
| | | | | Only enabled for MICROPY_OBJ_REPR_D. | ||
* | py/gc: Use size_t instead of mp_uint_t to count things related to heap. | Damien George | 2015-12-16 |
| | | | | | | | 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. | ||
* | 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 | 2015-12-16 |
| | | | | | | 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). | ||
* | py/modsys: Fix module globals table to use MP_ROM_QSTR. | Damien George | 2015-12-16 |
| | |||
* | py/objpolyiter: Implement instance-polymorphic iterator type. | Paul Sokolovsky | 2015-12-14 |
| | | | | | | | 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"). | ||
* | unix: Move modmachine into unix directory | Dave Hylands | 2015-12-13 |
| | | | | | This leaves behind the common functionality in extmod/machine_mem.c which can be used by all ports. | ||
* | py/modmath: Add domain error checking to sqrt, log, log2, log10. | Michael Buesch | 2015-12-12 |
| | | | | | These functions will raise 'ValueError: math domain error' on invalid input. | ||
* | py: Fix compiler to handle lambdas used as default arguments. | Damien George | 2015-12-12 |
| | | | | Addresses issue #1709. | ||
* | py: Make UNARY_OP_NOT a first-class op, to agree with Py not semantics. | Damien George | 2015-12-10 |
| | | | | | | | | | | | | | | | 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. | ||
* | py/emitinlinethumb: Add support for MRS instruction. | Henrik Sölver | 2015-12-10 |
| | | | | | Only IPSR and BASEPRI special registers supported at the moment, but easy to extend in the future. | ||
* | py/mkrules.mk: Don't pass COPT to linker. | Paul Sokolovsky | 2015-12-10 |
| | | | | | | 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. | ||
* | 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 | 2015-12-09 |
| | | | | Addresses issue #1697. | ||
* | py: Don't try to optimise for+range when args are not simple expressions. | Damien George | 2015-12-08 |
| | | | | Addresses issue #1693. | ||
* | py/misc.h: Include stdint.h only once (unconditionally at the top). | Paul Sokolovsky | 2015-12-08 |
| | |||
* | 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 | 2015-12-07 |
| | | | | Automagically skip related modules. | ||
* | py/modsys: Use MP_ROM_PTR() initializer for sys.modules. | Paul Sokolovsky | 2015-12-05 |
| | | | | Based on similar usage for sys.argv/sys.path. | ||
* | py/modsys: Implement sys.modules. | Paul Sokolovsky | 2015-12-05 |
| | | | | | This for example will allow people to reload modules which didn't load successfully (e.g. due to syntax error). | ||
* | py: Fix function calls that have positional and a star-arg-with-iterator. | Damien George | 2015-12-03 |
| | | | | Addresses issue #1678. | ||
* | 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-03 |
| | |||
* | py/mpprint: Printing of doubles is now supported (by uPy own routine). | fabien.lementec | 2015-12-02 |
| | |||
* | py: Add support for 64-bit NaN-boxing object model, on 32-bit machine. | Damien George | 2015-11-29 |
| | | | | | | | | | | | | | 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. | ||
* | py: Wrap all obj-ptr conversions in MP_OBJ_TO_PTR/MP_OBJ_FROM_PTR. | Damien George | 2015-11-29 |
| | | | | | | | | | 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. | ||
* | 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 | 2015-11-29 |
| | | | | The GC works with concrete pointers and so the types should reflect this. | ||
* | 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-29 |
| | |||
* | 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-27 |
| | |||
* | py/mpconfig.h: Allow to build without alloca() for ANSI C compliance. | Paul Sokolovsky | 2015-11-25 |
| | | | | | Define MICROPY_NO_ALLOCA=1 and memory will be allocated from heap instead and freed by garbage collection. | ||
* | 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-25 |
| | |||
* | windows/py: Support 64bit mingw-w64 builds | stijn | 2015-11-24 |
| | | | | | | | | - 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 | ||
* | nlr: Use single preprocessor symbol to check if building on Windows | stijn | 2015-11-24 |
| | |||
* | py/compile: Do proper checking of * and ** in function definition. | Damien George | 2015-11-23 |
| | | | | | This patch checks that there is only one *, and that ** is last in the arg list. |