Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | py: Move to guarded includes, everywhere in py/ core. | Damien George | 2015-01-01 |
| | | | | Addresses issue #1022. | ||
* | py: Make terse_arg_mismatch a global function and use it elsewhere. | Damien George | 2015-01-01 |
| | | | | Reduces code size when MICROPY_ERROR_REPORTING_TERSE is selected. | ||
* | py: Fix some macros defines; cleanup some includes. | Damien George | 2014-11-05 |
| | |||
* | py: Store bytecode arg names in bytecode (were in own array). | Damien George | 2014-10-25 |
| | | | | | | | | | | | | | | | | | | | | This saves a lot of RAM for 2 reasons: 1. For functions that don't have default values, var args or var kw args (which is a large number of functions in the general case), the mp_obj_fun_bc_t type now fits in 1 GC block (previously needed 2 because of the extra pointer to point to the arg_names array). So this saves 16 bytes per function (32 bytes on 64-bit machines). 2. Combining separate memory regions generally saves RAM because the unused bytes at the end of the GC block are saved for 1 of the blocks (since that block doesn't exist on its own anymore). So generally this saves 8 bytes per function. Tested by importing lots of modules: - 64-bit Linux gave about an 8% RAM saving for 86k of used RAM. - pyboard gave about a 6% RAM saving for 31k of used RAM. | ||
* | py: Convert [u]int to mp_[u]int_t where appropriate. | Damien George | 2014-10-03 |
| | | | | Addressing issue #50. | ||
* | py: Use variable length encoded uints in more places in bytecode. | Damien George | 2014-09-04 |
| | | | | | | Code-info size, block name, source name, n_state and n_exc_stack now use variable length encoded uints. This saves 7-9 bytes per bytecode function for most functions. | ||
* | Further factorise PASS_1 out of specific emit code. | Damien | 2013-10-05 |
| | |||
* | Initial commit. | Damien | 2013-10-04 |