- 20 Jan, 2015 2 commits
-
-
Damien George authored
See issue #699.
-
Damien George authored
See issue #699.
-
- 16 Jan, 2015 2 commits
-
-
Damien George authored
See issue #699.
-
Damien George authored
Saves 24 bytes in bare-arm.
-
- 14 Jan, 2015 3 commits
-
-
Damien George authored
This helps compiler produce smaller code. Saves 124 bytes on stmhal and bare-arm.
-
Damien George authored
-
Damien George authored
Bytecode also needs a pass to compute the stack size. This is because the state size of the bytecode function is encoded as a variable uint, so we must know the value of this uint before we encode it (otherwise the size of the generated code changes from one pass to the next). Having an entire pass for this seems wasteful (in time). Alternative is to allocate fixed space for the state size (would need 3-4 bytes to be general, when 1 byte is usually sufficient) which uses a bit of extra RAM per bytecode function, and makes the code less elegant in places where this uint is encoded/decoded. So, for now, opt for an extra pass.
-
- 13 Jan, 2015 2 commits
-
-
Damien George authored
-
Damien George authored
Previously to this patch all constant string/bytes objects were interned by the compiler, and this lead to crashes when the qstr was too long (noticeable now that qstr length storage defaults to 1 byte). With this patch, long string/bytes objects are never interned, and are referenced directly as constant objects within generated code using load_const_obj.
-
- 10 Jan, 2015 1 commit
-
-
Damien George authored
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.
-
- 01 Jan, 2015 1 commit
-
-
Damien George authored
Addresses issue #1022.
-
- 27 Dec, 2014 2 commits
-
-
Damien George authored
This patch makes the MICROPY_PY_BUILTINS_SLICE compile-time option fully disable the builtin slice operation (when set to 0). This includes removing the slice sytanx from the grammar. Now, enabling slice costs 4228 bytes on unix x64, and 1816 bytes on stmhal.
-
Damien George authored
This patch makes MICROPY_PY_BUILTINS_SET compile-time option fully disable the builtin set object (when set to 0). This includes removing set constructor/comprehension from the grammar, the compiler and the emitters. Now, enabling set costs 8168 bytes on unix x64, and 3576 bytes on stmhal.
-
- 21 Dec, 2014 2 commits
-
-
Damien George authored
-
Damien George authored
This patch gives proper SyntaxError exceptions for bad global/nonlocal declarations. It also reduces code size: 304 bytes on unix x64, 132 bytes on stmhal.
-
- 20 Dec, 2014 1 commit
-
-
Damien George authored
-
- 12 Dec, 2014 1 commit
-
-
Damien George authored
You can now assign to the range end variable and the for-loop still works correctly. This fully addresses issue #565. Also fixed a bug with the stack not being fully popped when breaking out of an optimised for-loop (and it's actually impossible to write a test for this case!).
-
- 11 Dec, 2014 1 commit
-
-
Damien George authored
Now you can assign to the range variable within the for loop and it will still work. Partially addresses issue #565.
-
- 10 Dec, 2014 1 commit
-
-
Damien George authored
-
- 02 Nov, 2014 1 commit
-
-
Paul Sokolovsky authored
Undefined behavior in C, needs explicit check.
-
- 17 Oct, 2014 3 commits
-
-
Damien George authored
-
Damien George authored
-
Damien George authored
Addresses issue #912.
-
- 05 Oct, 2014 1 commit
-
-
Damien George authored
-
- 03 Oct, 2014 3 commits
-
-
Damien George authored
-
Damien George authored
This should pretty much resolve issue #50.
-
Damien George authored
Addressing issue #50.
-
- 23 Sep, 2014 1 commit
-
-
Damien George authored
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.
-
- 08 Sep, 2014 1 commit
-
-
Damien George authored
Towards resolving issue #50.
-
- 06 Sep, 2014 1 commit
-
-
Damien George authored
-
- 03 Sep, 2014 1 commit
-
-
Damien George authored
And move the MAP_ANON redefinition from py/asmx64.c to unix/alloc.c.
-
- 29 Aug, 2014 1 commit
-
-
Damien George authored
Optimises: if () -> if False if (x,...) -> if True if (a and b) -> if a and b
-
- 27 Aug, 2014 1 commit
-
-
Fabian Vogt authored
-
- 15 Aug, 2014 3 commits
-
-
Damien George authored
-
Damien George authored
Viper functions can now be annotated with the type of their arguments and return value. Eg: @micropython.viper def f(x:int) -> int: return x + 1
-
Damien George authored
Some small code clean-ups that result in about 80 bytes ROM saving for stmhal.
-
- 09 Jul, 2014 1 commit
-
-
Paul Sokolovsky authored
But much smaller and memory-efficient. Uses Python builtin data structures (dict, tuple, int) to describe structure layout.
-
- 03 Jul, 2014 1 commit
-
-
Damien George authored
See discussion in issue #50.
-
- 30 Jun, 2014 1 commit
-
-
Damien George authored
Native emitter can now compile try/except blocks using nlr_push/nlr_pop. It probably only works for 1 level of exception handling. It doesn't work on Thumb (only x64). Native emitter can also handle some additional op codes. With this patch, 198 tests now pass using "-X emit=native" option to micropython.
-
- 21 Jun, 2014 1 commit
-
-
Paul Sokolovsky authored
It defines types used by all other headers. Fixes #691.
-