Why Managed C++ on mono with Open64 will fail
I was going to leave it at one blog entry today, but it seems that blogs are the only forum in which to respond to other blogs.
Miguel de Icaza's recent blog entry on Managed C++ and Mono is really misguided. He proposes that Open64 and the old "new" WHIRL representation present a path to Managed C++ on mono. I attended the Open64 User Forum last year, and this is what I learned. Some of it may be dated now, but a quick look at the mail archives is unconvincing.
- Open64 has a fractured developer community.
The open source community around Open64 technology forked a number of years ago (see ORC), so there doesn't appear to be canonical upstream sources anywhere. And
while a couple of big companies are still building production compilers based on the Open64 technology, there is no meaningful interaction with the open source community ("where do we send patches?" was an oft heard refrain).
- Open64 has a small user community.
This compiler has no x86 back-end, which severely limits the potential user community. I believe that this really inhibits the ability of the non-commercial developers from producing a trusted compiler.
- The GNU compiler front ends hacked into Open64 are way old.
This is where I'd expect you'd want to borrow the most code for a Managed C++ tool. But don't expect help from the GCC community to fix this. The FSF has decided that the technology used in Open64 (persistant intermediate representations) is harmful to their goals.
I don't really mean to be so harsh on the Open64 project. In many ways, the technology is a decade ahead of GCC, and a number of successful commercial compilers have been built out of it -- but it is not a successful open source project. The only measure by which you might claim it is successful is as a research platform for generating interesting papers.
And now GCC is bound to catch up in that arena, given the new SSA-based infrastructure.
So, if you really cared about Managed C++, then you would look to GCC and the new SSA infrastructure for an answer. On the other hand, you might just want to consider GCJ and CNI.