- 03 Oct, 2016 1 commit
-
-
Damien George authored
There is no need to take src_len and dest_len arguments. The case of reading-only with a single output byte (originally src_len=1, dest_len>1) is now handled by using the output buffer as the input buffer, and using memset to fill the output byte into this buffer. This simplifies the implementations of the spi_transfer protocol function.
-
- 01 Oct, 2016 1 commit
-
-
daniel authored
This resolves issue #2343.
-
- 30 Sep, 2016 14 commits
-
-
Damien George authored
Reduces code size for some archs.
-
Damien George authored
Similar to how binary op already works. Common unary operations already have fast paths for bool so there's no need to have explicit handling of ops in bool_unary_op, especially since they have the same behaviour as integers.
-
Damien George authored
-
Damien George authored
-
Krzysztof Blazewicz authored
-
Krzysztof Blazewicz authored
-
Krzysztof Blazewicz authored
Files in lib/cmsis are generic for all Cortex-M MCU's files left in stmhal/cmsis are all STM32 specific.
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Damien George authored
Saves 50-100 bytes of code.
-
Damien George authored
On 32-bit archs this makes the scope_t struct 48 bytes in size, which fits in 3 GC blocks (previously it used 4 GC blocks). This will lead to some savings when compiling scripts because there are usually quite a few scopes, one for each function and class. Note that qstrs will fit in 16 bits, this assumption is made in a few other places.
-
Damien George authored
Generates slightly smaller and more efficient code.
-
- 29 Sep, 2016 1 commit
-
-
Paul Sokolovsky authored
Utility functions for keyboard interrupt handling, to be reused across (baremetal) ports.
-
- 28 Sep, 2016 7 commits
-
-
Damien George authored
-
Radomir Dopieralski authored
The memory read/write I2C functions now take an optional keyword-only parameter that specifies the number of bits in the memory address. Only mem-addrs that are a multiple of 8-bits are supported (otherwise the behaviour is undefined). Due to the integer type used for the address, for values larger than 32 bits, only 32 bits of address will be sent, and the rest will be padded with 0s. Right now no exception is raised when that happens. For values smaller than 8, no address is sent. Also no exception then. Tested with a VL6180 sensor, which has 16-bit register addresses. Due to code refactoring, this patch reduces stmhal and esp8266 builds by about 50 bytes.
-
Nicholas Graumann authored
-
Damien George authored
There is now just the exception instance on the stack when an exception is raised, not the full (type, exc, traceback).
-
Damien George authored
-
Damien George authored
-
Damien George authored
Following how other objects work, set/frozenset methods should use the mp_check_self() macro to check the type of the self argument, because in most cases this check can be a null operation. Saves about 100-180 bytes of code for builds with set and frozenset enabled.
-
- 27 Sep, 2016 15 commits
-
-
Damien George authored
It's simpler and improves code coverage.
-
Damien George authored
The native emitter/compiler restricts viper functions to 4 args, so there is no need for an extra check in the dynamic dispatch.
-
Damien George authored
To reset the flags we should write to the single bit only, not the entire register (otherwise all other settings in the register are cleared). Fixes #2457.
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Alex March authored
-
Alex March authored
-
Alex March authored
-
Damien George authored
Having a micropython.const identity function, and writing "from micropython import const" at the start of scripts that use the const feature, allows to write scripts which are compatible with CPython, and with uPy builds that don't include const optimisation. This patch adds such a function and updates the tests to do the import.
-
Damien George authored
This corresponds to the change in the way exception values are stored on the Python value stack.
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Damien George authored
When an exception is raised and is to be handled by the VM, it is stored on the Python value stack so the bytecode can access it. CPython stores 3 objects on the stack for each exception: exc type, exc instance and traceback. uPy followed this approach, but it turns out not to be necessary. Instead, it is enough to store just the exception instance on the Python value stack. The only place where the 3 values are needed explicitly is for the __exit__ handler of a with-statement context, but for these cases the 3 values can be extracted from the single exception instance. This patch removes the need to store 3 values on the stack, and instead just stores the exception instance. Code size is reduced by about 50-100 bytes, the compiler and VM are slightly simpler, generate bytecode is smaller (by 2 bytes for each try block), and the Python value stack is reduced in size for functions that handle exceptions.
-
- 24 Sep, 2016 1 commit
-
-
Paul Sokolovsky authored
Fixes for more pedantic warnings.
-