GooglePresented Portable Native Client to run platform-independent C / C + + programs in a browser

Google has announced a technology Portable Native Client (PNaCl), in which developed a multi-platform version of Native Client, allows you to run applications written in C and C + + in a special isolated environment web-browser, regardless of the current hardware architecture. PNaCl code is integrated into the experimental branch of Chrome 29.

In PNaCl instead of generating native code application is compiled into a universal bitkod LLVM and comes in a non-attached to a particular platform executable format “. Pexe”. In the process of running the application in between bitkod LLVM is translated into machine code on the current platform of the local system user. In other words, the assembled using PNaCl application can be run in a variety of mobile and desktop systems with different hardware architectures (currently supports 32 – and 64-bit x86 systems and devices based on the architecture of ARM). Another important difference from the previously available Native Client is a need for a multi-platform library newlib, komapaniya developed by Red Hat as simplified standard C library for embedded systems. Library glibc, appeal to the Pepper API to perform multimedia operations, and dynamic linking with other libraries are not supported.

To build universal binaries pexe prepared a special tool pnacl, shipped with SDK-package pepper_canary. The new tool is based on the Clang compiler components and LLVM (used in Native Client GCC). To enable PNaCl in Shrome 29, your browser must be running with the flag “- enable-pnacl”, in this case bitkoda LLVM compiler runs in a separate background process. Monitor the work of the translator can be using the service reference “chrome ://nacl”.

Removal of the stage generate native code on the client side allows the developer to not worry about the low-level optimizations and support for new architectures – new methods of optimization and support for new platforms appratanyh performed without rebuilding a custom application update through a translator. After the final release PNaCl and final stabilization of the intermediate format executable files, users will be able to integrate portable PNaCl-ins in any web-page without the need to deploy applications in the Chrome Web Store.

The Mozilla, in turn, promotes its own technology to run in a browser application written in C and C + +. Unlike Native Client, applications are broadcast in a special subset of the language JavaScript, which enables you to run in any browser. With support for the browser specific JavaScript-dialect strongly typed – Asm.js, runtime performance of such programs has been significantly improved, and can keep up with the native applications about twice. Currently Asm.js support is already integrated into the beta version of Firefox 22.

Link to news: