<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/parse.c, branch v1.1.1</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.1.1</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.1.1'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2014-05-28T13:51:12+00:00</updated>
<entry>
<title>py: Fix check of small-int overflow when parsing ints.</title>
<updated>2014-05-28T13:51:12+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-05-28T13:51:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d1e355ea8e2a5a17ee126f5c3d173b2e6f33e460'/>
<id>urn:sha1:d1e355ea8e2a5a17ee126f5c3d173b2e6f33e460</id>
<content type='text'>
Also unifies use of SMALL_INT_FITS macro across parser and runtime.
</content>
</entry>
<entry>
<title>Change const byte* to const char* where sensible.</title>
<updated>2014-05-25T21:27:57+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-05-25T21:27:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=2617eebf2ff77e58f415162300747eaf1a5ab5d7'/>
<id>urn:sha1:2617eebf2ff77e58f415162300747eaf1a5ab5d7</id>
<content type='text'>
This removes need for some casts (at least, more than it adds need
for new casts!).
</content>
</entry>
<entry>
<title>py: Don't automatically intern strings in parser.</title>
<updated>2014-05-25T21:06:06+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-05-25T21:06:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=5042bce8fb268849ba1afcbeb946b840318c4e49'/>
<id>urn:sha1:5042bce8fb268849ba1afcbeb946b840318c4e49</id>
<content type='text'>
This completes non-automatic interning of strings in the parser, so that
doc strings don't take up RAM.  It complicates the parser and compiler,
and bloats stmhal by about 300 bytes.  It's complicated because now
there are 2 kinds of parse-nodes that can be strings: interned leaves
and non-interned structs.
</content>
</entry>
<entry>
<title>Merge branch 'keep-strings-uninterned' of github.com:pfalcon/micropython into pfalcon-keep-strings-uninterned</title>
<updated>2014-05-25T12:19:31+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-05-25T12:19:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=3aaabd11a044701991ca929f873983a679841199'/>
<id>urn:sha1:3aaabd11a044701991ca929f873983a679841199</id>
<content type='text'>
Conflicts:
	py/parse.c
</content>
</entry>
<entry>
<title>Tidy up some configuration options.</title>
<updated>2014-05-21T19:32:59+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-05-21T19:32:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=58ebde46646dd49d22b2accfa9c7a78e15921e48'/>
<id>urn:sha1:58ebde46646dd49d22b2accfa9c7a78e15921e48</id>
<content type='text'>
MP_ALLOC_* -&gt; MICROPY_ALLOC_*
MICROPY_PATH_MAX -&gt; MICROPY_ALLOC_PATH_MAX
MICROPY_ENABLE_REPL_HELPERS -&gt; MICROPY_HELPER_REPL
MICROPY_ENABLE_LEXER_UNIX -&gt; MICROPY_HELPER_LEXER_UNIX
MICROPY_EXTRA_* -&gt; MICROPY_PORT_*

See issue #35.
</content>
</entry>
<entry>
<title>py: Improve handling of memory error in parser.</title>
<updated>2014-05-10T16:36:41+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-05-10T16:36:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=1b82e9af5c9b67cae8f7a35abc2dee3989fbdc06'/>
<id>urn:sha1:1b82e9af5c9b67cae8f7a35abc2dee3989fbdc06</id>
<content type='text'>
Parser shouldn't raise exceptions, so needs to check when memory
allocation fails.  This patch does that for the initial set up of the
parser state.

Also, we now put the parser object on the stack.  It's small enough to
go there instead of on the heap.

This partially addresses issue #558.
</content>
</entry>
<entry>
<title>Draft approach towards resolving https://github.com/micropython/micropython/issues/560#issuecomment-42213955</title>
<updated>2014-05-08T19:43:46+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2014-05-08T19:43:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=9e76b1181b95a7123691f7580683522f913b3411'/>
<id>urn:sha1:9e76b1181b95a7123691f7580683522f913b3411</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py, parser: Add commented-out code to discard doc strings.</title>
<updated>2014-05-06T20:44:11+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-05-06T20:44:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=93afa230a42592023ba39951a48109d098f03bbe'/>
<id>urn:sha1:93afa230a42592023ba39951a48109d098f03bbe</id>
<content type='text'>
Doesn't help with RAM reduction because doc strings are interned as soon
as they are encountered, which is too soon to do any optimisations on
them.
</content>
</entry>
<entry>
<title>py: Turn down amount of RAM parser and compiler use.</title>
<updated>2014-05-05T12:19:03+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-05-05T12:19:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=66e18f04d811197854c0ce970b2dc8ac17deaebc'/>
<id>urn:sha1:66e18f04d811197854c0ce970b2dc8ac17deaebc</id>
<content type='text'>
There are 2 locations in parser, and 1 in compiler, where memory
allocation is not precise.  In the parser it's the rule stack and result
stack, in the compiler it's the array for the identifiers in the current
scope.  All other mallocs are exact (ie they don't allocate more than is
needed).

This patch adds tuning options (MP_ALLOC_*) to mpconfig.h for these 3
inexact allocations.

The inexact allocations in the parser should actually be close to
logarithmic: you need an exponentially larger script (absent pathological
cases) to use up more room on the rule and result stacks.  As such, the
default allocation policy for these is now to start with a modest sized
stack, but grow only in small increments.

For the identifier arrays in the compiler, these now start out quite
small (4 entries, since most functions don't have that many ids), and
grow incrementally by 6 (since if you have more ids than 4, you probably
have quite a few more, but it wouldn't be exponentially more).

Partially addresses issue #560.
</content>
</entry>
<entry>
<title>Add license header to (almost) all files.</title>
<updated>2014-05-03T22:27:38+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-05-03T22:27:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=04b9147e150d2d6fa3750f312fe328b6a71c1b28'/>
<id>urn:sha1:04b9147e150d2d6fa3750f312fe328b6a71c1b28</id>
<content type='text'>
Blanket wide to all .c and .h files.  Some files originating from ST are
difficult to deal with (license wise) so it was left out of those.

Also merged modpyb.h, modos.h, modstm.h and modtime.h in stmhal/.
</content>
</entry>
</feed>
