The Phoenix PlugIn Model and Assemblies

As you probably know Phoenix supports a PlugIn model, and the c2.dll (the C++ backend) that ships with Phoenix uses this PlugIn model to allow users to write their own phases for the C++ backend.  Currently, with the PlugIn model the user specifies the name of the PlugIn on the command-line via the "-plugin:assembly_name" command line option. 

One question that may come up is, "what if I have multiple classes that implement the PlugIn interfaces in a given assembly?"  Well the answer is that you can only have one PlugIn per assembly.  I'm not sure if this question is answered in the docs, but since the question can come up, I thought I'd tackle it here for right now.

I should note that the PlugIn model may change some in the future, but we will be very clear when that happens.