<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/runtime.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-04-02T21:56:58+00:00</updated>
<entry>
<title>py: Add finer configuration of static funcs when not in stackless mode.</title>
<updated>2015-04-02T21:56:58+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-04-01T22:31:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=12a5e17afb6a59d1eb0e1ce0444d7e4891f6391b'/>
<id>urn:sha1:12a5e17afb6a59d1eb0e1ce0444d7e4891f6391b</id>
<content type='text'>
Also rename call_args_t to mp_call_args_t.
</content>
</entry>
<entry>
<title>runtime: Split mp_call_prepare_args_n_kw_var() from mp_call_method_n_kw_var().</title>
<updated>2015-04-02T21:03:07+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2015-03-27T23:14:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=e6c6fe3275ba8d405e566548a277fa7eaea416b9'/>
<id>urn:sha1:e6c6fe3275ba8d405e566548a277fa7eaea416b9</id>
<content type='text'>
Allow for reuse for stackless design, where preparing args is separate from
calling.
</content>
</entry>
<entry>
<title>py: Combine duplicated code that converts members from a lookup.</title>
<updated>2015-03-21T14:21:54+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-03-21T14:21:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=55b74d1ff5fcdd32150b10cb42cd1fd59f1317c3'/>
<id>urn:sha1:55b74d1ff5fcdd32150b10cb42cd1fd59f1317c3</id>
<content type='text'>
Despite initial guess, this code factoring does not hamper performance.
In fact it seems to improve speed by a little: running pystone(1.2) on
pyboard (which gives a very stable result) this patch takes pystones
from 1729.51 up to 1742.16.  Also, pystones on x64 increase by around
the same proportion (but it's much noisier).

Taking a look at the generated machine code, stack usage with this patch
is unchanged, and call is tail-optimised with all arguments in
registers.  Code size decreases by about 50 bytes on Thumb2 archs.
</content>
</entry>
<entry>
<title>runtime: mp_load_method_maybe(): Don't use confusing "base" term.</title>
<updated>2015-03-20T22:59:39+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2015-03-20T22:58:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=07b8dc68d667c212f9a3710b74e90e05e1032316'/>
<id>urn:sha1:07b8dc68d667c212f9a3710b74e90e05e1032316</id>
<content type='text'>
"Base" should rather refer to "base type"."Base object for attribute
lookup" should rather be just "object".

Also, a case of common subexpression elimination.
</content>
</entry>
<entry>
<title>runtime: Typo fixes in comments.</title>
<updated>2015-03-03T19:37:50+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2015-03-03T19:37:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=e104acdb8ccd53963f5415edc8c9ab88aeca771a'/>
<id>urn:sha1:e104acdb8ccd53963f5415edc8c9ab88aeca771a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Simplify and remove redundant code for __iter__ method lookup.</title>
<updated>2015-02-15T01:10:13+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-02-15T01:10:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=f6532bb9e054fd20af5063b1e77ef98863f36c84'/>
<id>urn:sha1:f6532bb9e054fd20af5063b1e77ef98863f36c84</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Parse big-int/float/imag constants directly in parser.</title>
<updated>2015-02-08T01:57:40+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-02-08T01:57:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=7d414a1b52d193bab2c94cf56932e1eba23ba542'/>
<id>urn:sha1:7d414a1b52d193bab2c94cf56932e1eba23ba542</id>
<content type='text'>
Previous to this patch, a big-int, float or imag constant was interned
(made into a qstr) and then parsed at runtime to create an object each
time it was needed.  This is wasteful in RAM and not efficient.  Now,
these constants are parsed straight away in the parser and turned into
objects.  This allows constants with large numbers of digits (so
addresses issue #1103) and takes us a step closer to #722.
</content>
</entry>
<entry>
<title>py: Protect mp_parse and mp_compile with nlr push/pop block.</title>
<updated>2015-02-07T18:33:58+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-02-07T18:33:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=0bfc7638baa4c5a4a2351364ab770a188dcab302'/>
<id>urn:sha1:0bfc7638baa4c5a4a2351364ab770a188dcab302</id>
<content type='text'>
To enable parsing constants more efficiently, mp_parse should be allowed
to raise an exception, and mp_compile can already raise a MemoryError.
So these functions need to be protected by an nlr push/pop block.

This patch adds that feature in all places.  This allows to simplify how
mp_parse and mp_compile are called: they now raise an exception if they
have an error and so explicit checking is not needed anymore.
</content>
</entry>
<entry>
<title>py: Specify unary/binary op name in TypeError error message.</title>
<updated>2015-01-27T18:02:25+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-01-27T18:02:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=a5efcd474563ed4e3d979a619f073abab8379a09'/>
<id>urn:sha1:a5efcd474563ed4e3d979a619f073abab8379a09</id>
<content type='text'>
Eg, "() + 1" now tells you that __add__ is not supported for tuple and
int types (before it just said the generic "binary operator").  We reuse
the table of names for slot lookup because it would be a waste of code
space to store the pretty name for each operator.
</content>
</entry>
<entry>
<title>py, unix, stmhal: Allow to compile with -Wshadow.</title>
<updated>2015-01-20T11:55:10+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-01-20T11:55:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=50912e7f5dc579fd2917537046793dfa30decadf'/>
<id>urn:sha1:50912e7f5dc579fd2917537046793dfa30decadf</id>
<content type='text'>
See issue #699.
</content>
</entry>
</feed>
