Paul Sokolovsky
9ed5435061
Implement slicing for tuples.
2014-02-02 03:42:07 +02:00
Paul Sokolovsky
13cfabd1b2
Implement slicing for lists.
2014-02-02 03:32:55 +02:00
Paul Sokolovsky
513e6567b1
Add testcase for sequence unpacking.
2014-02-02 01:34:11 +02:00
Damien George
cbddb279bb
py: Implement break/continue from an exception with finally.
...
Still todo: break/continue from within the finally block itself.
2014-02-01 20:08:18 +00:00
Damien George
87413a4d0c
Merge branch 'fun-defargs' of github.com:pfalcon/micropython into pfalcon-fun-defargs
2014-02-01 17:51:47 +00:00
Paul Sokolovsky
90750029df
Implement default function arguments (for Python functions).
...
TODO: Decide if we really need separate bytecode for creating functions
with default arguments - we would need same for closures, then there're
keywords arguments too. Having all combinations is a small exponential
explosion, likely we need just 2 cases - simplest (no defaults, no kw),
and full - defaults & kw.
2014-02-01 15:38:22 +02:00
Paul Sokolovsky
6472dea146
Add exception stack unwind support for RETURN_VALUE.
...
This properly implements return from try/finally block(s).
TODO: Consider if we need to do any value stack unwinding for RETURN_VALUE
case. Intuitively, this is "success" return, so value stack should be in
good shape, and unwinding shouldn't be required.
2014-02-01 15:23:03 +02:00
Damien George
532f2c30f6
Merge pull request #246 from pfalcon/exc_stack_entry
...
vm: Introduce structure for exception stack entry, record entry type.
2014-01-31 15:51:20 -08:00
Damien George
1aa1c511dd
Merge branch 'master' of github.com:xbe/micropython into xbe-master
2014-01-31 23:29:57 +00:00
Paul Sokolovsky
c9887cbbe2
Add basic try-finally testcase.
...
It's mildly suprising these work without further changes to exception
handling code (the only change required was to handle SETUP_FINALLY).
2014-01-31 21:33:07 +02:00
Paul Sokolovsky
027594e1a7
Typo fixes in comments.
2014-01-31 19:47:23 +02:00
Paul Sokolovsky
c92a56dc93
Add testcase with exception handler spread across functions.
2014-01-31 17:06:15 +02:00
xbe
480c15afb5
Implement str.replace and add tests for it.
2014-01-30 22:17:30 -08:00
xbe
65365778fd
Add tests for str.strip
2014-01-30 22:16:47 -08:00
Paul Sokolovsky
382e8eeea2
vm: Add basic implementation of END_FINALLY opcode.
...
Allows to have nested try blocks with except filters.
TODO: Don't add END_FINALLY's exception re-raise points to traceback.
2014-01-30 13:49:18 +02:00
Damien George
09a0c64bce
py: Improve __bool__ and __len__ dispatch; add slots for them.
2014-01-30 10:05:33 +00:00
Paul Sokolovsky
c1d9bbc345
Implement __bool__ and __len__ via unary_op virtual method for all types.
...
__bool__() and __len__() are just the same as __neg__() or __invert__(),
and require efficient dispatching implementation (not requiring search/lookup).
type->unary_op() is just the right choice for this short of adding
standalone virtual method(s) to already big mp_obj_type_t structure.
2014-01-30 04:37:19 +02:00
Damien George
4a74d31e70
run-tests can handle segfault.
2014-01-29 22:32:23 +00:00
Damien George
14b929f1d9
Merge branch 'master' of github.com:msiemens/micropython into msiemens-master
2014-01-29 22:24:35 +00:00
Damien George
b40892d266
Rename array test to array1 so it doesn't clash with array module.
...
On my machine, 'import array' in CPython tries to load the array test.
2014-01-28 23:12:35 +00:00
Markus Siemens
19ccc6bdc7
Added Windows port (see #233 )
2014-01-28 18:21:05 +01:00
Paul Sokolovsky
1801421f6d
bytearray: Print objects properly.
2014-01-28 03:40:48 +02:00
Paul Sokolovsky
8e991e0680
Add basic array.array test.
2014-01-28 03:19:32 +02:00
Damien George
c7aa9fcae5
Merge branch 'master' of github.com:micropython/micropython
2014-01-27 23:16:20 +00:00
Damien George
4e8dc8c41b
py: Add unary op not for NoneType, bool, tuple, list, dict; fix for int.
2014-01-27 23:15:32 +00:00
Paul Sokolovsky
9b00dad7bb
long int: Implement more operations.
2014-01-27 12:25:23 +02:00
Paul Sokolovsky
14d28be344
gen.send(): Throw StopIteration. Also, explicitly shutdown finished gen.
...
Otherwise, some generator statements still may be spuriously executed on
subsequent calls to next()/send().
2014-01-27 01:07:58 +02:00
Paul Sokolovsky
bf38e2a03a
Implement send() method for generators.
2014-01-26 20:56:08 +02: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
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
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
Paul Sokolovsky
0b7184dcb8
Implement octal and hex escapes in strings.
2014-01-22 22:48:25 +02: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
Paul Sokolovsky
d30e019459
Add bytearray basic tests.
2014-01-21 23:59:50 +02:00
Paul Sokolovsky
7280f79088
run-tests: Allow to run tests selectively via command line.
2014-01-21 05:02:58 +02: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
decd597273
unix io.FileIO: Add iteration support.
...
A file cannot be iterated concurrently, so we make io.FileIO its own
iterator.
2014-01-20 18:42:08 +02:00
Damien George
7d08935458
Rename unix binary to 'micropython'.
2014-01-20 00:02:39 +00:00
Paul Sokolovsky
fe2690da0a
unix: Implement sys.argv.
2014-01-20 01:00:28 +02:00
Paul Sokolovsky
db796ef84d
Add README for tests/.
2014-01-19 18:51:59 +02:00
Paul Sokolovsky
9954b4b99d
Add directory for I/O tests with basic test for file methods.
2014-01-19 18:46:21 +02:00
Paul Sokolovsky
8c3858b016
Move tests in basic/tests/ up one level preparating to multiple test dirs.
2014-01-19 18:41:55 +02:00
Damien George
ebde0b8a09
Tiny optimisation in objlist.c; a new test for inheritance.
2014-01-19 00:47:40 +00:00
Damien George
aefe79880f
Merge branch 'master' of github.com:micropython/micropython
2014-01-18 17:54:35 +00: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
b31b5e0b5c
Add testcase for subclassing builtin type and calling native method (broken).
2014-01-18 19:12:17 +02:00
Damien George
1d6fc94c16
Implement framework for class-defined built-in operators.
...
Now working for class-defined methods: __getitem__, __setitem__,
__add__, __sub__. Easy to add others.
2014-01-18 15:31:13 +00:00
Paul Sokolovsky
10744dd816
Add empty (false) value testing for strings, tuples, lists, dicts.
2014-01-16 23:54:17 +02:00
Paul Sokolovsky
f2b796e7c7
str.format: Don't assume that '}' immediately follows '{', skip insides.
...
That at least makes stuff like "{:x}".format(1) to produce not completely
broken output.
2014-01-16 03:46:01 +02:00
Damien George
5573f9f150
Merge branch 'str2int' of github.com:xyb/micropython into xyb-str2int
...
Conflicts:
py/objint.c
unix-cpy/Makefile
unix/Makefile
2014-01-15 22:58:39 +00:00
Damien George
4899ff9470
Merge branch 'str-repr' of github.com:pfalcon/micropython into pfalcon-str-repr
...
Conflicts:
tests/basics/tests/exception1.py
2014-01-15 22:39:03 +00:00
Damien George
7a9d0c4540
Merge branch 'builtins' of github.com:chipaca/micropython into chipaca-builtins
...
Added some checks for number of arguments.
Conflicts:
py/mpqstrraw.h
2014-01-15 22:27:16 +00:00
Damien George
d02c6d8962
Implement eval.
2014-01-15 22:14:03 +00:00
Damien George
e2fb2baaa4
Implement repr.
2014-01-15 21:40:48 +00:00
xyb
3e4ed25138
add more tests and remove debug code
2014-01-15 20:37:17 +08:00
xyb
3270fb4be6
int() test passed
2014-01-15 19:58:11 +08:00
John R. Lenton
fca456bc3c
added filter()
2014-01-15 01:37:08 +00:00
John R. Lenton
39b174e00a
Added map
2014-01-15 01:10:09 +00:00
Paul Sokolovsky
76d982ef34
type->print(): Distinguish str() and repr() variety by passing extra param.
2014-01-15 02:15:38 +02:00
John R. Lenton
ff8007c7d6
Merge remote-tracking branch 'upstream/master' into builtins
2014-01-14 23:58:05 +00:00
John R. Lenton
9daa78943e
added enumerate()
2014-01-14 23:55:01 +00:00
Damien George
39eab8de96
Merge pull request #161 from pfalcon/exc-more-pythonic
...
Move towards Python-compliant interface of exceptions
2014-01-14 15:27:59 -08:00
Damien George
66a5bf681d
Merge pull request #142 from chipaca/containment
...
Implemented support for `in` and `not in` operators.
2014-01-14 15:23:09 -08:00
Damien George
6c2401e935
Merge pull request #165 from chipaca/builtins
...
added zip()
2014-01-14 15:13:40 -08:00
Paul Sokolovsky
8bc96471f0
Implement "is" and "is not" operators.
...
So far, don't work for strings as expected.
2014-01-15 00:32:09 +02:00
Paul Sokolovsky
ddf2178d83
Refactor exception objects to have better impl of Python-side interface.
...
This implements internal args tuple of arguments, while still keeping
object useful for reporting C-side errors.
Further elaboration is needed.
2014-01-15 00:03:23 +02:00
xyb
c178ea471e
Implemented int(str) in UNIX
2014-01-14 21:39:05 +08:00
John R. Lenton
5c76839559
sorted
2014-01-13 05:12:50 +00:00
John R. Lenton
07205ec323
added zip()
2014-01-13 02:31:00 +00:00
John R. Lenton
13e64f0660
Merge remote-tracking branch 'upstream/master' into containment
2014-01-13 00:41:12 +00:00
Damien George
34f813ee29
Merge pull request #162 from chipaca/str_find
...
Implement a basic str.find; fixes #67
2014-01-12 16:34:03 -08:00
Damien George
ec3e14e2af
Merge pull request #160 from pfalcon/elaborate-int
...
Elaborate small-int/long-int
2014-01-12 16:32:21 -08:00
John R. Lenton
7244a14439
oops, nasty off-by-one in set_copy
2014-01-12 23:37:45 +00:00
John R. Lenton
be790f94d5
Implemented set binary ops.
2014-01-12 23:09:10 +00:00
John R. Lenton
e820491f7a
Implement a basic str.find; fixes #67
2014-01-12 21:53:52 +00:00
Paul Sokolovsky
757ac81a69
Add proper checks for fits-in-small-int. Make it reusable.
...
We likely should make mp_obj_new_int() inline, and rely on its
encapsulated check rather than inline checks everywhere explicitly.
Also, parser for big small int values is still broken.
2014-01-12 22:04:21 +02:00
John R. Lenton
0de386bffe
Implemented set.update
2014-01-12 19:50:50 +00:00
John R. Lenton
ae00d334c6
Implemented set.remove
2014-01-12 19:16:59 +00:00
John R. Lenton
4a08067c0c
Implemented set.isdisjoint
2014-01-12 18:03:21 +00:00
John R. Lenton
f1ae6b48fb
Implemented set.intersection and set.intersection_update
2014-01-12 17:54:03 +00:00
John R. Lenton
032129f3b5
Implemented set.difference and set.difference_update
2014-01-12 17:07:17 +00:00
John R. Lenton
2a24172cdc
Implemented set.discard
2014-01-12 16:39:39 +00:00
John R. Lenton
3b0bd87906
Implemented set.copy
2014-01-12 15:56:25 +00:00
John R. Lenton
1d7fb2f21b
Implemented set.clear
2014-01-12 15:44:26 +00:00
John R. Lenton
19b14d3d8a
Implemented set.add
2014-01-12 15:29:11 +00:00
John R. Lenton
0ce03b48a0
make sets iterable
2014-01-12 15:17:42 +00:00
Paul Sokolovsky
1945e60aeb
list: Implement comparison operators.
2014-01-12 03:34:04 +02:00
Paul Sokolovsky
c698d266d1
list: Add extend() methods and += operator.
2014-01-12 00:54:10 +02:00
John R. Lenton
c1bef21920
Implemented support for `in` and `not in` operators.
2014-01-11 12:39:33 +00:00
Damien George
ad97f2a49e
Merge pull request #136 from pfalcon/for-range-downto
...
compile_for_stmt_optimised_range(): Properly handle negative & unknown s...
2014-01-10 15:21:50 -08:00
Damien George
e9b4b7ac75
Merge pull request #135 from pfalcon/simple-raise
...
Crude attempt to implement RAISE_VARARGS (with args=1 so far only).
2014-01-10 15:20:08 -08:00
Damien George
46c9e97132
Merge pull request #134 from pfalcon/list-mul
...
list: Implement list multiplication.
2014-01-10 15:17:17 -08:00
Paul Sokolovsky
899c69f94c
compile_for_stmt_optimised_range(): Properly handle negative & unknown steps.
...
If step is not constant, in first approximation, we can't apply optimization,
(well, we could, but need a special case for this).
2014-01-11 01:00:21 +02:00
Paul Sokolovsky
5388a3c29a
Crude attempt to implement RAISE_VARARGS (with args=1 so far only).
2014-01-11 00:55:08 +02:00
Paul Sokolovsky
074d3b5f86
list: Implement list multiplication.
2014-01-11 00:49:19 +02:00
John R. Lenton
4bee76ebca
Added dict.fromkeys. Are we done with dict and #99 yet? I do think we are.
2014-01-10 11:25:03 +00:00
John R. Lenton
9ec3a87189
dict views now, refactoring later.
2014-01-10 01:00:20 +00:00
Damien George
f09e90316c
Merge pull request #121 from pfalcon/count-testcases
...
Count individual testcases when running tests.
2014-01-09 13:53:02 -08:00
Damien George
004cdcebfe
py: Implement base class lookup, issubclass, isinstance.
2014-01-09 21:43:51 +00:00
Damien George
062478e66d
Improved type/class/instance code; mp_obj_type_t now has load_attr, store_attr.
...
Creating of classes (types) and instances is much more like CPython now.
You can use "type('name', (), {...})" to create classes.
2014-01-09 20:57:50 +00:00
Paul Sokolovsky
926d2b621e
Count individual testcases when running tests.
...
The idea is simple: each print represents a testcase within a test unit.
As we don't have strict rules on which/how many testcase are put into
a test file, it's nice to have an idea how many *testcases* we have
totally. Would be nice to count how many testcases pass/fail, but
that's a bit less trivial.
2014-01-08 22:49:34 +02:00
Paul Sokolovsky
d944a66ead
Add string comparison tests.
...
Use computed string to exercise string interning code better.
2014-01-08 22:43:26 +02:00
John R. Lenton
9c83ec0eda
Merge remote-tracking branch 'upstream/master' into dict_feats
2014-01-07 23:06:46 +00:00
John R. Lenton
27d4ca7693
forgot to add test for dict.update
2014-01-07 22:51:51 +00:00
John R. Lenton
be8fe5be2e
Added dict.setdefault
2014-01-07 22:51:08 +00:00
John R. Lenton
f77dce8a5d
Added dict.popitem
2014-01-07 22:51:08 +00:00
John R. Lenton
0fcbaa442f
implemented dict.pop
2014-01-07 22:51:08 +00:00
John R. Lenton
cd0887352d
Added dict.get.
2014-01-07 22:51:08 +00:00
John R. Lenton
d90b19eca5
Added dict.copy
2014-01-07 22:51:08 +00:00
John R. Lenton
4ce6ceadca
Added dict.clear.
...
Added 0 to the list of primes. Funky primes, these.
2014-01-07 22:51:08 +00:00
John R. Lenton
a41fe31322
Added dict iterator.
2014-01-07 22:51:08 +00:00
John R. Lenton
ba3f87c947
Merge remote-tracking branch 'upstream/master' into list_reverse
2014-01-05 22:29:03 +00:00
Damien George
1703597c0b
Merge pull request #80 from xyb/striter
...
Implements str iterator
2014-01-05 05:53:31 -08:00
Damien George
f0691f4ed5
Fix qstr in objlist.c; add more tests for list.index.
...
list.index fails on an edge case.
2014-01-05 13:44:06 +00:00
Damien George
a3ab68e949
Merge pull request #78 from chipaca/list_index
...
Implements list.index. Fixes issue #57 .
2014-01-05 05:42:37 -08:00
Damien George
11f1e4b8f1
Add test for basic builtin types.
2014-01-05 11:39:59 +00:00
xyb
8cfc9f07b9
Implements str iterator
2014-01-05 18:47:51 +08:00
John R. Lenton
7e73a8fd09
Merge remote-tracking branch 'upstream/master' into list_index
2014-01-05 01:57:54 +00:00
Damien George
4d4bc9533e
Merge pull request #70 from chipaca/list_count
...
Implements list.count. Fixes isue #55 .
2014-01-04 10:09:40 -08:00
Paul Sokolovsky
9464cde3c9
Unbreak string slice test by just switching to normal (not byte) strings.
2014-01-04 19:12:05 +02:00
Paul Sokolovsky
21dfb55dad
tests/basics requires python3.3
...
tests/bytecode/run-tests already uses puthon3.3, so let's just use it here
too.
Fore reference, errors with python 3.2.3:
File "tests/generator1.py", line 12
return None
SyntaxError: 'return' with argument inside generator
File "tests/list_clear.py", line 3, in <module>
x.clear()
AttributeError: 'list' object has no attribute 'clear'
etc.
2014-01-04 19:06:34 +02:00
John R. Lenton
ff9a24f6f7
Merge remote-tracking branch 'upstream/master' into list_count
2014-01-04 12:52:07 +00:00
Damien George
0be78d44e5
Merge pull request #64 from pfalcon/str-slice-range-check
...
str slice: Trim slice indexes to be in range.
2014-01-04 04:28:57 -08:00
Damien George
597bb2f249
Merge pull request #60 from chipaca/list_copy
...
Implemented list.copy. Fixes issue #54 .
2014-01-04 04:25:46 -08:00
John R. Lenton
6e1e98f864
Implements list.reverse; fixes issue #66
2014-01-04 02:10:29 +00:00
John R. Lenton
49fb6e53b3
Implements list.remove (in terms of list.index and list.pop).
...
Fixes issue #63 .
2014-01-04 01:56:53 +00:00
Paul Sokolovsky
6ee1e383d6
str slice: Trim slice indexes to be in range.
2014-01-04 03:55:37 +02:00
John R. Lenton
f1c6ad46af
Merge remote-tracking branch 'upstream/master' into list_insert
2014-01-04 01:36:10 +00:00
John R. Lenton
a58cf679ee
Merge remote-tracking branch 'upstream/master' into list_count
2014-01-04 01:28:40 +00:00
John R. Lenton
45a8744617
Implements list.insert. Fixes issue #61 .
2014-01-04 01:15:01 +00:00
Damien George
c8d1384fc0
Fix int -> machine_int_t; add print to slice test.
2014-01-04 01:06:10 +00:00
Damien George
b95d90b2f3
Merge pull request #59 from pfalcon/slice
...
Implement basic slice object and string slicing
2014-01-03 17:03:19 -08:00
Paul Sokolovsky
26534cec85
Add test for byte string slicing.
2014-01-04 02:35:48 +02:00
John R. Lenton
5d4a821339
Implements list.index. Fixes issue #57 .
2014-01-04 00:26:30 +00:00
John R. Lenton
e241e8c169
Implemented list.count
2014-01-03 23:57:28 +00:00
John R. Lenton
26c211648b
Implemented list.copy. Fixes issue #54 .
2014-01-03 23:42:17 +00:00
John R. Lenton
069ded9514
Added list.clear. Fixes issue #53 .
2014-01-03 23:22:53 +00:00
John R. Lenton
64427d6ee6
renamed some tests to have better names.
2014-01-03 23:03:41 +00:00
John R. Lenton
97334c85d0
Merge remote-tracking branch 'upstream/master'
2014-01-03 22:55:16 +00:00
John R. Lenton
25f417c08c
Worked on list.pop:
...
* Fixes issue #51
* Adds a specific error message for when you try to pop an empty list.
* Releases some memory if the list has shurnk a lot.
2014-01-03 22:53:18 +00:00
Damien George
4b57fac1c8
Merge pull request #43 from chipaca/master
...
Implement list addition.
2014-01-03 07:11:42 -08:00
Damien George
66028ab6dc
Basic implementation of import.
...
import works for simple cases. Still work to do on finding the right
script, and setting globals/locals correctly when running an imported
function.
2014-01-03 14:03:48 +00:00
John R. Lenton
4cb80582c4
Add list addition ( fixes : #39 )
2014-01-03 02:27:08 +00:00
Damien George
0ff883904a
py: Fix generator where state array was incorrectly indexed.
...
Generator objects now allocate the object and the state in one malloc.
This improvement fixes Issue #38 .
2014-01-02 20:57:05 +00:00
Damien George
bbabfb40ba
Fix bash->/usr/bin/env bash; add LICENSE for Python library tests.
2014-01-02 16:14:19 +00:00
Damien George
6baf76e28b
py: make closures work.
2013-12-30 22:32:17 +00:00
Damien
046147dcd5
Small change to handling of integers in run-tests.
2013-12-29 22:38:03 +00:00
Damien
39977a56da
Add basic functionality tests for the Python bit.
2013-12-29 22:34:42 +00:00
Damien
5ebbfe7e51
Add 2 files to a gitignore.
2013-12-29 18:22:03 +00:00
Damien
2eda70874e
Add tests to test compiler and emitted byte code.
2013-12-29 18:21:02 +00:00