The UPC bit is interesting. It's part history, part disagreement on the underlying parallel substrate, and part lack of any hard-core demand. I'm not sure how much work exists for message aggregation optimizations in the the GCC UPC front-end. That's utterly critical for performance now but wasn't way back when the GCC UPC front-end began (on the Cray T3D). As for demand, the vast majority of UPC use is non-public. I fully understand why core GCC developers might not want to jump on that train; maintaining a UPC compiler well requires both maintaining the compiler and runtime system for all sorts of bizarre HW combinations. And last I heard, plans for co-arrays in Fortran were going in a quite different direction (and wrong one, imho, but that's just my opinion and I'm not contributing work), so wouldn't re-use the runtime.