<story><title>Chicken Scheme</title><url>https://call-cc.org/</url></story><parent_chain></parent_chain><comment><author>nostrademons</author><text>Note that Chicken has a very interesting garbage-collection algorithm called &amp;quot;Cheney on the MTA&amp;quot;.  Basically, the stack is the heap, and no function ever returns.  The compiler converts every program to continuation-passing style, where instead of a function returning, it tail-calls a continuation.  When the stack exhausts its limit, the runtime longjmps back to a trampoline.  Variables captured by the current continuation form the roots of a copying generational GC - the runtime traces every pointer from them and copies the live objects to the heap.  The stack then unwinds, with every uncopied object being garbage that gets re-used the next time the stack grows.&lt;p&gt;It&amp;#x27;s pretty amazing that it works, particularly in relatively portable C.  Also gets fairly decent performance, too: as Schemes go Chicken is one of the faster ones.&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.more-magic.net&amp;#x2F;posts&amp;#x2F;internals-gc.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.more-magic.net&amp;#x2F;posts&amp;#x2F;internals-gc.html&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;citeseerx.ist.psu.edu&amp;#x2F;viewdoc&amp;#x2F;summary?doi=10.1.1.54.7143&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;citeseerx.ist.psu.edu&amp;#x2F;viewdoc&amp;#x2F;summary?doi=10.1.1.54....&lt;/a&gt;</text></comment>
<story><title>Chicken Scheme</title><url>https://call-cc.org/</url></story><parent_chain></parent_chain><comment><author>oneplane</author><text>I have never really been exposed to the likes of Scheme, Lisp, Smalltalk etc. and I&amp;#x27;m curious if anyone without an academic background actually got in to any of that by themselves.&lt;p&gt;Generally, it&amp;#x27;s just a bunch of JS, C#, Java, Python, and some Scala that runs everywhere I look, which often also has a large &amp;quot;I came across it and I got to work&amp;quot; type of developer or engineer using it. Maybe it&amp;#x27;s just the type of ecosystem I keep hopping around it but it seems that it&amp;#x27;s much less prominent than you&amp;#x27;d expect.&lt;p&gt;There are always novel compilers, transpilers and showcases, but the amount of widespread use eludes me. (Only ErLang comes to mind with RabbitMQ, and maybe OCaml with Xen)</text></comment>