aboutsummaryrefslogtreecommitdiff
path: root/py
AgeCommit message (Collapse)Author
2014-03-31mp_resume: Elaborate handling of .throw() for objects which lack it.Paul Sokolovsky
In this case, the exception is just re-thrown - the ideas is that object doesn't handle this exception specially, so it will propagated per Python semantics.
2014-03-31objgenerator.throw(GeneratorExit) is not equivalent to .close().Paul Sokolovsky
.throw() propagates any exceptions, and .close() swallows them. Yielding in reponse to .throw(GeneratorExit) is still fatal, and we need to handle it for .throw() case separately (previously it was handled only for .close() case). Obscure corner cases due to test_pep380.py.
2014-03-31objgenerator: Another obscure case of propagating MP_OBJ_NULL optimization.Paul Sokolovsky
2014-03-31py: Towards default keyword arguments.Damien George
These are default arguments after a bare *.
2014-03-31Merge branch 'master' of github.com:micropython/micropythonDamien George
2014-03-31py: Add LOAD_NULL bytecode and use it to simplify function calls.Damien George
Adding this bytecode allows to remove 4 others related to function/method calls with * and ** support. Will also help with bytecodes that make functions/closures with default positional and keyword args.
2014-03-31py: Rename and reorder parameters in emit_make_function/closure.Damien George
In preparation for implementing default keyword arguments.
2014-03-31py: Properly implement divide-by-zero handling.Paul Sokolovsky
"1/0" is sacred idiom, the shortest way to break program execution (sys.exit() is too long).
2014-03-31objfloat: Quick&dirty implementation of float floor division.Paul Sokolovsky
TODO: Likely doesn't match Python semantics for negative numbers.
2014-03-31compile: Don't try to constant-fold division by zero.Paul Sokolovsky
The way it is, just crashes app. And optimizing to "raise ZeroDivisionError" is probably too much.
2014-03-31objfloat: Make sure that floats always have dot (for C "double" type case).Paul Sokolovsky
This matches CPython behavior and hopefully can be treated as general Python semantics.
2014-03-31objfloat: Missing default: caused incorrect results for unimplemented ops.Paul Sokolovsky
2014-03-31objexcept: No more magic messages in exceptions, only exception arguments.Paul Sokolovsky
One of the reason for separate "message" (besides still unfulfilled desire to optimize memory usage) was apparent special handling of exception with messages by CPython. Well, the message is still just an exception argument, it just printed specially. Implement that with PRINT_EXC printing format.
2014-03-30py: Add equality test for None object.Damien George
2014-03-30py: Add explicit conversion from float to int via int().Damien George
2014-03-30py: Fix bug in compiler for empty class bases.Damien George
Eg class A(): pass would fail an assertion.
2014-03-30py: Don't wrap necessary function calls in assert.Damien George
2014-03-30Merge pull request #399 from pfalcon/gen-defargsDamien George
objgenerator: Handle default args to generator functions.
2014-03-30py: Fix "TypeError: 'iterator' object is not iterable", doh.Paul Sokolovsky
2014-03-30py: Implement support for generalized generator protocol.Paul Sokolovsky
Iterators and ducktype objects can now be arguments of yield from.
2014-03-30objzip: Use mp_identity().Paul Sokolovsky
2014-03-30py: Implement positional and keyword args via * and **.Damien George
Extends previous implementation with * for function calls to * and ** for both function and method calls.
2014-03-30Merge pull request #396 from pfalcon/call-starDamien George
vm: Implement CALL_FUNCTION_VAR opcode (foo(*(1, 2, 3))).
2014-03-30objgenerator: Handle default args to generator functions.Paul Sokolovsky
Addresses #397.
2014-03-30vm: Implement DELETE_FAST_N bytecode.Paul Sokolovsky
2014-03-30vm: Implement CALL_FUNCTION_VAR opcode (foo(*(1, 2, 3))).Paul Sokolovsky
2014-03-30showbc: Dump all CALL_FUNCTION_* and CALL_METHOD_* opcodes.Paul Sokolovsky
2014-03-30Merge map.h into obj.h.Damien George
Pretty much everyone needs to include map.h, since it's such an integral part of the Micro Python object implementation. Thus, the definitions are now in obj.h instead. map.h is removed.
2014-03-30Rename rt_* to mp_*.Damien George
Mostly just a global search and replace. Except rt_is_true which becomes mp_obj_is_true. Still would like to tidy up some of the names, but this will do for now.
2014-03-30objexcept: Fix another place missing proper args tuple initialization.Paul Sokolovsky
2014-03-30objgenerator.throw: Instantiate if exception type passed, just as "raise".Paul Sokolovsky
Caught by CPython test_pep380.py.
2014-03-30objgenerator.throw(): Throwing GeneratorExit is equivalent to .close().Paul Sokolovsky
According to PEP380 and caught by CPython test_pep380.py .
2014-03-30objgenerator: Store proper code_info pointer.Paul Sokolovsky
2014-03-30objgenerator: mp_obj_gen_resume() suitable only for generators.Paul Sokolovsky
2014-03-30compile: Print error messages on unimplemented relative imports.Paul Sokolovsky
2014-03-30mp_obj_print_exception(): Assert that traceback has sane number of entries.Paul Sokolovsky
2014-03-30py: Rename mp_exc_stack to mp_exc_stack_t.Damien George
2014-03-30py: Fix reraise logic.Damien George
2014-03-30vm: Save current active exception on opening new try block.Paul Sokolovsky
Required to reraise correct exceptions in except block, regardless if more try blocks with active exceptions happen in the same except block. P.S. This "automagic reraise" appears to be quite wasteful feature of Python - we need to save pending exception just in case it *might* be reraised. Instead, programmer could explcitly capture exception to a variable using "except ... as var", and reraise that. So, consider disabling argless raise support as an optimization.
2014-03-30vm: WITH_CLEANUP: use POP_EXC_BLOCK().Paul Sokolovsky
2014-03-29vm: Establish macros PUSH_EXC_BLOCK & POP_EXC_BLOCK to deal with exc stack.Paul Sokolovsky
E.g. to handle currently_in_except_block restoring properly.
2014-03-29py: Reraising exception possible only in except block.Paul Sokolovsky
2014-03-29Merge branch 'master' of github.com:micropython/micropythonDamien George
2014-03-29py: Support mpz -op- float, mpz -op- complex, and complex -op- mpz.Damien George
2014-03-29vm: Elaborate comments for WITH_CLEANUP, other cosmetic fixes.Paul Sokolovsky
2014-03-29py: Make MP_BC_SETUP_WITH use the bytecode stack for load_method.Damien George
The compiler allocates 7 entries on the stack for a with statement (following CPython, but probably can be reduced). This is enough for the method load and call in SETUP_WITH.
2014-03-29Merge pull request #389 from pfalcon/with-statementDamien George
With statement implementation
2014-03-29py: Fix regress with GeneratorExit object becoming truly const.Damien George
2014-03-29py: Rename old const type objects to mp_type_* for consistency.Damien George
2014-03-29py: Change mp_const_* objects to macros.Damien George
Addresses issue #388.