Jump to content

Talk:Google Native Client

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

it is NOW dynamic recompilation

[edit]
It thought it should be "NOT dynamic recompilation" but he really says "NOW".

It's here. http://www.youtube.com/watch?v=wt-iVFxgFWk&t=2h36m25s

PNaCl is the compiler that targets nacl-le32 instead of native nacl-x86_64, nacl-i686, nacl-arm and nacl-mips. Pexe to nexe translation is a static recompilation, in fact the pexe format is LLVM bitcode, with the last compilation step being done right before execution, allowing developers to ship one pexe instead of many nexe, one per architecture, with the idea of a PNaCl runtime to “convert” (finishing the compilation) the pexe to the arch-specific nexe on user's system. The pexe-to-nexe translation can also be used by developers for building a single pexe target (compiling every compilation units only once) and to translate it to native nexe before shipping.

the latest pepper canary (pepper 58 from February 2 2017) still relies on pnacl-translate which is a toolchain set of Unix bash and python scripts. It looks like projects for faster static translators (there had been names floating in the air like “subzero”) never went to shipping either. The pnacl-translate tool was very slow, and letting the user wait literate minutes when loading a page wouldn't be good. To give a comparison, the pnacl-translate which translates the whole compiled application as once is as slow as LTO linking of executable of similar size. It's “probable” that Google had hidden the technical details to developers, allowing developers to push pexe-only applications to Google application/extension store and did the native translation behind the scene before delivering to users. It's probable that PNaCl translation “as a runtime” never went into production, as Google Pepper did not shipped translators for some of the targets like arm (so arm how could not translate pexe to arm nexe with pepper tools…) and third-party NaCl platforms like the Dæmon engine never shipped the translator either.

Latest NaCl toolchain (Saigo compiler based on Clang 21 and maintained until January of 2025) doesn't compile to pexe, only to nacl-x86_64, nacl-i686, and nacl-arm.

There may have been projects for dynamic recompilation, but it's doubtful it ever went in production (if not even materialized as proof of concepts…) So here John Carmack likely mixed-up some words, or was actually talking about some deep behind-the scene projects but was a bit optimistic about the actual status of it (the Keynote is almost 4-hours long, so imprecisions can happen).

Once can look at the Dæmon game engine which still uses NaCl in 2026 and maintains both the Saigo NaCl SDK and the NaCl runtime after Google end of support:

The Dæmon engine is idTech-based but was forked years before NaCl existed, so the Dæmon NaCl implementation isn't related to any Carmack's experiment with NaCl, and Carmack may have known things that Dæmon developers never knew. So the quote is the quote, but there is likely a small mistake in it or a reference to something that never went in production. Illwieckz (talk) 05:16, 8 July 2026 (UTC)[reply]

-O4

[edit]

It's now dynamic recompilation, but something that you program in C or C++ and it compiles down to something that's going to be not your -O4 optimization level for completely native code but pretty damn close to native code.

I assume the -O4 refers to gcc? At least in that case anything higher than -O3 is still only -O3. Maybe that should be changed and linked to avoid confusion? 93.209.20.132 (talk) 13:41, 24 September 2012 (UTC)[reply]

It's a quote, nothing should be changed in it. 190.188.181.195 (talk) 02:04, 8 January 2015 (UTC)[reply]
Not only it's a quote, but it's very likely an intentional Exaggeration used as a Superlative to express the idea of absolute peak optimization in his comparison. It is very likely not even a mistake to begin with but an intentional creative wording. So not only the quote should be delivered verbatim as a matter of principle, but removing the purposed dramatic effect would likely go against the Author's moral rights. For example a translation would have to retain such “past the known limit” exaggeration even if worded differently in another language or with another writing system. Illwieckz (talk) 05:41, 8 July 2026 (UTC)[reply]

ARM implementation

[edit]

It's not clear from the text if the ARM implementation still executes x86 code, or it is running ARM binaries? SyP (talk) 13:58, 12 September 2010 (UTC)[reply]

I asked it on the mailing list and corrected the article accordingly. SyP (talk) 12:54, 13 September 2010 (UTC)[reply]

Neither, it's clear from the sources though that it will use Bitcode and a LLVM compiler to produce completely portable code that is platform independent called PNaCL. ShadowEO (talk) 18:23, 20 January 2012 (UTC)[reply]

That comment talked about something future (“will”) while the question was about the present (“still”), the current status in 2026 is that it executes 32-bit arm, amd64 and i686, according to the platform, and that pexe has to be converted to native (arm/amd64/i686) nexe first. Illwieckz (talk) 05:20, 8 July 2026 (UTC)[reply]

Should we add a criticism section & Refusal by Opera & Mozilla/firefox for inclusion

[edit]

I think we should have a criticism section and/or or potential drawbacks. Including potential security issues as experienced by similar tech before (including ActiveX, Java, Flash etc) and lock-in into select few CPUs/Platforms. How mature is NaCL on x86/IA-32 CPUs?

Apart from licensing, what are its advantages over ActiveX, Flash & Java?

Should also include the claim by Mozilla and Opera that they do not plan including support for NaCL in their respective browsers?

http://www.theregister.co.uk/2010/06/24/jay_sullivan_on_firefox/ http://www.theregister.co.uk/2010/10/01/opera_on_google_native_client/

-Sinebot_will_rat_me_out —Preceding unsigned comment added by 203.173.9.215 (talk) 12:58, 5 October 2010 (UTC)[reply]

NaCL Box

[edit]

Not sure where to put this so I'll just add the link and info NaCL Box (http://www.naclbox.com/) is apparently a port of DosBox to native client. --Xero (talk) 00:53, 11 May 2011 (UTC)[reply]

Merge Pepper

[edit]

Pepper/PPAPI currently has a section in this article and a section in NPAPI with overlapping content. They should be merged, maybe into a new article. --88.73.36.175 (talk) 12:16, 5 October 2011 (UTC)[reply]

Portable Native Client (PNaCl)

[edit]

PNaCl should have it's own article or section. NaCl has been rejected by Mozilla and others for good reasons, but many of their arguments don't hold for PNaCl. The use of cross-architecture LLVM code sandboxed in a browser – a potential fast multilingual replacement for JavaScript – is a very interesting idea (especially as ‘web apps’ become more prevalent), and should be covered in more detail. —James Haigh (talk) 2013-05-23T19:21:32Z

at more than half the native speed

[edit]

So "at more than half the native speed" would be 150% as in overclocking... uh, Huston please check. Also, the activex comments have excessive punctuation (in my opinion). TIA. (I'm too exhausted to fix) 75.142.138.213 (talk) 05:26, 4 June 2015 (UTC)[reply]

You misread. For a native speed of 1, half the native speed is 0.5. So more than half the native speed is >0.5 - still less than 1, the (theoretical) maximum speed. —ajf (talk) 17:03, 4 June 2015 (UTC)[reply]
[edit]

Hello fellow Wikipedians,

I have just modified one external link on Google Native Client. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

checkY An editor has reviewed this edit and fixed any errors that were found.

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

Cheers.—InternetArchiveBot (Report bug) 04:35, 23 March 2017 (UTC)[reply]

Update. Google Native Client has rode off into the sunset. — Preceding unsigned comment added by 73.222.134.211 (talk) 20:29, 27 March 2020 (UTC)[reply]