Document message types in Charm's message hander (_processHandler in ck.C)
Sanjay's description of NewChareMsg, NewVChareMsg & ForVidMsg (given on slack).
These are both related to singleton chares (as opposed to chare arrays). The kind you’d generate in a fibonacci program. NewChareMsg is for creation of a new singleton chares. As to Vid (virtual id): When a chare X creates chare Y, it gets a proxy (say P) back. But Y is not yet created. it is just a seed for a new chare given to the seed balancer (say via CldEnque). So the proxy is not real. It is a virtual id. If you send a message to P, the system will buffer it at the processor that houses the vid (in case X sends the message to P, it is on the same processor as X, but note that P is a first class object, which can be sent around to another processor). The Virtual ID pointed to by P will simply buffer the messages sent to it, until it knows the real ID. When the real chare Y is created on some processor, it sends a message to the virtual ID (represented by P), so all the buffered messages can be forwarded to the real chare. After that, the Virtual chare will just forward messages to the real chare without buffering. ForVidMsg are messages for this virtual (buffering) chare.