RationalizeHeapsTodo - larcenists/larceny GitHub Wiki
Here are the heaps we should have:
larceny.heapcontains everything that most programmers would want to use, and nothing that is of use only to developers. For example,compile-fileshould be present, but not$branchf.twobit.heapcontains everything that compiler developers would want to use, including pretty-printer and debugger, but does not have to contain things that are mainly of interest to application developers. For example, MIDI support would not be part oftwobit.heapeven if it were present inlarceny.heap.r5rs.heapis largely obsolete and misleading. We should eliminate it.sparc.heapandpetit.heapare bare-bones heaps used for bootstrapping and as a basis for constructinglarceny.heapandtwobit.heap. They make sense for Sparc Larceny and for Petit Larceny, but not for Common Larceny. Until and unless we decide to move to a new model of bootstrapping Sparc and Petit Larceny, we should continue to providesparc.heapandpetit.heapas part of the development package. To reduce confusion, they should not be part of the bare-bones, quick-start distribution.- We have two distinct compiler drivers, which use two distinct configurations of the same macro expander, differing in the syntax environment and possibly in other ways. This seems to be a gratuitous difference between
larceny.heapandtwobit.heap, and should be cleaned up. It could be that the driver used intwobit.heapwas designed for cross-compilation when bootstrapping via systems other than Larceny. Maybe Larceny has become mature enough for us to forget about bootstrapping via other systems; on the other hand, being able to bootstrap via other systems is a nice feature.