Paul Sokolovsky
e9137b94f2
py: Implement getattr() builtin.
11 years ago
Paul Sokolovsky
2447a5b582
py: Support closures with default args.
11 years ago
Damien George
66eaf84b8c
py: Replace mp_const_stop_iteration object with MP_OBJ_NULL.
11 years ago
Paul Sokolovsky
c403076ef8
vm: Implement raise statement w/o args (reraising last exception).
11 years ago
Paul Sokolovsky
962b1cd1b1
objgenerator: Implement return with value and .close() method.
Return with value gets converted to StopIteration(value). Implementation
keeps optimizing against creating of possibly unneeded exception objects,
so there're considerable refactoring to implement these features.
11 years ago
Damien George
ffb5cfc8d8
py: Removed some unnecessary exception objects.
They still exist in commented-out form in objexcept.c if they are ever
needed.
11 years ago
Paul Sokolovsky
9512e9e817
objexcept: Add "args" exception attribute, as well as StopIteration.value.
11 years ago
Paul Sokolovsky
7f8b31345b
rt_load_method(): Add missing qstr_str() when getting type name.
11 years ago
xbe
17a5a83fb4
Implement str.rfind() and add tests for it.
11 years ago
Paul Sokolovsky
f909034400
py: Implement support for "except Exception as var" clause.
For this, needed to implement DELETE_NAME bytecode (because var bound
in except clause is automatically deleted at its end).
http://docs.python.org/3/reference/compound_stmts.html#except :
"When an exception has been assigned using as target, it is cleared at
the end of the except clause."
11 years ago
Paul Sokolovsky
fd232c3ef7
run-tests: Dump output of failing tests to files again.
This was a long-standing regression from converting script from sh to python.
11 years ago
Rachel Dowdall
2d15deebdc
Fixed floor division on mp ints and small ints. Added a floordivide test case.
11 years ago
Rachel Dowdall
56402796d8
Fixed floor division on mp ints and small ints. Added a floordivide test case.
11 years ago
Rachel Dowdall
cde8631f15
Fixed modulo operator on ints and mp ints to agree with python. Added intdivmod.c and tests/basics/modulo.py.
11 years ago
Paul Sokolovsky
48caa09a9d
objgenerator: Implement .throw() method to throw exceptions into generator.
11 years ago
Paul Sokolovsky
61fd20f168
objgenerator: Implement throwing exceptions out of generator.
11 years ago
Paul Sokolovsky
c0abc28aa1
objgenerator: Keep exception stack within generator object, like value stack.
This is required to properly handle exceptions across yields.
11 years ago
Rachel Dowdall
721c55dced
Added exception hierarchy except for OSError and UnicodeError (requires arguments). Comment out the errors that aren't needed if memory becomes an issue.
11 years ago
Rachel Dowdall
249b9c761d
Fixed broken math functions that return bool and added some more.
11 years ago
Paul Sokolovsky
1ecea7c753
py: Make 'bytes' be a proper type, support standard constructor args.
11 years ago
Paul Sokolovsky
42901554db
objint_longlong: Add regression test for improper inplace op implementation.
11 years ago
xbe
4504ea8007
Implement str.rpartition and add tests for it.
11 years ago
xbe
613a8e3edf
Implement str.partition and add tests for it.
11 years ago
Damien George
1609f85582
Rename test so that it doesn't clash with Python math module.
11 years ago
Rachel Dowdall
5a14a1d690
Added various simple functions to math module.
11 years ago
Damien George
2d7ff07175
py: Add mpz modulo operation.
11 years ago
Paul Sokolovsky
51bbf6a006
Implement support for __str__ and __repr__ special methods in classes.
11 years ago
Damien George
536dde254b
py: In string.count, handle case of zero-length needle.
11 years ago
xbe
c5d70ba48b
Fix issues in str.count implementation.
See pull request #343 .
11 years ago
xbe
9e1e8cd642
Implement str.count and add tests for it.
Also modify mp_get_index to accept:
1. Indices that are or evaluate to a boolean.
2. Slice indices.
Add tests for these two cases.
11 years ago
Damien George
b068b21742
Add more tests for multi-precision integers.
11 years ago
Damien George
25f5a30e73
py: Fix overriding of default arguments.
Addresses issue #327 .
11 years ago
Paul Sokolovsky
e74f52b76c
namedtuple: Inherit unary/binary ops from tuple base class.
11 years ago
Paul Sokolovsky
d08fd68664
Add basic collections.namedtuple implementation.
11 years ago
Damien George
06201ff3d6
py: Implement bit-shift and not operations for mpz.
Implement not, shl and shr in mpz library. Add function to create mpzs
on the stack, used for memory efficiency when rhs is a small int.
Factor out code to parse base-prefix of number into a dedicated function.
11 years ago
Paul Sokolovsky
135002a086
Add basic super() test.
11 years ago
Paul Sokolovsky
56e5ef203b
parse: Refactor parse node encoding to support full range of small ints.
Based on suggestion by @dpgeorge at
https://github.com/micropython/micropython/pull/313
11 years ago
Paul Sokolovsky
fb7f94392d
import: Implement "from pkg.mod import sym" syntax properly.
http://docs.python.org/3.3/library/functions.html#__import__ :
"When the name variable is of the form package.module, normally, the
top-level package (the name up till the first dot) is returned, not
the module named by name. However, when a non-empty fromlist argument
is given, the module named by name is returned."
11 years ago
Paul Sokolovsky
ac2e28c654
Support passing positional args as keywords to bytecode functions.
For this, record argument names along with each bytecode function. The code
still includes extensive debug logging support so far.
11 years ago
Paul Sokolovsky
1b694c082e
Rename fun-kwargs.py -> fun-kwvarargs.py to free up slot for simple kw test.
11 years ago
Paul Sokolovsky
91ba7a54c5
builtinimport: Get the basic (and only basic) package imports work.
11 years ago
Damien George
e5d371b545
py: Pass keyword arguments to byte code.
11 years ago
Damien George
2e482cdb7b
py: Implement *vargs support.
Addresses issue #295 .
11 years ago
Damien George
c8f78bc280
py: VM never throws an exception, instead returns a status and value.
Addresses issue #290 , and hopefully sets up things to allow generators
throwing exceptions, etc.
11 years ago
Paul Sokolovsky
8ac72b9d00
Add testcase for failing namespace switch throwing exception from a module.
Issue #290 . This currently fails, to draw attention to the issue.
11 years ago
Paul Sokolovsky
e7299b5296
Add testcase for "from module import *".
11 years ago
Paul Sokolovsky
b2e8c52298
Add testcase for "from module import sym".
11 years ago
Paul Sokolovsky
2aa217b974
Implement full arg handling for exec().
11 years ago
Paul Sokolovsky
8d90a382cf
basics/enumerate.py: Don't turn enumerate test into heap test.
With range(10000), doesn't fit into 128K heap.
11 years ago
Paul Sokolovsky
ac0134d427
Factor out mp_seq_count_obj() and implement tuple.count().
11 years ago