Damien George
0f5e8b151f
Merge branch 'master' of github.com:micropython/micropython
2014-01-25 00:18:30 +00:00
Damien George
7c9c667633
py: Implement iterator support for object that has __getitem__.
...
Addresses Issue #203 .
2014-01-25 00:17:36 +00:00
Paul Sokolovsky
c1d200ef74
rt_deinit(): Finalize some maps.
2014-01-25 02:04:07 +02:00
Paul Sokolovsky
91fb1c9b13
Add basic implementation of bytes type, piggybacking on str.
...
This reuses as much str implementation as possible, from this we
can make them more separate as needed.
2014-01-24 22:56:26 +02:00
Damien George
1e708fed18
py: Implement bool unary op; tidy up unary op dispatch.
2014-01-23 18:27:51 +00:00
Damien George
0d028743aa
py: Initialise loaded_module map in rt_init.
...
STM port crashes without this re-init. There should not be any state in
the core py/ code that relies on pre-initialised data.
2014-01-22 23:59:20 +00:00
Damien George
5fa93b6755
Second stage of qstr revamp: uPy str object can be qstr or not.
2014-01-22 14:35:10 +00:00
Damien George
12eaccacda
Merge branch 'master' of github.com:micropython/micropython
...
Conflicts:
py/objstr.c
py/py.mk
py/stream.c
unix/main.c
unix/socket.c
2014-01-21 21:54:15 +00:00
Damien George
55baff4c9b
Revamp qstrs: they now include length and hash.
...
Can now have null bytes in strings. Can define ROM qstrs per port using
qstrdefsport.h
2014-01-21 21:40:13 +00:00
Paul Sokolovsky
a80ff04fe7
Add dummy bytes() constructor.
...
Currently, MicroPython strings are mix between CPython byte and unicode
strings. So, conversion is null so far. This dummy implementation is
intended for compatibility with CPython (so, same code can run on both).
2014-01-20 20:37:01 +02:00
Damien George
91d457a277
py: Put micropython module init code in builtinmp.c.
2014-01-20 10:30:24 +00:00
Paul Sokolovsky
440cc3f028
Expose memory stats functions via "micropython" module.
...
These are micropython.mem_total(), .mem_current(), .mem_peak(). These are 3
individual functions with simple scalar return value to make sure that
calls to these functions themselves have minimal (hopefully zero) impact on
memory allocation.
2014-01-20 02:20:40 +02:00
Paul Sokolovsky
159c0f75da
Don't implicitly import "sys" module.
2014-01-20 01:57:20 +02:00
Paul Sokolovsky
f477bfbc75
Pre-create sys module.
2014-01-20 01:00:28 +02:00
Damien George
cbd2f7482c
py: Add module/function/class name to exceptions.
...
Exceptions know source file, line and block name.
Also tidy up some debug printing functions and provide a global
flag to enable/disable them.
2014-01-19 11:48:48 +00:00
Damien George
932bf1c48f
py: Fix VM/runtime unpack sequence bug, Issue #193 .
2014-01-18 23:42:49 +00:00
Damien George
6b21538e91
Merge pull request #192 from pfalcon/arrays
...
Add skeleton implementation of array.array and bytearray.
2014-01-18 15:31:57 -08:00
Damien George
f49ba1bd9c
Improve method lookup in mp_obj_class_lookup.
...
Now searches both locals_dict and methods. Partly addresses Issue #145 .
2014-01-18 17:52:41 +00:00
Paul Sokolovsky
427905cedd
Add skeleton implementation of array.array and bytearray.
...
So far, only storage, initialization, repr() and buffer protocol is
implemented - alredy suitable for passing binary data around.
2014-01-18 19:27:38 +02:00
Damien George
0c4e909e76
Merge pull request #191 from pfalcon/store-item
...
Add store_item() virtual method to type to implement container[index] = val
2014-01-18 06:57:47 -08:00
Damien George
632cf5710c
Merge branch 'master' of github.com:dpgeorge/micropython
2014-01-18 14:15:48 +00:00
Damien George
20006dbba9
Make VM stack grow upwards, and so no reversed args arrays.
...
Change state layout in VM so the stack starts at state[0] and grows
upwards. Locals are at the top end of the state and number downwards.
This cleans up a lot of the interface connecting the VM to C: now all
functions that take an array of Micro Python objects are in order (ie no
longer in reverse).
Also clean up C API with keyword arguments (call_n and call_n_kw
replaced with single call method that takes keyword arguments). And now
make_new takes keyword arguments.
emitnative.c has not yet been changed to comply with the new order of
stack layout.
2014-01-18 14:10:48 +00:00
Paul Sokolovsky
6d8edf6acf
Add store_item() virtual method to type to implement container[index] = val.
2014-01-18 13:11:59 +02:00
Paul Sokolovsky
166bb40fb2
Add OverflowError and use it for small int overflow instead of assert.
2014-01-18 12:46:43 +02:00
Paul Sokolovsky
10744dd816
Add empty (false) value testing for strings, tuples, lists, dicts.
2014-01-16 23:54:17 +02:00