<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mjb/altos/src/test/ao_lisp_test.c, branch telefire-4-no-addr</title>
<subtitle>AltOS - the operating system for Altus Metrum products
</subtitle>
<id>https://git.ethernal.org/mjb/altos/atom?h=telefire-4-no-addr</id>
<link rel='self' href='https://git.ethernal.org/mjb/altos/atom?h=telefire-4-no-addr'/>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/'/>
<updated>2017-02-20T19:16:51+00:00</updated>
<entry>
<title>altos/lisp: Optimize chunk searching in collect</title>
<updated>2017-02-20T19:16:51+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-11-16T21:19:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=daa06c8dedc6dc1cf21936ee2769d9d25f0567bd'/>
<id>urn:sha1:daa06c8dedc6dc1cf21936ee2769d9d25f0567bd</id>
<content type='text'>
Note range of existing chunks to exclude objects outside.
Only look at chunks which have been set to reduce loop cost.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/lisp: Add incremental collection</title>
<updated>2017-02-20T19:16:51+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-11-16T20:34:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=c8f9db184cc929ebde845730a6d4b7864e423a84'/>
<id>urn:sha1:c8f9db184cc929ebde845730a6d4b7864e423a84</id>
<content type='text'>
Realizing that long-lived objects will eventually float to the bottom
of the heap, I added a simple hack to the collector that 'remembers'
the top of the heap the last time a full collect was run and then runs
incremental collects looking to shift only objects above that
boundary. That doesn't perfectly capture the bounds of transient
objects, but does manage to reduce the amount of time spent not moving
persistent objects each time through the collector.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/lisp: Show number of collect calls in ao_lisp_test</title>
<updated>2017-02-20T19:16:50+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-11-15T05:27:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=74ff0c6fd6c41cdaa054dcdb3d05c7d333bc24ff'/>
<id>urn:sha1:74ff0c6fd6c41cdaa054dcdb3d05c7d333bc24ff</id>
<content type='text'>
This helps tune the allocator

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/lisp: Append a CRC to the saved image to validate on restore</title>
<updated>2017-02-20T19:16:50+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-11-12T07:34:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=33aeffc123af1f9063969acf585f1caac885ced4'/>
<id>urn:sha1:33aeffc123af1f9063969acf585f1caac885ced4</id>
<content type='text'>
The CRC is actually of the ROM bits, so we can tell if the restored
image relates to the currently running code.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/lisp: Add save/restore to ao_lisp_test</title>
<updated>2017-02-20T19:16:50+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-11-12T05:18:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=8f2d60b4c029bffaa559bd1f31f5b15230dfa674'/>
<id>urn:sha1:8f2d60b4c029bffaa559bd1f31f5b15230dfa674</id>
<content type='text'>
Allow testing of the save/restore code under Linux.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/lisp: Improve lisp test program UI</title>
<updated>2017-02-20T19:16:50+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-11-11T07:28:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=137898e3431d887e75b09d8c1ce57297a1558e43'/>
<id>urn:sha1:137898e3431d887e75b09d8c1ce57297a1558e43</id>
<content type='text'>
Add a prompt for stdin, read from other files on command line before
stdin.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Add lambda support to lisp</title>
<updated>2017-02-20T19:16:49+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-11-04T04:49:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=77db0e8162cd01c2b42737b3d71b38cea942484f'/>
<id>urn:sha1:77db0e8162cd01c2b42737b3d71b38cea942484f</id>
<content type='text'>
Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/lisp: Separate out values from atoms</title>
<updated>2017-02-20T19:16:49+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-11-03T05:56:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=11cb03b1d336ee90c422be27588f57be573a9546'/>
<id>urn:sha1:11cb03b1d336ee90c422be27588f57be573a9546</id>
<content type='text'>
This enables changing values of atoms declared as constants, should
enable lets, and with some work, even lexical scoping.

this required changing the constant computation to run
ao_lisp_collect() before dumping the block of constant data, and that
uncovered some minor memory manager bugs.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/lisp: Change lisp objects to use ao_poly everywhere. Add const</title>
<updated>2017-02-20T19:16:49+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-11-02T04:14:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=d2408e72d1e0d3459918601712b09860ab17e200'/>
<id>urn:sha1:d2408e72d1e0d3459918601712b09860ab17e200</id>
<content type='text'>
This makes all lisp objects use 16-bit ints for references so we can
hold more stuff in small amounts of memory. Also adds a separate
constant pool of lisp objects for builtins, initial atoms and constant
lisp code.

Now builds (and runs!) on the nucleo-32 boards.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Add lisp reader</title>
<updated>2017-02-20T19:16:49+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-11-01T01:53:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=e2f4d25cd6f6f3787d4ee99264732d5b2ce23d4c'/>
<id>urn:sha1:e2f4d25cd6f6f3787d4ee99264732d5b2ce23d4c</id>
<content type='text'>
</content>
</entry>
</feed>
