| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2015-04-03 | py: Fix bug in native emitter when closing over an argument. | Damien George | |
| 2015-04-03 | py: Get native emitter working again with x86 (now supports closures). | Damien George | |
| 2015-04-03 | py: Implement closures in native code generator. | Damien George | |
| Currently supports only x64 and Thumb2 archs. | |||
| 2015-04-03 | py: Implement (non-compliant) support for delete_fast in native emitter. | Damien George | |
| This implementation is smaller (in code size) than #1024. | |||
| 2015-04-01 | py: Fix emitnative's creation of small ints so it uses the macro. | Damien George | |
| 2015-03-26 | py: Increase fixed size of stack-info in native emitter. | Damien George | |
| This is a temporary fix. | |||
| 2015-03-26 | py, compiler: Refactor load/store/delete_id logic to reduce code size. | Damien George | |
| Saves around 230 bytes on Thumb2 and 750 bytes on x86. | |||
| 2015-02-28 | py: Combine emit functions for jump true/false to reduce code size. | Damien George | |
| Saves 116 bytes for stmhal and 56 bytes for cc3200 port. | |||
| 2015-02-09 | py: Remove obsolete MP_F_LOAD_CONST_{INT,DEC} from emitnative.c. | Damien George | |
| 2015-02-08 | py: Parse big-int/float/imag constants directly in parser. | Damien George | |
| Previous to this patch, a big-int, float or imag constant was interned (made into a qstr) and then parsed at runtime to create an object each time it was needed. This is wasteful in RAM and not efficient. Now, these constants are parsed straight away in the parser and turned into objects. This allows constants with large numbers of digits (so addresses issue #1103) and takes us a step closer to #722. | |||
| 2015-01-29 | py: Implement Ellipsis object in native emitter. | Damien George | |
| 2015-01-24 | py: Don't use anonymous unions, name them instead. | Damien George | |
| This makes the code (more) compatible with the C99 standard. | |||
| 2015-01-21 | py: Implement proper re-raising in native codegen's finally handler. | Damien George | |
| This allows an exception to propagate correctly through a finally handler. | |||
| 2015-01-20 | py, unix: Allow to compile with -Wunused-parameter. | Damien George | |
| See issue #699. | |||
| 2015-01-16 | py: Remove unnecessary id_flags argument from emitter's load_fast. | Damien George | |
| Saves 24 bytes in bare-arm. | |||
| 2015-01-14 | py, unix: Trace root pointers with native emitter under unix port. | Damien George | |
| Native code has GC-heap pointers in it so it must be scanned. But on unix port memory for native functions is mmap'd, and so it must have explicit code to scan it for root pointers. | |||
| 2015-01-13 | py: Add load_const_obj to emitter, add LOAD_CONST_OBJ to bytecode. | Damien George | |
| This allows to directly load a Python object to the Python stack. See issue #722 for background. | |||
| 2015-01-01 | py: Move to guarded includes, everywhere in py/ core. | Damien George | |
| Addresses issue #1022. | |||
| 2015-01-01 | emitnative: Disable warning in delete_fast for now (breaks test). | Paul Sokolovsky | |
| 2015-01-01 | py: Add basic framework for issuing compile/runtime warnings. | Paul Sokolovsky | |
| 2014-12-27 | py: Allow to properly disable builtin slice operation. | Damien George | |
| 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. | |||
| 2014-12-27 | py: Allow to properly disable builtin "set" object. | Damien George | |
| 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. | |||
| 2014-10-19 | py: Partially fix viper multi-comparison; add test for it. | Damien George | |
| 2014-10-12 | py: Fix x86 viper code generation, mem8 <-> mem16 for load. | Damien George | |
| 2014-10-12 | py: Implement native load for viper. | Damien George | |
| Viper can now do: ptr8(buf)[0], which loads a byte from a buffer using machine instructions. | |||
| 2014-10-12 | py: Implement and,or,xor native ops for viper. | Damien George | |
| 2014-10-04 | Implement missing ARM emitter functions for viper | Fabian Vogt | |
| 2014-10-03 | py: Change [u]int to mp_[u]int_t in qstr.[ch], and some other places. | Damien George | |
| This should pretty much resolve issue #50. | |||
| 2014-09-29 | py: Fix viper store on x86; add tests for viper ptr16. | Damien George | |
| 2014-09-29 | py: Add casting to viper; add native mem stores to viper. | Damien George | |
| Viper can now do the following: def store(p:ptr8, c:int): p[0] = c This does a store of c to the memory pointed to by p using a machine instructions inline in the code. | |||
| 2014-09-29 | py: Implement more binary ops for viper emitter. | Damien George | |
| This included a bit of restructuring of the assembler backends. Note that the ARM backend is missing a few functions and won't compile. | |||
| 2014-09-29 | py: Allow viper to use ints as direct conditionals in jumps. | Damien George | |
| Allows things like: if 1: ... | |||
| 2014-09-29 | py: Make macro names in assemblers consistent, and tidy up a bit. | Damien George | |
| 2014-09-29 | py: In asmthumb, clean up unit/int types and ite ops. | Damien George | |
| 2014-09-23 | py: Make native emitter handle multi-compare and not/is not/not in ops. | Damien George | |
| 2014-09-15 | py: Make asm_arm_less_op take destination register as first arg. | Damien George | |
| This gets ARM native emitter working againg and addresses issue #858. | |||
| 2014-09-12 | py: Load strings as objects when compiling viper. | Damien George | |
| Eventually, viper wants to be able to use raw pointers to strings and arrays for efficient access. But for now, let's just load strings as a Python object so they can be used as normal. This will anyway be compatible with eventual intended viper behaviour. Addresses issue #857. | |||
| 2014-09-08 | py: Put define of x86 argument registers in asmx86.h. | Damien George | |
| 2014-09-08 | py: Convert [u]int to mp_[u]int_t in emit.h and associated .c files. | Damien George | |
| Towards resolving issue #50. | |||
| 2014-09-07 | py: Clean up x86-64 native assembler; allow use of extended regs. | Damien George | |
| Native x86-64 now has 3 locals in registers. | |||
| 2014-09-06 | py: Adjust regs for x86 so that 1 more local can live in a reg. | Damien George | |
| 2014-09-06 | py: Allow x86 native functions to take arguments. | Damien George | |
| Fix some bugs with x86 stack and saving registers correctly. | |||
| 2014-09-06 | py: Add support for emitting native x86 machine code. | Damien George | |
| 2014-09-06 | py: Native emitter now supports delete name & global, and end finally. | Damien George | |
| 2014-09-03 | Code style/whitespace cleanup; remove obsolete headers. | Damien George | |
| And move the MAP_ANON redefinition from py/asmx64.c to unix/alloc.c. | |||
| 2014-08-29 | py: Fix 2 bugs in native emitter: jump_or_pop and stack settling. | Damien George | |
| Addresses issue #838. | |||
| 2014-08-27 | Basic native ARM emitter | Fabian Vogt | |
| 2014-08-16 | py: Code clean-up in native emitter; improve thumb native calls. | Damien George | |
| 2014-08-16 | py: Viper can call functions with native types, and raise exceptions. | Damien George | |
| 2014-08-15 | py: Viper can now store to global. | Damien George | |
