Damien George
861b001783
tests/cmdline: Update tests to pass with latest changes to bytecode.
2017-02-16 18:38:07 +11:00
Damien George
cb6300697c
py/runtime: Optimise case of identity iterator so it doesn't alloc RAM.
2017-02-16 18:38:06 +11:00
Damien George
30b42dd72d
py: Remove unused "use_stack" argument from for_iter_end emit function.
2017-02-16 18:38:06 +11:00
Damien George
088740ecc4
py: Optimise storage of iterator so it takes only 4 slots on Py stack.
2017-02-16 18:38:06 +11:00
Damien George
6e769da0da
py: Make FOR_ITER opcode pop 1+4 slots from the stack when finished.
...
The extra 4 slots correspond to the iterator object stored on the stack.
2017-02-16 18:38:06 +11:00
Damien George
f4df3aaa72
py: Allow bytecode/native to put iter_buf on stack for simple for loops.
...
So that the "for x in it: ..." statement can now work without using the
heap (so long as the iterator argument fits in an iter_buf structure).
2017-02-16 18:38:06 +11:00
Damien George
ae8d867586
py: Add iter_buf to getiter type method.
...
Allows to iterate over the following without allocating on the heap:
- tuple
- list
- string, bytes
- bytearray, array
- dict (not dict.keys, dict.values, dict.items)
- set, frozenset
Allows to call the following without heap memory:
- all, any, min, max, sum
TODO: still need to allocate stack memory in bytecode for iter_buf.
2017-02-16 18:38:06 +11:00
Damien George
101886f529
py/vm: Convert mp_uint_t to size_t where appropriate.
2017-02-16 16:51:17 +11:00
Damien George
da36f5232d
py/objint: Convert mp_uint_t to size_t where appropriate.
2017-02-16 16:51:17 +11:00
Damien George
fa5a591757
py/objexcept: Convert mp_uint_t to size_t where appropriate.
2017-02-16 16:51:17 +11:00
Damien George
efa629028a
py/objclosure: Convert mp_uint_t to size_t where appropriate.
2017-02-16 16:51:17 +11:00
Damien George
dbcdb9f8d8
py/objfun: Convert mp_uint_t to size_t where appropriate.
2017-02-16 16:51:16 +11:00
Damien George
ccc5254224
py/objarray: Convert mp_uint_t to size_t where appropriate.
2017-02-16 16:51:16 +11:00
Damien George
c0d9500eee
py/objstr: Convert mp_uint_t to size_t (and use int) where appropriate.
2017-02-16 16:51:16 +11:00
Damien George
68cd3a93f0
py/objset: Convert mp_uint_t to size_t where appropriate.
2017-02-16 16:51:16 +11:00
Damien George
1ea2f7a8ce
py/objdict: Convert mp_uint_t to size_t where appropriate.
2017-02-16 16:51:16 +11:00
Damien George
58d9eeb8d9
py/objlist: Convert mp_uint_t to size_t where appropriate.
2017-02-16 16:51:16 +11:00
Damien George
229823942c
py/objtuple: Convert mp_uint_t to size_t where appropriate.
2017-02-16 16:51:16 +11:00
Damien George
891dc5c62c
py/persistentcode: Replace mp_uint_t with size_t where appropriate.
2017-02-16 16:51:16 +11:00
Damien George
6ed77bedbd
py/mpz: Change type of "base" args from mp_uint_t to unsigned int.
2017-02-16 16:51:16 +11:00
Damien George
eb90edb5c0
py/mpz: Remove obsolete declaration of mpz_as_str_size.
2017-02-16 16:51:16 +11:00
Damien George
dcdcc43dad
py/mpz: Convert mp_uint_t to size_t where appropriate.
2017-02-16 16:51:13 +11:00
Damien George
4e3bac2e42
py/runtime: Convert mp_uint_t to size_t where appropriate.
2017-02-16 16:51:13 +11:00
Glenn Ruben Bakke
18365135f7
nrf5/modules: Updating ubluepy example to turn led2 on and off when receiving connected and disconnect bluetooth event.
2017-02-15 23:58:23 +01:00
Glenn Ruben Bakke
d88320b5b3
nrf5/sdk: Updating bluetooth driver to have configurable logs.
2017-02-15 23:57:23 +01:00
Glenn Ruben Bakke
832a7ffd14
nrf5/modules: updating ubluepy and bluetooth driver to support python created event handler. Added registration of callback from ubluepy against the bluetooth driver and dispatching of events to the user supplied python function.
2017-02-15 23:32:42 +01:00
Glenn Ruben Bakke
d29539a395
nrf5/modules: Splitting includes to be inside or outside of the compile guard in ubluepy. This way, all micropython specific includes will be outside, and internal will be inside. This way, there will not be any dependency towards ubluepy headers if not compiled in.
2017-02-15 19:33:11 +01:00
Glenn Ruben Bakke
db75b5535c
nrf5/modules: Adding two new functions to ubluepy peripheral class to set specific handlers for notificaitons and connection related events.
2017-02-15 19:30:45 +01:00
Glenn Ruben Bakke
ec517a37f6
nrf5: Set ubluepy to disabled by default in mpconfigport.h if not configured.
2017-02-15 19:13:55 +01:00
Paul Sokolovsky
a937750ceb
extmod/modlwip: Add my copyright.
...
Per:
$ git log modlwip.c |grep ^Auth | sort | uniq -c
9 Author: Damien George
2 Author: Galen Hazelwood
43 Author: Paul Sokolovsky
2017-02-15 19:20:46 +03:00
Paul Sokolovsky
f980c70997
tests/basic/: Make various tests skippable.
...
To run the testsuite on small ports.
2017-02-15 18:11:16 +03:00
Paul Sokolovsky
b737c9cbc8
tests/gen_yield_from_close: Use range() instead of reversed().
...
As a "more basic" builtin iterator, present even in smaller ports.
2017-02-15 17:05:27 +03:00
Paul Sokolovsky
eb101a2701
examples/embedding/README: Convert to markdown, grammar and clarity fixes.
2017-02-15 13:27:24 +03:00
Damien George
e5cc681cb1
stmhal: Use generic interrupt char code.
2017-02-15 16:39:30 +11:00
Damien George
05a4859585
stmhal: Implement a proper thread scheduler.
...
This patch changes the threading implementation from simple round-robin
with busy waits on mutexs, to proper scheduling whereby threads that are
waiting on a mutex are only scheduled when the mutex becomes available.
2017-02-15 13:28:48 +11:00
Damien George
f6c22a0679
py/vm: Add MICROPY_PY_THREAD_GIL_VM_DIVISOR option.
...
This improves efficiency of GIL release within the VM, by only doing the
release after a fixed number of jump-opcodes have executed in the current
thread.
2017-02-15 11:28:15 +11:00
Damien George
234f07f16c
py/modthread: Use system-provided mutexs for _thread locks.
...
It's more efficient using the system mutexs instead of synthetic ones with
a busy-wait loop. The system can do proper scheduling and blocking of the
threads waiting on the mutex.
2017-02-15 11:28:02 +11:00
Damien George
06a12ada48
tests/thread: Add stress-test for creating many threads.
2017-02-15 11:12:37 +11:00
Damien George
2847d7431d
tests/thread: Replace busy waiting loops with a loop that sleeps.
...
Depending on the thread scheduler, a busy-wait loop can hog the CPU and
make the tests very slow. So convert such loops to loops that have an
explicit sleep, allowing the worker threads to do their job.
2017-02-15 11:12:37 +11:00
Glenn Ruben Bakke
8d1b05563c
nrf5/modules: Moving includes inside config defines to make non-ubluepy targets compile again.
2017-02-15 00:26:39 +01:00
Glenn Ruben Bakke
b493bfda64
nrf5/modules: Adding 'withDelegate' function to peripheral class.
2017-02-15 00:22:00 +01:00
Glenn Ruben Bakke
fd4e659da7
nrf5/modules: Adding ubluepy delegate type to modubluepy globals table.
2017-02-15 00:18:32 +01:00
Glenn Ruben Bakke
4f6e235c68
nrf5: Adding ubluepy_delegate.c to list of source files to compile.
2017-02-15 00:17:47 +01:00
Glenn Ruben Bakke
8b21ee762e
nrf5/modules: Adding new object struct for delegate class and adding a delegate struct member to Peripheral class to bookeep callback object when event occurs.
2017-02-15 00:17:04 +01:00
Glenn Ruben Bakke
881e90f7b5
nrf5/modules: Adding template for ubluepy delegate class.
2017-02-15 00:15:48 +01:00
Paul Sokolovsky
f2d732f459
tests/extmod: Make tests skippable.
2017-02-15 01:56:22 +03:00
Paul Sokolovsky
7bb146350e
tests/dict_fromkeys: Revert to use reversed() to run in native codegen mode.
2017-02-15 01:30:16 +03:00
Paul Sokolovsky
83623b2fde
tests/basic/[a-f]*: Make skippable.
...
For small ports which don't have all features enabled.
2017-02-15 00:57:56 +03:00
Paul Sokolovsky
453f98914e
zephyr/main: Don't unconditionally dump stats on each GC.
...
This was a debug output for initial porting, breaks tests.
2017-02-14 23:31:47 +03:00
Paul Sokolovsky
d61ce32022
tests/builtin_dir: The most expected thing in sys is exit, test for it.
2017-02-14 23:30:06 +03:00