summaryrefslogtreecommitdiffstatshomepage
Commit message (Collapse)AuthorAge
...
| * tests/heapalloc_str: Test no-replacement case for str.replace().Paul Sokolovsky2017-03-22
| |
| * py/bc: Provide better error message for an unexpected keyword argument.Damien George2017-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Now, passing a keyword argument that is not expected will correctly report that fact. If normal or detailed error messages are enabled then the name of the unexpected argument will be reported. This patch decreases the code size of bare-arm and stmhal by 12 bytes, and cc3200 by 8 bytes. Other ports (minimal, unix, esp8266) remain the same in code size. For terse error message configuration this is because the new message is shorter than the old one. For normal (and detailed) error message configuration this is because the new error message already exists in py/objnamedtuple.c so there's no extra space in ROM needed for the string.
| * cc3200/mods/modutime: Use generic sleep_ms and sleep_us implementations.Damien George2017-03-22
| |
| * stmhal/systick: Make mp_hal_delay_ms release the GIL when sleeping.Damien George2017-03-22
| |
| * extmod/utime_mphal: Don't exit/enter the GIL in generic sleep functions.Damien George2017-03-22
| | | | | | | | | | | | GIL behaviour should be handled by the port. And ports probably want to define sleep_us so that it doesn't release the GIL, to improve timing accuracy.
| * stmhal/pybthread: Allow interrupts to work during lock/unlock of mutex.Damien George2017-03-22
| | | | | | | | | | When locking/unlocking a mutex we only need to protect against a thread switch, not general interrupts.
| * stmhal/irq: Shift IRQ priorities of TIM and EXTINT to be above PENDSV.Damien George2017-03-22
| | | | | | | | | | This way, Timer and ExtInt callbacks can interrupt the low-priority pendsv handler (for example thread switching).
| * esp8266/machine_pin: Fix pin.irq() to work when all args are keywords.Damien George2017-03-21
| |
| * esp8266/machine_pin: Fix memset size for zeroing of pin_irq_is_hard.Damien George2017-03-21
| | | | | | | | Thanks to @robert-hh.
| * stmhal/pendsv: Disable interrupts during a thread switch.Damien George2017-03-20
| | | | | | | | | | | | | | | | We can actually handle interrupts during a thread switch (because we always have a valid stack), but only if those interrupts don't access any of the thread state (because the state may not correspond to the stack pointer). So to be on the safe side we disable interrupts during the very short period of the thread state+stack switch.
| * py/vm: Don't release the GIL if the scheduler is locked.Damien George2017-03-20
| | | | | | | | | | | | | | | | | | | | | | | | | | The scheduler being locked general means we are running a scheduled function, and switching to another thread violates that, so don't switch in such a case (even though we technically could). And if we are running a scheduled function then we want to finish it ASAP, so we shouldn't switch to another thread. Furthermore, ports with threading enabled will lock the scheduler during a hard IRQ, and this patch to the VM will make sure that threads are not switched during a hard IRQ (which would crash the VM).
| * extmod/modframebuf: Add support for monochrome horizontal format.Peter Hinch2017-03-20
| | | | | | | | | | MHLSB and MHMSB formats are added to the framebuf module, which have 8 adjacent horizontal pixels represented in a single byte.
| * docs/library/machine.I2C: Fix scan() doc to match implementation.transistortim2017-03-20
| | | | | | | | | | Since eaef6b5324fa2ff425802d4abeea45aa945bfc14 writes are used instead of reads.
| * unix/coverage: Enable scheduler and add tests for it.Damien George2017-03-20
| |
| * tests/micropython: Add tests for micropython.schedule().Damien George2017-03-20
| |
| * esp8266/machine_pin: Make pin.irq arguments positional.Damien George2017-03-20
| | | | | | | | | | | | | | | | All arguments to pin.irq are converted from keyword-only to positional, and can still be specified by keyword so it's a backwards compatible change. The default value for the "trigger" arg is changed from 0 (no trigger) to rising+falling edge.
| * esp8266/machine_pin: Add "hard" parameter to pin.irq, soft by default.Damien George2017-03-20
| |
| * esp8266: Change machine.Timer callback to soft callback.Damien George2017-03-20
| |
| * esp8266: Enable micropython.schedule() with locking in pin callback.Damien George2017-03-20
| |
| * stmhal: Enable micropython.schedule().Damien George2017-03-20
| | | | | | | | | | | | ExtInt, Timer and CAN IRQ callbacks are made to work with the scheduler. They are still hard IRQs by default, but one can now call micropython.schedule within the hard IRQ to schedule a soft callback.
| * unix: Use mp_handle_pending() in time.sleep().Damien George2017-03-20
| |
| * py: Add micropython.schedule() function and associated runtime code.Damien George2017-03-20
| |
| * py/objstr: Use better msg in bad implicit str/bytes conversion exceptionstijn2017-03-20
| | | | | | | | | | | | | | | | | | | | Instead of always reporting some object cannot be implicitly be converted to a 'str', even when it is a 'bytes' object, adjust the logic so that when trying to convert str to bytes it is shown like that. This will still report bad implicit conversion from e.g. 'int to bytes' as 'int to str' but it will not result in the confusing 'can't convert 'str' object to str implicitly' anymore for calls like b'somestring'.count('a').
| * utime module documentation fixes and cleanup:Christopher Arndt2017-03-17
| | | | | | | | | | | | | | | | | | | | | | * Fix mis-spelling of `ticks_add` in code examples. * Be consistent about parentheses after function names. * Be consistent about formatting of function, variable and constant names. * Be consistent about spaces and punctuation. * Fix some language errors (missing or wrong words, wrong word order). * Keep line length under 90 chars. Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
| * py: Provide mp_decode_uint_value to help optimise stack usage.Damien George2017-03-17
| | | | | | | | | | This has a noticeable improvement on x86-64 and Thumb2 archs, where stack usage is reduced by 2 machine words in the VM.
| * py: Reduce size of mp_code_state_t structure.Damien George2017-03-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of caching data that is constant (code_info, const_table and n_state), store just a pointer to the underlying function object from which this data can be derived. This helps reduce stack usage for the case when the mp_code_state_t structure is stored on the stack, as well as heap usage when it's stored on the heap. The downside is that the VM becomes a little more complex because it now needs to derive the data from the underlying function object. But this doesn't impact the performance by much (if at all) because most of the decoding of data is done outside the main opcode loop. Measurements using pystone show that little to no performance is lost. This patch also fixes a nasty bug whereby the bytecode can be reclaimed by the GC during execution. With this patch there is always a pointer to the function object held by the VM during execution, since it's stored in the mp_code_state_t structure.
| * tests/basics/bytes_add: Add tests for optimised bytes addition.Damien George2017-03-16
| |
| * py/objstr: Fix eager optimisation of str/bytes addition.Damien George2017-03-16
| | | | | | | | The RHS can only be returned if it is the same type as the LHS.
| * travis: Change an stmhal rule to build PYBV11 instead of default PYBV10.Damien George2017-03-15
| | | | | | | | | | | | | | This allows to test the PYBV11 target as well as the network drivers without adding another rule. It also removes the need to use -B, side-stepping the issue of whether or not -B works with qstr auto generation.
| * docs/library/framebuf: Fix typo in bit-width for MVLSB description.Damien George2017-03-15
| |
| * py/mkrules.mk: Remove special check for "-B" in qstr auto generation.Damien George2017-03-15
| | | | | | | | | | | | When make is passed "-B" it seems that everything is considered out-of-date and so $? expands to all prerequisites. Thus there is no need for a special check to see if $? is emtpy.
| * tests/basics: Move string-modulo-format int tests to dedicated file.Damien George2017-03-15
| |
| * tests/basics: Add test for string module formatting with int argument.Damien George2017-03-15
| |
| * tests/basics/string_format2: Adjust comment now that tests succeed.Damien George2017-03-15
| |
| * py/mpprint: Fix int formatting so "+" is printed for 0-valued integer.Damien George2017-03-15
| |
| * py/emitnative: Remove obsolete commented out code.Damien George2017-03-15
| |
| * tests/micropython/viper_error: Add more tests to improve coverage.Damien George2017-03-14
| |
| * py/emitnative: Use assertions and mp_not_implemented correctly.Damien George2017-03-14
| | | | | | | | | | Assertions are used to check expressions that should always be true, and mp_not_implemented is used for code that can be reached.
| * tests/extmod: Improve tinfgzip.c test coverage.Rami Ali2017-03-14
| |
| * tests/extmod/vfs_basic: Unmount all existing devices before doing test.Damien George2017-03-14
| | | | | | | | | | This is so the test can run successfully on targets that already have something mounted.
| * tests/run-tests: Re-instate skipping of doubleprec test on pyboard.Damien George2017-03-14
| |
| * lib/utils/pyexec: Fix bug with pyexec_file not setting flag for source.Damien George2017-03-14
| |
| * tests/basics/struct_micropython: Add test for 'S' typecode in ustruct.Damien George2017-03-14
| | | | | | | | | | | | | | | | The 'S' typecode is a uPy extension so it should be grouped with the other extension (namely 'O' typecode). Testing 'S' needs uctypes which is an extmod module and not always available, so this test is made optional and will only be run on ports that have (u)struct and uctypes. Otherwise it will be silently skipped.
| * tests: Improve binary.c test coverage.Rami Ali2017-03-14
| |
| * tests/extmod: Improve re1.5/recursiveloop.c test coverage.Rami Ali2017-03-14
| |
| * tests/extmod/vfs_basic: Add more tests for basic VFS functionality.Damien George2017-03-14
| |
| * py/objint: Allow to print long-long ints without using the heap.Damien George2017-03-14
| | | | | | | | | | | | | | Some stack is allocated to format ints, and when the int implementation uses long-long there should be additional stack allocated compared with the other cases. This patch uses the existing "fmt_int_t" type to determine the amount of stack to allocate.
| * esp8266: Only execute main.py if in friendly REPL mode.Damien George2017-03-14
| |
| * teensy/lexerfrozen: Make mp_lexer_new_from_file raise an exception.Damien George2017-03-14
| |
| * mpy-cross/main: Move lexer constructor to within NLR handler block.Damien George2017-03-14
| |