OLD | NEW |
1 {{+bindTo:partials.standard_nacl_article}} | 1 {{+bindTo:partials.standard_nacl_article}} |
2 | 2 |
3 <section id="nacl-and-pnacl"> | 3 <section id="nacl-and-pnacl"> |
4 <span id="id1"></span><h1 id="nacl-and-pnacl"><span id="id1"></span>NaCl and PNa
Cl</h1> | 4 <span id="id1"></span><h1 id="nacl-and-pnacl"><span id="id1"></span>NaCl and PNa
Cl</h1> |
5 <p>This document describes the differences between <strong>Native Client</strong
> and | 5 <p>This document describes the differences between <strong>Native Client</strong
> and |
6 <strong>Portable Native Client</strong>, and provides recommendations for when t
o use each.</p> | 6 <strong>Portable Native Client</strong>, and provides recommendations for when t
o use each.</p> |
7 <div class="contents local" id="contents" style="display: none"> | 7 <div class="contents local" id="contents" style="display: none"> |
8 <ul class="small-gap"> | 8 <ul class="small-gap"> |
9 <li><a class="reference internal" href="#native-client-nacl" id="id6">Native Cli
ent (NaCl)</a></li> | 9 <li><a class="reference internal" href="#native-client-nacl" id="id6">Native Cli
ent (NaCl)</a></li> |
10 <li><a class="reference internal" href="#portable-native-client-pnacl" id="id7">
Portable Native Client (PNaCl)</a></li> | 10 <li><a class="reference internal" href="#portable-native-client-pnacl" id="id7">
Portable Native Client (PNaCl)</a></li> |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 application. It does not have to be distributed through the Chrome Web Store. In | 55 application. It does not have to be distributed through the Chrome Web Store. In |
56 short, PNaCl combines the portability of existing web technologies with the | 56 short, PNaCl combines the portability of existing web technologies with the |
57 performance and security benefits of Native Client.</p> | 57 performance and security benefits of Native Client.</p> |
58 <p>PNaCl is a new technology, and as such it still has a few limitations | 58 <p>PNaCl is a new technology, and as such it still has a few limitations |
59 as compared to NaCl. These limitations are described below.</p> | 59 as compared to NaCl. These limitations are described below.</p> |
60 <h2 id="when-to-use-pnacl"><span id="id4"></span>When to use PNaCl</h2> | 60 <h2 id="when-to-use-pnacl"><span id="id4"></span>When to use PNaCl</h2> |
61 <p>PNaCl is the preferred toolchain for Native Client, and the only way to deplo
y | 61 <p>PNaCl is the preferred toolchain for Native Client, and the only way to deplo
y |
62 Native Client modules without the Google Web Store. Unless your project is | 62 Native Client modules without the Google Web Store. Unless your project is |
63 subject to one of the narrow limitations described under “<a class="refere
nce internal" href="#when-to-use-nacl"><em>When to use | 63 subject to one of the narrow limitations described under “<a class="refere
nce internal" href="#when-to-use-nacl"><em>When to use |
64 NaCl</em></a>”, you should use PNaCl.</p> | 64 NaCl</em></a>”, you should use PNaCl.</p> |
65 <p>Since version 31, Chrome supports translation of pexe | 65 <p>Chrome supports translation of pexe modules and their use in web application
s |
66 modules and their use in web applications without requiring installation either | 66 without requiring installation either of a browser plug-in or of the |
67 of a browser plug-in or of the applications themselves. Native Client and PNaCl | 67 applications themselves. Native Client and PNaCl are open-source technologies, |
68 are open-source technologies, and our hope is that they will be added to other | 68 and our hope is that they will be added to other hosting platforms in the |
69 hosting platforms in the future.</p> | 69 future.</p> |
70 <p>If controlled distribution through the Chrome Web Store is an important part
of | 70 <p>If controlled distribution through the Chrome Web Store is an important part
of |
71 your product plan, the benefits of PNaCl are less critical for you. But you can | 71 your product plan, the benefits of PNaCl are less critical for you. But you can |
72 still use the PNaCl toolchain and distribute your application through the Chrome | 72 still use the PNaCl toolchain and distribute your application through the Chrome |
73 Web Store, and thereby take advantage of the conveniences of PNaCl, such as not | 73 Web Store, and thereby take advantage of the conveniences of PNaCl, such as not |
74 having to explicitly compile your application for all supported architectures.</
p> | 74 having to explicitly compile your application for all supported architectures.</
p> |
75 <h2 id="when-to-use-nacl"><span id="id5"></span>When to use NaCl</h2> | 75 <h2 id="when-to-use-nacl"><span id="id5"></span>When to use NaCl</h2> |
76 <p>Use NaCl if any of the following apply to your application:</p> | 76 <p>Use NaCl if any of the following apply to your application:</p> |
77 <ul class="small-gap"> | 77 <ul class="small-gap"> |
78 <li>Your application requires architecture-specific instructions such as, for | 78 <li>Your application requires architecture-specific instructions such as, for |
79 example, inline assembly. PNaCl tries to offer high-performance portable | 79 example, inline assembly. PNaCl tries to offer high-performance portable |
80 equivalents. One such example is PNaCl’s <a class="reference internal" hre
f="/native-client/reference/pnacl-c-cpp-language-support.html#portable-simd-vect
ors"><em>Portable SIMD Vectors</em></a>.</li> | 80 equivalents. One such example is PNaCl’s <a class="reference internal" hre
f="/native-client/reference/pnacl-c-cpp-language-support.html#portable-simd-vect
ors"><em>Portable SIMD Vectors</em></a>.</li> |
81 <li>Your application uses dynamic linking. PNaCl only supports static linking | 81 <li>Your application uses dynamic linking. PNaCl only supports static linking |
82 with a PNaCl port of the <code>newlib</code> C standard library. Dynamic linking
and | 82 with a PNaCl port of the <code>newlib</code> C standard library. Dynamic linking
and |
83 <code>glibc</code> are not yet supported in PNaCl. Work is under way to enable d
ynamic | 83 <code>glibc</code> are not yet supported in PNaCl. Work is under way to enable d
ynamic |
84 linking in future versions of PNaCl.</li> | 84 linking in future versions of PNaCl.</li> |
85 <li>Your application uses certain GNU extensions not supported by PNaCl’s
LLVM | 85 <li>Your application uses certain GNU extensions not supported by PNaCl’s
LLVM |
86 toolchain, like taking the address of a label for computed <code>goto</code>, or
nested | 86 toolchain, like taking the address of a label for computed <code>goto</code>, or
nested |
87 functions.</li> | 87 functions.</li> |
88 </ul> | 88 </ul> |
89 </section> | 89 </section> |
90 | 90 |
91 {{/partials.standard_nacl_article}} | 91 {{/partials.standard_nacl_article}} |
OLD | NEW |