(I couldn't think what would be the best group for this post, so I am
posting this here.)
Imagine the following scenario: You want to install POV-Ray eg. for
Windows. You go to povray.org and download the (one and only) installer
for Windows. You run it, it spends some time installing POV-Ray in your
system... and what ends up there is a version of POV-Ray that's optimized
precisely for *your* computer, rather than it being a generic binary
optimized for the 80386.
Do you have a 32-bit Pentium 4 Prescott? The binary is optimized for that
precise architecture. Do you have a 64-bit quad-core Intel i7? Optimized
for that precise architecture. Do you have an Athlon 64? Again, optimized
for it. Do you have an older 32-bit AMD Athlon? Optimized. Do you have
an even measlier Pentium 2? No problem, optimized for it.
And this is achieved without you having to download the source code, a
compiler, all the necessary libraries, and then trying to compile it for
your precise system. It all happens automatically and transparently just
with the POV-Ray installer, and that's it.
How could this be achieved?
The LLVM project has been designed for precisely this kind of thing. LLVM
is basically a compiler backend that's so modular that you can embed it
for example in a software installer and have it create an executable
binary from a pre-compiled internal form of the program for a precise
target architecture. All this can be designed so that it all happens
transparently, without the user having to set up anything or download
anything additional for that purpose. (LLVM is language-agnostic and
doesn't care how the original program source was compiled into LLVM's
Of course I'm not saying this would be *trivial*, but I think it would be
worth at least researching the possibility.
Post a reply to this message