<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/tests/basics/fun_largestate.py, branch main</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=main</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2015-01-29T14:56:09+00:00</updated>
<entry>
<title>tests: Add some tests to improve coverage.</title>
<updated>2015-01-29T14:56:09+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-01-29T14:56:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=92ab95f21539d94c2139974b3995699a155f5a97'/>
<id>urn:sha1:92ab95f21539d94c2139974b3995699a155f5a97</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tests: Add some tests to improve coverage.</title>
<updated>2015-01-29T00:44:11+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-01-29T00:44:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=12c66be2b8baab093c7be5e2108d2767c9779a69'/>
<id>urn:sha1:12c66be2b8baab093c7be5e2108d2767c9779a69</id>
<content type='text'>
Used gcov to find some parts of vm.c, runtime.c, obj.c that were not
covered by any tests.  Still need to use gcov more thoroughly.
</content>
</entry>
<entry>
<title>py: Reluctantly add an extra pass to bytecode compiler.</title>
<updated>2015-01-14T00:20:28+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-01-14T00:20:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=1e1779eacf4da5cd8699bee26a02eed4eda10101'/>
<id>urn:sha1:1e1779eacf4da5cd8699bee26a02eed4eda10101</id>
<content type='text'>
Bytecode also needs a pass to compute the stack size.  This is because
the state size of the bytecode function is encoded as a variable uint,
so we must know the value of this uint before we encode it (otherwise
the size of the generated code changes from one pass to the next).

Having an entire pass for this seems wasteful (in time).  Alternative is
to allocate fixed space for the state size (would need 3-4 bytes to be
general, when 1 byte is usually sufficient) which uses a bit of extra
RAM per bytecode function, and makes the code less elegant in places
where this uint is encoded/decoded.

So, for now, opt for an extra pass.
</content>
</entry>
</feed>
