<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/parse.c, branch v1.3.8</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.3.8</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.3.8'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2014-12-20T18:41:59+00:00</updated>
<entry>
<title>py: Remove unnecessary RULE_none and PN_none from parser.</title>
<updated>2014-12-20T18:41:59+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-12-20T18:41:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6efa66f12513e19fdbfb7b4199342113c2731512'/>
<id>urn:sha1:6efa66f12513e19fdbfb7b4199342113c2731512</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Add blank and ident flags to grammar rules to simplify parser.</title>
<updated>2014-12-20T18:37:50+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-12-20T18:37:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=b47ea4eadd53374b74bf8fcbfa6580c89e2650f9'/>
<id>urn:sha1:b47ea4eadd53374b74bf8fcbfa6580c89e2650f9</id>
<content type='text'>
This saves around 100 bytes code space on stmhal, more on unix.
</content>
</entry>
<entry>
<title>py: Save a few code bytes in parser; make vars local where possible.</title>
<updated>2014-12-20T18:06:08+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-12-20T18:06:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=2870d85a114a3110bfefa35494227d788c4b6df5'/>
<id>urn:sha1:2870d85a114a3110bfefa35494227d788c4b6df5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Optimise lexer by exposing lexer type.</title>
<updated>2014-12-05T19:35:18+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-12-05T19:35:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=a4c52c5a3d19b5527023fedfaae96cb717d03802'/>
<id>urn:sha1:a4c52c5a3d19b5527023fedfaae96cb717d03802</id>
<content type='text'>
mp_lexer_t type is exposed, mp_token_t type is removed, and simple lexer
functions (like checking current token kind) are now inlined.

This saves 784 bytes ROM on 32-bit unix, 348 bytes on stmhal, and 460
bytes on bare-arm.  It also saves a tiny bit of RAM since mp_lexer_t
is a bit smaller.  Also will run a bit more efficiently.
</content>
</entry>
<entry>
<title>py: Properly free string parse-node; add assertion to gc_free.</title>
<updated>2014-10-23T13:13:05+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-10-23T13:13:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=e7bb0443cda9bfb88791c3a99bf0331217390eb4'/>
<id>urn:sha1:e7bb0443cda9bfb88791c3a99bf0331217390eb4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Free non-interned strings in the parser when not needed.</title>
<updated>2014-09-23T15:31:56+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-09-23T15:31:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=52b5d76a6b0c5e4c779211fdf7bca56d87a2f83e'/>
<id>urn:sha1:52b5d76a6b0c5e4c779211fdf7bca56d87a2f83e</id>
<content type='text'>
mp_parse_node_free now frees the memory associated with non-interned
strings.  And the parser calls mp_parse_node_free when discarding a
non-used node (such as a doc string).

Also, the compiler now frees the parse tree explicitly just before it
exits (as opposed to relying on the caller to do this).

Addresses issue #708 as best we can.
</content>
</entry>
<entry>
<title>py: Allow viper to have type annotations.</title>
<updated>2014-08-15T15:45:41+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-08-15T15:45:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=2ac4af6946543ae96cf3659468e1b8cabb057f85'/>
<id>urn:sha1:2ac4af6946543ae96cf3659468e1b8cabb057f85</id>
<content type='text'>
Viper functions can now be annotated with the type of their arguments
and return value.  Eg:

@micropython.viper
def f(x:int) -&gt; int:
    return x + 1
</content>
</entry>
<entry>
<title>parser: Convert (u)int to mp_(u)int_t.</title>
<updated>2014-07-03T13:13:33+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-07-03T13:13:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=381618269a9eb3e49d0e42d389d2dec312907577'/>
<id>urn:sha1:381618269a9eb3e49d0e42d389d2dec312907577</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rename machine_(u)int_t to mp_(u)int_t.</title>
<updated>2014-07-03T12:25:24+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-07-03T12:25:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=40f3c026823f8951a2fa04e9c7fc93c75bc27bec'/>
<id>urn:sha1:40f3c026823f8951a2fa04e9c7fc93c75bc27bec</id>
<content type='text'>
See discussion in issue #50.
</content>
</entry>
<entry>
<title>py: Include mpconfig.h before all other includes.</title>
<updated>2014-06-21T19:43:22+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2014-06-21T19:43:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=59c675a64c1d9757d50ad4627da67a6f996a99fb'/>
<id>urn:sha1:59c675a64c1d9757d50ad4627da67a6f996a99fb</id>
<content type='text'>
It defines types used by all other headers.

Fixes #691.
</content>
</entry>
</feed>
