Damien George 1084b0f9c2 py: Store bytecode arg names in bytecode (were in own array).
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.
2014-10-25 20:23:13 +01:00
..
2014-10-12 16:59:29 +01:00
2014-10-12 16:59:29 +01:00
2014-10-12 16:59:29 +01:00
2014-10-12 16:59:29 +01:00
2014-10-12 16:59:29 +01:00
2014-10-12 16:59:29 +01:00
2014-10-22 23:20:15 +01:00
2014-08-10 17:50:28 +01:00
2014-08-10 17:50:28 +01:00
2014-10-22 23:20:15 +01:00
2014-05-21 20:32:59 +01:00