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
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