<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py, branch v1.3.8</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.3.8</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.3.8'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2014-12-28T22:51:24+00:00</updated>
<entry>
<title>py: Add MP_LIKELY(), MP_UNLIKELY() macros to help branch prediction.</title>
<updated>2014-12-28T22:51:24+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2014-12-28T22:51:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=361909e3ca8a44632c918aeed2c3426b970068fc'/>
<id>urn:sha1:361909e3ca8a44632c918aeed2c3426b970068fc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>showbc: Print operation mnemonic in BINARY_OP.</title>
<updated>2014-12-28T19:43:44+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2014-12-28T19:41:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=1ee1785bed2dc899d92c15047face797f859f1c9'/>
<id>urn:sha1:1ee1785bed2dc899d92c15047face797f859f1c9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>showbc: Make code object start pointer semi-public.</title>
<updated>2014-12-28T19:37:17+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2014-12-28T19:34:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=df103462dc5dedc066ce1d448cf29aee48d1bf55'/>
<id>urn:sha1:df103462dc5dedc066ce1d448cf29aee48d1bf55</id>
<content type='text'>
This allows to pring either absolute addresses or relative offsets in jumps
and code references.
</content>
</entry>
<entry>
<title>vm: Record exception ip only for instructions where exceptions may happen.</title>
<updated>2014-12-28T05:37:04+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2014-12-28T05:17:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=749575097f1b5c738cd43dce6ef0960eee8af7a3'/>
<id>urn:sha1:749575097f1b5c738cd43dce6ef0960eee8af7a3</id>
<content type='text'>
Mirroring ip to a volatile memory variable for each opcode is an expensive
operation. For quite a lot of often executed opcodes like stack manipulation
or jumps, exceptions cannot actually happen. So, record ip only for opcode
where that's possible.
</content>
</entry>
<entry>
<title>py: Allow to properly disable builtin slice operation.</title>
<updated>2014-12-27T17:33:30+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-12-27T17:20:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=83204f34067b765293b791563bdd5756bdfc5aa4'/>
<id>urn:sha1:83204f34067b765293b791563bdd5756bdfc5aa4</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>py: Allow to properly disable builtin "set" object.</title>
<updated>2014-12-27T17:33:30+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-12-27T17:07:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=e37dcaafb43c1246ab55d79ebb8889a61f280533'/>
<id>urn:sha1:e37dcaafb43c1246ab55d79ebb8889a61f280533</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>py: Move to guarded includes for compile.h and related headers.</title>
<updated>2014-12-27T14:12:17+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2014-12-25T21:29:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=8ab6f9067412d9f73fe88d42d81c0b4c4f1fd20b'/>
<id>urn:sha1:8ab6f9067412d9f73fe88d42d81c0b4c4f1fd20b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>showbc: Refactor to allow inline instruction printing.</title>
<updated>2014-12-27T03:01:21+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2014-12-27T03:00:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=343266ea519927a7f1bc0a27f9c8af768d1125f7'/>
<id>urn:sha1:343266ea519927a7f1bc0a27f9c8af768d1125f7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Make bytes objs work with more str methods; add tests.</title>
<updated>2014-12-24T20:28:30+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-12-24T20:28:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=c55a4d82cf03d22933028bd9db4031ef349fdc1f'/>
<id>urn:sha1:c55a4d82cf03d22933028bd9db4031ef349fdc1f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Reduce size of VM exception stack element by 1 machine word.</title>
<updated>2014-12-22T12:49:57+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-12-22T12:49:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=74eb44c392449b54a3f0dcf268ee7448909f7b07'/>
<id>urn:sha1:74eb44c392449b54a3f0dcf268ee7448909f7b07</id>
<content type='text'>
This optimisation reduces the VM exception stack element (mp_exc_stack_t)
by 1 word, by using bit 1 of a pointer to store whether the opcode was a
FINALLY or WITH opcode.  This optimisation was pending, waiting for
maturity of the exception handling code, which has now proven itself.

Saves 1 machine word RAM for each exception (4-&gt;3 words per exception).
Increases stmhal code by 4 bytes, and decreases unix x64 code by 32
bytes.
</content>
</entry>
</feed>
