Hacker News new | ask | show | jobs
by Reisen 2781 days ago
One of the best intros to generational garbage collection is on chicken internals[1]. If you've ever wondered about GCs I thoroughly recommend giving the article a read, it's full of interesting asides as well.

I think I would use chicken more but usually when reaching for scheme it seems to be because I want something embeddable. Even so, extremely excited about this release!

[1]: https://www.more-magic.net/posts/internals-gc.html

2 comments

CHICKEN is just as suitable for embedding in C programs as for embedding C code in CHICKEN: https://wiki.call-cc.org/man/5/Embedding

The complete CHICKEN 5 runtime should be a bit smaller already than the CHICKEN 4 runtime, because we dropped some stuff, but if the runtime is still too large for your needs, you can make a custom build that omits certain components. Here's a small tutorial on how to do that: https://wiki.call-cc.org/generating%20the%20smallest%20possi...

JOOI, what's your embeddable Scheme of choice?
Guile or Chibi depending on what I want. Guile is about 2mb and seriously fast. Chibi is tiny and not very fasy.
Do you statically link Guile? Guile is a pleasure to work with, but I was under the impression that you can’t embed Guile because it’s GPL.
Guile ls LGPL.

You can statically link to LGPL libraries so long as you also provide your program in "object form" so that the user can re-link their program with a different version of guile.

See: https://www.gnu.org/licenses/gpl-faq.html#LGPLStaticVsDynami...

Surprised to see Guile weighing in at 2mb - my experience with it on Linux was a much larger install. What makes the Linux packages so much larger out of curiosity? I profiled it at more like 50-80mb when I compiled it a couple of months ago.
I meant weight as in extra RAM usage for the application I use it in.