Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | 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. | ||
* | py: Check that second argument to hasattr is actually a string. | Damien George | 2015-11-23 |
| | | | | Fixes issue #1623. | ||
* | 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 | 2015-11-23 |
| | | | | | Loading .mpy files will now check to make sure that the target VM can support the bytecode. | ||
* | py/mpz: Normalize (remove leading zeros) xor operation result. | Paul Sokolovsky | 2015-11-22 |
| | |||
* | py/formatfloat: Handle calculation of integer digit for %f format properly. | Paul Sokolovsky | 2015-11-22 |
| | | | | | %f prints true integer digit, so its calculation should happen before any exponential scaling. | ||
* | py/formatfloat: Workaround (fix?) incorrect rounding for %f format. | Paul Sokolovsky | 2015-11-22 |
| | |||
* | py/formatfloat: Convert to fully portable implementation. | Paul Sokolovsky | 2015-11-22 |
| | | | | | | | | | | | This takes previous IEEE-754 single precision float implementation, and converts it to fully portable parametrizable implementation using C99 functions like signbit(), isnan(), isinf(). As long as those functions are available (they can be defined in adhoc manner of course), and compiler can perform standard arithmetic and comparison operations on a float type, this implementation will work with any underlying float type (including types whose mantissa is larger than available intergral integer type). |