<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/objgenerator.c, branch v1.4.1</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.4.1</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.4.1'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2015-03-20T23:13:32+00:00</updated>
<entry>
<title>py: Allow retrieving a function's __name__.</title>
<updated>2015-03-20T23:13:32+00:00</updated>
<author>
<name>stijn</name>
<email>stinos@zoho.com</email>
</author>
<published>2015-02-14T17:44:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=3cc17c69ffd64dca55fe613f6e931585d8893c0d'/>
<id>urn:sha1:3cc17c69ffd64dca55fe613f6e931585d8893c0d</id>
<content type='text'>
Disabled by default.  Enabled on unix and stmhal ports.
</content>
</entry>
<entry>
<title>py, unix: Allow to compile with -Wunused-parameter.</title>
<updated>2015-01-20T12:47:20+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-01-20T12:47:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=ff8dd3f486afb0d6ff1427d8a6a8a8ed73baa660'/>
<id>urn:sha1:ff8dd3f486afb0d6ff1427d8a6a8a8ed73baa660</id>
<content type='text'>
See issue #699.
</content>
</entry>
<entry>
<title>py: Add "default" to switches to allow better code flow analysis.</title>
<updated>2015-01-14T21:32:42+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-01-14T21:32:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d2d64f00fb7f1487c1fa21a456e003a801d7e711'/>
<id>urn:sha1:d2d64f00fb7f1487c1fa21a456e003a801d7e711</id>
<content type='text'>
This helps compiler produce smaller code.  Saves 124 bytes on stmhal and
bare-arm.
</content>
</entry>
<entry>
<title>py: Move to guarded includes, everywhere in py/ core.</title>
<updated>2015-01-01T20:32:09+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-01-01T20:27:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=51dfcb4bb7613ed164952712d9a5235a7b833cde'/>
<id>urn:sha1:51dfcb4bb7613ed164952712d9a5235a7b833cde</id>
<content type='text'>
Addresses issue #1022.
</content>
</entry>
<entry>
<title>py: Make functions static where appropriate.</title>
<updated>2014-12-10T22:08:14+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-12-10T22:07:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=969a6b37bfc655609e540053c2bdcce8a6fdc64d'/>
<id>urn:sha1:969a6b37bfc655609e540053c2bdcce8a6fdc64d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Store bytecode arg names in bytecode (were in own array).</title>
<updated>2014-10-25T19:23:13+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-10-25T14:07:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=1084b0f9c21b093618da4494508dec9ca8467e35'/>
<id>urn:sha1:1084b0f9c21b093618da4494508dec9ca8467e35</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>py: Use variable length encoded uints in more places in bytecode.</title>
<updated>2014-09-04T13:44:01+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-09-04T13:44:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=b534e1b9f14c189d2cef209d40f598e62164694a'/>
<id>urn:sha1:b534e1b9f14c189d2cef209d40f598e62164694a</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Change some parts of the core API to use mp_uint_t instead of uint/int.</title>
<updated>2014-08-29T23:35:11+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-08-29T23:35:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=ecc88e949ca5e307d22da4605a40d39ea2df9e3b'/>
<id>urn:sha1:ecc88e949ca5e307d22da4605a40d39ea2df9e3b</id>
<content type='text'>
Addressing issue #50, still some way to go yet.
</content>
</entry>
<entry>
<title>Rename machine_(u)int_t to mp_(u)int_t.</title>
<updated>2014-07-03T12:25:24+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-07-03T12:25:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=40f3c026823f8951a2fa04e9c7fc93c75bc27bec'/>
<id>urn:sha1:40f3c026823f8951a2fa04e9c7fc93c75bc27bec</id>
<content type='text'>
See discussion in issue #50.
</content>
</entry>
<entry>
<title>objgenerator: Finish refactor to use mp_setup_code_state().</title>
<updated>2014-06-11T17:43:47+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2014-06-11T17:17:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=5f4a667ea467c0452b9c2ed951f4b4afce711d61'/>
<id>urn:sha1:5f4a667ea467c0452b9c2ed951f4b4afce711d61</id>
<content type='text'>
</content>
</entry>
</feed>
