<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py, branch v1.9.3</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.9.3</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.9.3'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2017-10-31T11:01:56+00:00</updated>
<entry>
<title>Revert "py/{mkenv.mk,mkrules.mk}: Append .exe for Windows executable files."</title>
<updated>2017-10-31T11:01:56+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-10-31T11:01:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=02b4b23319a84d5b96b9394d8c379ef0549fd208'/>
<id>urn:sha1:02b4b23319a84d5b96b9394d8c379ef0549fd208</id>
<content type='text'>
This reverts commit 3289b9b7a76a1230b6bb631e191a47bfc6c7a8ee.
The commit broke building on MINGW because the filename became
micropython.exe.exe.  A proper solution to support more Windows build
environments requires more thought and testing.
</content>
</entry>
<entry>
<title>extmod/modussl: Add finaliser support for ussl objects.</title>
<updated>2017-10-30T04:25:32+00:00</updated>
<author>
<name>Eric Poulsen</name>
<email>eric@zyxod.com</email>
</author>
<published>2017-10-27T04:17:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=74ec52d85758ad9da7a3abb24257511b22d74964'/>
<id>urn:sha1:74ec52d85758ad9da7a3abb24257511b22d74964</id>
<content type='text'>
Per the comment found here
https://github.com/micropython/micropython-esp32/issues/209#issuecomment-339855157,
this patch adds finaliser code to prevent memory leaks from ussl objects,
which is especially useful when memory for a ussl context is allocated
outside the uPy heap.  This patch is in-line with the finaliser code found
in many modsocket implementations for various ports.

This feature is configured via MICROPY_PY_USSL_FINALISER and is disabled by
default because there may be issues using it when the ussl state *is*
allocated on the uPy heap, rather than externally.
</content>
</entry>
<entry>
<title>py/objtype: Introduce MICROPY_PY_ALL_INPLACE_SPECIAL_METHODS.</title>
<updated>2017-10-27T19:29:15+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2017-10-27T19:29:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=0e80f345f88c5db7c2353a5a9d29ed08b0af42f4'/>
<id>urn:sha1:0e80f345f88c5db7c2353a5a9d29ed08b0af42f4</id>
<content type='text'>
This allows to configure support for inplace special methods separately,
similar to "normal" and reverse special methods. This is useful, because
inplace methods are "the most optional" ones, for example, if inplace
methods aren't defined, the operation will be executed using normal
methods instead.

As a caveat, __iadd__ and __isub__ are implemented even if
MICROPY_PY_ALL_INPLACE_SPECIAL_METHODS isn't defined. This is similar
to the state of affairs before binary operations refactor, and allows
to run existing tests even if MICROPY_PY_ALL_INPLACE_SPECIAL_METHODS
isn't defined.
</content>
</entry>
<entry>
<title>py/objtype: Define all special methods if requested.</title>
<updated>2017-10-27T17:06:35+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2017-10-21T10:55:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=9b9dbc58155209e07ab7b9d63d63e5e24db5950c'/>
<id>urn:sha1:9b9dbc58155209e07ab7b9d63d63e5e24db5950c</id>
<content type='text'>
If MICROPY_PY_ALL_SPECIAL_METHODS is defined, actually define all special
methods (still subject to gating by e.g. MICROPY_PY_REVERSE_SPECIAL_METHODS).

This adds quite a number of qstr's, so should be used sparingly.
</content>
</entry>
<entry>
<title>all: Use NULL instead of "" when calling mp_raise exception helpers.</title>
<updated>2017-10-24T11:39:36+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-10-24T11:39:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=f4059dcc0c5251256a53fcb49f56fdda6e879341'/>
<id>urn:sha1:f4059dcc0c5251256a53fcb49f56fdda6e879341</id>
<content type='text'>
This is the established way of doing it and reduces code size by a little
bit.
</content>
</entry>
<entry>
<title>py/objtype: Fit qstrs for special methods in byte type.</title>
<updated>2017-10-21T08:06:32+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2017-10-21T08:06:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=9956fd0710c3866b9df37857c9aa62b8bb681403'/>
<id>urn:sha1:9956fd0710c3866b9df37857c9aa62b8bb681403</id>
<content type='text'>
Update makeqstrdata.py to sort strings starting with "__" to the beginning
of qstr list, so they get low qstr id's, guaranteedly fitting in 8 bits.
Then use this property to further compact op_id =&gt; qstr mapping arrays.
</content>
</entry>
<entry>
<title>py/objtype: Use CPython compatible method name for sizeof.</title>
<updated>2017-10-19T09:44:53+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2017-10-19T09:40:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=f2baa9ec245a66c4cd7d990e39a4af3f6fab1cb7'/>
<id>urn:sha1:f2baa9ec245a66c4cd7d990e39a4af3f6fab1cb7</id>
<content type='text'>
Per https://docs.python.org/3/library/sys.html#sys.getsizeof:

getsizeof() calls the object’s __sizeof__ method. Previously, "getsizeof"
was used mostly to save on new qstr, as we don't really support calling
this method on arbitrary objects (so it was used only for reporting).
However, normalize it all now.
</content>
</entry>
<entry>
<title>py/argcheck: Remove #if guard around terse error message helper func.</title>
<updated>2017-10-19T07:57:26+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-10-19T07:57:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=93ce125abe41b5527eb92e483e64cc6d1a027ba0'/>
<id>urn:sha1:93ce125abe41b5527eb92e483e64cc6d1a027ba0</id>
<content type='text'>
Not all compilers/analysers are smart enough to realise that this function
is never called if MICROPY_ERROR_REPORTING is not TERSE, because the logic
in the code uses if statements rather than #if to select whether to call
this function or not (MSC in debug mode is an example of this, but there
are others).  So just unconditionally compile this helper function.  The
code-base anyway relies on the linker to remove unused functions.
</content>
</entry>
<entry>
<title>extmod/uos_dupterm: Update uos.dupterm() and helper funcs to have index.</title>
<updated>2017-10-13T09:01:57+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-10-13T09:01:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=37282f8fc135a16ff36e2afe0de907cbde531ed0'/>
<id>urn:sha1:37282f8fc135a16ff36e2afe0de907cbde531ed0</id>
<content type='text'>
The uos.dupterm() signature and behaviour is updated to reflect the latest
enhancements in the docs.  It has minor backwards incompatibility in that
it no longer accepts zero arguments.

The dupterm_rx helper function is moved from esp8266 to extmod and
generalised to support multiple dupterm slots.

A port can specify multiple slots by defining the MICROPY_PY_OS_DUPTERM
config macro to an integer, being the number of slots it wants to have;
0 means to disable the dupterm feature altogether.

The unix and esp8266 ports are updated to work with the new interface and
are otherwise unchanged with respect to functionality.
</content>
</entry>
<entry>
<title>py/emitnative: Simplify binary op emitter, no need to check inplace ops.</title>
<updated>2017-10-12T01:26:49+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-10-12T01:26:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=c59fc1419d5760d7be0bcad1ebdfb70b43fe7093'/>
<id>urn:sha1:c59fc1419d5760d7be0bcad1ebdfb70b43fe7093</id>
<content type='text'>
</content>
</entry>
</feed>
