aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-04-11modffi: Update for latest binary API refactors.Paul Sokolovsky
2014-04-11modstruct: Basic implementation of native struct alignment and types.Paul Sokolovsky
2014-04-11binary: Rename array accessors for clarity.Paul Sokolovsky
2014-04-11mpconfig.h: Add basic support for target endianness configuration.Paul Sokolovsky
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?
2014-04-11modstruct: Refactor to support both LE and BE packed structs.Paul Sokolovsky
2014-04-10Merge pull request #460 from lurch/patch-2Damien George
Update .gitignore
2014-04-10Merge pull request #458 from lurch/patch-1Damien George
Tweak pybcdc.inf to match recent changes to pybcdc.h
2014-04-10stmhal: Add stm module, which contains some constants for the MCU.Damien George
Also contains raw memory read/write functions, read8, read16, read32, write8, write16, write32. Can now do: stm.write16(stm.GPIOA + stm.GPIO_BSRRL, 1 << 13) This turns on the red LED. With the new constant folding, the above constants for the GPIO address are actually compiled to constants (and the addition done) at compile time. For viper code and inline assembler, this optimisation will make a big difference. In the inline assembler, using these constants would not be possible without this constant folding.
2014-04-10py: Add simple way of looking up constants in compiler.Damien George
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.
2014-04-10Update .gitignoreAndrew Scheller
Add test failure logs
2014-04-10py: Fix float/complex binop returning NULL; implement complex power.Damien George
2014-04-10tests: Add test for multi-comparison.Damien George
2014-04-10py: Simplify stack get/set to become stack adjust in emitters.Damien George
Can do this now that the stack size calculation is improved.
2014-04-10py, compiler: Improve stack depth counting.Damien George
Much less of a hack now. Hopefully it's correct!
2014-04-10py: Make sure state/stack of byte code function has at least 1 slot.Damien George
2014-04-10py: Fix VM stack overflow detection.Damien George
2014-04-10py: Add option to VM to detect stack overflow.Damien George
2014-04-10py: Add missing dummy functions to pass 1 emitter.Damien George
2014-04-10py: Check explicitly for memory allocation failure in parser.Damien George
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.
2014-04-10Make lexerunix not allocate RAM for the entire script.Damien George
Now reads in small chunks at a time.
2014-04-10py: Add emergency exception object for when heap allocation fails.Damien George
2014-04-10py: Make labels unsigned ints (converted from int).Damien George
Labels should never be negative, and this modified type signature reflects that.
2014-04-10py: Fix modstruct to compile on 64-bit machine.Damien George
2014-04-10Merge branch 'master' of github.com:micropython/micropythonDamien George
2014-04-10py, compiler: Implement compiling of relative imports.Damien George
2014-04-10py: Fix lexer so it doesn't allow ! and ..Damien George
2014-04-10py: Make form-feed character a space (following C isspace).Damien George
Eg, in CPython stdlib, email/header.py has a form-feed character.
2014-04-10py, lexer: Fix parsing of raw strings (allow escaping of quote).Damien George
2014-04-10unix: Add option to only compile, and not execute code.Damien George
2014-04-10objfun: Fix default arguments filling loop, was broken in presense of kwargs.Paul Sokolovsky
2014-04-10objfun: More debug logging when calling a bytecode function.Paul Sokolovsky
2014-04-10Tweak pybcdc.inf to match recent changes to pybcdc.hAndrew Scheller
2014-04-10py: Start implementing "struct" module.Paul Sokolovsky
Only calcsize() and unpack() functions provided so far, for little-endian byte order. Format strings don't support repition spec (like "2b3i"). Unfortunately, dealing with all the various binary type sizes and alignments will lead to quite a bloated "binary" helper functions - if optimizing for speed. Need to think if using dynamic parametrized algos makes more sense.
2014-04-10makeqstrdata.py: Add support for conditionally defined qstrs.Paul Sokolovsky
Syntax is usual C #if*/#endif, but each qstr must be wrapped individually.
2014-04-10objstr: Add TODO-optimize for using .join with arbitrary iterable.Paul Sokolovsky
2014-04-09Merge branch 'master' of github.com:micropython/micropythonDamien George
2014-04-09stmhal: Make /src/main.py just /main.py; allow SD to be used as root device.Damien George
2014-04-09Merge pull request #455 from lurch/exception-messagesDamien George
Remove exception name from inside the exception message
2014-04-09Merge branch 'str-index' of github.com:xbe/micropython into xbe-str-indexDamien George
2014-04-09py: Implement complex division.Damien George
2014-04-09py: Oops, fix emitcpy to compile with latest changes.Damien George
2014-04-09Remove exception name from inside the exception messageAndrew Scheller
This prevents micropython printing exception messages like ImportError: ImportError: No module named 'foo'
2014-04-09py: Add mp_obj_is_integer; make mp_get_index check for long int.Damien George
mp_obj_is_integer should be used to check if an object is of integral type. It returns true for bool, small int and long int.
2014-04-09py: Clear state to MP_OBJ_NULL before executing byte code.Damien George
2014-04-09py: str.join can now take arbitrary iterable as argument.Damien George
2014-04-09py: Generators can have their locals closed over.Damien George
2014-04-09py: Properly implement deletion of locals and derefs, and detect errors.Damien George
Needed to reinstate 2 delete opcodes, to specifically check that a local is not deleted twice.
2014-04-09py, compiler: Turn id_info_t.param into a set of flags.Damien George
So we can add more flags.
2014-04-09py, compile: Simplify initialisation of compiler structure.Damien George
2014-04-09py, compile: Reduce size of compiler structure.Damien George