Commit Graph

427 Commits

Author SHA1 Message Date
Damien George 2259e62c37 Remove obsoleted comment. 2014-01-25 00:25:32 +00:00
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 9a24a0465f Add mp_map_deinit() & mp_map_free() to finalize maps.
mp_map_deinit() finalizes static map, mp_map_free() - dynamic.
2014-01-25 02:04:01 +02:00
Damien George fcd4ae8271 Merge pull request #221 from pfalcon/basic-bytes
Add basic implementation of bytes type, piggybacking on str.
2014-01-24 15:15:47 -08:00
Damien George 58b8a6202a Merge pull request #219 from dhylands/add-deps
Rework makefiles. Add proper dependency checking.
2014-01-24 15:03:39 -08:00
Damien George 0004a84ec0 Revert "Move gc_collect to py/gc.c"
This reverts commit a215b09c0d.
2014-01-24 22:54:09 +00:00
Damien George baba08bff9 Merge pull request #218 from iabdalkader/master
Move file obj to separate module
2014-01-24 14:48:06 -08:00
Damien George 41d02b654e py: Improve freeing of emitters in mp_compile.
There can be multiple emitters allocated during compile (eg byte code
and native).
2014-01-24 22:42:28 +00:00
Damien George ceb87835fe Merge pull request #217 from pfalcon/free-emitter
Add support for freeing code emitter objects at the end of compilation.
2014-01-24 14:32:40 -08:00
Damien George 1976baeeb7 Retain file order of qstr definitions.
Want common qstrs to be first in the list so they have the lowest ids,
so that in the byte code they take up the least room.
2014-01-24 22:22:00 +00:00
Damien George 60aca4810f Merge pull request #215 from pfalcon/qstr-special-chars
Allow qstr's with non-ident chars, construct good identifier for them.
2014-01-24 14:14:44 -08: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
mux a215b09c0d Move gc_collect to py/gc.c
* Move gc_collect from main to py/gc.c
* Define GC's memory boundaries in linker script
* Issue #220
2014-01-24 21:33:19 +02:00
Dave Hylands c89c681a9f Rework makefiles. Add proper dependency checking. 2014-01-24 08:46:48 -08:00
Paul Sokolovsky f46d87a30d Add support for freeing code emitter objects at the end of compilation. 2014-01-24 16:31:20 +02:00
Paul Sokolovsky 39763c6cb0 lexerstr: Free mp_lexer_str_buf_t structure itself. 2014-01-24 02:57:50 +02:00
Paul Sokolovsky ab5d08280b Allow qstr's with non-ident chars, construct good identifier for them.
Also, add qstr's for string appearing in unix REPL loop, gross effect
being less allocations for each command run.
2014-01-24 02:34:22 +02:00
Paul Sokolovsky fd31358505 mp_compile(): Properly free module_scope and all nested scopes. 2014-01-23 23:16:18 +02:00
Paul Sokolovsky 624ed5d563 mp_lexer_free(): Free lex->indent_level array. 2014-01-23 23:16:18 +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 b051e7d167 py: Simpler implementation of mp_obj_callable. 2014-01-23 18:13:53 +00:00
Paul Sokolovsky c3e72a8cc8 mp_obj_is_callable(): Only object types can be callable.
Fixes segfault on callable("string").
2014-01-23 03:37:21 +02:00
Paul Sokolovsky 1eacefe5bc Implement simplest case of str.startswith(). 2014-01-23 02:47:10 +02:00
Damien George b979122dfb py: Use C99 way of variable macro arguments.
Addresses Issue #207.
2014-01-23 00:34:21 +00:00
Damien George 00208ce194 py: Change macro var args in parser to be C99 compliant. 2014-01-23 00:00:53 +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 f64086f80f Fix 1 warning and 1 bug. 2014-01-22 23:18:50 +00:00
Paul Sokolovsky 0b7184dcb8 Implement octal and hex escapes in strings. 2014-01-22 22:48:25 +02:00
Paul Sokolovsky 0914371faf file.readline(): Use mp_obj_str_get_data() and fix off-by-one error on EOF. 2014-01-22 19:17:58 +02: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 e6a4ab4be1 py: Remove implicit conversion of float to int in mp_obj_get_int().
Addresses Issue #199.
2014-01-22 00:21:47 +00:00
Damien George 2843b8e3a7 Merge branch 'master' of github.com:micropython/micropython 2014-01-21 23:49:44 +00:00
Damien George 600ae734cf py: Implement break and continue byte codes, and add tests.
Also fixes a bug in the for-in-range optimiser.

I hope to remove break and continue byte codes in the future and just
use jump (if possible).
2014-01-21 23:48:04 +00:00
Dave Hylands 7a996b1f65 Fix malformed generated file when using python 2.7 2014-01-21 15:28:27 -08:00
Paul Sokolovsky 09ce05996a array: Implement iterator. 2014-01-21 23:59:50 +02:00
Paul Sokolovsky 33996685df Add len() support for arrays. 2014-01-21 23:59:50 +02: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 4c316552c1 Implement str.split(None).
Note that splitting by explicit string is not implemented so far.
2014-01-21 05:01:21 +02:00
Paul Sokolovsky 7380a83780 str: Implement proper string (instead of byte string) indexing.
Also, support negative indexes.
2014-01-21 02:25:59 +02:00
Paul Sokolovsky 545591a696 Implement string multiplication. 2014-01-21 00:39:12 +02:00
Paul Sokolovsky 439542f70c sequence.c: Start to refactor sequence operations for reuse among types. 2014-01-21 00:39:12 +02:00
Paul Sokolovsky 8965a5eb1e objstr: More support for MP_OBJ_QSTR. 2014-01-20 23:34:17 +02:00
Paul Sokolovsky e6da0df6d1 mp_obj_get_type_str(): Handle MP_OBJ_QSTR. 2014-01-20 23:01:06 +02: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
Paul Sokolovsky ff3bdea49d stream_read(): Shrink memory block to actual read size. 2014-01-20 20:37:01 +02:00
Paul Sokolovsky d54bef7692 stream: Add generic unbuffered iternext method.
Uses stream_unbuffered_readline underline.
2014-01-20 18:42:08 +02:00
Paul Sokolovsky dff3f896d7 mp_identity(): Add generic identity function.
Useful as getiter method for objects which are their own iterators, etc.
2014-01-20 18:42:08 +02:00