<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chromatopelma/csc/encoding.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/encoding.csc?h=main</id>
<link rel='self' href='https://code.roseh.moe/chromatopelma/atom/csc/encoding.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>Add the typeof opcode.</title>
<updated>2022-07-30T20:30:34Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-07-30T20:30:34Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=0632650d0e4250e08a76982ab2713a34e3531b33'/>
<id>urn:sha1:0632650d0e4250e08a76982ab2713a34e3531b33</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix the bytecode interpreter.</title>
<updated>2022-07-30T05:41:17Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-07-30T05:41:17Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=c7ff0b98146693b60a3f075818f96764f646b2d5'/>
<id>urn:sha1:c7ff0b98146693b60a3f075818f96764f646b2d5</id>
<content type='text'>
I'm too scared to actually try to run it right now.
</content>
</entry>
<entry>
<title>Insert an exit op at the end of the program.</title>
<updated>2022-07-30T00:52:54Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-07-30T00:52:54Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=762431b0f0a6ead18a93a05c0f3269dca5b8fef1'/>
<id>urn:sha1:762431b0f0a6ead18a93a05c0f3269dca5b8fef1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Re-write the encoding library.</title>
<updated>2022-07-26T03:54:54Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-07-26T03:54:54Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=63a7c0103c47e3735f7d21e9666124924be9e18e'/>
<id>urn:sha1:63a7c0103c47e3735f7d21e9666124924be9e18e</id>
<content type='text'>
I greatly improved the library, and changed it to expect register
bytecode instead of stack-based.
</content>
</entry>
<entry>
<title>Improve the match syntax for constants.</title>
<updated>2022-07-25T02:08:13Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-07-25T02:08:13Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=51a1e71c269f298fba18b620c68a0b1b15d236e9'/>
<id>urn:sha1:51a1e71c269f298fba18b620c68a0b1b15d236e9</id>
<content type='text'>
I guess you can pattern match using quote as a literal.
That's pretty cool.
</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>Move scheme compiler into a separate directory.</title>
<updated>2022-01-12T06:01:23Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-01-12T06:01:23Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=68986fe0410584c6934c835bb0ee784655f5f8c5'/>
<id>urn:sha1:68986fe0410584c6934c835bb0ee784655f5f8c5</id>
<content type='text'>
</content>
</entry>
</feed>
