-
Notifications
You must be signed in to change notification settings - Fork 32
RationalizeHeapsTodo
Felix S. Klock II edited this page Jul 28, 2013
·
1 revision
Here are the heaps we should have:
-
larceny.heap
contains everything that most programmers would want to use, and nothing that is of use only to developers. For example,compile-file
should be present, but not$branchf
. -
twobit.heap
contains 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.heap
even if it were present inlarceny.heap
. -
r5rs.heap
is largely obsolete and misleading. We should eliminate it. -
sparc.heap
andpetit.heap
are bare-bones heaps used for bootstrapping and as a basis for constructinglarceny.heap
andtwobit.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.heap
andpetit.heap
as 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.heap
andtwobit.heap
, and should be cleaned up. It could be that the driver used intwobit.heap
was 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.