
Chicken Scheme internals: the garbage collector (2014) - tosh
https://www.more-magic.net/posts/internals-gc.html
======
apples_oranges
I wanted to learn a LISP-like language and tried Chicken for a bit and then
switched to Racket. Reason: Documentation. I constantly got stuck with
Chicken, often because the documentation available is for a previous version.
No such problems with Racket and their, imho, excellent guide.

No doubt Chicken is a great language with cool features, it's just not very
beginner friendly.

~~~
sjamaan
The documentation for eggs of the previous version has a link at the very top
to the latest version.

For other cases, please consider letting us know exactly where you got stuck
on IRC or on the mailinglist. Without feedback we can't fix things! The
community is very friendly to beginners, even if the documentation isn't.

~~~
jboynyc
This I have also found to be the case, though ultimately I also focused more
on learning Racket because, coming from Python, I was used to a more
"batteries included" experience.

------
snazz
Previous discussion:
[https://news.ycombinator.com/item?id=7499101](https://news.ycombinator.com/item?id=7499101)

Unfortunately, the pipeline.com links no longer work, and I haven’t been able
to coax the Wayback Machine into giving me more than the first page of the
Cheney on the MTA paper.

~~~
mafm
This link works for me:

[https://web.archive.org/web/20170811235424/http://home.pipel...](https://web.archive.org/web/20170811235424/http://home.pipeline.com/~hbaker1/CheneyMTA.pdf)

That site was one of the better collections of lisp technical papers. I hope
it's not gone for good, it was there earlier this year.

~~~
zeveb
It's gone up & down a few times; I _really_ hope that it hasn't gone for good.

------
ridiculous_fish
Cheney-on-the-MTA is a classic. tl;dr:

1\. Transform into continuation-passing style.

2\. Use the C stack as the young generation by calling each continuation as an
ordinary C function.

3\. When the stack reaches a limit, copy all reachable objects to the heap,
"free" the young gen via longjmp() back to the bottom of the stack, and
continue on.

