[R6RS] I/O <-> GC question

William D Clinger will
Tue Nov 23 14:06:26 EST 2004

Mike, here's some general advice regarding the interaction between
language design and garbage collection.  In the past, implementors
of Scheme have generally had to write their own garbage collectors,
but that is no longer true.  In the future, many implementors will
have to live with the limitations of garbage collectors written by
Sun, or IBM, or Microsoft, because the target architecture will
often be something like the JVM or CLR.  It is vitally important,
therefore, that language designers not assume implementors can lock
objects down so their address won't change, or assume implementors
can allocate objects that won't move around in memory.

The target architecture will probably provide that feature for some
form of raw memory, but it may not be available for garbage-collected
objects.  These target architectures usually assume that low-level
i/o is performed by code written in a non-garbage-collected language,
and expose this i/o only in some encapsulated form.


More information about the R6RS mailing list