Wonderful work, I look forward to it landing in SVN.
Only one concern: the choice to select the personality during compilation
seems to create problems:
* We won't have an easy way to check that changes that add / change
diagnostics correctly update all the personalities
* Distributions would presumably pick one personality for their users,
restricting user choice
* The unit tests hard-code expected diagnostic output for a particular
personality, so would fail on other personalities.
I think the solution should be completely clear: please also update the
build system to always build the compiler five times, one for each
personality, and likewise make four additional copies of the test suite,
one for each new personality. This will increase build time and developer
overhead, but it's obviously worthwhile.