summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-12-23docs/library/index: Elaborate uPy libraries intro.Paul Sokolovsky
2017-12-23stm32/i2c: Support more I2C baudrates for F746, and more F7 MCUs.Damien George
2017-12-23stm32/i2c: Fix bug with I2C4 initialisation.Damien George
2017-12-23stm32/uart: Support board configs with CTS/RTS on UART6.Damien George
2017-12-22esp8266/Makefile: Remove commented-out unused lines.Damien George
These were copied from the stm32 port (then stmhal) at the very beginning of this port, with the anticipation that the esp8266 port would have board definition files with a list of valid pins and their names. But that has not been implemented and likely won't be, so remove the corresponding lines from the Makefile.
2017-12-22drivers/sdcard: Support old SD cards (<=2GB).Ayke van Laethem
2017-12-22esp32/README: Update toolchain setup.Ayke van Laethem
2017-12-22stm32/uart: Add support for 7-bit modes: 7N1 and 7N2.Peter D. Gray
2017-12-22stm32: Allow to build a board without any hardware I2C ports defined.Damien George
This patch adds in internal config value MICROPY_HW_ENABLE_HW_I2C that is automatically configured, and enabled only if one or more hardware I2C ports are defined in the mpconfigboard.h file. If none are defined then the pyb.I2C class is excluded from the build, along with all supporting code. The machine.I2C class will still be available for software I2C. Disabling all hardware I2C on an F4 board saves around 10,000 bytes of code and 200 bytes of RAM.
2017-12-22stm32: Use corrected capitalization of HAL_SD_CardStateTypedef.Peter D. Gray
It was originally TypeDef. STM32L4 only supports Typedef and F4/F7 have legacy macros in stm32_hal_legacy.h to support both.
2017-12-20tests/basics/memoryerror: Add test for out-of-memory using realloc.Damien George
2017-12-20py/malloc: Remove unneeded code checking m_malloc return value.Damien George
m_malloc already checks for a failed allocation so there's no need to check for it in m_malloc0.
2017-12-20qemu-arm/test_main: Include setjmp.h because it's used by gc_collect.Damien George
And it's no longer unconditionally included by nlr.h, only if NLR_SETJMP is defined.
2017-12-20py/nlr: Factor out common NLR code to generic functions.Damien George
Each NLR implementation (Thumb, x86, x64, xtensa, setjmp) duplicates a lot of the NLR code, specifically that dealing with pushing and popping the NLR pointer to maintain the linked-list of NLR buffers. This patch factors all of that code out of the specific implementations into generic functions in nlr.c. This eliminates duplicated code. The factoring also allows to make the machine-specific NLR code pure assembler code, thus allowing nlrthumb.c to use naked function attributes in the correct way (naked functions can only have basic inline assembler code in them). There is a small overhead introduced (typically 1 machine instruction) because now the generic nlr_jump() must call nlr_jump_tail() rather than them being one combined function.
2017-12-19unix/mpconfigport_coverage.h: Enable MICROPY_PY_IO_RESOURCE_STREAM.Damien George
Where possible it's important to test all code in the code base.
2017-12-19py/modio: Use correct config macro to enable resource_stream function.Damien George
2017-12-19tests/extmod: Add some uctypes tests to improve coverage of that module.Damien George
2017-12-19tests: Add some more tests to improve coverage of py/parse.c.Damien George
2017-12-19py/mpz: Apply a small code-size optimisation.Damien George
2017-12-19tests/basics/builtin_pow3: Add tests for edge cases of pow3.Damien George
2017-12-19py/mpz: Fix pow3 function so it handles the case when 3rd arg is 1.Damien George
In this case the result should always be 0, even if 2nd arg is 0.
2017-12-19tests/basics/generator_pend_throw: Add test for just-started generator.Damien George
2017-12-19tests/unix: Add test for printf with %lx format.Damien George
2017-12-19tests/float/builtin_float_hash: Add test to improve objfloat.c coverage.Damien George
2017-12-19tests/extmod/uhashlib_sha256: Add test for hashing 56 bytes of data.Damien George
2017-12-19py/objset: Remove unneeded check from set_equal.Damien George
set_equal is called only from set_binary_op, and this guarantees that the second arg to set_equal is always a set or frozenset. So there is no need to do a further check.
2017-12-19tests/basics: Add more set tests to improve coverage of py/objset.c.Damien George
2017-12-19py/map: Don't include ordered-dict mutating code when not needed.Damien George
2017-12-19py/runtime: Remove unnecessary break statements from switch.Damien George
2017-12-18esp32/machine_hw_spi: Remove unnecessary white space for consistency.Damien George
2017-12-18esp32/machine_hw_spi: Fix large HW SPI transfers by splitting them up.Eric Poulsen
Breaks up HW SPI transfers into maximum chunks of 32736 bits (4092 bytes), because this is the maximum that the underlying ESP IDF will accept.
2017-12-16.travis.yml: Build and test strict stackless build.Paul Sokolovsky
Previously, testing of stackless build happened (manually) in travis-stackless branch. However, stackless offers important featureset, so it's worth to test it as a part of the main CI. Strict stackless is used because it's the "real" stackless build, which avoids using C stack as much as possible (non-strict just prefers heap over C stack, but may end up using the latter).
2017-12-16unix/mpconfigport.h: Allow to override stackless options from commandline.Paul Sokolovsky
2017-12-16unix/Makefile: coverage: Allow user to pass CFLAGS_EXTRA.Paul Sokolovsky
This build sets CFLAGS_EXTRA itself, but preserve user's value as passed on make command line/etc.
2017-12-16docs/packages: Explicitly recommend usage of setuptools instead of distutils.Paul Sokolovsky
2017-12-16docs/packages: Use "install_dir/" in examples.Paul Sokolovsky
2017-12-16docs/conf: Reference CPython 3.5 docs.Paul Sokolovsky
CPython 3.6 contains some backward incompatible changes, and further version(s) are expected to have more. As we anyway implemente 3.4 with some features of 3.5, refer to 3.5 docs to avoid confusion. Examples of 3.6 backward incompatibilities: https://docs.python.org/3.6/library/json.html#json.dump https://docs.python.org/3.6/library/json.html#json.load > Changed in version 3.6: All optional parameters are now keyword-only. https://docs.python.org/3.6/library/functions.html#type > Changed in version 3.6: Subclasses of type which don’t override > type.__new__ may no longer use the one-argument form to get the > type of an object. https://docs.python.org/3.6/library/collections.html#collections.namedtuple > Changed in version 3.6: The verbose and rename parameters became > keyword-only arguments.
2017-12-15py/objgenerator: Allow to pend an exception for next execution.Paul Sokolovsky
This implements .pend_throw(exc) method, which sets up an exception to be triggered on the next call to generator's .__next__() or .send() method. This is unlike .throw(), which immediately starts to execute the generator to process the exception. This effectively adds Future-like capabilities to generator protocol (exception will be raised in the future). The need for such a method arised to implement uasyncio wait_for() function efficiently (its behavior is clearly "Future" like, and normally would require to introduce an expensive Future wrapper around all native couroutines, like upstream asyncio does). py/objgenerator: pend_throw: Return previous pended value. This effectively allows to store an additional value (not necessary an exception) in a coroutine while it's not being executed. uasyncio has exactly this usecase: to mark a coro waiting in I/O queue (and thus not executed in the normal scheduling queue), for the purpose of implementing wait_for() function (cancellation of such waiting coro by a timeout).
2017-12-15lib/tinytest: Clean up test reporting in the presence of stdout output.Paul Sokolovsky
tinytest is written with the idea that tests won't write to stdout, so it prints test name witjout newline, then executes test, then writes status. But MicroPython tests write to stdout, so the test output becomes a mess. So, instead print it like: # starting basics/andor.py ... test output ... basics/andor.py: OK
2017-12-15zephyr/prj_base.conf: Bump MAIN_STACK_SIZE to let builtin testsuite run.Paul Sokolovsky
2017-12-15zephyr: Add support for binary with builtin testsuite.Paul Sokolovsky
If TEST is defined, file it refers to will be used as the testsuite source (should be generated with tools/tinytest-codegen.py). "make-bin-testsuite" script is introduce to build such a binary.
2017-12-15tests/run-tests: Skip running feature checks for --list-tests/--write-exp.Paul Sokolovsky
The whole idea of --list-tests is that we prepare a list of tests to run later, and currently don't have a connection to target board. Similarly for --write-exp - only "python3" binary would be required for this operation, not "micropython".
2017-12-15tools/tinytest-codegen: Ignore system locale, write output in UTF-8.Paul Sokolovsky
Way to reproduce a UnicodeEncodeError without this patch: LC_ALL=C tinytest-codegen.py ...
2017-12-15py/emitglue: Change type of bit-field to explicitly unsigned mp_uint_t.Damien George
Some compilers can treat enum types as signed, in which case 3 bits is not enough to encode all mp_raw_code_kind_t values. So change the type to mp_uint_t.
2017-12-15docs/glossary: micropython-lib: Clarify wording.Paul Sokolovsky
2017-12-14docs/packages: mpy_bin2res no longer required to create resources.Paul Sokolovsky
Everything happens automagically with overridden "sdist" from sdist_upip.py.
2017-12-14tests/run-tests: Don't test for --target=unix with "pyb is None".Paul Sokolovsky
If we test for unix target, do that explicitly. pyb var will be None for commands like --list-tests too.
2017-12-14tools/tinytest-codegen: Add --stdin switch instead of recently added --target.Paul Sokolovsky
Instead of passing thru more and more options from tinytest-codegen to run-tests --list-tests, pipe output of run-tests --list-tests into tinytest-codegen.
2017-12-14tests/run-tests: Add composable --include and --exclude options.Paul Sokolovsky
The idea that --list-tests would be enough to produce list of tests for tinytest-codegen didn't work, because normal run-tests processing heavily relies on dynamic target capabilities discovery, and test filtering happens as the result of that. So, approach the issue from different end - allow to specify arbitrary filtering criteria as run-tests arguments. This way, specific filters will be still hardcoded, but at least on a particular target's side, instead of constant patching tinytest-codegen and/or run-tests.
2017-12-14tests/run-tests: Fix handling of --list-tests wrt skipped tests.Paul Sokolovsky
"skip <test>" message could leak before.