"Google has begun making public the details concerning their Portable Native Client (PNaCl) implementation."
To be completely fair, PNaCl is part of Chromium, and hence an open source project from the start. The code is freely available for anyone to see, check out and build, and has always been.
"Portable Native Client comes down to compiling Google Native Client applications to a subset of LLVM bitcode that can then basically run anywhere that Native Client is supported. "
I suppose Michael Larabel meant to say "compiling C and C++ applications" instead of "Google Native Client applications" here.
To be completely fair, PNaCl is part of Chromium, and hence an open source project from the start. The code is freely available for anyone to see, check out and build, and has always been.
I think the most important thing here is not the code, but rather the refinements to LLVM IR bitcode to make it more portable. Most of LLVM IR is already CPU/platform agnostic but parts of it are closely tied to the target architecture (which makes sense since LLVM IR was originally targeted at compilers).
A standard portable subset of LLVM IR would be very welcome.
Well, it started internally, it was mostly working when the code was open sourced. Not really an "open source project from the start", even if it has been for, well, years.
Once you compiled and published it, it's a NaCl app. Saying "compiling NaCl apps" is misleading because NaCl is a platform, not a language. The PNaCl toolchain can compile C and C++ (and theoretically other frontends can be added, as long as they lower to the PNaCl IR) to a blob that the browser can execute in a secure manner on all supported platforms and CPU architectures.
Comments
A couple of notes:
"Google has begun making public the details concerning their Portable Native Client (PNaCl) implementation."
To be completely fair, PNaCl is part of Chromium, and hence an open source project from the start. The code is freely available for anyone to see, check out and build, and has always been.
"Portable Native Client comes down to compiling Google Native Client applications to a subset of LLVM bitcode that can then basically run anywhere that Native Client is supported. "
I suppose Michael Larabel meant to say "compiling C and C++ applications" instead of "Google Native Client applications" here.
I think the most important thing here is not the code, but rather the refinements to LLVM IR bitcode to make it more portable. Most of LLVM IR is already CPU/platform agnostic but parts of it are closely tied to the target architecture (which makes sense since LLVM IR was originally targeted at compilers).
A standard portable subset of LLVM IR would be very welcome.
Well, there's a portable subset of LLVM IR there, for sure. Comments are welcome - we are very interested in feedback.
Well, it started internally, it was mostly working when the code was open sourced. Not really an "open source project from the start", even if it has been for, well, years.
I think it's correct saying NaCl apps, since the same API restrictions are imposed by PNaCl.
Once you compiled and published it, it's a NaCl app. Saying "compiling NaCl apps" is misleading because NaCl is a platform, not a language. The PNaCl toolchain can compile C and C++ (and theoretically other frontends can be added, as long as they lower to the PNaCl IR) to a blob that the browser can execute in a secure manner on all supported platforms and CPU architectures.