summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-10-03extmod/machine_spi: Simplify SPI xfer function to only take one buf len.Damien George
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.
2016-10-01cc3200: Add ssl_version argument to ssl.wrap_socket().daniel
This resolves issue #2343.
2016-09-30py/objbool: Make a slight simplification of bool constructor.Damien George
Reduces code size for some archs.
2016-09-30py/objbool: Defer bool's unary op implementation to small int.Damien George
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.
2016-09-30py/argcheck: Simplify if-chain so that the last one is the default.Damien George
2016-09-30tests/basics: Add test for printing OSError when errno is unknown.Damien George
2016-09-30lib/cmsis: upgrade CMSIS-CORE to V4.30Krzysztof Blazewicz
2016-09-30lib/cmsis: remove CMSIS-DSP headers, they are unusedKrzysztof Blazewicz
2016-09-30lib/cmsis: move CMSIS headers to lib/Krzysztof Blazewicz
Files in lib/cmsis are generic for all Cortex-M MCU's files left in stmhal/cmsis are all STM32 specific.
2016-09-30tests/basics: Add test constructing a set from a non-trivial expression.Damien George
2016-09-30tests/import: Add test for compiling "import a.b as c".Damien George
2016-09-30py/compile: Fix typo when checking for parse-node kind.Damien George
2016-09-30tests/basics: Add further tests for nonlocal scoping and closures.Damien George
2016-09-30py/scope: Factor common code to find locals and close over them.Damien George
Saves 50-100 bytes of code.
2016-09-30py/scope: Shrink scope_t struct by 1 machine word.Damien George
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.
2016-09-30py/scope: Use lookup-table to determine a scope's simple name.Damien George
Generates slightly smaller and more efficient code.
2016-09-29lib/interrupt_char: Factor out typical Ctrl+C handling from esp8266 port.Paul Sokolovsky
Utility functions for keyboard interrupt handling, to be reused across (baremetal) ports.
2016-09-28stmhal: Remove CMSIS STM32F2xx files, they are unused/unsupported.Damien George
2016-09-28extmod/machine_i2c: Add support for the addrsize parameter in mem xfers.Radomir Dopieralski
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.
2016-09-27stmhal: Add virtual com port support for STM32L476DISC.Nicholas Graumann
2016-09-28py/compile: Fix async-for/async-with to work with simpler exc on stack.Damien George
There is now just the exception instance on the stack when an exception is raised, not the full (type, exc, traceback).
2016-09-28tests/basics: Add test for set.difference_update with arg being itself.Damien George
2016-09-28py/objset: Ensure that use of frozenset.update raises an exception.Damien George
2016-09-28py/objset: Use mp_check_self() to check args of set/frozenset methods.Damien George
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.
2016-09-27py/objfun: Use if instead of switch to check return value of VM execute.Damien George
It's simpler and improves code coverage.
2016-09-27py/objfun: Remove unnecessary check for viper fun with 5 or more args.Damien George
The native emitter/compiler restricts viper functions to 4 args, so there is no need for an extra check in the dynamic dispatch.
2016-09-27stmhal/modmachine: Fix clearing of reset-cause flags.Damien George
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.
2016-09-27py/emitbc: Remove/refactor unreachable code, to improve coverage.Damien George
2016-09-27py/objstr: Remove unreachable function used only for terse error msgs.Damien George
2016-09-27tests/float: Add test for parsing a float from an empty string.Damien George
2016-09-27esp8266: Add uos.statvfs() to get filesystem status.Alex March
2016-09-27tests/extmod/vfs_fat_ramdisk: Add test for VFS.statvfs().Alex March
2016-09-27extmod/vfs_fat: Add fat_vfs_statvfs(), reused from stmhal.Alex March
2016-09-27py/modmicropython: Add micropython.const, alias for identity function.Damien George
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.
2016-09-27tests/cmdline/cmd_showbc: Fix test now that 1 value is stored on stack.Damien George
This corresponds to the change in the way exception values are stored on the Python value stack.
2016-09-27py/vm: Use MP_OBJ_FROM_PTR to cast a type to an object.Damien George
2016-09-27tests/micropython: Add tests for const names being replaced in parser.Damien George
2016-09-27tests/basics: Add test case for overflowing Py stack in try-finally.Damien George
2016-09-27py: Only store the exception instance on Py stack in bytecode try block.Damien George
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.
2016-09-24extmod/uzlib/: Update uzlib to v2.0.3.Paul Sokolovsky
Fixes for more pedantic warnings.
2016-09-24tests/uzlib_decompio_gz: Test for DecompIO with gzip bitstream.Paul Sokolovsky
2016-09-24extmod/moduzlib: DecompIO: Add support for gzip-formatted streams.Paul Sokolovsky
This uses extension introduced in CPython 3.5: if wbits (dictionary size code) has value 16 + 8..15, it means that gzip-formatted stream expected.
2016-09-24extmod/uzlib: Add tinfgzip.c (gzip header parsing) from upstream.Paul Sokolovsky
2016-09-23tools: Update upip to 0.8. Fixes IPv6 support.Paul Sokolovsky
2016-09-23py/py.mk: Add support for building modussl_mbedtls.Paul Sokolovsky
2016-09-23py/parse: Only replace constants that are standalone identifiers.Damien George
This fixes constant substitution so that only standalone identifiers are replaced with their constant value (if they have one). I.e. don't replace NAME in expressions like obj.NAME or NAME = expr.
2016-09-23docs/library/machine: Update description of disable/enable IRQ funcs.Damien George
2016-09-23py: Update opcode format table because 3 opcodes were removed, 1 added.Damien George
LIST_APPEND, MAP_ADD and SET_ADD have been removed, and STORE_COMP has been added in adaf0d865cd6c81fb352751566460506392ed55f.
2016-09-23py: Shrink mp_arg_t struct by using reduced-size integer members.Damien George
qstrs ids are restricted to fit within 2 bytes already (eg in persistent bytecode) so it's safe to use a uint16_t to store them in mp_arg_t. And the flags member only needs a maximum of 2 bytes so can also use uint16_t. Savings in code size can be significant when many mp_arg_t structs are used for argument parsing. Eg, this patch reduces stmhal by 480 bytes.
2016-09-23extmod/modussl_mbedtls: Add server_hostname param for wrap_socket().Paul Sokolovsky
In CPython, module-level .wrap_socket() function actually doesn't accept (or document) this param, only SSLContext.wrap_socket() has.