It is shame that the TenDRA compiler does not get more interest (http://www.tendra.org/). It
is BSD licensed, multi-platform and multi-language. It's intermediate format is based on ANDF
(http://en.wikipedia.org/wiki/ANDF). It was a brilliant idea that was released as open source
just too late to make a difference.
One of the main aims of TenDRA was to enable the distribution of applications and libraries in
the intermediate format. The intension was to have 'installers' on each target platform that
could compile the portable intermediate format into the target op-code. This would enable a
single 'compiled' distribution of applications for all platforms that had a TenDRA installer.
(I declare an interest, I worked on the original TenDRA team at the UK Defence Evaluation and
Research Agency in Malvern).
Richard
Posted Oct 30, 2007 23:51 UTC (Tue) by bfeeney (subscriber, #6855)
[Link]
Interestingly, that sounds a lot like LLVM, which is more likely to replace GCC (thanks to the
clang front-end) than GCC. Frontends (like clang) generate their intermediate representation in
LLVMs very low-level intermediate representation and then they have a choice
They can use the rest of the toolchain to generate native code for a particular platform,
which
they distribute or
They can assemble the IR objects into a bundle (I have to admit to not knowing a great deal
about the specifics of this) which they then distribute. Users with a properly configured
environment with LLVM installed will have that converted to native code using a JIT like
Java.
I think it's possible to IR compiled on the host platform as well - certainly it wouldn't be
particularly difficult.
To be honest, I find the *BSD's fascination with PCC to be a bit odd - the main reason
it's so fast is because it does so little, applications generated by it certainly won't be faster than
their GCC equivalents for some time to come. LLVM and clang, on the other hand, offer good
performance now, and are jointly distributed under a BSD licence, with clang getting significant
support from Apple. I think it would be worth their while trying to partake, and therby control
the direction of, clang development rather than start almost from scratch with PCC.