[gclist] other GC services

Charles Fiterman cef@geodesic.com
Fri, 11 Apr 1997 09:35:03 -0500

>The big problem would be debugging.  A bug in a copy procedure would manifest 
>itself at arbitrary points in the program; it might be very hard to find. Only 
>experience would tell us how the hazards and advantages trade off.

Consider the following plan for a type safe language. The reference class always
makes sure that assignments are correct (NIL is a subclass of every class) and
the array class makes sure that all array references are legal (but traversal
methods avoid checking every method). These things can be speeded up by partial 
evaluation but they don't always have to be. An illegal assignment to a reference 
will produce and error, hopefully at compile time but it will not go through.

This is a minimum implementation. Two classes to debug and the collector is safe.
But the language implementors can add to the minimum. You can have an matrix class
with fast traversals. You can have a weak hash table. You can have an object 
forwarding class. 

Additions that can violate the safety of the system must be done at a trusted
level and they will happen slowly.

Now we can have some of the class definitions in rom that way they can never
be tampered with. The trusted level is rom. In addition a class can come 
over in encrypted form that only your computer can read. And it won't give 
you access except via its methods and your computer protects that. Now you 
are protected from viruses and the software vendor is protected from pirates. 
You can have any contract for use of software and the machine becomes the 
Charles Fiterman		Geodesic Systems
414 North Orleans Suite 410	Phone 312 832 1221 x223
Chicago IL 60610-4418		FAX   312 832 1230

A computer language without garbage collection
  is like a city without garbage collection.