[racket] Garbage collection in Racket

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Mon Jul 23 15:36:42 EDT 2012

On Jul 23, 2012, at 2:36 PM, Rüdiger Asche wrote:

> You seem to be asking for Pascal or C/C++. Then again, is it possible that "critical" regions of your program could be managed via finalizers and your own memory administration? Giving up even one iota of GC soundness, sounds like giving up all of memory soundness though it's possible I am overlooking something.
> -----------------------------------------------------------------------------------------------------------------------------------------
> You probably have a point there; however, soundness is neither the only nor the foremost criterion that will decide upon the success of a programming environment in the field (unfortunate as it may be)...
> Come to think of it, any implementation of Scheme that could be of practical use in the embedded world MUST compromise one major tenet of the language or the other - for example, in Embedded, it MUST typically be possible to decide *where* in memory a given data item resides (eg volatile vs. non volatile or zeroed vs. non zeroed memory). Likewise, for real time applications, the turnaround of certain computations must be predictable and bound which is very hard with a GC in place whose behavior can not be fine tuned. It is probably for these (and related) reasons that we still do most of our work in Embedded in C/C++ which is a bummer...
> but probably these discussions lead us too far away from the original question for which I wish to apologize.

I have doubts about this argument. My doubts are all based on the existence of an embedded version of Gambit for very small 'bots. It is fully memory safe but omits most of the number hierarchy from what I understand. 

Posted on the users mailing list.