<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mjb/altos/src/scheme, branch debian/1.8.4-1</title>
<subtitle>AltOS - the operating system for Altus Metrum products
</subtitle>
<id>https://git.ethernal.org/mjb/altos/atom?h=debian%2F1.8.4-1</id>
<link rel='self' href='https://git.ethernal.org/mjb/altos/atom?h=debian%2F1.8.4-1'/>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/'/>
<updated>2017-12-19T20:39:20+00:00</updated>
<entry>
<title>altos/scheme: Replace per-type indexed stash with poly stash heap</title>
<updated>2017-12-19T20:39:20+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2017-12-19T20:39:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=ed1f7b79abc7400a54b35fbf62c9db6855f9129a'/>
<id>urn:sha1:ed1f7b79abc7400a54b35fbf62c9db6855f9129a</id>
<content type='text'>
Instead of having a random set of stash arrays with explicit indices
used by callers, just have a general heap. Less error prone, and less code.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/scheme: Replace memory pool macros with inlines</title>
<updated>2017-12-19T20:16:24+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2017-12-19T20:16:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=71fb79492cb955af4bd52e79f1fa69d17e084dbc'/>
<id>urn:sha1:71fb79492cb955af4bd52e79f1fa69d17e084dbc</id>
<content type='text'>
AO_SCHEME_IS_CONST -&gt; ao_scheme_is_const_addr
AO_SCHEME_IS_POOL -&gt; ao_scheme_is_pool_addr

Provides better typechecking and avoids confusion with
ao_scheme_is_const inline (which takes an ao_poly instead of a void *)

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/scheme: AO_SCHEME_IS_CONS -&gt; ao_scheme_is_cons</title>
<updated>2017-12-19T19:51:33+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2017-12-19T19:51:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=34f998d147d08e966daad1ab76c40906018d3d8d'/>
<id>urn:sha1:34f998d147d08e966daad1ab76c40906018d3d8d</id>
<content type='text'>
This inline was already defined; just use it. Also, switch some places
to use ao_scheme_is_pair instead as appropriate.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/scheme: ao_scheme__cons -&gt; ao_scheme_cons</title>
<updated>2017-12-19T19:43:23+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2017-12-19T19:43:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=fa6f4b331db9d37da6767005fd375b696485b46b'/>
<id>urn:sha1:fa6f4b331db9d37da6767005fd375b696485b46b</id>
<content type='text'>
Fix the double underscore in this name. Ick.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/scheme: Don't optimize ao_scheme_make_const</title>
<updated>2017-12-19T19:40:08+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2017-12-19T19:40:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=00390fb09f47654905824af671b966ffca0a38b3'/>
<id>urn:sha1:00390fb09f47654905824af671b966ffca0a38b3</id>
<content type='text'>
Performance isn't interesting, and it's nice to have a bare system
ready for debugging.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/scheme: Clean up test CFLAGS</title>
<updated>2017-12-19T19:39:39+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2017-12-19T19:39:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=ba472dda57e134fe0f0e4a571a6d0c1e5a1ea6eb'/>
<id>urn:sha1:ba472dda57e134fe0f0e4a571a6d0c1e5a1ea6eb</id>
<content type='text'>
make it easy to switch between debug and optimized builds.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/scheme: (define (foo . bar)) has a pair, not list as card</title>
<updated>2017-12-19T19:37:33+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2017-12-19T19:37:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=53b99e0419cb44c7983e41026bf0430deae58940'/>
<id>urn:sha1:53b99e0419cb44c7983e41026bf0430deae58940</id>
<content type='text'>
When defining a lambda with varargs, the args are not a list as the
final element is not a pair or nil. Use pair? instead of list? to
detect this form correctly.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/scheme: apply also needs to not free value list on lambdas</title>
<updated>2017-12-19T19:35:09+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2017-12-19T19:35:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=fbe5dc9f215e7014aa8f9d325c1fba939816be03'/>
<id>urn:sha1:fbe5dc9f215e7014aa8f9d325c1fba939816be03</id>
<content type='text'>
When apply is invoked on any function, the cons in the argument list
cannot be immediately freed as they have been passed to the
function. That applies to both built-ins as well as lambdas; this
patch removes the special ao_scheme_skip_cons_free global and just
marks the stack in both cases.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/scheme: Rework display/write code</title>
<updated>2017-12-19T19:33:36+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2017-12-19T19:33:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=431165e5fa72ba6dffd477de32960745cdec332c'/>
<id>urn:sha1:431165e5fa72ba6dffd477de32960745cdec332c</id>
<content type='text'>
Unify output functions and add bool to switch between write and
display mode. Make that only affect strings (as per r⁷rs).

Use print recursion detection in frame and stack code, eliminating
PRINT flags in type field.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/scheme: Compile scheme test with -O3</title>
<updated>2017-12-18T10:14:57+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2017-12-18T10:14:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=5628b983497d9d03e10cccee157419210a49cfa9'/>
<id>urn:sha1:5628b983497d9d03e10cccee157419210a49cfa9</id>
<content type='text'>
This level of optimization caused trouble, so use it all of the time.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
</feed>
