<story><title>Chicken Scheme internals: the garbage collector</title><url>http://www.more-magic.net/posts/internals-gc.html</url><text>An overview of how the Garbage Collector in Chicken Scheme works. Contains some good diagrams and code sample to help understand the topic and also a set of links to read more about the subject.</text></story><parent_chain></parent_chain><comment><author>gjm11</author><text>Henry Baker&amp;#x27;s &amp;quot;Cheney on the M.T.A.&amp;quot; paper (which is the basis for the stuff described here) is very nice. There&amp;#x27;s a collection of Baker&amp;#x27;s research papers here:&lt;p&gt;&lt;a href=&quot;http://www.pipeline.com/~hbaker1/&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;www.pipeline.com&amp;#x2F;~hbaker1&amp;#x2F;&lt;/a&gt;&lt;p&gt;which includes the &amp;quot;Cheney on the M.T.A.&amp;quot; paper (&lt;a href=&quot;http://www.pipeline.com/~hbaker1/CheneyMTA.html&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;www.pipeline.com&amp;#x2F;~hbaker1&amp;#x2F;CheneyMTA.html&lt;/a&gt;) and a bunch of other interesting things (mostly with a lispy flavour). A few specific examples:&lt;p&gt;&lt;a href=&quot;http://www.pipeline.com/~hbaker1/Prag-Parse.html&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;www.pipeline.com&amp;#x2F;~hbaker1&amp;#x2F;Prag-Parse.html&lt;/a&gt; -- a nice technique (not invented by Baker) for simple parsing tasks, and a neat Lisp implementation.&lt;p&gt;&lt;a href=&quot;http://www.pipeline.com/~hbaker1/LazyAlloc.html&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;www.pipeline.com&amp;#x2F;~hbaker1&amp;#x2F;LazyAlloc.html&lt;/a&gt; -- you might notice that the &amp;quot;M.T.A.&amp;quot; paper is subtitled &amp;quot;CONS should not CONS its arguments, part II&amp;quot;; this is the original &amp;quot;CONS should not CONS its arguments&amp;quot; and is also about allocating things on the stack that you might not expect to be stack-allocatable.&lt;p&gt;&lt;a href=&quot;http://www.pipeline.com/~hbaker1/Use1Var.html&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;www.pipeline.com&amp;#x2F;~hbaker1&amp;#x2F;Use1Var.html&lt;/a&gt; -- &amp;quot;use-once&amp;quot; variables (related to &amp;quot;linear logic&amp;quot;, which is not Baker&amp;#x27;s creation), not a million miles from C++&amp;#x27;s auto_ptr&amp;#x2F;unique_ptr but Baker was advocating this stuff as early as 1993.&lt;p&gt;And some other interesting things due to people other than Baker, such as a copy of the famous HAKMEM (&lt;a href=&quot;http://www.pipeline.com/~hbaker1/hakmem/hakmem.html&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;www.pipeline.com&amp;#x2F;~hbaker1&amp;#x2F;hakmem&amp;#x2F;hakmem.html&lt;/a&gt;).</text></comment>
<story><title>Chicken Scheme internals: the garbage collector</title><url>http://www.more-magic.net/posts/internals-gc.html</url><text>An overview of how the Garbage Collector in Chicken Scheme works. Contains some good diagrams and code sample to help understand the topic and also a set of links to read more about the subject.</text></story><parent_chain></parent_chain><comment><author>girvo</author><text>I was looking at Chicken Scheme the other day for building a Entity-Component-System 2D game engine, as I love Lisps, but alas, the SDL bindings were quite out of date, and I didn&amp;#x27;t want to take my first project on as writing bindings for a C library!&lt;p&gt;It&amp;#x27;s a very cool system, and this article is awesome. I find garbage collectors fascinating.</text></comment>