<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chromatopelma/csc/loop.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/loop.csc?h=main</id>
<link rel='self' href='https://code.roseh.moe/chromatopelma/atom/csc/loop.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>Slightly improve loop.</title>
<updated>2022-07-26T03:52:39Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-07-26T03:52:39Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=f4cbcfc5f0a0d2a8a6d98f77e17a735177bb913a'/>
<id>urn:sha1:f4cbcfc5f0a0d2a8a6d98f77e17a735177bb913a</id>
<content type='text'>
The advantage to this approach is that the user can modify the loop
variables and the variables will be stepped as expected, e.g.
(loop for i from 1 to 10
      do (set! i (+ 1 i))
      collect i)
should return '(2 4 6 8 10).
</content>
</entry>
<entry>
<title>Fix a bug in loop with nested collect statements.</title>
<updated>2022-07-25T02:07:17Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-07-25T02:07:17Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=192ab9c4e21bab8c08a640b349fa9630a9a672df'/>
<id>urn:sha1:192ab9c4e21bab8c08a640b349fa9630a9a672df</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improve the loop macro collect statement.</title>
<updated>2022-07-24T19:52:21Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-07-24T19:52:21Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=c6b74224fe669bc9d180a409ad13ed269631b316'/>
<id>urn:sha1:c6b74224fe669bc9d180a409ad13ed269631b316</id>
<content type='text'>
Now you can use multiple collect statements and they will all accumulate
into the same variable. I think in common lisp you could collect into
the same variable even with collect x into, but it's pretty unclear to
me how to do that in Scheme. How would we know that they are the
same variable?
</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>
<entry>
<title>Improve CPS.</title>
<updated>2022-06-28T22:58:36Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-06-28T22:58:36Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=fed28363fb60266c030a0f6b30d5a9d697774ee0'/>
<id>urn:sha1:fed28363fb60266c030a0f6b30d5a9d697774ee0</id>
<content type='text'>
Goodbye soup. Thanks to "Compiling with Continuations" by Appel.
</content>
</entry>
<entry>
<title>Nitpick on loop style.</title>
<updated>2022-01-25T17:24:50Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-01-25T17:24:50Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=1dd8b1f6eaf611cf5525065aa18f20baa1ada5f3'/>
<id>urn:sha1:1dd8b1f6eaf611cf5525065aa18f20baa1ada5f3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use an exception for loop return.</title>
<updated>2022-01-25T17:17:01Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-01-25T17:17:01Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=874ebc4daeda9c8f9fe3c35201be43da57003fbd'/>
<id>urn:sha1:874ebc4daeda9c8f9fe3c35201be43da57003fbd</id>
<content type='text'>
This makes everything a lot easier, as it handles nested loops
automatically. My brain wave was storing the returned values in a thunk.
</content>
</entry>
<entry>
<title>Fix the bugs in loop.</title>
<updated>2022-01-25T16:42:20Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-01-25T16:42:20Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=384688fa95abaf0fcbeb1c187b1574ebd6cec456'/>
<id>urn:sha1:384688fa95abaf0fcbeb1c187b1574ebd6cec456</id>
<content type='text'>
It works! Sometimes it emits nested loops!
</content>
</entry>
<entry>
<title>Finish the loop macro.</title>
<updated>2022-01-25T04:40:33Z</updated>
<author>
<name>Rose Hogenson</name>
<email>rhogenson@posteo.net</email>
</author>
<published>2022-01-25T04:40:33Z</published>
<link rel='alternate' type='text/html' href='https://code.roseh.moe/chromatopelma/commit/?id=c36d2a16e06e2f3ca9c9c3f8d969411bc8c28f01'/>
<id>urn:sha1:c36d2a16e06e2f3ca9c9c3f8d969411bc8c28f01</id>
<content type='text'>
I also cleaned everything up a lot. Maybe there are still bugs because
the test coverage is awful, but for now I'm happy to be done.
</content>
</entry>
</feed>
