<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/compile.c, branch 4.0.0-beta.7</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-beta.7</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=4.0.0-beta.7'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2018-08-17T00:40:57+00:00</updated>
<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>Two fixes and translate more strings.</title>
<updated>2018-08-09T20:29:30+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2018-08-09T01:24:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=96ebf5bc3fb455162286b9bc31e763f3c4f1c457'/>
<id>urn:sha1:96ebf5bc3fb455162286b9bc31e763f3c4f1c457</id>
<content type='text'>
* Fix finding translations with escaped characters.
* Add back \r to translations since its needed by screen.
</content>
</entry>
<entry>
<title>py/compile: Combine expr, xor_expr and and_expr into one function.</title>
<updated>2018-06-22T07:00:29+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-06-19T04:20:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=25ae98f07cb3c4488cb955403dfe56b8bb8db6f0'/>
<id>urn:sha1:25ae98f07cb3c4488cb955403dfe56b8bb8db6f0</id>
<content type='text'>
This and the previous 4 commits combined have change in code size of:

   bare-arm:   -92
minimal x86:  -544
   unix x64:  -544
unix nanbox:  -712
      stm32:  -116
     cc3200:  -128
    esp8266:  -348
      esp32:  -232
</content>
</entry>
<entry>
<title>py/compile: Combine or_test and and_test compile functions.</title>
<updated>2018-06-22T07:00:29+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-06-19T04:10:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=36e474e83fa26cb78a9312dce5dc53a467c5d8b7'/>
<id>urn:sha1:36e474e83fa26cb78a9312dce5dc53a467c5d8b7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py/compile: Combine global and nonlocal statement compile functions.</title>
<updated>2018-06-22T07:00:29+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-06-19T04:04:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=1a7109d65aa87596c7ce1824037fe298109962e9'/>
<id>urn:sha1:1a7109d65aa87596c7ce1824037fe298109962e9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py/compile: Combine subscript_2 and subscript_3 into one function.</title>
<updated>2018-06-22T07:00:29+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-06-19T03:57:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d23bec3fc89d1c1f7a2ac8023161e3f2620ffa13'/>
<id>urn:sha1:d23bec3fc89d1c1f7a2ac8023161e3f2620ffa13</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py/compile: Combine break and continue compile functions.</title>
<updated>2018-06-22T07:00:29+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-06-19T03:54:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=c14919792868d0e42bb84d61e584797c6c977114'/>
<id>urn:sha1:c14919792868d0e42bb84d61e584797c6c977114</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py/emit: Combine setup with/except/finally into one emit function.</title>
<updated>2018-05-22T14:35:16+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-22T12:33:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=18e6358480e640fd94a9383d5fa7d9b8cc2b9f73'/>
<id>urn:sha1:18e6358480e640fd94a9383d5fa7d9b8cc2b9f73</id>
<content type='text'>
This patch reduces code size by:

   bare-arm:   -16
minimal x86:  -156
   unix x64:  -288
unix nanbox:  -184
      stm32:   -48
     cc3200:   -16
    esp8266:   -96
      esp32:   -16

The last 10 patches combined reduce code size by:

   bare-arm:  -164
minimal x86: -1260
   unix x64: -3416
unix nanbox: -1616
      stm32:  -676
     cc3200:  -232
    esp8266: -1144
      esp32:  -268
</content>
</entry>
<entry>
<title>py/emit: Merge build set/slice into existing build emit function.</title>
<updated>2018-05-22T14:23:36+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-22T12:18:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=436e0d4c54ab22050072d392f0822e555bcc70f1'/>
<id>urn:sha1:436e0d4c54ab22050072d392f0822e555bcc70f1</id>
<content type='text'>
Reduces code size by:

   bare-arm:    +0
minimal x86:    +0
   unix x64:  -368
unix nanbox:  -248
      stm32:  -128
     cc3200:   -48
    esp8266:  -184
      esp32:   -40
</content>
</entry>
<entry>
<title>py/emit: Combine import from/name/star into one emit function.</title>
<updated>2018-05-22T14:23:08+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-22T11:58:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d97906ca9a0f1e0728cefb930d458bb8fba3bd17'/>
<id>urn:sha1:d97906ca9a0f1e0728cefb930d458bb8fba3bd17</id>
<content type='text'>
Change in code size is:

   bare-arm:    +4
minimal x86:   -88
   unix x64:  -456
unix nanbox:   -88
      stm32:   -44
     cc3200:    +0
    esp8266:  -104
      esp32:    +8
</content>
</entry>
</feed>
