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 |