<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/main.c, branch 4.0.0-alpha.2</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=4.0.0-alpha.2</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=4.0.0-alpha.2'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2018-09-06T23:54:13+00:00</updated>
<entry>
<title>Initial Grand Central definition</title>
<updated>2018-09-06T23:54:13+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2018-08-31T19:27:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=32c616b5dd4fcf6882231d77fddcdc43f8671ca4'/>
<id>urn:sha1:32c616b5dd4fcf6882231d77fddcdc43f8671ca4</id>
<content type='text'>
It has a ton of pins in a Mega form-factor

This also includes a change to init the stack earlier. It fixes
a crash that occurs if the flash doesn't start correctly and the
original spot isn't reached.
</content>
</entry>
<entry>
<title>add pin claiming to devices</title>
<updated>2018-08-31T22:38:05+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2018-08-31T21:46:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=9ea809bef73e6862103cd71802803122e97bf80b'/>
<id>urn:sha1:9ea809bef73e6862103cd71802803122e97bf80b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Compress all translated strings with Huffman coding.</title>
<updated>2018-08-17T00:40:57+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2018-08-16T01:32:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=de5a9d72dcdaacdd5048195cd5bab007f4b2baef'/>
<id>urn:sha1:de5a9d72dcdaacdd5048195cd5bab007f4b2baef</id>
<content type='text'>
This saves code space in builds which use link-time optimization.
The optimization drops the untranslated strings and replaces them
with a compressed_string_t struct. It can then be decompressed to
a c string.

Builds without LTO work as well but include both untranslated
strings and compressed strings.

This work could be expanded to include QSTRs and loaded strings if
a compress method is added to C. Its tracked in #531.
</content>
</entry>
<entry>
<title>Support internationalisation.</title>
<updated>2018-08-07T21:58:57+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2018-07-31T23:53:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=933add6cd833bb6ba6682ad2b6eb478871415ff5'/>
<id>urn:sha1:933add6cd833bb6ba6682ad2b6eb478871415ff5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Allow for resizing the stack area.</title>
<updated>2018-07-31T12:18:23+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2018-07-25T12:06:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=12cf5e51c29a5a74ced59c6c89af44e93e2de815'/>
<id>urn:sha1:12cf5e51c29a5a74ced59c6c89af44e93e2de815</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add basic memory allocation outside Python runtime</title>
<updated>2018-07-31T12:18:03+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott.shawcroft@gmail.com</email>
</author>
<published>2018-05-24T20:12:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=777542c716e07e78439c3c6bbf442722ebaaecc6'/>
<id>urn:sha1:777542c716e07e78439c3c6bbf442722ebaaecc6</id>
<content type='text'>
This allows for the heap to fill all space but the stack. It also
allows us to designate space for memory outside the runtime for
things such as USB descriptors, flash cache and main filename.

Fixes #754
</content>
</entry>
<entry>
<title>Mark pointers in cpu registers as in use.</title>
<updated>2018-07-03T12:45:50+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2018-06-28T17:36:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=ec78d3cefdd98b317a01840e172e7453013ada0c'/>
<id>urn:sha1:ec78d3cefdd98b317a01840e172e7453013ada0c</id>
<content type='text'>
This prevents bugs where gc_collect is called from C code that did
a recent allocation.
</content>
</entry>
<entry>
<title>Fix playing audio from SD card</title>
<updated>2018-06-14T22:47:40+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2018-06-14T22:47:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=e724bc1c4eb1224aa043a1489b29ec3daaa832aa'/>
<id>urn:sha1:e724bc1c4eb1224aa043a1489b29ec3daaa832aa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>main: move code pertaining to boot.py out of line</title>
<updated>2018-06-06T13:01:17+00:00</updated>
<author>
<name>Jeff Epler</name>
<email>jepler@unpythonic.net</email>
</author>
<published>2018-06-06T13:01:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=654591e11f45075b0a7534fd52c98fef6082c703'/>
<id>urn:sha1:654591e11f45075b0a7534fd52c98fef6082c703</id>
<content type='text'>
.. this reduces stack usage in main() substantially, because
the 512 byte stack allocation will only exist during the new run_boot_py
function's duration.

Closes: #904
</content>
</entry>
<entry>
<title>main: Explicitly set the stack top based on _estack</title>
<updated>2018-06-06T03:04:55+00:00</updated>
<author>
<name>Jeff Epler</name>
<email>jepler@unpythonic.net</email>
</author>
<published>2018-06-06T03:04:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=a4e06bd998a1fb2d2dd209524d8ccd69b18712e6'/>
<id>urn:sha1:a4e06bd998a1fb2d2dd209524d8ccd69b18712e6</id>
<content type='text'>
.. setting it based on the ad-hoc stack pointer calculation of
mp_stack_ctrl_init() meant that the stack used above main() counts
against the 1KiB safety factor that the mp_stack_set_limit call tries
to establish.  It turns out, at least on M4, that over half of the
safety factor is used up by stack-above-main()!

In the case of the basics/gen_stack_overflow.py test,
which blows the stack on purpose, it turns out that gc would be called
while handling the "maximum recursion depth exceeded" error, and this
needed more stack than was left.

Closes: #900
</content>
</entry>
</feed>
