| OLD | NEW |
| 1 .. _nacl-and-pnacl: | 1 .. _nacl-and-pnacl: |
| 2 | 2 |
| 3 ############## | 3 ############## |
| 4 NaCl and PNaCl | 4 NaCl and PNaCl |
| 5 ############## | 5 ############## |
| 6 | 6 |
| 7 This document describes the differences between **Native Client** and | 7 This document describes the differences between **Native Client** and |
| 8 **Portable Native Client**, and provides recommendations for when to use each. | 8 **Portable Native Client**, and provides recommendations for when to use each. |
| 9 | 9 |
| 10 .. contents:: | 10 .. contents:: |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 .. _when-to-use-pnacl: | 74 .. _when-to-use-pnacl: |
| 75 | 75 |
| 76 When to use PNaCl | 76 When to use PNaCl |
| 77 ================= | 77 ================= |
| 78 | 78 |
| 79 PNaCl is the preferred toolchain for Native Client, and the only way to deploy | 79 PNaCl is the preferred toolchain for Native Client, and the only way to deploy |
| 80 Native Client modules without the Google Web Store. Unless your project is | 80 Native Client modules without the Google Web Store. Unless your project is |
| 81 subject to one of the narrow limitations described under ":ref:`When to use | 81 subject to one of the narrow limitations described under ":ref:`When to use |
| 82 NaCl<when-to-use-nacl>`", you should use PNaCl. | 82 NaCl<when-to-use-nacl>`", you should use PNaCl. |
| 83 | 83 |
| 84 Since version 31, Chrome supports translation of pexe | 84 Chrome supports translation of pexe modules and their use in web applications |
| 85 modules and their use in web applications without requiring installation either | 85 without requiring installation either of a browser plug-in or of the |
| 86 of a browser plug-in or of the applications themselves. Native Client and PNaCl | 86 applications themselves. Native Client and PNaCl are open-source technologies, |
| 87 are open-source technologies, and our hope is that they will be added to other | 87 and our hope is that they will be added to other hosting platforms in the |
| 88 hosting platforms in the future. | 88 future. |
| 89 | 89 |
| 90 If controlled distribution through the Chrome Web Store is an important part of | 90 If controlled distribution through the Chrome Web Store is an important part of |
| 91 your product plan, the benefits of PNaCl are less critical for you. But you can | 91 your product plan, the benefits of PNaCl are less critical for you. But you can |
| 92 still use the PNaCl toolchain and distribute your application through the Chrome | 92 still use the PNaCl toolchain and distribute your application through the Chrome |
| 93 Web Store, and thereby take advantage of the conveniences of PNaCl, such as not | 93 Web Store, and thereby take advantage of the conveniences of PNaCl, such as not |
| 94 having to explicitly compile your application for all supported architectures. | 94 having to explicitly compile your application for all supported architectures. |
| 95 | 95 |
| 96 .. _when-to-use-nacl: | 96 .. _when-to-use-nacl: |
| 97 | 97 |
| 98 When to use NaCl | 98 When to use NaCl |
| 99 ================ | 99 ================ |
| 100 | 100 |
| 101 Use NaCl if any of the following apply to your application: | 101 Use NaCl if any of the following apply to your application: |
| 102 | 102 |
| 103 * Your application requires architecture-specific instructions such as, for | 103 * Your application requires architecture-specific instructions such as, for |
| 104 example, inline assembly. PNaCl tries to offer high-performance portable | 104 example, inline assembly. PNaCl tries to offer high-performance portable |
| 105 equivalents. One such example is PNaCl's :ref:`Portable SIMD Vectors | 105 equivalents. One such example is PNaCl's :ref:`Portable SIMD Vectors |
| 106 <portable_simd_vectors>`. | 106 <portable_simd_vectors>`. |
| 107 * Your application uses dynamic linking. PNaCl only supports static linking | 107 * Your application uses dynamic linking. PNaCl only supports static linking |
| 108 with a PNaCl port of the ``newlib`` C standard library. Dynamic linking and | 108 with a PNaCl port of the ``newlib`` C standard library. Dynamic linking and |
| 109 ``glibc`` are not yet supported in PNaCl. Work is under way to enable dynamic | 109 ``glibc`` are not yet supported in PNaCl. Work is under way to enable dynamic |
| 110 linking in future versions of PNaCl. | 110 linking in future versions of PNaCl. |
| 111 * Your application uses certain GNU extensions not supported by PNaCl's LLVM | 111 * Your application uses certain GNU extensions not supported by PNaCl's LLVM |
| 112 toolchain, like taking the address of a label for computed ``goto``, or nested | 112 toolchain, like taking the address of a label for computed ``goto``, or nested |
| 113 functions. | 113 functions. |
| OLD | NEW |