[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
S&I's idea of EQ?
In Chez Scheme, for a program using no assignments, creating no closures
with free variables, and using no call/cc, garbage collection overhead
from the system is 0%. This is a fairly common situation.
This is the case for us also with compiled code. Upward funargs and
downward funargs to unknown procedures (eq? is unknown for this
purpose) are about the only closures being consed. The rare exception
is when more than one operator is possible in a combination, in which
case I wimped out and decided to force all possibilities (all the
known procedures which might become the operator of that
combination) to be closures for simplicity. I consider this a bug
which will be fixed eventually in the new compiler, but we do not
seem to lose because of it too often.
We still run mostly interpreted code which conses considerably more
often. Besides some problems which the compiler has, our debugger
currently cannot handle compiled code (in part because compiled code
is so irregular and the compiler leaves no debugging information
around). Interpreted code runs acceptably fast and is considerably
easier to debug.