<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/mpconfig.h, branch v1.5.1</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.5.1</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.5.1'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2015-11-13T12:49:18+00:00</updated>
<entry>
<title>py: Add MICROPY_PERSISTENT_CODE_LOAD/SAVE to load/save bytecode.</title>
<updated>2015-11-13T12:49:18+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-11-02T21:55:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d8c834c95d506db979ec871417de90b7951edc30'/>
<id>urn:sha1:d8c834c95d506db979ec871417de90b7951edc30</id>
<content type='text'>
MICROPY_PERSISTENT_CODE must be enabled, and then enabling
MICROPY_PERSISTENT_CODE_LOAD/SAVE (either or both) will allow loading
and/or saving of code (at the moment just bytecode) from/to a .mpy file.
</content>
</entry>
<entry>
<title>py: Add MICROPY_PERSISTENT_CODE so code can persist beyond the runtime.</title>
<updated>2015-11-13T12:49:18+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-11-02T17:27:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=c8e9c0d89afa90694790fd48e1bf527487a5beb7'/>
<id>urn:sha1:c8e9c0d89afa90694790fd48e1bf527487a5beb7</id>
<content type='text'>
Main changes when MICROPY_PERSISTENT_CODE is enabled are:

- qstrs are encoded as 2-byte fixed width in the bytecode
- all pointers are removed from bytecode and put in const_table (this
  includes const objects and raw code pointers)

Ultimately this option will enable persistence for not just bytecode but
also native code.
</content>
</entry>
<entry>
<title>py: Adjust object repr C (30-bit stuffed float) to reduce code size.</title>
<updated>2015-11-06T23:25:10+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-11-06T23:25:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=8b8d189bc09b050f9a66048736c7e990ac8c8335'/>
<id>urn:sha1:8b8d189bc09b050f9a66048736c7e990ac8c8335</id>
<content type='text'>
This patch adds/subtracts a constant from the 30-bit float representation
so that str/qstr representations are favoured: they now have all the high
bits set to zero.  This makes encoding/decoding qstr strings more
efficient (and they are used more often than floats, which are now
slightly less efficient to encode/decode).

Saves about 300 bytes of code space on Thumb 2 arch.
</content>
</entry>
<entry>
<title>py: Add object repr "C", where 30-bit floats are stuffed in obj word.</title>
<updated>2015-10-20T11:38:54+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-10-17T22:20:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=183edefddd8c08dd989fa7bec2d33d8b4130e1dc'/>
<id>urn:sha1:183edefddd8c08dd989fa7bec2d33d8b4130e1dc</id>
<content type='text'>
This new object representation puts floats into the object word instead
of on the heap, at the expense of reducing their precision to 30 bits.
It only makes sense when the word size is 32-bits.
</content>
</entry>
<entry>
<title>py: Add option for inline assembler to support ARMv7-M instructions.</title>
<updated>2015-10-16T21:08:57+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-10-16T21:08:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=e813541e3f8a65fcc6e1b666e6547bd10b3dc316'/>
<id>urn:sha1:e813541e3f8a65fcc6e1b666e6547bd10b3dc316</id>
<content type='text'>
Cortex-M0, M0+ and M1 only have ARMv6-M Thumb/Thumb2 instructions.  M3,
M4 and M7 have a superset of these, named ARMv7-M.  This patch adds a
config option to enable support of the superset of instructions.
</content>
</entry>
<entry>
<title>py: Remove dependency on printf/fwrite in mp_plat_print.</title>
<updated>2015-10-14T23:05:55+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-10-14T23:05:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=4300c7dba2f500cd3b2a664c7491aa3ddb328011'/>
<id>urn:sha1:4300c7dba2f500cd3b2a664c7491aa3ddb328011</id>
<content type='text'>
See issue #1500.
</content>
</entry>
<entry>
<title>py: Add support to call __init__ from a builtin module on first import.</title>
<updated>2015-10-12T12:46:01+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-09-15T13:56:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=3c9c3687d6c1001b88ef6dde200566456a1f2641'/>
<id>urn:sha1:3c9c3687d6c1001b88ef6dde200566456a1f2641</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Move constant folding from compiler to parser.</title>
<updated>2015-10-12T11:58:45+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-10-08T13:58:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=64f2b213bb5be33f06ee7ab755d9344cd7e5958c'/>
<id>urn:sha1:64f2b213bb5be33f06ee7ab755d9344cd7e5958c</id>
<content type='text'>
It makes much more sense to do constant folding in the parser while the
parse tree is being built.  This eliminates the need to create parse
nodes that will just be folded away.  The code is slightly simpler and a
bit smaller as well.

Constant folding now has a configuration option,
MICROPY_COMP_CONST_FOLDING, which is enabled by default.
</content>
</entry>
<entry>
<title>modussl: SSL socket wrapper module based on axTLS.</title>
<updated>2015-10-06T15:10:39+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2015-10-06T15:10:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=aaa8867d4a4a1274ea43429c00e8bdfa6b28a015'/>
<id>urn:sha1:aaa8867d4a4a1274ea43429c00e8bdfa6b28a015</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Allocate parse nodes in chunks to reduce fragmentation and RAM use.</title>
<updated>2015-10-01T23:11:11+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-09-23T09:50:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=58e0f4ac50b3dc732cbfe0d7b04bb41951ac1329'/>
<id>urn:sha1:58e0f4ac50b3dc732cbfe0d7b04bb41951ac1329</id>
<content type='text'>
With this patch parse nodes are allocated sequentially in chunks.  This
reduces fragmentation of the heap and prevents waste at the end of
individually allocated parse nodes.

Saves roughly 20% of RAM during parse stage.
</content>
</entry>
</feed>
