aboutsummaryrefslogtreecommitdiff
path: root/bare-arm
AgeCommit message (Collapse)Author
2015-03-14py: Add MICROPY_COMP_{DOUBLE,TRIPLE}_TUPLE_ASSIGN config options.Damien George
These allow to fine-tune the compiler to select whether it optimises tuple assignments of the form a, b = c, d and a, b, c = d, e, f. Sensible defaults are provided.
2015-02-07py: Protect mp_parse and mp_compile with nlr push/pop block.Damien George
To enable parsing constants more efficiently, mp_parse should be allowed to raise an exception, and mp_compile can already raise a MemoryError. So these functions need to be protected by an nlr push/pop block. This patch adds that feature in all places. This allows to simplify how mp_parse and mp_compile are called: they now raise an exception if they have an error and so explicit checking is not needed anymore.
2015-01-10py: Add config option MICROPY_COMP_MODULE_CONST for module consts.Damien George
Compiler optimises lookup of module.CONST when enabled (an existing feature). Disabled by default; enabled for unix, windows, stmhal. Costs about 100 bytes ROM on stmhal.
2015-01-09py: Disable stack checking by default; enable on most ports.Damien George
2015-01-07py: Put all global state together in state structures.Damien George
This patch consolidates all global variables in py/ core into one place, in a global structure. Root pointers are all located together to make GC tracing easier and more efficient.
2015-01-01bare-arm: Prefix includes with py/; remove need for -I../py.Damien George
2014-12-27Makefiles: Support py/*.h includes per #1022.Paul Sokolovsky
2014-12-08modsys: Add sys.print_exception(exc, file=sys.stdout) function.Paul Sokolovsky
The function is modeled after traceback.print_exception(), but unbloated, and put into existing module to save overhead on adding another module. Compliant traceback.print_exception() is intended to be implemented in micropython-lib in terms of sys.print_exception(). This change required refactoring mp_obj_print_exception() to take pfenv_t interface arguments. Addresses #751.
2014-12-05py: Optimise lexer by exposing lexer type.Damien George
mp_lexer_t type is exposed, mp_token_t type is removed, and simple lexer functions (like checking current token kind) are now inlined. This saves 784 bytes ROM on 32-bit unix, 348 bytes on stmhal, and 460 bytes on bare-arm. It also saves a tiny bit of RAM since mp_lexer_t is a bit smaller. Also will run a bit more efficiently.
2014-11-17ports: Define mp_off_t.Paul Sokolovsky
2014-11-06py: Use shorter, static error msgs when ERROR_REPORTING_TERSE enabled.Damien George
Going from MICROPY_ERROR_REPORTING_NORMAL to MICROPY_ERROR_REPORTING_TERSE now saves 2020 bytes ROM for ARM Thumb2, and 2200 bytes ROM for 32-bit x86. This is about a 2.5% code size reduction for bare-arm.
2014-11-05bare-arm: Add dummy __assert_func and __fatal_errorSven Wegener
Required to build bare-arm with debugging. Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
2014-10-23py: Add builtin memoryview object (mostly using array code).Damien George
2014-10-21Implement kwargs for builtin open() and _io.FileIOstijn
This makes open() and _io.FileIO() more CPython compliant. The mode kwarg is fully iplemented. The encoding kwarg is allowed but not implemented; mainly to allow the tests to specify encoding for CPython, see #874
2014-10-05py: Make compiler return a proper exception on SyntaxError.Damien George
2014-09-23py: Free non-interned strings in the parser when not needed.Damien George
mp_parse_node_free now frees the memory associated with non-interned strings. And the parser calls mp_parse_node_free when discarding a non-used node (such as a doc string). Also, the compiler now frees the parse tree explicitly just before it exits (as opposed to relying on the caller to do this). Addresses issue #708 as best we can.
2014-09-08py: Print imported module's location (__file__) if available.Damien George
2014-08-24py: Fix bug where GC collected native/viper/asm function data.Damien George
Because (for Thumb) a function pointer has the LSB set, pointers to dynamic functions in RAM (eg native, viper or asm functions) were not being traced by the GC. This patch is a comprehensive fix for this. Addresses issue #820.
2014-08-12py: #if guard qstrs that are optional.Damien George
Also disable gc module on bare-arm port.
2014-08-04Put call to qstr_init and mp_init_emergency_exc_buf in mp_init.Damien George
qstr_init is always called exactly before mp_init, so makes sense to just have mp_init call it. Similarly with mp_init_emergency_exception_buf. Doing this makes the ports simpler and less error prone (ie they can no longer forget to call these).
2014-07-03Rename machine_(u)int_t to mp_(u)int_t.Damien George
See discussion in issue #50.
2014-06-27bare-arm: Hint of setting MICROPY_ERROR_REPORTING to REPORTING_TERSE.Paul Sokolovsky
Commented out so far, as enabled leads to dozen more bytes used actually (due to string pooling effects).
2014-06-27bare-arm: Disable array module and even bytearray type.Paul Sokolovsky
To squeeze few more hundreds of bytes.
2014-06-27bare-arm: Enable link map file.Paul Sokolovsky
This port supposed to be demo of uPy minimality, so let people behold it in details.
2014-06-18bare-arm, stmhal, teensy: Duplicate -nostdlib to CFLAGSSven Wegener
As we are building with -nostdlib gcc features like the stack protector will fail linking, because the failure handlers are in gcc's internal libs. Such features are implicitly disabled during compilation when -nostdlib is used in CFLAGS too. Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
2014-06-18bare-arm, stmhal: Fix --nostdlib to -nostdlibSven Wegener
-nostdlib is the correct option, gcc recognizes the double dash version when in link-only mode, but not when compiling. Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
2014-06-08Provide definition of alloca() in mpconfigport.h.Damien George
2014-06-01bare-arm: Disable slice and set.Damien George
2014-06-01Rename bultins config variables to MICROPY_PY_BUILTINS_*.Damien George
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.
2014-05-24Rename configuration variables controling Python features.Damien George
Now of the form MICROPY_PY_*. See issue #35.
2014-05-21Tidy up some configuration options.Damien George
MP_ALLOC_* -> MICROPY_ALLOC_* MICROPY_PATH_MAX -> MICROPY_ALLOC_PATH_MAX MICROPY_ENABLE_REPL_HELPERS -> MICROPY_HELPER_REPL MICROPY_ENABLE_LEXER_UNIX -> MICROPY_HELPER_LEXER_UNIX MICROPY_EXTRA_* -> MICROPY_PORT_* See issue #35.
2014-05-10bare-arm: Change output file from flash.elf to firmware.elf.Damien George
2014-05-02bare-arm, qemu-arm: Make "mpconfig.h" be first included, as other headers ↵Paul Sokolovsky
depend on it.
2014-04-26bare-arm: Disable more stuff to reduce binary size.Damien George
2014-04-17build: Simplify build directory layout by putting all headers in genhdr.Damien George
Any generated headers go in $(BUILD)/genhdr/, and are #included as 'genhdr/xxx.h'.
2014-04-16build directory can now be renamedAndrew Scheller
The autogenerated header files have been moved about, and an extra include dir has been added, which means you can give a custom BUILD=newbuilddir option to make, and everything "just works" Also tidied up the way the different Makefiles build their include- directory flags
2014-04-13bare-arm/unix-cpy: Minor changes.Damien George
2014-04-12Add 'bare-arm' port: the bare minimum to get it running on an ARM MCU.Damien George