aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-09-06extmod/modussl_mbedtls: Allow to compile with MBEDTLS_DEBUG_C disabled.Damien George
With MBEDTLS_DEBUG_C disabled the function mbedtls_debug_set_threshold() doesn't exist. There's also no need to call mbedtls_ssl_conf_dbg() so a few bytes can be saved on disabling that and not needing the mbedtls_debug callback.
2017-09-06py/objstr: Add check for valid UTF-8 when making a str from bytes.tll
This patch adds a function utf8_check() to check for a valid UTF-8 encoded string, and calls it when constructing a str from raw bytes. The feature is selectable at compile time via MICROPY_PY_BUILTINS_STR_UNICODE_CHECK and is enabled if unicode is enabled. It costs about 110 bytes on Thumb-2, 150 bytes on Xtensa and 170 bytes on x86-64.
2017-09-06stm32/boards: Fix I2C1 pin mapping on NUCLEO_F401RE/F411RE boards.Damien George
This patch makes it consistent with the STM document describing the Arduino layout. Thanks to @shaoziyang for the original patch.
2017-09-06stm32/boards: Change linker scripts to use "K" instead of hex byte size.Damien George
2017-09-06stm32/boards: Change remaining stm32f4xx_hal_conf.h to unix line ending.Damien George
2017-09-06stm32: Replace stray tabs with spaces.Damien George
2017-09-06stm32: Remove unused usbd_msc.c file.Damien George
2017-09-06all: Update Makefiles and others to build with new ports/ dir layout.Damien George
Also renames "stmhal" to "stm32" in documentation and everywhere else.
2017-09-06ports: Make new ports/ sub-directory and move all ports there.Damien George
This is to keep the top-level directory clean, to make it clear what is core and what is a port, and to allow the repository to grow with new ports in a sustainable way.
2017-09-06.gitattributes: Add entries for files that will move to ports/ dir.Damien George
2017-09-06py/objtuple: Properly implement comparison with incompatible types.Paul Sokolovsky
Should raise TypeError, unless it's (in)equality comparison.
2017-09-05stmhal/timer: Remove unnecessary include of USB header files.Damien George
2017-09-04tests/class_inplace_op: Test for inplace op fallback to normal one.Paul Sokolovsky
2017-09-04py/objtype: Implement fallback for instance inplace special methods.Paul Sokolovsky
If __iop__ is not defined, call __op__ instead. This is desired behavior for immutable types, __iop__ needs to be defined only for mutable types.
2017-09-04py/obj: Remove declaration for mp_obj_new_none(), it's never defined.Damien George
2017-09-04stmhal: Fix clock initialisation of L4 MCUs.Tobias Badertscher
There are 2 changes: - remove early initialisation of LSE and replaced it by LSEDRIVE config (there is no reason to call HAL_RCC_OscConfig twice). - add initialisation of the variables PLLSAI1Source and PLLSAI1M as they are needed in Cube HAL 1.8.1.
2017-09-04cc3200: Use standard implementation of keyboard interrupt.Damien George
2017-09-04cc3200: Enable micropython.kbd_intr() methodRobert HH
2017-09-04py/obj: Fix comparison of float/complex NaN with itself.Damien George
IEEE floating point is specified such that a comparison of NaN with itself returns false, and Python respects these semantics. This patch makes uPy also have these semantics. The fix has a minor impact on the speed of the object-equality fast-path, but that seems to be unavoidable and it's much more important to have correct behaviour (especially in this case where the wrong answer for nan==nan is silently returned).
2017-09-02py/objfloat: Fix binary ops with incompatible objects.Paul Sokolovsky
These are now returned as "operation not supported" instead of raising TypeError. In particular, this fixes equality for float vs incompatible types, which now properly results in False instead of exception. This also paves the road to support reverse operation (e.g. __radd__) with float objects. This is achieved by introducing mp_obj_get_float_maybe(), similar to existing mp_obj_get_int_maybe().
2017-09-01py/nlrthumb: Get working again on standard Thumb arch (ie not Thumb2).Damien George
"b" on Thumb might not be long enough for the jump to nlr_push_tail so it must be done indirectly.
2017-09-01py/qstrdefs: Remove unused qstrs.Damien George
They are not used by any component and take up valuable flash space.
2017-09-01.gitattributes: Remove obsolete entries for stmhal/hal, stmhal/cmsis.Damien George
2017-09-01pic16bit: Add definition of SEEK_SET to unistd.h.Damien George
2017-09-01py/modstruct: Check and prevent buffer-write overflow in struct packing.Damien George
Prior to this patch, the size of the buffer given to pack_into() was checked for being too small by using the count of the arguments, not their actual size. For example, a format spec of '4I' would only check that there was 4 bytes available, not 16; and 'I' would check for 1 byte, not 4. The pack() function is ok because its buffer is created to be exactly the correct size. The fix in this patch calculates the total size of the format spec at the start of pack_into() and verifies that the buffer is large enough. This adds some computational overhead, to iterate through the whole format spec. The alternative is to check during the packing, but that requires extra code to handle alignment, and the check is anyway not needed for pack(). So to maintain minimal code size the check is done using struct_calcsize.
2017-09-01py/modstruct: Check and prevent buffer-read overflow in struct unpackingDamien George
Prior to this patch, the size of the buffer given to unpack/unpack_from was checked for being too small by using the count of the arguments, not their actual size. For example, a format spec of '4I' would only check that there was 4 bytes available, not 16; and 'I' would check for 1 byte, not 4. This bug is fixed in this patch by calculating the total size of the format spec at the start of the unpacking function. This function anyway needs to calculate the number of items at the start, so calculating the total size can be done at the same time.
2017-09-01py/modstruct: In struct.pack, stop converting if there are no args left.Damien George
This patch makes a repeat counter behave the same as repeating the typecode, when there are not enough args. For example: struct.pack('2I', 1) now behave the same as struct.pack('II', 1).
2017-09-01tests/class_new: Add another testcase for __new__/__init__ interaction.Paul Sokolovsky
Similar to the existing testcase, but test that returning both value of native type and instance of another user class from __new__ lead to __init__ not being called, for better coverage.
2017-08-31py: Make m_malloc_fail() have void return type, since it doesn't return.Damien George
2017-08-31py/map: Remove unused new/free functions.Damien George
Maps are always allocated "statically" and (de)initialised via mp_map_init and mp_map_deinit.
2017-08-31py/map: Replace always-false condition with assertion.Damien George
2017-08-31extmod/modubinascii: Only include uzlib/tinf.h when it's really needed.Damien George
2017-08-31py/objtype: mp_obj_class_lookup: Improve debug logging.Paul Sokolovsky
Now traces more explicitly thru the lookup process.
2017-08-30tests/class_new: Add checks for __init__ being called and other improvements.Paul Sokolovsky
2017-08-30tests/object_new: Better messages, check user __new__() method.Paul Sokolovsky
Make messages more verbose and easier to follow and check that user class' __new__() is not called by object.__new__(user_class).
2017-08-30py/objtype: mp_obj_instance_make_new: Fix typos in comment.Paul Sokolovsky
2017-08-30py: Change obsolete "///" comment formatting to normal comments.Damien George
This comment style is no longer used because the docs are written by hand, not generated.
2017-08-30all: Convert remaining "mp_uint_t n_args" to "size_t n_args".Damien George
This is to have consistency across the whole repository.
2017-08-30py/objtype: Handle NotImplemented return from binary special methods.Paul Sokolovsky
NotImplemented means "try other fallbacks (like calling __rop__ instead of __op__) and if nothing works, raise TypeError". As MicroPython doesn't implement any fallbacks, signal to raise TypeError right away.
2017-08-29stmhal: Update to new STM Cube HAL library.Damien George
This upgrades the HAL to the versions: - F4 V1.16.0 - F7 V1.7.0 - L4 V1.8.1 The main changes were in the SD card driver. The vendor changed the SD read/write functions to accept block number intead of byte address, so there is no longer any need for a custom patch for this in stm32lib. The CardType values also changed, so pyb.SDCard().info() will return different values for the 3rd element of the tuple, but this function was never documented.
2017-08-29docs/library/micropython: Fix typo in RST formatting.Damien George
2017-08-29docs/library: Add description of "index" parameter to uos.dupterm().Damien George
2017-08-29stmhal/Makefile: Automatically fetch stm32lib submodule if needed.Damien George
2017-08-29stmhal: Remove cmsis and hal files, they are now a submodule.Damien George
2017-08-29stmhal/Makefile: Use lib/stm32lib instead of local cmsis and hal files.Damien George
2017-08-29lib: Add new submodule, stm32lib containing STM32 CMSIS and HAL source.Damien George
Linked to https://github.com/micropython/stm32lib
2017-08-29all: Convert mp_uint_t to mp_unary_op_t/mp_binary_op_t where appropriateDamien George
The unary-op/binary-op enums are already defined, and there are no arithmetic tricks used with these types, so it makes sense to use the correct enum type for arguments that take these values. It also reduces code size quite a bit for nan-boxing builds.
2017-08-29py/nlrx86,x64: Replace #define of defined() with portable macro usage.Damien George
Using gcc -Wpedantic will warn that #define of defined() is non-portable and this patch fixes this.
2017-08-29drivers/memory/spiflash: Change from hard-coded soft SPI to generic SPI.Damien George
The SPI flash driver now supports using an arbitrary SPI object to communicate with the flash chip, and in particular can use a hardware SPI peripheral.
2017-08-29docs/machine.Signal: Improve style/grammar and add usage example.Paul Sokolovsky