<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/gc.c, branch 4.0.x</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=4.0.x</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=4.0.x'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2019-06-06T21:49:32+00:00</updated>
<entry>
<title>Include display objects in gc.</title>
<updated>2019-06-06T21:49:32+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2019-06-06T21:49:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=62de2506e47c14a71c7a9fe04360697ccb966aeb'/>
<id>urn:sha1:62de2506e47c14a71c7a9fe04360697ccb966aeb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Correct collect of permanent pointers.</title>
<updated>2019-04-18T22:44:44+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-04-18T22:44:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=54ef87c6de483fdd062dabf0d560ecabd73aef94'/>
<id>urn:sha1:54ef87c6de483fdd062dabf0d560ecabd73aef94</id>
<content type='text'>
The previous implementation managed to keep all but the head
pointer of the list.

Fixes #1814
</content>
</entry>
<entry>
<title>Check that a never free pointer is on the heap.</title>
<updated>2019-04-09T22:12:28+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-04-09T22:12:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=ee7a77db65f24b3e34a9b9b733887cab3434d225'/>
<id>urn:sha1:ee7a77db65f24b3e34a9b9b733887cab3434d225</id>
<content type='text'>
This fixes a crash on boards with built-in displays which statically
allocate the display bus. When the pointer is provided to never
free, it tries to allocate on the non-existant heap and crashes.
</content>
</entry>
<entry>
<title>Reorganize board busses into shared-bindings and shared-module.</title>
<updated>2019-04-08T23:58:50+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-04-08T23:58:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=0f003ac5b8312fafb120e86e05eefd2431014d8c'/>
<id>urn:sha1:0f003ac5b8312fafb120e86e05eefd2431014d8c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix function signature</title>
<updated>2019-03-12T21:05:31+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-03-12T21:05:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=911509c80c0767bed81a4a3757c7691af9be19ea'/>
<id>urn:sha1:911509c80c0767bed81a4a3757c7691af9be19ea</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Enter safe mode when an allocation is attempted on an uninitialized heap.</title>
<updated>2019-03-12T18:18:26+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-03-08T23:29:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=03be42ab847f04a89d207d98fdb28048cfedf72d'/>
<id>urn:sha1:03be42ab847f04a89d207d98fdb28048cfedf72d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>WIP: after merge; before testing</title>
<updated>2018-07-11T20:45:30+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2018-07-11T20:45:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=7c219600a246d8956d0b23ea3f5d125a820e6b6a'/>
<id>urn:sha1:7c219600a246d8956d0b23ea3f5d125a820e6b6a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Analysis fixes and long lived tweaks.</title>
<updated>2018-07-03T12:45:50+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2018-06-27T18:17:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=252aacdddf1aae89e3ebe91ca72a3ad666728e37'/>
<id>urn:sha1:252aacdddf1aae89e3ebe91ca72a3ad666728e37</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py/gc: Add gc_sweep_all() function to run all remaining finalisers.</title>
<updated>2018-06-12T01:55:29+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-31T13:10:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=522ea80f06a80fd799bd57de351373ceaeeae325'/>
<id>urn:sha1:522ea80f06a80fd799bd57de351373ceaeeae325</id>
<content type='text'>
This patch adds the gc_sweep_all() function which does a garbage collection
without tracing any root pointers, so frees all the memory, and most
importantly runs any remaining finalisers.

This helps primarily for soft reset: it will close any open files, any open
sockets, and help to get the system back to a clean state upon soft reset.
</content>
</entry>
<entry>
<title>py/gc: When GC threshold is hit don't unnecessarily collect twice.</title>
<updated>2018-05-21T03:36:21+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-21T03:36:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6bd78741c13849da0570710ad6df80846df812c0'/>
<id>urn:sha1:6bd78741c13849da0570710ad6df80846df812c0</id>
<content type='text'>
Without this, if GC threshold is hit and there is not enough memory left to
satisfy the request, gc_collect() will run a second time and the search for
memory will happen again and will fail again.

Thanks to @adritium for pointing out this issue, see #3786.
</content>
</entry>
</feed>
