[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]

Garbage Collection Summary

Reading MarkM's recent discussion of garbage collection, C++ 
compiling, etc., I found it, uh, somewhat difficult to see the 
forest behind the trees. So here's my stab at a brief, high-level 
summary, for others on this channel who suspect that something 
very important was under discussion, but aren't quite sure what 
it was:

1) Our garbage collector imposes some peculiar constraints on 
programming style until C++ compilers are fixed to match the 
C++ specification. Depending on individual temperament, different 
people will view the peculiar constraints  as infuriating and 
intolerable, not merely peculiar. Surely, if we were to force 
third party developers to live within these constraints, we would 
receive howls of protest from a group of significant size.

2) Fortunately, we are not going to force these constraints on 
our third parties. 

3)Developers who are using C will never see any of this at all--they 
will interface in a more direct manner to the backend. An independent 
though related question is, to what extent will C developers 
be able to exploit our tools (above and beyond the backend itself)? 
Bob Perez is addressing this question (though at a limited priority 
until he has the tools documented at least for C++ users :-)

4) Developers using C++, who want to use tools above and beyond 
the backend itself, will probably never see it either. We are 
investigating 2 paths to eliminate the constraints:

   a) Leverage outside resources to fix the C++ compilers, and 

   b) use the technology inside our existing C++ preprocessors 
to remove the constraint before the compiler sees the code.

5) Both approaches to fixing the problem have only  a small impact 
on our critical path (on the PERT chart, MarkM's calendar is 
custom-built to automatically account for occasional events like 

6) MarkM's second message suggests a third alternative, building 
a less effective but more convenient garbage collector for the 
third parties. This would fall under the task of building extended 
development environments for third parties, to be addressed when 
we get seriously into the toolkit development discussed in Joel's 
marketing plan.