Monday, 19 October 2009

Google NaCl roadmap

Just in case you haven't studied Google's "native code safer than JavaScript" project, based on this video from Google, here is a very short summary of Google Native Client (NaCl).

Current status is:

* Still under review, but basically works
* x86 32-bit machine code is supported
* Non-accelerated graphics
* Sandboxed
* Delivers full native code performance in your website code. A video decoder delivered as part of a webpage is almost the same speed as a native video decoder for the target operating system.
* Cross-platform runtime library that makes the same native code run on several operating systems

The future brings:

* At least as safe as JavaScript (i.e. run native code off untrusted websites)
* Built into browsers (Chrome and others)
* 64-bit x86 support, ARM CPU support
* Fast 3D graphics using O3D from native code, suitable for 3D games and CAD applications
* Real-time applications

As far as I can see, Kylix and FreePascal can compile for this already, and it seems that one of the next Delphi versions can compile for this, too.


dave said...

thanks for posting this. what a validation of native code tools.

masonwheeler said...

I'm a bit confused. Why can Kylix and FreePascal compile for this and Delphi can't? It looks like it's able to run x86 code in general, as long as it passes the security checks.

Lars D said...

When Borland created Kylix, one of the problems was that the machine code needed to be relocatable without repatching absolute jump addresses. Delphi did not generate machine code like that, so they had to change how the compiler generates machine code in order to make it possible for Kylix to generate native Linux x86 code.

However, gcc is able to generate the right kind of machine code from C++, so I assume that Kylix and Freepascal are compatible, too.