Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | py: Big improvements to inline assembler. | Damien George | 2014-04-13 |
| | | | | | | | | | Improved the Thumb assembler back end. Added many more Thumb instructions to the inline assembler. Improved parsing of assembler instructions and arguments. Assembler functions can now be passed the address of any object that supports the buffer protocol (to get the address of the buffer). Added an example of how to sum numbers from an array in assembler. | ||
* | py: Make all LOAD_FAST ops check for unbound local. | Damien George | 2014-04-12 |
| | | | | | | | | This is necessary to catch all cases where locals are referenced before assignment. We still keep the _0, _1, _2 versions of LOAD_FAST to help reduced the byte code size in RAM. Addresses issue #457. | ||
* | Merge branch 'master' of github.com:micropython/micropython | Damien George | 2014-04-12 |
|\ | |||
| * | builtinimport: Implement relative imports. | Paul Sokolovsky | 2014-04-12 |
| | | |||
| * | showbc: Add quotes around (some) string args, to show empty string properly. | Paul Sokolovsky | 2014-04-12 |
| | | |||
* | | py: Improve inline assembler; improve compiler constant folding. | Damien George | 2014-04-12 |
| | | |||
* | | py: Add 'static' to inline function MP_BOOL; remove category_t. | Damien George | 2014-04-12 |
|/ | | | | | Small fixes to get it compiling with ARMCC. I have no idea why category_t was in the enum definition for qstrs... | ||
* | py: Fix compiler warning when floats disabled. | Damien George | 2014-04-12 |
| | |||
* | py: Make ImportError message match CPython's. | Paul Sokolovsky | 2014-04-12 |
| | |||
* | builtinimport: Set __path__ attribute ASAP as it's clear we have a package. | Paul Sokolovsky | 2014-04-12 |
| | | | | | This helps with handling "recursive" imports in sane manner, for example when foo/__init__.py has something like "from foo import submod". | ||
* | builtinimport: Fix thinko passing 0 vs NULL. | Paul Sokolovsky | 2014-04-12 |
| | |||
* | py: Remove useless implementations of NOT_EQUAL in binary_op's. | Damien George | 2014-04-12 |
| | | | | | | | I'm pretty sure these are never reached, since NOT_EQUAL is always converted into EQUAL in mp_binary_op. No one should call type.binary_op directly, they should always go through mp_binary_op (or mp_obj_is_equal). | ||
* | py: Change inline to static inline for 2 functions. | Damien George | 2014-04-12 |
| | |||
* | py, compiler: Fix up creation of default positionals tuple. | Damien George | 2014-04-12 |
| | | | | | With new order of evaluation of defaults, creating the tuple was done in the wrong spot. | ||
* | Merge branch 'master' of github.com:micropython/micropython | Damien George | 2014-04-11 |
|\ | |||
| * | showbs: Dump LOAD_CONST_BYTES. | Paul Sokolovsky | 2014-04-12 |
| | | |||
| * | showbc: Dump LOAD_NULL. | Paul Sokolovsky | 2014-04-12 |
| | | |||
| * | py: Implement "from pkg import mod" variant of import. | Paul Sokolovsky | 2014-04-12 |
| | | |||
| * | builtinimport: Set __path__ attribute on packages. | Paul Sokolovsky | 2014-04-12 |
| | | | | | | | | | | | | | | Per https://docs.python.org/3.3/reference/import.html , this is the way to tell module from package: "Specifically, any module that contains a __path__ attribute is considered a package." And it for sure will be needed to implement relative imports. | ||
| * | builtinimport: Elaborate debug output support. | Paul Sokolovsky | 2014-04-12 |
| | | |||
| * | py: Preprocess qstrdefs.h before feeding to makeqstrdata.py. | Paul Sokolovsky | 2014-04-12 |
| | | | | | | | | | | This is alternative implementation of supporting conditionals in qstrdefs.h, hard to say if it's much cleaner than munging #ifdef's in Python code... | ||
| * | Revert "makeqstrdata.py: Add support for conditionally defined qstrs." | Paul Sokolovsky | 2014-04-12 |
| | | | | | | | | | | | | This reverts commit acb133d1b1a68847bd85c545312c3e221a6f7c0b. Conditionals will be suported using C preprocessor. | ||
* | | py, compiler: Fix compiling of keyword args following named star. | Damien George | 2014-04-11 |
|/ | |||
* | py: Revert some inline functions back to macros, since they bloat stmhal. | Damien George | 2014-04-11 |
| | |||
* | py: Change compile order for default positional and keyword args. | Damien George | 2014-04-11 |
| | | | | | | | | | | | This simplifies the compiler a little, since now it can do 1 pass over a function declaration, to determine default arguments. I would have done this originally, but CPython 3.3 somehow had the default keyword args compiled before the default position args (even though they appear in the other order in the text of the script), and I thought it was important to have the same order of execution when evaluating default arguments. CPython 3.4 has changed the order to the more obvious one, so we can also change. | ||
* | py, compiler: Allow lambda's to yield. | Damien George | 2014-04-11 |
| | |||
* | py: Implement compiling of *-expr within parenthesis. | Damien George | 2014-04-11 |
| | |||
* | py: Convert some macros to inline functions (in obj.h). | Damien George | 2014-04-11 |
| | | | | | | Also convert mp_obj_is_integer to an inline function. Overall this decreased code size (at least on 32-bit x86 machine). | ||
* | py: Fix up object equality test. | Damien George | 2014-04-11 |
| | | | | | It regressed a bit after implementing float/complex equality. Now it should be improved, and support more equality tests. | ||
* | py: Simplify and improve mp_get_index. | Damien George | 2014-04-11 |
| | | | | | | | It has (again) a fast path for ints, and a simplified "slow" path for everything else. Also simplify the way str indexing is done (now matches tuple and list). | ||
* | Merge branch 'master' of github.com:micropython/micropython | Damien George | 2014-04-11 |
|\ | |||
| * | Merge pull request #461 from lurch/patch-1 | Damien George | 2014-04-11 |
| |\ | | | | | | | Update mkrules.mk | ||
| | * | Update mkrules.mk | Andrew Scheller | 2014-04-11 |
| | | | | | | | | | make 'make clean' cleaner ;-) | ||
* | | | py: Implement float and complex == and !=. | Damien George | 2014-04-11 |
|/ / | | | | | | | Addresses issue #462. | ||
* | | py: Check that sequence has 2 elements for dict iterable constructor. | Damien George | 2014-04-11 |
| | | |||
* | | objdict: Implement construction from iterable of pairs. | Paul Sokolovsky | 2014-04-11 |
| | | | | | | | | Pairs are limited to tuples so far. | ||
* | | objdict: Implement __getitem__ method. | Paul Sokolovsky | 2014-04-11 |
| | | |||
* | | modstruct: Basic implementation of native struct alignment and types. | Paul Sokolovsky | 2014-04-11 |
| | | |||
* | | binary: Rename array accessors for clarity. | Paul Sokolovsky | 2014-04-11 |
| | | |||
* | | mpconfig.h: Add basic support for target endianness configuration. | Paul Sokolovsky | 2014-04-11 |
| | | | | | | | | | | | | | | A specific target can define either MP_ENDIANNESS_LITTLE or MP_ENDIANNESS_BIG to 1. Default is MP_ENDIANNESS_LITTLE. TODO: Autodetect based on compiler predefined macros? | ||
* | | modstruct: Refactor to support both LE and BE packed structs. | Paul Sokolovsky | 2014-04-11 |
|/ | |||
* | py: Add simple way of looking up constants in compiler. | Damien George | 2014-04-10 |
| | | | | | | | | | | | | Working towards trying to support compile-time constants (see discussion in issue #227), this patch allows the compiler to look inside arbitrary uPy objects at compile time. The objects to search are given by the macro MICROPY_EXTRA_CONSTANTS (so they must be constant/ROM objects), and the constant folding occures on forms base.attr (both base and attr must be id's). It works, but it breaks strict CPython compatibility, since the lookup will succeed even without importing the namespace. | ||
* | py: Fix float/complex binop returning NULL; implement complex power. | Damien George | 2014-04-10 |
| | |||
* | py: Simplify stack get/set to become stack adjust in emitters. | Damien George | 2014-04-10 |
| | | | | Can do this now that the stack size calculation is improved. | ||
* | py, compiler: Improve stack depth counting. | Damien George | 2014-04-10 |
| | | | | Much less of a hack now. Hopefully it's correct! | ||
* | py: Make sure state/stack of byte code function has at least 1 slot. | Damien George | 2014-04-10 |
| | |||
* | py: Fix VM stack overflow detection. | Damien George | 2014-04-10 |
| | |||
* | py: Add option to VM to detect stack overflow. | Damien George | 2014-04-10 |
| | |||
* | py: Add missing dummy functions to pass 1 emitter. | Damien George | 2014-04-10 |
| | |||
* | py: Check explicitly for memory allocation failure in parser. | Damien George | 2014-04-10 |
| | | | | | | Previously, a failed malloc/realloc would throw an exception, which was not caught. I think it's better to keep the parser free from NLR (exception throwing), hence this patch. |