<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/supervisor, branch 6.1.0-beta.1</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=6.1.0-beta.1</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=6.1.0-beta.1'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2020-11-14T02:57:52+00:00</updated>
<entry>
<title>Save flash space</title>
<updated>2020-11-14T02:57:52+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2020-11-14T02:33:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=bda3267432aee57e704a20308b724369cceeb6ca'/>
<id>urn:sha1:bda3267432aee57e704a20308b724369cceeb6ca</id>
<content type='text'>
* No weak link for modules. It only impacts _os and _time and is
  already disabled for non-full builds.
* Turn off PA00 and PA01 because they are the crystal on the Metro
  M0 Express.
* Change ejected default to false to move it to BSS. It is set on
  USB connection anyway.
* Set sinc_filter to const. Doesn't help flash but keeps it out of
  RAM.
</content>
</entry>
<entry>
<title>Merge pull request #3627 from adafruit/6.0.x</title>
<updated>2020-10-31T16:28:20+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@adafruit.com</email>
</author>
<published>2020-10-31T16:28:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=144eb131ae7c290c8ad03edd1e293b7962c00dc4'/>
<id>urn:sha1:144eb131ae7c290c8ad03edd1e293b7962c00dc4</id>
<content type='text'>
Merge 6.0.x bugfixes to main</content>
</entry>
<entry>
<title>improve USB CDC disconnect/reconnect checking</title>
<updated>2020-10-31T02:25:50+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2020-10-31T02:16:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=345d84ffde527b16f50c203f7b6a718886be34f6'/>
<id>urn:sha1:345d84ffde527b16f50c203f7b6a718886be34f6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge pull request #3482 from cwalther/alloc</title>
<updated>2020-10-17T02:31:32+00:00</updated>
<author>
<name>Jeff Epler</name>
<email>jeff@adafruit.com</email>
</author>
<published>2020-10-17T02:31:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=3c05a8c68cececcfb38eeefa6208afad2c56d215'/>
<id>urn:sha1:3c05a8c68cececcfb38eeefa6208afad2c56d215</id>
<content type='text'>
Fix inconsistent supervisor heap</content>
</entry>
<entry>
<title>Finer grained, per port tick locking</title>
<updated>2020-10-13T01:43:21+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2020-10-13T01:36:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=379e73af2e55b1f0c517883360e29d5dbc27a20b'/>
<id>urn:sha1:379e73af2e55b1f0c517883360e29d5dbc27a20b</id>
<content type='text'>
Fixes #3504 hopefully.
</content>
</entry>
<entry>
<title>Unify iMX flash config and add Metro M7 1011</title>
<updated>2020-10-07T22:23:47+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2020-09-29T02:21:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=09bc4157516dd59754a3eb1a5dbbb72a758ebe93'/>
<id>urn:sha1:09bc4157516dd59754a3eb1a5dbbb72a758ebe93</id>
<content type='text'>
This unifies the flash config to the settings used by the Boot ROM.
This makes the config unique per board which allows for changing
quad enable and status bit differences per flash device. It also
allows for timing differences due to the board layout.

This change also tweaks linker layout to leave more ram space for
the CircuitPython heap.
</content>
</entry>
<entry>
<title>When there is not enough free space, but a matching hole on the other side, use it.</title>
<updated>2020-10-02T21:07:07+00:00</updated>
<author>
<name>Christian Walther</name>
<email>cwalther@gmx.ch</email>
</author>
<published>2020-10-02T21:07:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=be8092f4d32d06488df88294a9dc4bb809411c5e'/>
<id>urn:sha1:be8092f4d32d06488df88294a9dc4bb809411c5e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Allow allocate_memory() to reuse holes when matching exactly.</title>
<updated>2020-10-02T21:03:21+00:00</updated>
<author>
<name>Christian Walther</name>
<email>cwalther@gmx.ch</email>
</author>
<published>2020-09-29T20:21:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=5bdb8c45dd2700941ab75661b773680bdd46aaf1'/>
<id>urn:sha1:5bdb8c45dd2700941ab75661b773680bdd46aaf1</id>
<content type='text'>
This requires recovering the pointer of the allocation, which could be done by adding up neighbor lengths, but the simpler way is to stop NULLing it out in the first place and instead mark an allocation as freed by the client by setting the lowest bit of the length (which is always zero in a valid length).
</content>
</entry>
<entry>
<title>Fix inconsistent supervisor heap.</title>
<updated>2020-10-02T21:03:21+00:00</updated>
<author>
<name>Christian Walther</name>
<email>cwalther@gmx.ch</email>
</author>
<published>2020-09-28T20:34:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d6d02c67d2bcacaa02499930aabd76365797b108'/>
<id>urn:sha1:d6d02c67d2bcacaa02499930aabd76365797b108</id>
<content type='text'>
When allocations were freed in a different order from the reverse of how they were allocated (leaving holes), the heap would get into an inconsistent state, eventually resulting in crashes.

free_memory() relies on having allocations in order, but allocate_memory() did not guarantee that: It reused the first allocation with a NULL ptr without ensuring that it was between low_address and high_address. When it belongs to a hole in the allocated memory, such an allocation is not really free for reuse, because free_memory() still needs its length.

Instead, explicitly mark allocations available for reuse with a special (invalid) value in the length field. Only allocations that lie between low_address and high_address are marked that way.
</content>
</entry>
<entry>
<title>Merge pull request #3469 from jepler/noreturn</title>
<updated>2020-10-01T18:18:36+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@adafruit.com</email>
</author>
<published>2020-10-01T18:18:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d62ac24493abb7aadcf68751997092a1b4141b01'/>
<id>urn:sha1:d62ac24493abb7aadcf68751997092a1b4141b01</id>
<content type='text'>
Add some NORETURN attributes</content>
</entry>
</feed>
