- 01 Jun, 2014 1 commit
-
-
Damien George authored
This renames: MICROPY_PY_FROZENSET -> MICROPY_PY_BUILTINS_FROZENSET MICROPY_PY_PROPERTY -> MICROPY_PY_BUILTINS_PROPERTY MICROPY_PY_SLICE -> MICROPY_PY_BUILTINS_SLICE MICROPY_ENABLE_FLOAT -> MICROPY_PY_BUILTINS_FLOAT See issue #35 for discussion.
-
- 24 May, 2014 1 commit
-
-
Damien George authored
Now of the form MICROPY_PY_*. See issue #35.
-
- 21 May, 2014 4 commits
-
-
Paul Sokolovsky authored
Caveat is that __new__ should recurse to base class __new__, and ultimately, object.__new__ is what handles instance allocation.
-
Paul Sokolovsky authored
Also, define object.__init__() (semantically empty, purely CPython compat measure). Addresses #520.
-
Paul Sokolovsky authored
-
Damien George authored
See issue #608 for justification.
-
- 19 May, 2014 1 commit
-
-
Paul Sokolovsky authored
Now schedule is: for native types, we call ->make_new() C-level method, which should perform actions of __new__ and __init__ (note that this is not compliant, but is efficient), but for user types, __new__ and __init__ are called as expected. Also, make sure we convert scalar attribute value to a bound-pair tight in mp_obj_class_lookup() method, which avoids converting it again and again in its callers.
-
- 13 May, 2014 1 commit
-
-
Paul Sokolovsky authored
-
- 11 May, 2014 3 commits
-
-
Damien George authored
Updated functions now do proper checking that n_kw==0, and are simpler because they don't have to explicitly raise an exception. Down side is that the error messages no longer include the function name, but that's acceptable. Saves order 300 text bytes on x64 and ARM.
-
Paul Sokolovsky authored
Two things are handled here: allow to compare native subtypes of tuple, e.g. namedtuple (TODO: should compare type too, currently compared duck-typedly by content). Secondly, allow user sunclasses of tuples (and its subtypes) be compared either. "Magic" I did previously in objtype.c covers only one argument (lhs is many), so we're in trouble when lhs is native type - there's no other option besides handling rhs in special manner. Fortunately, this patch outlines approach with fast path for native types.
-
Paul Sokolovsky authored
This was hit when trying to make urlparse.py from stdlib run. Took quite some time to debug. TODO: Reconsile bound method creation process better, maybe callable is to generic type to bind at all?
-
- 10 May, 2014 4 commits
-
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
Includes support for native bases.
-
Paul Sokolovsky authored
"object" type in MicroPython currently doesn't implement any methods, and hopefully, we'll try to stay like that for as long as possible. Even if we have to add something eventually, look up from there might be handled in adhoc manner, as last resort (that's not compliant with Python3 MRO, but we're already non-compliant). Hence: 1) no need to spend type trying to lookup anything in object; 2) no need to allocate subobject when explicitly inheriting from object; 3) and having multiple bases inheriting from object is not a case of incompatible multiple inheritance.
-
Damien George authored
-
- 03 May, 2014 2 commits
-
-
Damien George authored
Blanket wide to all .c and .h files. Some files originating from ST are difficult to deal with (license wise) so it was left out of those. Also merged modpyb.h, modos.h, modstm.h and modtime.h in stmhal/.
-
Damien George authored
This follows up 0a7e01ae.
-
- 02 May, 2014 2 commits
-
-
Paul Sokolovsky authored
Specifically, nlr.h does.
-
Paul Sokolovsky authored
-
- 01 May, 2014 2 commits
-
-
Paul Sokolovsky authored
TODO: Rename methods.
-
Paul Sokolovsky authored
This is ugly, just as expected.
-
- 29 Apr, 2014 3 commits
-
-
Paul Sokolovsky authored
Biggest part of this support is refactoring mp_obj_class_lookup() to return standard "bound member" pair (mp_obj_t[2]). Actual support of inherited native methods is 3 lines then. Some inherited features may be not supported yet (e.g. native class methods, native properties, etc., etc.). There may be opportunities for further optimization too.
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
This implements checking of base types, allocation and basic initialization, and optimized support for special method lookups. Other features are not yet supported.
-
- 25 Apr, 2014 1 commit
-
-
Paul Sokolovsky authored
-
- 21 Apr, 2014 1 commit
-
-
Damien George authored
This is a one-liner fix. It gets the class-super.py test passing, but is probably not a complete fix.
-
- 17 Apr, 2014 2 commits
-
-
Damien George authored
Also make consistent use of MP_OBJ_NOT_SUPPORTED and MP_OBJ_NULL. This helps a lot in debugging and understanding of function API.
-
Damien George authored
mp_obj_t->subscr now does load/store/delete.
-
- 14 Apr, 2014 1 commit
-
-
Paul Sokolovsky authored
-
- 13 Apr, 2014 1 commit
-
-
Damien George authored
Enabled by MICROPY_ENABLE_PROPERTY.
-
- 08 Apr, 2014 2 commits
-
-
Damien George authored
This makes the runtime and object APIs more consistent. mp_store_subscr functionality now moved into objects (ie list and dict store_item).
-
Damien George authored
At this point, all opcodes are now implemented! Some del opcodes have been combined with store opcodes, with the value to store being MP_OBJ_NULL.
-
- 05 Apr, 2014 3 commits
-
-
Damien George authored
This makes isinstance(X, object) and issubclass(X, object) true for all X.
-
Damien George authored
This does not affect code size or performance when debugging turned off. To address issue #420.
-
Paul Sokolovsky authored
-
- 02 Apr, 2014 1 commit
-
-
Damien George authored
-
- 31 Mar, 2014 3 commits
-
-
Damien George authored
It's not completely satisfactory, because a failed call to __getattr__ should not raise an exception. __setattr__ could be implemented, but it would slow down all stores to a user created object. Need to implement some caching system.
-
Paul Sokolovsky authored
Because it's runtime reflection feature, not required for many apps. Rant time: Python could really use better str() vs repr() distinction, for example, repr(type) could be "<class 'foo'>" (as it is now), and str(type) just "foo". But alas, getting straight name requires adhoc attribute.
-
Paul Sokolovsky authored
It's virtual because it's not shown in dir(...). (That's also how CPython has it).
-
- 30 Mar, 2014 1 commit
-
-
Damien George authored
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.
-