The ML Kit is a compiler for SML '97, which makes use of regions, which are basically blocks of memory that hold data that have similar lifetimes - for instance, a region might hold all the nodes of a linked list. The ML Kit compiler automatically infers memory regions in many cases, falling back on traditional GC when it can't be sure of the lifetime of an object. The advantage of region-based memory management is that freeing a region is a constant-time operation, and so doesn't lead to the unpredictable pauses that GC sometimes does.
The first few chapters of the manual give an overview of the implications of regions.
Regions are also a feature of Cyclone, which we've discussed here before.
Posted to functional by Bryn Keller on 5/20/02; 1:50:15 PM
|
|