<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chromatopelma/csc/compare-test.csc, branch main</title>
<subtitle>Partial r7rs implementation with a focus on ease of implementation and a reusable library. Work in progress.</subtitle>
<id>https://code.roseh.moe/chromatopelma/atom/csc/compare-test.csc?h=main</id>
<link rel='self' href='https://code.roseh.moe/chromatopelma/atom/csc/compare-test.csc?h=main'/>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/'/>
<updated>2022-08-02T02:35:19Z</updated>
<entry>
<title>Modify the project structure.</title>
<updated>2022-08-02T02:35:19Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-08-02T02:35:19Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=acc561366f3fe6ec0377103f52ef0f7e923711c9'/>
<id>urn:sha1:acc561366f3fe6ec0377103f52ef0f7e923711c9</id>
<content type='text'>
Now the lib directory contains what will eventually end up on the
user's /usr/lib/csc. When I write make install, it will copy all of
the .csc files from lib into the destination lib directory. This means I
can start working on the standard library in lib/scheme.
</content>
</entry>
<entry>
<title>Fix a potential R7RS issue.</title>
<updated>2022-07-27T02:24:10Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-07-27T02:24:10Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=becfaeb778a3c8ba241e2155b998d6b27dcfad0c'/>
<id>urn:sha1:becfaeb778a3c8ba241e2155b998d6b27dcfad0c</id>
<content type='text'>
I was using the load procedure to load a program, but by a strict
reading of R7RS, load can only handle expressions and definitions, not
imports. So instead I'm defining each test as a library, and using the
environment procedure to load them at runtime.
</content>
</entry>
<entry>
<title>Fix some bugs in the compare library.</title>
<updated>2022-07-25T03:28:56Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-07-25T03:28:56Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=498040c3d1532bb6de01dbbb55348f631c3745d6'/>
<id>urn:sha1:498040c3d1532bb6de01dbbb55348f631c3745d6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Perform argument conversion.</title>
<updated>2022-07-21T03:08:14Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@google.com</email>
</author>
<published>2022-07-20T22:39:23Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=e615308b928585013461482f879f536527c5acc2'/>
<id>urn:sha1:e615308b928585013461482f879f536527c5acc2</id>
<content type='text'>
The point of argument conversion is to validate on each function call
that the right number of arguments were passed, and to ensure that no
function has more than 1 argument. This second condition makes CPS
slightly simpler, and ensures that the arguments will all fit in locals.

We take the strategy of allocating a vector for each function call.
Ideally we would optimize away most of these allocations, but for now I
just want it to work.
</content>
</entry>
<entry>
<title>Slightly improve diff formatting.</title>
<updated>2022-07-13T05:55:12Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@google.com</email>
</author>
<published>2022-07-13T05:55:12Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=d9a651a17e4abb63a24b764f6a850a0df74bd156'/>
<id>urn:sha1:d9a651a17e4abb63a24b764f6a850a0df74bd156</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add a diff library.</title>
<updated>2022-07-03T21:37:10Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-07-03T21:37:10Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=bcb098e8eb18637b6999789585a38ff9168de9d5'/>
<id>urn:sha1:bcb098e8eb18637b6999789585a38ff9168de9d5</id>
<content type='text'>
I was hesitant to add a diff library, but it was surprisingly easy. A
straightforward application of dynamic programming.
</content>
</entry>
</feed>
