Jeremy Brown's comments on reverse engineering presentations, 9/22


I came up with a few questions during the presentations in class, that
I wasn't able to ask due to the overrun of talks.  I'm not sure how
important any of them are, but I figured I'd send them to you and let
you decide if any were worth explicitly mentioning.

- Is there any care given to maintain consistent world views between
clients of the CM (i.e. any sort of transaction mechanism)?  Is there
any case in which two clients could have different world views?  What
kinds of problems can arise from this?

- What makes the C++ code 'worse' than the C code?  How much of the
difference can be attributed to the languages or the programming
styles encouraged by the languages, and how much to other factors?

- Are big hairy graphs really useful visualization tools?  The small
call graphs were interesting to me, but when I saw
almost-completely-connected inter-file call graphs, I was overwhelmed.
For instance, a simple list saying "these files handle windowing and
call each other" would have been more useful, I think, than the graph
of all the windowing files and how they call each other.

- Is any of the CM code shared with any of the client applications?
How much code for, say, message handling is duplicated in the clients
and in the CM?

- what is a typical system load?  do the CM designers need to be
optimizing for cycles, or can they spend a few computrons on clarity
and abstraction?

- what is a typical system configuration?  How many machines do the
various applications run on?  Do they share a file system?  Do they
have distributed shared memory?

- (similar to the previous) Which communications methods (messages,
file system, shared memory) are available to which applications?  What
are the tradeoffs of using any particular one?

Anyhow, that's my $.02... not sure how many of them are critical to
understanding the system, but I think they're all at least somewhat
interesting.

Jeremy