<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/vm.c, branch v1.4.3</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.4.3</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.4.3'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2015-05-12T21:46:02+00:00</updated>
<entry>
<title>py: Convert hash API to use MP_UNARY_OP_HASH instead of ad-hoc function.</title>
<updated>2015-05-12T21:46:02+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-05-11T12:25:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=c2a4e4effc81d8ab21bb014e34355643e5ca0da2'/>
<id>urn:sha1:c2a4e4effc81d8ab21bb014e34355643e5ca0da2</id>
<content type='text'>
Hashing is now done using mp_unary_op function with MP_UNARY_OP_HASH as
the operator argument.  Hashing for int, str and bytes still go via
fast-path in mp_unary_op since they are the most common objects which
need to be hashed.

This lead to quite a bit of code cleanup, and should be more efficient
if anything.  It saves 176 bytes code space on Thumb2, and 360 bytes on
x86.

The only loss is that the error message "unhashable type" is now the
more generic "unsupported type for __hash__".
</content>
</entry>
<entry>
<title>vm: Properly handle StopIteration raised in user instance iterator.</title>
<updated>2015-05-11T22:57:42+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2015-05-10T23:59:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6738c1dded8e436686f85008ec0a4fc47406ab7a'/>
<id>urn:sha1:6738c1dded8e436686f85008ec0a4fc47406ab7a</id>
<content type='text'>
I.e. in bytecode Python functions.
</content>
</entry>
<entry>
<title>vm: Null pointer test when checking for StopIteration optimizations.</title>
<updated>2015-05-10T14:20:46+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2015-05-10T14:18:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=a7c02c4538bb2b986efb1999e00da4d76345767d'/>
<id>urn:sha1:a7c02c4538bb2b986efb1999e00da4d76345767d</id>
<content type='text'>
When generator raises exception, it is automatically terminated (by setting
its code_state.ip to 0), which interferes with this check.

Triggered in particular by CPython's test_pep380.py.
</content>
</entry>
<entry>
<title>py: Remove LOAD_CONST_ELLIPSIS bytecode, use LOAD_CONST_OBJ instead.</title>
<updated>2015-05-05T21:15:42+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-05-05T21:15:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=8872abcbc4107c8d3eaf148a03813e607aa30bfb'/>
<id>urn:sha1:8872abcbc4107c8d3eaf148a03813e607aa30bfb</id>
<content type='text'>
Ellipsis constant is rarely used so no point having an extra bytecode
for it.
</content>
</entry>
<entry>
<title>vm: On exiting except block, clear sys.exc_info() value.</title>
<updated>2015-04-25T22:40:37+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2015-04-25T22:20:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=ae2c81ff388d9b06bc11ac1e14bd5d71b4f4637c'/>
<id>urn:sha1:ae2c81ff388d9b06bc11ac1e14bd5d71b4f4637c</id>
<content type='text'>
This doesn't handle case fo enclosed except blocks, but once again,
sys.exc_info() support is a workaround for software which uses it
instead of properly catching exceptions via variable in except clause.
</content>
</entry>
<entry>
<title>modsys: Add basic sys.exc_info() implementation.</title>
<updated>2015-04-25T00:49:23+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2015-04-25T00:17:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=8b85d14b92a65e92862861038c0fe96e6c616c3e'/>
<id>urn:sha1:8b85d14b92a65e92862861038c0fe96e6c616c3e</id>
<content type='text'>
The implementation is very basic and non-compliant and provided solely for
CPython compatibility. The function itself is bad Python2 heritage, its
usage is discouraged.
</content>
</entry>
<entry>
<title>py: Modify bytecode "with" behaviour so it doesn't use any heap.</title>
<updated>2015-04-24T00:52:28+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-04-24T00:52:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=8c1d23a0e20da2903f363448e8042e5d08caabe7'/>
<id>urn:sha1:8c1d23a0e20da2903f363448e8042e5d08caabe7</id>
<content type='text'>
Before this patch a "with" block needed to create a bound method object
on the heap for the __exit__ call.  Now it doesn't because we use
load_method instead of load_attr, and save the method+self on the stack.
</content>
</entry>
<entry>
<title>py: Combine load_attr and store_attr type methods into one (attr).</title>
<updated>2015-04-11T15:54:37+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-04-01T14:10:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=b1bbe966c408901ae64ea8c8b468694c47d05b1a'/>
<id>urn:sha1:b1bbe966c408901ae64ea8c8b468694c47d05b1a</id>
<content type='text'>
This simplifies the API for objects and reduces code size (by around 400
bytes on Thumb2, and around 2k on x86).  Performance impact was measured
with Pystone score, but change was barely noticeable.
</content>
</entry>
<entry>
<title>py: Adjust some spaces in code style/format, purely for consistency.</title>
<updated>2015-04-09T15:29:54+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-04-09T15:29:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=4dea922610c8ea6af285cd49b0a531d4941d820f'/>
<id>urn:sha1:4dea922610c8ea6af285cd49b0a531d4941d820f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Fix msvc warning '*/ found outside of comment'</title>
<updated>2015-04-09T10:40:38+00:00</updated>
<author>
<name>stijn</name>
<email>stinos@zoho.com</email>
</author>
<published>2015-04-09T09:34:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=36cc84a2a97aea289ccab851b55de590b91f86f5'/>
<id>urn:sha1:36cc84a2a97aea289ccab851b55de590b91f86f5</id>
<content type='text'>
Also prevents some of the weaker syntax parsers out there treating the whole
'*/*const*/' part as a comment
</content>
</entry>
</feed>
