OLD | NEW |
1 {{+bindTo:partials.standard_nacl_article}} | 1 {{+bindTo:partials.standard_nacl_article}} |
2 | 2 |
3 <section id="release-notes"> | 3 <section id="release-notes"> |
4 <span id="sdk-release-notes"></span><h1 id="release-notes"><span id="sdk-release
-notes"></span>Release Notes</h1> | 4 <span id="sdk-release-notes"></span><h1 id="release-notes"><span id="sdk-release
-notes"></span>Release Notes</h1> |
5 <p>The dates in the following release notes denote when Chrome and the NaCl SDK | 5 <p>The dates in the following release notes denote when Chrome and the NaCl SDK |
6 reached canary status. The stable release is typically 6 weeks later.</p> | 6 reached canary status. The stable release is typically 6 weeks later.</p> |
7 <h2 id="chrome-pepper-43-03-april-2015">Chrome/Pepper 43 (03 April 2015)</h2> | 7 <h2 id="chrome-pepper-43-03-april-2015">Chrome/Pepper 43 (03 April 2015)</h2> |
8 <h3 id="pnacl">PNaCl</h3> | 8 <h3 id="pnacl">PNaCl</h3> |
9 <ul class="small-gap"> | 9 <ul class="small-gap"> |
10 <li>The C11/C++11 <code>acquire</code>, <code>release</code>, and <code>acq_rel<
/code> memory orders are now | 10 <li>The C11/C++11 <code>acquire</code>, <code>release</code>, and <code>acq_rel<
/code> memory orders are now |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 <h3 id="id3">PNaCl</h3> | 48 <h3 id="id3">PNaCl</h3> |
49 <ul class="small-gap"> | 49 <ul class="small-gap"> |
50 <li>PNaCl is now based on LLVM 3.5.</li> | 50 <li>PNaCl is now based on LLVM 3.5.</li> |
51 </ul> | 51 </ul> |
52 <h2 id="chrome-pepper-40-november-07-2014">Chrome/Pepper 40 (November 07 2014)</
h2> | 52 <h2 id="chrome-pepper-40-november-07-2014">Chrome/Pepper 40 (November 07 2014)</
h2> |
53 <ul class="small-gap"> | 53 <ul class="small-gap"> |
54 <li><a class="reference external" href="/native-client/pepper_stable/cpp/classpp
_1_1_video_decoder.html">VideoDecoder</a> is now | 54 <li><a class="reference external" href="/native-client/pepper_stable/cpp/classpp
_1_1_video_decoder.html">VideoDecoder</a> is now |
55 stable, see the SDK example in <code>pepper_canary/examples/api/video_decode</co
de>.</li> | 55 stable, see the SDK example in <code>pepper_canary/examples/api/video_decode</co
de>.</li> |
56 </ul> | 56 </ul> |
57 <h2 id="chrome-pepper-39-26-september-2014">Chrome/Pepper 39 (26 September 2014)
</h2> | 57 <h2 id="chrome-pepper-39-26-september-2014">Chrome/Pepper 39 (26 September 2014)
</h2> |
| 58 <h3 id="id4">NaCl</h3> |
| 59 <ul class="small-gap"> |
| 60 <li>This release contains a fix for CVE-2015-0565: <a class="reference external"
href="https://code.google.com/p/nativeclient/issues/detail?id=3944">disable the
x86 CLFLUSH |
| 61 instruction due to rowhammer problem</a>.</li> |
| 62 </ul> |
58 <h3 id="pepper">Pepper</h3> | 63 <h3 id="pepper">Pepper</h3> |
59 <ul class="small-gap"> | 64 <ul class="small-gap"> |
60 <li>Support for <code>DEBUG_ONLY:dev://postmessage</code> has been removed in fa
vor of | 65 <li>Support for <code>DEBUG_ONLY:dev://postmessage</code> has been removed in fa
vor of |
61 <a class="reference internal" href="/native-client/devguide/devcycle/debugging.h
tml#devcycle-debugging"><em>other more useful debugging approaches</em></a>.</li
> | 66 <a class="reference internal" href="/native-client/devguide/devcycle/debugging.h
tml#devcycle-debugging"><em>other more useful debugging approaches</em></a>.</li
> |
62 <li><code>postMessageAndAwaitResponse</code> is now stable and allows JavaScript
to | 67 <li><code>postMessageAndAwaitResponse</code> is now stable and allows JavaScript
to |
63 <a class="reference external" href="/native-client/pepper_stable/cpp/classpp_1_1
_message_handler">communicate synchronously</a> with PNaCl | 68 <a class="reference external" href="/native-client/pepper_stable/cpp/classpp_1_1
_message_handler">communicate synchronously</a> with PNaCl |
64 embeds.</li> | 69 embeds.</li> |
65 </ul> | 70 </ul> |
66 <h2 id="chrome-pepper-38-15-august-2014">Chrome/Pepper 38 (15 August 2014)</h2> | 71 <h2 id="chrome-pepper-38-15-august-2014">Chrome/Pepper 38 (15 August 2014)</h2> |
67 <h3 id="id4">PNaCl</h3> | 72 <h3 id="id5">PNaCl</h3> |
68 <ul class="small-gap"> | 73 <ul class="small-gap"> |
69 <li>Compilation speed improvements due to validation caching of the translator a
nd | 74 <li>Compilation speed improvements due to validation caching of the translator a
nd |
70 linker.</li> | 75 linker.</li> |
71 <li>Performance improvement of SIMD vector shuffle.</li> | 76 <li>Performance improvement of SIMD vector shuffle.</li> |
72 </ul> | 77 </ul> |
73 <h2 id="chrome-pepper-37-20-june-2014">Chrome/Pepper 37 (20 June 2014)</h2> | 78 <h2 id="chrome-pepper-37-20-june-2014">Chrome/Pepper 37 (20 June 2014)</h2> |
74 <h3 id="id5">PNaCl</h3> | 79 <h3 id="id6">PNaCl</h3> |
75 <ul class="small-gap"> | 80 <ul class="small-gap"> |
76 <li>2–10% translation time improvement.</li> | 81 <li>2–10% translation time improvement.</li> |
77 <li>Improved vector load/store and shuffle performance.</li> | 82 <li>Improved vector load/store and shuffle performance.</li> |
78 </ul> | 83 </ul> |
79 <h3 id="id6">Pepper</h3> | 84 <h3 id="id7">Pepper</h3> |
80 <ul class="small-gap"> | 85 <ul class="small-gap"> |
81 <li>Media Streams Input support.</li> | 86 <li>Media Streams Input support.</li> |
82 <li>Compositor API.</li> | 87 <li>Compositor API.</li> |
83 <li>Hardware Decode API in development preview.</li> | 88 <li>Hardware Decode API in development preview.</li> |
84 <li>Sync API in development preview.</li> | 89 <li>Sync API in development preview.</li> |
85 </ul> | 90 </ul> |
86 <h3 id="id7">SDK</h3> | 91 <h3 id="id8">SDK</h3> |
87 <ul class="small-gap"> | 92 <ul class="small-gap"> |
88 <li>Demo of a <a class="reference internal" href="/native-client/io2014.html#io2
014"><em>full development environment in the browser</em></a>.</li> | 93 <li>Demo of a <a class="reference internal" href="/native-client/io2014.html#io2
014"><em>full development environment in the browser</em></a>.</li> |
89 </ul> | 94 </ul> |
90 <h2 id="chrome-pepper-36-09-may-2014">Chrome/Pepper 36 (09 May 2014)</h2> | 95 <h2 id="chrome-pepper-36-09-may-2014">Chrome/Pepper 36 (09 May 2014)</h2> |
91 <h3 id="id8">PNaCl</h3> | 96 <h3 id="id9">PNaCl</h3> |
92 <ul class="small-gap"> | 97 <ul class="small-gap"> |
93 <li>Support <a class="reference external" href="http://clang.llvm.org/docs/Langu
ageExtensions.html#vectors-and-extended-vectors">LLVM vectors</a> | 98 <li>Support <a class="reference external" href="http://clang.llvm.org/docs/Langu
ageExtensions.html#vectors-and-extended-vectors">LLVM vectors</a> |
94 and <a class="reference external" href="http://gcc.gnu.org/onlinedocs/gcc/Vector
-Extensions.html">GCC vectors</a> for SIMD | 99 and <a class="reference external" href="http://gcc.gnu.org/onlinedocs/gcc/Vector
-Extensions.html">GCC vectors</a> for SIMD |
95 vectors through <a class="reference internal" href="/native-client/reference/pna
cl-c-cpp-language-support.html#portable-simd-vectors"><em>Portable SIMD Vectors<
/em></a>. Note that this is still an early release, | 100 vectors through <a class="reference internal" href="/native-client/reference/pna
cl-c-cpp-language-support.html#portable-simd-vectors"><em>Portable SIMD Vectors<
/em></a>. Note that this is still an early release, |
96 and performance is expected to become acceptable for version 37 of | 101 and performance is expected to become acceptable for version 37 of |
97 Chrome. More SIMD instructions will be added in later releases.</li> | 102 Chrome. More SIMD instructions will be added in later releases.</li> |
98 </ul> | 103 </ul> |
99 <h2 id="chrome-pepper-35-31-mar-2014">Chrome/Pepper 35 (31 Mar 2014)</h2> | 104 <h2 id="chrome-pepper-35-31-mar-2014">Chrome/Pepper 35 (31 Mar 2014)</h2> |
100 <h3 id="id9">PNaCl</h3> | 105 <h3 id="id10">PNaCl</h3> |
101 <ul class="small-gap"> | 106 <ul class="small-gap"> |
102 <li>Upgraded LLVM to version 3.4.</li> | 107 <li>Upgraded LLVM to version 3.4.</li> |
103 <li>Translation now uses dynamic load balancing, making translation time faster.
</li> | 108 <li>Translation now uses dynamic load balancing, making translation time faster.
</li> |
104 <li>Unstable pexes (i.e. non-finalized) with debug information can be loaded by | 109 <li>Unstable pexes (i.e. non-finalized) with debug information can be loaded by |
105 Chrome, simplifying debugging with PNaCl. See <a class="reference internal" href
="/native-client/devguide/devcycle/debugging.html#debugging-pnacl-pexes"><em>Deb
ugging PNaCl pexes</em></a></li> | 110 Chrome, simplifying debugging with PNaCl. See <a class="reference internal" href
="/native-client/devguide/devcycle/debugging.html#debugging-pnacl-pexes"><em>Deb
ugging PNaCl pexes</em></a></li> |
106 </ul> | 111 </ul> |
107 <h2 id="chrome-pepper-34-20-feb-2014">Chrome/Pepper 34 (20 Feb 2014)</h2> | 112 <h2 id="chrome-pepper-34-20-feb-2014">Chrome/Pepper 34 (20 Feb 2014)</h2> |
108 <h3 id="id10">Pepper</h3> | 113 <h3 id="id11">Pepper</h3> |
109 <ul class="small-gap"> | 114 <ul class="small-gap"> |
110 <li>Filesystems can now be passed from JavaScript to NaCl. The resulting | 115 <li>Filesystems can now be passed from JavaScript to NaCl. The resulting |
111 <code>pp::Var</code> will contain a <code>pp::Resource</code> that can be given
to the | 116 <code>pp::Var</code> will contain a <code>pp::Resource</code> that can be given
to the |
112 <code>pp::FileSystem</code> constructor.</li> | 117 <code>pp::FileSystem</code> constructor.</li> |
113 <li>New Audio and Video input APIs have been added as dev interfaces. See | 118 <li>New Audio and Video input APIs have been added as dev interfaces. See |
114 <a class="reference external" href="/native-client/pepper_dev/cpp/classpp_1_1_me
dia_stream_audio_track">pp::MediaStreamAudioTrack</a> and | 119 <a class="reference external" href="/native-client/pepper_dev/cpp/classpp_1_1_me
dia_stream_audio_track">pp::MediaStreamAudioTrack</a> and |
115 <a class="reference external" href="/native-client/pepper_dev/cpp/classpp_1_1_me
dia_stream_video_track">pp::MediaStreamVideoTrack</a> for | 120 <a class="reference external" href="/native-client/pepper_dev/cpp/classpp_1_1_me
dia_stream_video_track">pp::MediaStreamVideoTrack</a> for |
116 more details.</li> | 121 more details.</li> |
117 </ul> | 122 </ul> |
118 <h3 id="id11">PNaCl</h3> | 123 <h3 id="id12">PNaCl</h3> |
119 <ul class="small-gap"> | 124 <ul class="small-gap"> |
120 <li>Parallel translation: at least 1.7x faster, even with older pexes.</li> | 125 <li>Parallel translation: at least 1.7x faster, even with older pexes.</li> |
121 <li>Intelligent abbreviations in the bitcode: 20% reduction in binary size using | 126 <li>Intelligent abbreviations in the bitcode: 20% reduction in binary size using |
122 the <a class="reference internal" href="/native-client/devguide/devcycle/buildin
g.html#pnacl-compress"><em>pnacl-compress</em></a> tool.</li> | 127 the <a class="reference internal" href="/native-client/devguide/devcycle/buildin
g.html#pnacl-compress"><em>pnacl-compress</em></a> tool.</li> |
123 </ul> | 128 </ul> |
124 <h2 id="chrome-pepper-33-16-dec-2013">Chrome/Pepper 33 (16 Dec 2013)</h2> | 129 <h2 id="chrome-pepper-33-16-dec-2013">Chrome/Pepper 33 (16 Dec 2013)</h2> |
125 <h3 id="portable-native-client">Portable Native Client</h3> | 130 <h3 id="portable-native-client">Portable Native Client</h3> |
126 <ul class="small-gap"> | 131 <ul class="small-gap"> |
127 <li>PNaCl’s default C++ standard library is now LLVM’s own libc++, b
ased on | 132 <li>PNaCl’s default C++ standard library is now LLVM’s own libc++, b
ased on |
128 LLVM 3.3. This library now supports optional <code>setjmp</code>/<code>longjmp</
code> exception | 133 LLVM 3.3. This library now supports optional <code>setjmp</code>/<code>longjmp</
code> exception |
129 handling (see <a class="reference external" href="https://groups.google.com/foru
m/#!topic/native-client-discuss/0spfg6O04FM">announcement</a> | 134 handling (see <a class="reference external" href="https://groups.google.com/foru
m/#!topic/native-client-discuss/0spfg6O04FM">announcement</a> |
130 for details).</li> | 135 for details).</li> |
131 </ul> | 136 </ul> |
132 <h3 id="id12">SDK</h3> | 137 <h3 id="id13">SDK</h3> |
133 <ul class="small-gap"> | 138 <ul class="small-gap"> |
134 <li>The <code>nacl_io</code> library now includes a FUSE mount.</li> | 139 <li>The <code>nacl_io</code> library now includes a FUSE mount.</li> |
135 <li>In the SDK examples, <code>common.js</code> now loads the Release version of
the | 140 <li>In the SDK examples, <code>common.js</code> now loads the Release version of
the |
136 nexes/pexes that are built (by default).</li> | 141 nexes/pexes that are built (by default).</li> |
137 <li>“<code>make debug</code>” and “<code>make run</code>”
; have been fixed on Mac.</li> | 142 <li>“<code>make debug</code>” and “<code>make run</code>”
; have been fixed on Mac.</li> |
138 </ul> | 143 </ul> |
139 <h2 id="pnacl-enabled-by-default-in-chrome-31-12-nov-2013">PNaCl enabled by defa
ult in Chrome 31 (12 Nov 2013)</h2> | 144 <h2 id="pnacl-enabled-by-default-in-chrome-31-12-nov-2013">PNaCl enabled by defa
ult in Chrome 31 (12 Nov 2013)</h2> |
140 <ul class="small-gap"> | 145 <ul class="small-gap"> |
141 <li>Portable Native Client (PNaCl) is enabled by default in Chrome 31. See | 146 <li>Portable Native Client (PNaCl) is enabled by default in Chrome 31. See |
142 <a class="reference internal" href="/native-client/nacl-and-pnacl.html"><em>NaCl
and PNaCl</em></a> for details on the differences between | 147 <a class="reference internal" href="/native-client/nacl-and-pnacl.html"><em>NaCl
and PNaCl</em></a> for details on the differences between |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 <ul class="small-gap"> | 241 <ul class="small-gap"> |
237 <li>Common makefiles, including <code>tools/common.mk</code>, can now handle sou
rce files | 242 <li>Common makefiles, including <code>tools/common.mk</code>, can now handle sou
rce files |
238 located outside of an application’s root directory. For example, a Makefil
e | 243 located outside of an application’s root directory. For example, a Makefil
e |
239 for an application can specify a source file to compile such as | 244 for an application can specify a source file to compile such as |
240 <code>../../some/other/place.cpp</code>.</li> | 245 <code>../../some/other/place.cpp</code>.</li> |
241 </ul> | 246 </ul> |
242 <h2 id="pepper-26-29-march-2013">Pepper 26 (29 March 2013)</h2> | 247 <h2 id="pepper-26-29-march-2013">Pepper 26 (29 March 2013)</h2> |
243 <p>The Pepper 26 bundle includes a new HTTP filesystem type in the nacl_mounts | 248 <p>The Pepper 26 bundle includes a new HTTP filesystem type in the nacl_mounts |
244 library (which has been renamed nacl_io), changes to the example Makefiles, a | 249 library (which has been renamed nacl_io), changes to the example Makefiles, a |
245 simple new 3D example, and a threaded file IO example.</p> | 250 simple new 3D example, and a threaded file IO example.</p> |
246 <h3 id="id13">Build tools and toolchains</h3> | 251 <h3 id="id14">Build tools and toolchains</h3> |
247 <ul class="small-gap"> | 252 <ul class="small-gap"> |
248 <li><p class="first">Makefiles have been changed significantly:</p> | 253 <li><p class="first">Makefiles have been changed significantly:</p> |
249 <ul class="small-gap"> | 254 <ul class="small-gap"> |
250 <li>Build commands are now specified in a number of common files | 255 <li>Build commands are now specified in a number of common files |
251 (<code>tools/*.mk</code>), which are included in the Makefiles in the examples.<
/li> | 256 (<code>tools/*.mk</code>), which are included in the Makefiles in the examples.<
/li> |
252 <li>By default, make displays a simplified list of build steps (e.g., <code>CC | 257 <li>By default, make displays a simplified list of build steps (e.g., <code>CC |
253 newlib/Debug/hello_world_x86_32.o</code>) rather than the actual build commands. | 258 newlib/Debug/hello_world_x86_32.o</code>) rather than the actual build commands. |
254 To see the actual build commands, run <code>make V=1</code>.</li> | 259 To see the actual build commands, run <code>make V=1</code>.</li> |
255 <li>By default, most examples are built using one toolchain (newlib) and one | 260 <li>By default, most examples are built using one toolchain (newlib) and one |
256 configuration (Debug). To build an example using a different toolchain or | 261 configuration (Debug). To build an example using a different toolchain or |
257 configuration, run <code>make</code> with the parameters <code>TOOLCHAIN=<x&g
t;</code> or | 262 configuration, run <code>make</code> with the parameters <code>TOOLCHAIN=<x&g
t;</code> or |
258 <code>CONFIG=<y></code>. You can also run make <code>all_versions</code>
to build an example | 263 <code>CONFIG=<y></code>. You can also run make <code>all_versions</code>
to build an example |
259 with all toolchains.</li> | 264 with all toolchains.</li> |
260 </ul> | 265 </ul> |
261 </li> | 266 </li> |
262 <li>Header files have been moved out of the toolchains. All toolchains now share | 267 <li>Header files have been moved out of the toolchains. All toolchains now share |
263 the same set of header files as host builds. Previously host and NaCl builds | 268 the same set of header files as host builds. Previously host and NaCl builds |
264 used different headers, which could cause build problems.</li> | 269 used different headers, which could cause build problems.</li> |
265 </ul> | 270 </ul> |
266 <h3 id="id14">Libraries</h3> | 271 <h3 id="id15">Libraries</h3> |
267 <ul class="small-gap"> | 272 <ul class="small-gap"> |
268 <li>The nacl_mounts library has been renamed <strong>nacl_io</strong>, and has b
een expanded | 273 <li>The nacl_mounts library has been renamed <strong>nacl_io</strong>, and has b
een expanded |
269 with a new type of mount, httpfs, which can be used to read URLs via HTTP. | 274 with a new type of mount, httpfs, which can be used to read URLs via HTTP. |
270 For details see <code>include/nacl_io/nacl_io.h</code>, as well as the | 275 For details see <code>include/nacl_io/nacl_io.h</code>, as well as the |
271 <code>hello_nacl_io</code> example.</li> | 276 <code>hello_nacl_io</code> example.</li> |
272 </ul> | 277 </ul> |
273 <h3 id="id15">Examples</h3> | 278 <h3 id="id16">Examples</h3> |
274 <ul class="small-gap"> | 279 <ul class="small-gap"> |
275 <li>A new example, <strong>hello_world_instance3d</strong>, has been added to de
monstrate a | 280 <li>A new example, <strong>hello_world_instance3d</strong>, has been added to de
monstrate a |
276 simplified 3D app.</li> | 281 simplified 3D app.</li> |
277 <li>The <strong>file_io</strong> example has been rewritten to do all file opera
tions on a | 282 <li>The <strong>file_io</strong> example has been rewritten to do all file opera
tions on a |
278 thread. The example demonstrates how to use the MessageLoop API and blocking | 283 thread. The example demonstrates how to use the MessageLoop API and blocking |
279 callbacks on a thread.</li> | 284 callbacks on a thread.</li> |
280 </ul> | 285 </ul> |
281 <h3 id="general">General</h3> | 286 <h3 id="general">General</h3> |
282 <ul class="small-gap"> | 287 <ul class="small-gap"> |
283 <li>Old bundles (<code>pepper_20</code> and earlier) have been removed from the
Native | 288 <li>Old bundles (<code>pepper_20</code> and earlier) have been removed from the
Native |
284 Client SDK Manifest, and will no longer be updated by the <code>naclsdk</code> | 289 Client SDK Manifest, and will no longer be updated by the <code>naclsdk</code> |
285 command.</li> | 290 command.</li> |
286 </ul> | 291 </ul> |
287 <h2 id="pepper-25-21-december-2012">Pepper 25 (21 December 2012)</h2> | 292 <h2 id="pepper-25-21-december-2012">Pepper 25 (21 December 2012)</h2> |
288 <p>The Pepper 25 bundle features an ARM toolchain to build Native Client modules | 293 <p>The Pepper 25 bundle features an ARM toolchain to build Native Client modules |
289 for ARM devices, two new Pepper APIs (including the MessageLoop API, which lets | 294 for ARM devices, two new Pepper APIs (including the MessageLoop API, which lets |
290 you make Pepper calls on background threads), two new libraries (nacl_mounts, | 295 you make Pepper calls on background threads), two new libraries (nacl_mounts, |
291 which provides a virtual file system that you can use with standard C file | 296 which provides a virtual file system that you can use with standard C file |
292 operations, and ppapi_main, which lets you implement a Native Client module | 297 operations, and ppapi_main, which lets you implement a Native Client module |
293 using a simple ppapi_main function), and two new examples that demonstrate how | 298 using a simple ppapi_main function), and two new examples that demonstrate how |
294 to use the nacl_mounts and ppapi_main libraries.</p> | 299 to use the nacl_mounts and ppapi_main libraries.</p> |
295 <h3 id="id16">Build tools and toolchains</h3> | 300 <h3 id="id17">Build tools and toolchains</h3> |
296 <ul class="small-gap"> | 301 <ul class="small-gap"> |
297 <li><p class="first">The SDK includes a new toolchain to build Native Client exe
cutables (.nexe | 302 <li><p class="first">The SDK includes a new toolchain to build Native Client exe
cutables (.nexe |
298 files) for <strong>ARM devices</strong>.</p> | 303 files) for <strong>ARM devices</strong>.</p> |
299 <ul class="small-gap"> | 304 <ul class="small-gap"> |
300 <li>Currently the ARM toolchain can only be used to compile modules that use | 305 <li>Currently the ARM toolchain can only be used to compile modules that use |
301 the <a class="reference internal" href="/native-client/devguide/devcycle/dynamic
-loading.html#c-libraries"><em>newlib C library</em></a>. You cannot use the ARM
toolchain | 306 the <a class="reference internal" href="/native-client/devguide/devcycle/dynamic
-loading.html#c-libraries"><em>newlib C library</em></a>. You cannot use the ARM
toolchain |
302 to compile modules that use the glibc library.</li> | 307 to compile modules that use the glibc library.</li> |
303 <li>The ARM toolchain is in the directory | 308 <li>The ARM toolchain is in the directory |
304 <code>pepper_25/toolchain/<host>_arm_newlib</code>. The bin subdirectory
contains | 309 <code>pepper_25/toolchain/<host>_arm_newlib</code>. The bin subdirectory
contains |
305 the compiler (<code>arm-nacl-gcc</code>), the linker (<code>arm-nacl-g++</code>)
, and the | 310 the compiler (<code>arm-nacl-gcc</code>), the linker (<code>arm-nacl-g++</code>)
, and the |
(...skipping 16 matching lines...) Expand all Loading... |
322 module log messages to the JavaScript console in the Chrome browser.</li> | 327 module log messages to the JavaScript console in the Chrome browser.</li> |
323 <li>The <a class="reference external" href="/native-client/pepper_stable/cpp/cla
sspp_1_1_message_loop">MessageLoop</a> API lets your | 328 <li>The <a class="reference external" href="/native-client/pepper_stable/cpp/cla
sspp_1_1_message_loop">MessageLoop</a> API lets your |
324 module make PPAPI calls on a background thread. Once you’ve created a | 329 module make PPAPI calls on a background thread. Once you’ve created a |
325 message loop resource, attached it to a thread, and run it, you can post work | 330 message loop resource, attached it to a thread, and run it, you can post work |
326 to the thread, including completion callbacks for asynchronous operations. | 331 to the thread, including completion callbacks for asynchronous operations. |
327 For a C++ example of how to use the MessageLoop API, see | 332 For a C++ example of how to use the MessageLoop API, see |
328 <code>pepper_25/include/ppapi/utility/threading/simple_thread.h</code>. Note tha
t you | 333 <code>pepper_25/include/ppapi/utility/threading/simple_thread.h</code>. Note tha
t you |
329 cannot make asynchronous PPAPI calls on a background thread without creating | 334 cannot make asynchronous PPAPI calls on a background thread without creating |
330 and using a message loop.</li> | 335 and using a message loop.</li> |
331 </ul> | 336 </ul> |
332 <h3 id="id17">Libraries</h3> | 337 <h3 id="id18">Libraries</h3> |
333 <p>The SDK includes two new libraries:</p> | 338 <p>The SDK includes two new libraries:</p> |
334 <ul class="small-gap"> | 339 <ul class="small-gap"> |
335 <li><p class="first">The <strong>nacl_mounts</strong> library provides a virtual
file system that your module | 340 <li><p class="first">The <strong>nacl_mounts</strong> library provides a virtual
file system that your module |
336 can “mount” in a given directory tree. The file system can be one of
several | 341 can “mount” in a given directory tree. The file system can be one of
several |
337 types:</p> | 342 types:</p> |
338 <ul class="small-gap"> | 343 <ul class="small-gap"> |
339 <li>“memfs” is an in-memory file system,</li> | 344 <li>“memfs” is an in-memory file system,</li> |
340 <li>“dev” is a file system with various utility nodes (e.g., <code>/
dev/null</code>, | 345 <li>“dev” is a file system with various utility nodes (e.g., <code>/
dev/null</code>, |
341 <code>/dev/console[0-3]</code>, <code>/dev/tty</code>), and</li> | 346 <code>/dev/console[0-3]</code>, <code>/dev/tty</code>), and</li> |
342 <li>“html5fs” is a persistent file system.</li> | 347 <li>“html5fs” is a persistent file system.</li> |
(...skipping 13 matching lines...) Expand all Loading... |
356 providing a familiar C programming environment. With this library, your | 361 providing a familiar C programming environment. With this library, your |
357 module can have a simple entry point called ppapi_main(), which is similar to | 362 module can have a simple entry point called ppapi_main(), which is similar to |
358 the standard C main() function, complete with argc and argv[] parameters. | 363 the standard C main() function, complete with argc and argv[] parameters. |
359 Your module can also use standard C functions such as printf(), fopen(), and | 364 Your module can also use standard C functions such as printf(), fopen(), and |
360 fwrite(). For details see include/ppapi_main/ppapi_main.h. For an example of | 365 fwrite(). For details see include/ppapi_main/ppapi_main.h. For an example of |
361 how to use ppapi_main, see examples/hello_world_stdio.</li> | 366 how to use ppapi_main, see examples/hello_world_stdio.</li> |
362 </ul> | 367 </ul> |
363 <p>Header files for the new libraries are in the <code>include/</code> directory
, source | 368 <p>Header files for the new libraries are in the <code>include/</code> directory
, source |
364 files are in the <code>src/</code> directory, and compiled libraries are in the
<code>lib/</code> | 369 files are in the <code>src/</code> directory, and compiled libraries are in the
<code>lib/</code> |
365 directory.</p> | 370 directory.</p> |
366 <h3 id="id18">Examples</h3> | 371 <h3 id="id19">Examples</h3> |
367 <ul class="small-gap"> | 372 <ul class="small-gap"> |
368 <li><p class="first">The SDK includes two new examples:</p> | 373 <li><p class="first">The SDK includes two new examples:</p> |
369 <ul class="small-gap"> | 374 <ul class="small-gap"> |
370 <li><strong>hello_nacl_mounts</strong> illustrates how to use standard C library
file | 375 <li><strong>hello_nacl_mounts</strong> illustrates how to use standard C library
file |
371 operations in a Native Client module through the use of the nacl_mounts | 376 operations in a Native Client module through the use of the nacl_mounts |
372 library.</li> | 377 library.</li> |
373 <li><strong>hello_world_stdio</strong> illustrates how to implement a Native Cli
ent module | 378 <li><strong>hello_world_stdio</strong> illustrates how to implement a Native Cli
ent module |
374 with a ppapi_main() function, and how to write to STDOUT and STDERR in a | 379 with a ppapi_main() function, and how to write to STDOUT and STDERR in a |
375 module, through the use of the nacl_mounts and ppapi_main libraries. This | 380 module, through the use of the nacl_mounts and ppapi_main libraries. This |
376 example makes it easy for new users to get started with Native Client by | 381 example makes it easy for new users to get started with Native Client by |
(...skipping 20 matching lines...) Expand all Loading... |
397 Chrome is closed, the local server is shut down as well.</li> | 402 Chrome is closed, the local server is shut down as well.</li> |
398 <li>The hello_world_stdio example includes a simplified Makefile that only lists | 403 <li>The hello_world_stdio example includes a simplified Makefile that only lists |
399 source dependencies, and invokes the build rules in a separate file | 404 source dependencies, and invokes the build rules in a separate file |
400 (common.mk).</li> | 405 (common.mk).</li> |
401 </ul> | 406 </ul> |
402 <h2 id="pepper-24-5-december-2012">Pepper 24 (5 December 2012)</h2> | 407 <h2 id="pepper-24-5-december-2012">Pepper 24 (5 December 2012)</h2> |
403 <p>The Pepper 24 bundle features a new, experimental toolchain called PNaCl (sho
rt | 408 <p>The Pepper 24 bundle features a new, experimental toolchain called PNaCl (sho
rt |
404 for “Portable Native Client”), a new library (pthreads-win32) for th
e Windows | 409 for “Portable Native Client”), a new library (pthreads-win32) for th
e Windows |
405 SDK, and an expanded list of attributes for Pepper 3D contexts that lets | 410 SDK, and an expanded list of attributes for Pepper 3D contexts that lets |
406 applications specify a GPU preference for low power or performance.</p> | 411 applications specify a GPU preference for low power or performance.</p> |
407 <h3 id="id19">Build tools and toolchains</h3> | 412 <h3 id="id20">Build tools and toolchains</h3> |
408 <ul class="small-gap"> | 413 <ul class="small-gap"> |
409 <li>The SDK includes a new, experimental toolchain called <a class="reference ex
ternal" href="http://nativeclient.googlecode.com/svn/data/site/pnacl.pdf">PNaCl<
/a> (pronounced | 414 <li>The SDK includes a new, experimental toolchain called <a class="reference ex
ternal" href="http://nativeclient.googlecode.com/svn/data/site/pnacl.pdf">PNaCl<
/a> (pronounced |
410 “pinnacle”). The PNaCl toolchain produces architecture-independent e
xecutable | 415 “pinnacle”). The PNaCl toolchain produces architecture-independent e
xecutable |
411 files (.pexe files). Chrome doesn’t yet support .pexe files directly, but
if | 416 files (.pexe files). Chrome doesn’t yet support .pexe files directly, but
if |
412 you want to experiment with this early preview of PNaCl, the toolchain | 417 you want to experiment with this early preview of PNaCl, the toolchain |
413 includes a tool to translate .pexe files into architecture-specific .nexe | 418 includes a tool to translate .pexe files into architecture-specific .nexe |
414 files. Take a look at the <code>hello_world</code> example to see how to build a
.pexe | 419 files. Take a look at the <code>hello_world</code> example to see how to build a
.pexe |
415 file and translate it into multiple .nexe files. Note that PNaCl is currently | 420 file and translate it into multiple .nexe files. Note that PNaCl is currently |
416 restricted to the newlib C standard library – if your application uses glibc, | 421 restricted to the newlib C standard library – if your application uses glibc, |
417 you can’t build it with PNaCl.</li> | 422 you can’t build it with PNaCl.</li> |
418 <li>The <code>create_nmf.py</code> script uses ELF headers (rather than file nam
es) to | 423 <li>The <code>create_nmf.py</code> script uses ELF headers (rather than file nam
es) to |
419 determine the architecture of .nexe files. That means you can change the | 424 determine the architecture of .nexe files. That means you can change the |
420 names of your .nexe files and <code>create_nmf.py</code> will still be able to | 425 names of your .nexe files and <code>create_nmf.py</code> will still be able to |
421 generate the appropriate Native Client manifest file for your application.</li> | 426 generate the appropriate Native Client manifest file for your application.</li> |
422 </ul> | 427 </ul> |
423 <h3 id="id21">Examples</h3> | 428 <h3 id="id22">Examples</h3> |
424 <ul class="small-gap"> | 429 <ul class="small-gap"> |
425 <li>The SDK examples now build with four toolchains: the glibc and newlib | 430 <li>The SDK examples now build with four toolchains: the glibc and newlib |
426 toolchains, the experimental PNaCl toolchain, and the hosted toolchain on | 431 toolchains, the experimental PNaCl toolchain, and the hosted toolchain on |
427 your development machine. Within each toolchain build, each example also | 432 your development machine. Within each toolchain build, each example also |
428 builds both a debug and a release version.</li> | 433 builds both a debug and a release version.</li> |
429 <li>The example Makefiles use dependency (.d) files to enable incremental builds
.</li> | 434 <li>The example Makefiles use dependency (.d) files to enable incremental builds
.</li> |
430 <li>The pong example has been cleaned up and modified to run more smoothly. The | 435 <li>The pong example has been cleaned up and modified to run more smoothly. The |
431 drawing function is now set up as the Flush() callback, which allows 2D | 436 drawing function is now set up as the Flush() callback, which allows 2D |
432 drawing to occur as quickly as possible.</li> | 437 drawing to occur as quickly as possible.</li> |
433 </ul> | 438 </ul> |
434 <h3 id="id22">PPAPI</h3> | 439 <h3 id="id23">PPAPI</h3> |
435 <ul class="small-gap"> | 440 <ul class="small-gap"> |
436 <li>When creating a 3D rendering context, the <a class="reference external" href
="/native-client/pepper_stable/c/group___enums#ga7df48e1c55f6401beea2a1b9c07967e
8">attribute list</a> | 441 <li>When creating a 3D rendering context, the <a class="reference external" href
="/native-client/pepper_stable/c/group___enums#ga7df48e1c55f6401beea2a1b9c07967e
8">attribute list</a> |
437 for the context can specify whether to prefer low power or performance for | 442 for the context can specify whether to prefer low power or performance for |
438 the GPU. Contexts with a low power preference may be created on an integrated | 443 the GPU. Contexts with a low power preference may be created on an integrated |
439 GPU; contexts with a performance preference may be created on a discrete GPU.</l
i> | 444 GPU; contexts with a performance preference may be created on a discrete GPU.</l
i> |
440 </ul> | 445 </ul> |
441 <h3 id="windows-sdk">Windows SDK</h3> | 446 <h3 id="windows-sdk">Windows SDK</h3> |
442 <ul class="small-gap"> | 447 <ul class="small-gap"> |
443 <li>The Windows SDK includes the pthreads-win32 library to assist in porting fro
m | 448 <li>The Windows SDK includes the pthreads-win32 library to assist in porting fro
m |
444 win32 code. You can use this library when developing your module as a Pepper | 449 win32 code. You can use this library when developing your module as a Pepper |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
496 <ul class="small-gap"> | 501 <ul class="small-gap"> |
497 <li>Look at the example Makefiles or run <code>make</code> in the example direct
ories to | 502 <li>Look at the example Makefiles or run <code>make</code> in the example direct
ories to |
498 see the commands and flags used to build modules as Pepper plugins.</li> | 503 see the commands and flags used to build modules as Pepper plugins.</li> |
499 <li>Run <code>make LAUNCH</code> in the example directories to see how to use th
e | 504 <li>Run <code>make LAUNCH</code> in the example directories to see how to use th
e |
500 <code>--register-pepper-plugins</code> argument to load a Pepper plugin in Chrom
e. | 505 <code>--register-pepper-plugins</code> argument to load a Pepper plugin in Chrom
e. |
501 Note that you must set the <code>CHROME_PATH</code> environment variable and sta
rt a | 506 Note that you must set the <code>CHROME_PATH</code> environment variable and sta
rt a |
502 <a class="reference internal" href="/native-client/devguide/devcycle/running.htm
l#web-server"><em>local server</em></a> prior to running this command.</li> | 507 <a class="reference internal" href="/native-client/devguide/devcycle/running.htm
l#web-server"><em>local server</em></a> prior to running this command.</li> |
503 </ul> | 508 </ul> |
504 </li> | 509 </li> |
505 </ul> | 510 </ul> |
506 <h3 id="id23">Examples</h3> | 511 <h3 id="id24">Examples</h3> |
507 <ul class="small-gap"> | 512 <ul class="small-gap"> |
508 <li>On Linux and Windows systems, most of the examples now build with three | 513 <li>On Linux and Windows systems, most of the examples now build with three |
509 toolchains: the Native Client glibc and newlib toolchains, and the native | 514 toolchains: the Native Client glibc and newlib toolchains, and the native |
510 toolchain on the host system. Modules built with the native toolchain on the | 515 toolchain on the host system. Modules built with the native toolchain on the |
511 host system can only run as Pepper plugins.</li> | 516 host system can only run as Pepper plugins.</li> |
512 <li>All examples in the SDK now comply with version 2 of the Chrome Web Store | 517 <li>All examples in the SDK now comply with version 2 of the Chrome Web Store |
513 <a class="reference external" href="/extensions/manifest">manifest file format</
a>. By default, | 518 <a class="reference external" href="/extensions/manifest">manifest file format</
a>. By default, |
514 applications that use version 2 of the manifest file format apply a strict | 519 applications that use version 2 of the manifest file format apply a strict |
515 <a class="reference external" href="/extensions/contentSecurityPolicy">content s
ecurity policy</a>, which | 520 <a class="reference external" href="/extensions/contentSecurityPolicy">content s
ecurity policy</a>, which |
516 includes a restriction against inline JavaScript. This restriction prohibits | 521 includes a restriction against inline JavaScript. This restriction prohibits |
517 both inline <code><script></code> blocks and inline event handlers (e.g.,
<code><button | 522 both inline <code><script></code> blocks and inline event handlers (e.g.,
<code><button |
518 onclick="..."></code>). See <a class="reference external" href="/e
xtensions/manifestVersion">Manifest Version</a> for | 523 onclick="..."></code>). See <a class="reference external" href="/e
xtensions/manifestVersion">Manifest Version</a> for |
519 a list of changes between version 1 and version 2 of the manifest file | 524 a list of changes between version 1 and version 2 of the manifest file |
520 format, and a support schedule for applications that use version 1.</li> | 525 format, and a support schedule for applications that use version 1.</li> |
521 </ul> | 526 </ul> |
522 <h3 id="id24">PPAPI</h3> | 527 <h3 id="id25">PPAPI</h3> |
523 <ul class="small-gap"> | 528 <ul class="small-gap"> |
524 <li><a class="reference external" href="/native-client/pepper_stable/c/group___e
nums#ga21b811ac0484a214a8751aa3e1c959d9">PP_InputEvent_Modifier</a> | 529 <li><a class="reference external" href="/native-client/pepper_stable/c/group___e
nums#ga21b811ac0484a214a8751aa3e1c959d9">PP_InputEvent_Modifier</a> |
525 has two new enum values (_ISLEFT and _ISRIGHT).</li> | 530 has two new enum values (_ISLEFT and _ISRIGHT).</li> |
526 <li>The memory leak in the <a class="reference external" href="/native-client/pe
pper_stable/c/struct_p_p_b___web_socket__1__0">WebSocket</a> API has | 531 <li>The memory leak in the <a class="reference external" href="/native-client/pe
pper_stable/c/struct_p_p_b___web_socket__1__0">WebSocket</a> API has |
527 been fixed.</li> | 532 been fixed.</li> |
528 </ul> | 533 </ul> |
529 <h2 id="pepper-22-22-august-2012">Pepper 22 (22 August 2012)</h2> | 534 <h2 id="pepper-22-22-august-2012">Pepper 22 (22 August 2012)</h2> |
530 <p>The Pepper 22 bundle includes a <strong>command-line debugger</strong>, resou
rces to enable | 535 <p>The Pepper 22 bundle includes a <strong>command-line debugger</strong>, resou
rces to enable |
531 <strong>hosted development on Windows</strong>, and changes to the example Makef
iles (each | 536 <strong>hosted development on Windows</strong>, and changes to the example Makef
iles (each |
532 example now builds both a debug and a release version).</p> | 537 example now builds both a debug and a release version).</p> |
533 <h3 id="id25">Tools</h3> | 538 <h3 id="id26">Tools</h3> |
534 <ul class="small-gap"> | 539 <ul class="small-gap"> |
535 <li>The SDK now includes a <strong>command-line debugger</strong> that you can u
se to debug | 540 <li>The SDK now includes a <strong>command-line debugger</strong> that you can u
se to debug |
536 Native Client modules. See <a class="reference internal" href="/native-client/de
vguide/devcycle/debugging.html#devcycle-debugging"><em>Debugging with nacl-gdb</
em></a> for instructions on how to use this debugger. For now, | 541 Native Client modules. See <a class="reference internal" href="/native-client/de
vguide/devcycle/debugging.html#devcycle-debugging"><em>Debugging with nacl-gdb</
em></a> for instructions on how to use this debugger. For now, |
537 nacl-gdb only works on 64-bit Windows, 64-bit Linux, and 32-bit Linux | 542 nacl-gdb only works on 64-bit Windows, 64-bit Linux, and 32-bit Linux |
538 systems. Support for Mac and 32-bit Windows systems will be added soon.</li> | 543 systems. Support for Mac and 32-bit Windows systems will be added soon.</li> |
539 </ul> | 544 </ul> |
540 <h3 id="id26">Windows SDK</h3> | 545 <h3 id="id27">Windows SDK</h3> |
541 <ul class="small-gap"> | 546 <ul class="small-gap"> |
542 <li><p class="first">Developers using the Windows SDK can now <strong>build a mo
dule as a Pepper | 547 <li><p class="first">Developers using the Windows SDK can now <strong>build a mo
dule as a Pepper |
543 plugin</strong> (sometimes called a “trusted” or “in-process&#
8221; plugin) using the | 548 plugin</strong> (sometimes called a “trusted” or “in-process&#
8221; plugin) using the |
544 native C/C++ compiler on their development system. In essence this makes | 549 native C/C++ compiler on their development system. In essence this makes |
545 developing a Native Client module a two-step process:</p> | 550 developing a Native Client module a two-step process:</p> |
546 <ol class="arabic simple"> | 551 <ol class="arabic simple"> |
547 <li>Build the module into a DLL using your system’s C/C++ compiler. Test a
nd | 552 <li>Build the module into a DLL using your system’s C/C++ compiler. Test a
nd |
548 debug the DLL using the tools in your normal development environment.</li> | 553 debug the DLL using the tools in your normal development environment.</li> |
549 <li>Build the module into a .nexe using the compiler from one of the Native | 554 <li>Build the module into a .nexe using the compiler from one of the Native |
550 Client toolchains in the SDK (nacl-gcc or nacl-g++). Test and debug the | 555 Client toolchains in the SDK (nacl-gcc or nacl-g++). Test and debug the |
(...skipping 27 matching lines...) Expand all Loading... |
578 <strong>Note:</strong> It’s also possible to build a module as a trusted p
lugin on Mac and | 583 <strong>Note:</strong> It’s also possible to build a module as a trusted p
lugin on Mac and |
579 Linux systems, but doing so requires more work because the SDK does not yet | 584 Linux systems, but doing so requires more work because the SDK does not yet |
580 include the above resources (library source files and pre-built libraries) | 585 include the above resources (library source files and pre-built libraries) |
581 for Mac and Linux systems. To build and debug a trusted plugin on Mac and | 586 for Mac and Linux systems. To build and debug a trusted plugin on Mac and |
582 Linux systems, you need to <a class="reference external" href="http://dev.chromi
um.org/developers/how-tos/get-the-code">get the Chromium code</a> and then follo
w | 587 Linux systems, you need to <a class="reference external" href="http://dev.chromi
um.org/developers/how-tos/get-the-code">get the Chromium code</a> and then follo
w |
583 the <a class="reference external" href="http://www.chromium.org/nativeclient/how
-tos/debugging-documentation/debugging-a-trusted-plugin/trusted-debugging-on-mac
">Mac instructions</a> | 588 the <a class="reference external" href="http://www.chromium.org/nativeclient/how
-tos/debugging-documentation/debugging-a-trusted-plugin/trusted-debugging-on-mac
">Mac instructions</a> |
584 or <a class="reference external" href="http://www.chromium.org/nativeclient/how-
tos/debugging-documentation/debugging-a-trusted-plugin/debugging-a-trusted-plugi
n-on-linux">Linux instructions</a>. | 589 or <a class="reference external" href="http://www.chromium.org/nativeclient/how-
tos/debugging-documentation/debugging-a-trusted-plugin/debugging-a-trusted-plugi
n-on-linux">Linux instructions</a>. |
585 In the future, the SDK will include resources for hosted development on Mac | 590 In the future, the SDK will include resources for hosted development on Mac |
586 and Linux as well as Windows. | 591 and Linux as well as Windows. |
587 </aside> | 592 </aside> |
588 <h3 id="id27">Examples</h3> | 593 <h3 id="id28">Examples</h3> |
589 <ul class="small-gap"> | 594 <ul class="small-gap"> |
590 <li>Each example in the SDK now builds both a debug and a release version. As | 595 <li>Each example in the SDK now builds both a debug and a release version. As |
591 before, most examples also build newlib and glibc versions, which means that | 596 before, most examples also build newlib and glibc versions, which means that |
592 there are now four versions for each example. Take a look at the Makefiles in | 597 there are now four versions for each example. Take a look at the Makefiles in |
593 the examples to see the compiler flags that are used for debug and release | 598 the examples to see the compiler flags that are used for debug and release |
594 versions. For a description of those flags, see <a class="reference internal" hr
ef="/native-client/devguide/devcycle/building.html#compile-flags"><em>Compile fl
ags for | 599 versions. For a description of those flags, see <a class="reference internal" hr
ef="/native-client/devguide/devcycle/building.html#compile-flags"><em>Compile fl
ags for |
595 different development scenarios</em></a>.</li> | 600 different development scenarios</em></a>.</li> |
596 <li>Comments have been added to common.js, which is used in all the examples. Th
e | 601 <li>Comments have been added to common.js, which is used in all the examples. Th
e |
597 JavaScript in common.js inserts an <embed> element that loads the NaCl mod
ule | 602 JavaScript in common.js inserts an <embed> element that loads the NaCl mod
ule |
598 in each example’s web page, attaches event listeners to monitor the loadin
g | 603 in each example’s web page, attaches event listeners to monitor the loadin
g |
599 of the module, and implements handleMessage() to respond to messages sent | 604 of the module, and implements handleMessage() to respond to messages sent |
600 from the NaCl module to the JavaScript side of the application</li> | 605 from the NaCl module to the JavaScript side of the application</li> |
601 </ul> | 606 </ul> |
602 <h3 id="id28">PPAPI</h3> | 607 <h3 id="id29">PPAPI</h3> |
603 <ul class="small-gap"> | 608 <ul class="small-gap"> |
604 <li>The <code>CompletionCallbackFactory</code> class template now takes a thread
traits | 609 <li>The <code>CompletionCallbackFactory</code> class template now takes a thread
traits |
605 class as its second parameter. For details see the <a class="reference external"
href="/native-client/pepper_stable/cpp/classpp_1_1_completion_callback_factory#
details">CompletionCallbackFactory | 610 class as its second parameter. For details see the <a class="reference external"
href="/native-client/pepper_stable/cpp/classpp_1_1_completion_callback_factory#
details">CompletionCallbackFactory |
606 class template reference</a>.</li> | 611 class template reference</a>.</li> |
607 </ul> | 612 </ul> |
608 </section> | 613 </section> |
609 | 614 |
610 {{/partials.standard_nacl_article}} | 615 {{/partials.standard_nacl_article}} |
OLD | NEW |