| 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 <h2 id="chrome-pepper-38-15-august-2014">Chrome/Pepper 38 (15 August 2014)</h2> |
| 6 <h3 id="pnacl">PNaCl</h3> |
| 7 <ul class="small-gap"> |
| 8 <li>Compilation speed improvements due to validation caching of the translator a
nd |
| 9 linker.</li> |
| 10 <li>Performance improvement of SIMD vector shuffle.</li> |
| 11 </ul> |
| 5 <h2 id="chrome-pepper-37-20-june-2014">Chrome/Pepper 37 (20 June 2014)</h2> | 12 <h2 id="chrome-pepper-37-20-june-2014">Chrome/Pepper 37 (20 June 2014)</h2> |
| 6 <h3 id="pnacl">PNaCl</h3> | 13 <h3 id="id1">PNaCl</h3> |
| 7 <ul class="small-gap"> | 14 <ul class="small-gap"> |
| 8 <li>2–10% translation time improvement.</li> | 15 <li>2–10% translation time improvement.</li> |
| 9 <li>Improved vector load/store and shuffle performance.</li> | 16 <li>Improved vector load/store and shuffle performance.</li> |
| 10 </ul> | 17 </ul> |
| 11 <h3 id="pepper">Pepper</h3> | 18 <h3 id="pepper">Pepper</h3> |
| 12 <ul class="small-gap"> | 19 <ul class="small-gap"> |
| 13 <li>Media Streams Input support.</li> | 20 <li>Media Streams Input support.</li> |
| 14 <li>Compositor API.</li> | 21 <li>Compositor API.</li> |
| 15 <li>Hardware Decode API in development preview.</li> | 22 <li>Hardware Decode API in development preview.</li> |
| 16 <li>Sync API in development preview.</li> | 23 <li>Sync API in development preview.</li> |
| 17 </ul> | 24 </ul> |
| 18 <h3 id="sdk">SDK</h3> | 25 <h3 id="sdk">SDK</h3> |
| 19 <ul class="small-gap"> | 26 <ul class="small-gap"> |
| 20 <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> | 27 <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> |
| 21 </ul> | 28 </ul> |
| 22 <h2 id="chrome-pepper-36-09-may-2014">Chrome/Pepper 36 (09 May 2014)</h2> | 29 <h2 id="chrome-pepper-36-09-may-2014">Chrome/Pepper 36 (09 May 2014)</h2> |
| 23 <h3 id="id1">PNaCl</h3> | 30 <h3 id="id2">PNaCl</h3> |
| 24 <ul class="small-gap"> | 31 <ul class="small-gap"> |
| 25 <li>Support <a class="reference external" href="http://clang.llvm.org/docs/Langu
ageExtensions.html#vectors-and-extended-vectors">LLVM vectors</a> | 32 <li>Support <a class="reference external" href="http://clang.llvm.org/docs/Langu
ageExtensions.html#vectors-and-extended-vectors">LLVM vectors</a> |
| 26 and <a class="reference external" href="http://gcc.gnu.org/onlinedocs/gcc/Vector
-Extensions.html">GCC vectors</a> for SIMD | 33 and <a class="reference external" href="http://gcc.gnu.org/onlinedocs/gcc/Vector
-Extensions.html">GCC vectors</a> for SIMD |
| 27 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, | 34 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, |
| 28 and performance is expected to become acceptable for version 37 of | 35 and performance is expected to become acceptable for version 37 of |
| 29 Chrome. More SIMD instructions will be added in later releases.</li> | 36 Chrome. More SIMD instructions will be added in later releases.</li> |
| 30 </ul> | 37 </ul> |
| 31 <h2 id="chrome-pepper-35-31-mar-2014">Chrome/Pepper 35 (31 Mar 2014)</h2> | 38 <h2 id="chrome-pepper-35-31-mar-2014">Chrome/Pepper 35 (31 Mar 2014)</h2> |
| 32 <h3 id="id2">PNaCl</h3> | 39 <h3 id="id3">PNaCl</h3> |
| 33 <ul class="small-gap"> | 40 <ul class="small-gap"> |
| 34 <li>Upgraded LLVM to version 3.4.</li> | 41 <li>Upgraded LLVM to version 3.4.</li> |
| 35 <li>Translation now uses dynamic load balancing, making translation time faster.
</li> | 42 <li>Translation now uses dynamic load balancing, making translation time faster.
</li> |
| 36 <li>Unstable pexes (i.e. non-finalized) with debug information can be loaded by | 43 <li>Unstable pexes (i.e. non-finalized) with debug information can be loaded by |
| 37 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> | 44 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> |
| 38 </ul> | 45 </ul> |
| 39 <h2 id="chrome-pepper-34-20-feb-2014">Chrome/Pepper 34 (20 Feb 2014)</h2> | 46 <h2 id="chrome-pepper-34-20-feb-2014">Chrome/Pepper 34 (20 Feb 2014)</h2> |
| 40 <h3 id="id3">Pepper</h3> | 47 <h3 id="id4">Pepper</h3> |
| 41 <ul class="small-gap"> | 48 <ul class="small-gap"> |
| 42 <li>Filesystems can now be passed from JavaScript to NaCl. The resulting | 49 <li>Filesystems can now be passed from JavaScript to NaCl. The resulting |
| 43 <code>pp::Var</code> will contain a <code>pp::Resource</code> that can be given
to the | 50 <code>pp::Var</code> will contain a <code>pp::Resource</code> that can be given
to the |
| 44 <code>pp::FileSystem</code> constructor.</li> | 51 <code>pp::FileSystem</code> constructor.</li> |
| 45 <li>New Audio and Video input APIs have been added as dev interfaces. See | 52 <li>New Audio and Video input APIs have been added as dev interfaces. See |
| 46 <a class="reference external" href="/native-client/pepper_dev/cpp/classpp_1_1_me
dia_stream_audio_track">pp::MediaStreamAudioTrack</a> and | 53 <a class="reference external" href="/native-client/pepper_dev/cpp/classpp_1_1_me
dia_stream_audio_track">pp::MediaStreamAudioTrack</a> and |
| 47 <a class="reference external" href="/native-client/pepper_dev/cpp/classpp_1_1_me
dia_stream_video_track">pp::MediaStreamVideoTrack</a> for | 54 <a class="reference external" href="/native-client/pepper_dev/cpp/classpp_1_1_me
dia_stream_video_track">pp::MediaStreamVideoTrack</a> for |
| 48 more details.</li> | 55 more details.</li> |
| 49 </ul> | 56 </ul> |
| 50 <h3 id="id4">PNaCl</h3> | 57 <h3 id="id5">PNaCl</h3> |
| 51 <ul class="small-gap"> | 58 <ul class="small-gap"> |
| 52 <li>Parallel translation: at least 1.7x faster, even with older pexes.</li> | 59 <li>Parallel translation: at least 1.7x faster, even with older pexes.</li> |
| 53 <li>Intelligent abbreviations in the bitcode: 20% reduction in binary size using | 60 <li>Intelligent abbreviations in the bitcode: 20% reduction in binary size using |
| 54 the <a class="reference internal" href="/native-client/devguide/devcycle/buildin
g.html#pnacl-compress"><em>pnacl-compress</em></a> tool.</li> | 61 the <a class="reference internal" href="/native-client/devguide/devcycle/buildin
g.html#pnacl-compress"><em>pnacl-compress</em></a> tool.</li> |
| 55 </ul> | 62 </ul> |
| 56 <h2 id="chrome-pepper-33-16-dec-2013">Chrome/Pepper 33 (16 Dec 2013)</h2> | 63 <h2 id="chrome-pepper-33-16-dec-2013">Chrome/Pepper 33 (16 Dec 2013)</h2> |
| 57 <h3 id="portable-native-client">Portable Native Client</h3> | 64 <h3 id="portable-native-client">Portable Native Client</h3> |
| 58 <ul class="small-gap"> | 65 <ul class="small-gap"> |
| 59 <li>PNaCl’s default C++ standard library is now LLVM’s own libc++, b
ased on | 66 <li>PNaCl’s default C++ standard library is now LLVM’s own libc++, b
ased on |
| 60 LLVM 3.3. This library now supports optional <code>setjmp</code>/<code>longjmp</
code> exception | 67 LLVM 3.3. This library now supports optional <code>setjmp</code>/<code>longjmp</
code> exception |
| 61 handling (see <a class="reference external" href="https://groups.google.com/foru
m/#!topic/native-client-discuss/0spfg6O04FM">announcement</a> | 68 handling (see <a class="reference external" href="https://groups.google.com/foru
m/#!topic/native-client-discuss/0spfg6O04FM">announcement</a> |
| 62 for details).</li> | 69 for details).</li> |
| 63 </ul> | 70 </ul> |
| 64 <h3 id="id5">SDK</h3> | 71 <h3 id="id6">SDK</h3> |
| 65 <ul class="small-gap"> | 72 <ul class="small-gap"> |
| 66 <li>The <code>nacl_io</code> library now includes a FUSE mount.</li> | 73 <li>The <code>nacl_io</code> library now includes a FUSE mount.</li> |
| 67 <li>In the SDK examples, <code>common.js</code> now loads the Release version of
the | 74 <li>In the SDK examples, <code>common.js</code> now loads the Release version of
the |
| 68 nexes/pexes that are built (by default).</li> | 75 nexes/pexes that are built (by default).</li> |
| 69 <li>“<code>make debug</code>” and “<code>make run</code>”
; have been fixed on Mac.</li> | 76 <li>“<code>make debug</code>” and “<code>make run</code>”
; have been fixed on Mac.</li> |
| 70 </ul> | 77 </ul> |
| 71 <h2 id="pnacl-enabled-by-default-in-chrome-31-12-nov-2013">PNaCl enabled by defa
ult in Chrome 31 (12 Nov 2013)</h2> | 78 <h2 id="pnacl-enabled-by-default-in-chrome-31-12-nov-2013">PNaCl enabled by defa
ult in Chrome 31 (12 Nov 2013)</h2> |
| 72 <ul class="small-gap"> | 79 <ul class="small-gap"> |
| 73 <li>Portable Native Client (PNaCl) is enabled by default in Chrome 31. See | 80 <li>Portable Native Client (PNaCl) is enabled by default in Chrome 31. See |
| 74 <a class="reference internal" href="/native-client/nacl-and-pnacl.html"><em>NaCl
and PNaCl</em></a> for details on the differences between | 81 <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... |
| 168 <ul class="small-gap"> | 175 <ul class="small-gap"> |
| 169 <li>Common makefiles, including <code>tools/common.mk</code>, can now handle sou
rce files | 176 <li>Common makefiles, including <code>tools/common.mk</code>, can now handle sou
rce files |
| 170 located outside of an application’s root directory. For example, a Makefil
e | 177 located outside of an application’s root directory. For example, a Makefil
e |
| 171 for an application can specify a source file to compile such as | 178 for an application can specify a source file to compile such as |
| 172 <code>../../some/other/place.cpp</code>.</li> | 179 <code>../../some/other/place.cpp</code>.</li> |
| 173 </ul> | 180 </ul> |
| 174 <h2 id="pepper-26-29-march-2013">Pepper 26 (29 March 2013)</h2> | 181 <h2 id="pepper-26-29-march-2013">Pepper 26 (29 March 2013)</h2> |
| 175 <p>The Pepper 26 bundle includes a new HTTP filesystem type in the nacl_mounts | 182 <p>The Pepper 26 bundle includes a new HTTP filesystem type in the nacl_mounts |
| 176 library (which has been renamed nacl_io), changes to the example Makefiles, a | 183 library (which has been renamed nacl_io), changes to the example Makefiles, a |
| 177 simple new 3D example, and a threaded file IO example.</p> | 184 simple new 3D example, and a threaded file IO example.</p> |
| 178 <h3 id="id6">Build tools and toolchains</h3> | 185 <h3 id="id7">Build tools and toolchains</h3> |
| 179 <ul class="small-gap"> | 186 <ul class="small-gap"> |
| 180 <li><p class="first">Makefiles have been changed significantly:</p> | 187 <li><p class="first">Makefiles have been changed significantly:</p> |
| 181 <ul class="small-gap"> | 188 <ul class="small-gap"> |
| 182 <li>Build commands are now specified in a number of common files | 189 <li>Build commands are now specified in a number of common files |
| 183 (<code>tools/*.mk</code>), which are included in the Makefiles in the examples.<
/li> | 190 (<code>tools/*.mk</code>), which are included in the Makefiles in the examples.<
/li> |
| 184 <li>By default, make displays a simplified list of build steps (e.g., <code>CC | 191 <li>By default, make displays a simplified list of build steps (e.g., <code>CC |
| 185 newlib/Debug/hello_world_x86_32.o</code>) rather than the actual build commands. | 192 newlib/Debug/hello_world_x86_32.o</code>) rather than the actual build commands. |
| 186 To see the actual build commands, run <code>make V=1</code>.</li> | 193 To see the actual build commands, run <code>make V=1</code>.</li> |
| 187 <li>By default, most examples are built using one toolchain (newlib) and one | 194 <li>By default, most examples are built using one toolchain (newlib) and one |
| 188 configuration (Debug). To build an example using a different toolchain or | 195 configuration (Debug). To build an example using a different toolchain or |
| 189 configuration, run <code>make</code> with the parameters <code>TOOLCHAIN=<x&g
t;</code> or | 196 configuration, run <code>make</code> with the parameters <code>TOOLCHAIN=<x&g
t;</code> or |
| 190 <code>CONFIG=<y></code>. You can also run make <code>all_versions</code>
to build an example | 197 <code>CONFIG=<y></code>. You can also run make <code>all_versions</code>
to build an example |
| 191 with all toolchains.</li> | 198 with all toolchains.</li> |
| 192 </ul> | 199 </ul> |
| 193 </li> | 200 </li> |
| 194 <li>Header files have been moved out of the toolchains. All toolchains now share | 201 <li>Header files have been moved out of the toolchains. All toolchains now share |
| 195 the same set of header files as host builds. Previously host and NaCl builds | 202 the same set of header files as host builds. Previously host and NaCl builds |
| 196 used different headers, which could cause build problems.</li> | 203 used different headers, which could cause build problems.</li> |
| 197 </ul> | 204 </ul> |
| 198 <h3 id="id7">Libraries</h3> | 205 <h3 id="id8">Libraries</h3> |
| 199 <ul class="small-gap"> | 206 <ul class="small-gap"> |
| 200 <li>The nacl_mounts library has been renamed <strong>nacl_io</strong>, and has b
een expanded | 207 <li>The nacl_mounts library has been renamed <strong>nacl_io</strong>, and has b
een expanded |
| 201 with a new type of mount, httpfs, which can be used to read URLs via HTTP. | 208 with a new type of mount, httpfs, which can be used to read URLs via HTTP. |
| 202 For details see <code>include/nacl_io/nacl_io.h</code>, as well as the | 209 For details see <code>include/nacl_io/nacl_io.h</code>, as well as the |
| 203 <code>hello_nacl_io</code> example.</li> | 210 <code>hello_nacl_io</code> example.</li> |
| 204 </ul> | 211 </ul> |
| 205 <h3 id="id8">Examples</h3> | 212 <h3 id="id9">Examples</h3> |
| 206 <ul class="small-gap"> | 213 <ul class="small-gap"> |
| 207 <li>A new example, <strong>hello_world_instance3d</strong>, has been added to de
monstrate a | 214 <li>A new example, <strong>hello_world_instance3d</strong>, has been added to de
monstrate a |
| 208 simplified 3D app.</li> | 215 simplified 3D app.</li> |
| 209 <li>The <strong>file_io</strong> example has been rewritten to do all file opera
tions on a | 216 <li>The <strong>file_io</strong> example has been rewritten to do all file opera
tions on a |
| 210 thread. The example demonstrates how to use the MessageLoop API and blocking | 217 thread. The example demonstrates how to use the MessageLoop API and blocking |
| 211 callbacks on a thread.</li> | 218 callbacks on a thread.</li> |
| 212 </ul> | 219 </ul> |
| 213 <h3 id="general">General</h3> | 220 <h3 id="general">General</h3> |
| 214 <ul class="small-gap"> | 221 <ul class="small-gap"> |
| 215 <li>Old bundles (<code>pepper_20</code> and earlier) have been removed from the
Native | 222 <li>Old bundles (<code>pepper_20</code> and earlier) have been removed from the
Native |
| 216 Client SDK Manifest, and will no longer be updated by the <code>naclsdk</code> | 223 Client SDK Manifest, and will no longer be updated by the <code>naclsdk</code> |
| 217 command.</li> | 224 command.</li> |
| 218 </ul> | 225 </ul> |
| 219 <h2 id="pepper-25-21-december-2012">Pepper 25 (21 December 2012)</h2> | 226 <h2 id="pepper-25-21-december-2012">Pepper 25 (21 December 2012)</h2> |
| 220 <p>The Pepper 25 bundle features an ARM toolchain to build Native Client modules | 227 <p>The Pepper 25 bundle features an ARM toolchain to build Native Client modules |
| 221 for ARM devices, two new Pepper APIs (including the MessageLoop API, which lets | 228 for ARM devices, two new Pepper APIs (including the MessageLoop API, which lets |
| 222 you make Pepper calls on background threads), two new libraries (nacl_mounts, | 229 you make Pepper calls on background threads), two new libraries (nacl_mounts, |
| 223 which provides a virtual file system that you can use with standard C file | 230 which provides a virtual file system that you can use with standard C file |
| 224 operations, and ppapi_main, which lets you implement a Native Client module | 231 operations, and ppapi_main, which lets you implement a Native Client module |
| 225 using a simple ppapi_main function), and two new examples that demonstrate how | 232 using a simple ppapi_main function), and two new examples that demonstrate how |
| 226 to use the nacl_mounts and ppapi_main libraries.</p> | 233 to use the nacl_mounts and ppapi_main libraries.</p> |
| 227 <h3 id="id9">Build tools and toolchains</h3> | 234 <h3 id="id10">Build tools and toolchains</h3> |
| 228 <ul class="small-gap"> | 235 <ul class="small-gap"> |
| 229 <li><p class="first">The SDK includes a new toolchain to build Native Client exe
cutables (.nexe | 236 <li><p class="first">The SDK includes a new toolchain to build Native Client exe
cutables (.nexe |
| 230 files) for <strong>ARM devices</strong>.</p> | 237 files) for <strong>ARM devices</strong>.</p> |
| 231 <ul class="small-gap"> | 238 <ul class="small-gap"> |
| 232 <li>Currently the ARM toolchain can only be used to compile modules that use | 239 <li>Currently the ARM toolchain can only be used to compile modules that use |
| 233 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 | 240 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 |
| 234 to compile modules that use the glibc library.</li> | 241 to compile modules that use the glibc library.</li> |
| 235 <li>The ARM toolchain is in the directory | 242 <li>The ARM toolchain is in the directory |
| 236 <code>pepper_25/toolchain/<host>_arm_newlib</code>. The bin subdirectory
contains | 243 <code>pepper_25/toolchain/<host>_arm_newlib</code>. The bin subdirectory
contains |
| 237 the compiler (<code>arm-nacl-gcc</code>), the linker (<code>arm-nacl-g++</code>)
, and the | 244 the compiler (<code>arm-nacl-gcc</code>), the linker (<code>arm-nacl-g++</code>)
, and the |
| (...skipping 16 matching lines...) Expand all Loading... |
| 254 module log messages to the JavaScript console in the Chrome browser.</li> | 261 module log messages to the JavaScript console in the Chrome browser.</li> |
| 255 <li>The <a class="reference external" href="/native-client/pepper_stable/cpp/cla
sspp_1_1_message_loop">MessageLoop</a> API lets your | 262 <li>The <a class="reference external" href="/native-client/pepper_stable/cpp/cla
sspp_1_1_message_loop">MessageLoop</a> API lets your |
| 256 module make PPAPI calls on a background thread. Once you’ve created a | 263 module make PPAPI calls on a background thread. Once you’ve created a |
| 257 message loop resource, attached it to a thread, and run it, you can post work | 264 message loop resource, attached it to a thread, and run it, you can post work |
| 258 to the thread, including completion callbacks for asynchronous operations. | 265 to the thread, including completion callbacks for asynchronous operations. |
| 259 For a C++ example of how to use the MessageLoop API, see | 266 For a C++ example of how to use the MessageLoop API, see |
| 260 <code>pepper_25/include/ppapi/utility/threading/simple_thread.h</code>. Note tha
t you | 267 <code>pepper_25/include/ppapi/utility/threading/simple_thread.h</code>. Note tha
t you |
| 261 cannot make asynchronous PPAPI calls on a background thread without creating | 268 cannot make asynchronous PPAPI calls on a background thread without creating |
| 262 and using a message loop.</li> | 269 and using a message loop.</li> |
| 263 </ul> | 270 </ul> |
| 264 <h3 id="id10">Libraries</h3> | 271 <h3 id="id11">Libraries</h3> |
| 265 <p>The SDK includes two new libraries:</p> | 272 <p>The SDK includes two new libraries:</p> |
| 266 <ul class="small-gap"> | 273 <ul class="small-gap"> |
| 267 <li><p class="first">The <strong>nacl_mounts</strong> library provides a virtual
file system that your module | 274 <li><p class="first">The <strong>nacl_mounts</strong> library provides a virtual
file system that your module |
| 268 can “mount” in a given directory tree. The file system can be one of
several | 275 can “mount” in a given directory tree. The file system can be one of
several |
| 269 types:</p> | 276 types:</p> |
| 270 <ul class="small-gap"> | 277 <ul class="small-gap"> |
| 271 <li>“memfs” is an in-memory file system,</li> | 278 <li>“memfs” is an in-memory file system,</li> |
| 272 <li>“dev” is a file system with various utility nodes (e.g., <code>/
dev/null</code>, | 279 <li>“dev” is a file system with various utility nodes (e.g., <code>/
dev/null</code>, |
| 273 <code>/dev/console[0-3]</code>, <code>/dev/tty</code>), and</li> | 280 <code>/dev/console[0-3]</code>, <code>/dev/tty</code>), and</li> |
| 274 <li>“html5fs” is a persistent file system.</li> | 281 <li>“html5fs” is a persistent file system.</li> |
| (...skipping 13 matching lines...) Expand all Loading... |
| 288 providing a familiar C programming environment. With this library, your | 295 providing a familiar C programming environment. With this library, your |
| 289 module can have a simple entry point called ppapi_main(), which is similar to | 296 module can have a simple entry point called ppapi_main(), which is similar to |
| 290 the standard C main() function, complete with argc and argv[] parameters. | 297 the standard C main() function, complete with argc and argv[] parameters. |
| 291 Your module can also use standard C functions such as printf(), fopen(), and | 298 Your module can also use standard C functions such as printf(), fopen(), and |
| 292 fwrite(). For details see include/ppapi_main/ppapi_main.h. For an example of | 299 fwrite(). For details see include/ppapi_main/ppapi_main.h. For an example of |
| 293 how to use ppapi_main, see examples/hello_world_stdio.</li> | 300 how to use ppapi_main, see examples/hello_world_stdio.</li> |
| 294 </ul> | 301 </ul> |
| 295 <p>Header files for the new libraries are in the <code>include/</code> directory
, source | 302 <p>Header files for the new libraries are in the <code>include/</code> directory
, source |
| 296 files are in the <code>src/</code> directory, and compiled libraries are in the
<code>lib/</code> | 303 files are in the <code>src/</code> directory, and compiled libraries are in the
<code>lib/</code> |
| 297 directory.</p> | 304 directory.</p> |
| 298 <h3 id="id11">Examples</h3> | 305 <h3 id="id12">Examples</h3> |
| 299 <ul class="small-gap"> | 306 <ul class="small-gap"> |
| 300 <li><p class="first">The SDK includes two new examples:</p> | 307 <li><p class="first">The SDK includes two new examples:</p> |
| 301 <ul class="small-gap"> | 308 <ul class="small-gap"> |
| 302 <li><strong>hello_nacl_mounts</strong> illustrates how to use standard C library
file | 309 <li><strong>hello_nacl_mounts</strong> illustrates how to use standard C library
file |
| 303 operations in a Native Client module through the use of the nacl_mounts | 310 operations in a Native Client module through the use of the nacl_mounts |
| 304 library.</li> | 311 library.</li> |
| 305 <li><strong>hello_world_stdio</strong> illustrates how to implement a Native Cli
ent module | 312 <li><strong>hello_world_stdio</strong> illustrates how to implement a Native Cli
ent module |
| 306 with a ppapi_main() function, and how to write to STDOUT and STDERR in a | 313 with a ppapi_main() function, and how to write to STDOUT and STDERR in a |
| 307 module, through the use of the nacl_mounts and ppapi_main libraries. This | 314 module, through the use of the nacl_mounts and ppapi_main libraries. This |
| 308 example makes it easy for new users to get started with Native Client by | 315 example makes it easy for new users to get started with Native Client by |
| (...skipping 20 matching lines...) Expand all Loading... |
| 329 Chrome is closed, the local server is shut down as well.</li> | 336 Chrome is closed, the local server is shut down as well.</li> |
| 330 <li>The hello_world_stdio example includes a simplified Makefile that only lists | 337 <li>The hello_world_stdio example includes a simplified Makefile that only lists |
| 331 source dependencies, and invokes the build rules in a separate file | 338 source dependencies, and invokes the build rules in a separate file |
| 332 (common.mk).</li> | 339 (common.mk).</li> |
| 333 </ul> | 340 </ul> |
| 334 <h2 id="pepper-24-5-december-2012">Pepper 24 (5 December 2012)</h2> | 341 <h2 id="pepper-24-5-december-2012">Pepper 24 (5 December 2012)</h2> |
| 335 <p>The Pepper 24 bundle features a new, experimental toolchain called PNaCl (sho
rt | 342 <p>The Pepper 24 bundle features a new, experimental toolchain called PNaCl (sho
rt |
| 336 for “Portable Native Client”), a new library (pthreads-win32) for th
e Windows | 343 for “Portable Native Client”), a new library (pthreads-win32) for th
e Windows |
| 337 SDK, and an expanded list of attributes for Pepper 3D contexts that lets | 344 SDK, and an expanded list of attributes for Pepper 3D contexts that lets |
| 338 applications specify a GPU preference for low power or performance.</p> | 345 applications specify a GPU preference for low power or performance.</p> |
| 339 <h3 id="id12">Build tools and toolchains</h3> | 346 <h3 id="id13">Build tools and toolchains</h3> |
| 340 <ul class="small-gap"> | 347 <ul class="small-gap"> |
| 341 <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 | 348 <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 |
| 342 “pinnacle”). The PNaCl toolchain produces architecture-independent e
xecutable | 349 “pinnacle”). The PNaCl toolchain produces architecture-independent e
xecutable |
| 343 files (.pexe files). Chrome doesn’t yet support .pexe files directly, but
if | 350 files (.pexe files). Chrome doesn’t yet support .pexe files directly, but
if |
| 344 you want to experiment with this early preview of PNaCl, the toolchain | 351 you want to experiment with this early preview of PNaCl, the toolchain |
| 345 includes a tool to translate .pexe files into architecture-specific .nexe | 352 includes a tool to translate .pexe files into architecture-specific .nexe |
| 346 files. Take a look at the <code>hello_world</code> example to see how to build a
.pexe | 353 files. Take a look at the <code>hello_world</code> example to see how to build a
.pexe |
| 347 file and translate it into multiple .nexe files. Note that PNaCl is currently | 354 file and translate it into multiple .nexe files. Note that PNaCl is currently |
| 348 restricted to the newlib C standard library – if your application uses glibc, | 355 restricted to the newlib C standard library – if your application uses glibc, |
| 349 you can’t build it with PNaCl.</li> | 356 you can’t build it with PNaCl.</li> |
| 350 <li>The <code>create_nmf.py</code> script uses ELF headers (rather than file nam
es) to | 357 <li>The <code>create_nmf.py</code> script uses ELF headers (rather than file nam
es) to |
| 351 determine the architecture of .nexe files. That means you can change the | 358 determine the architecture of .nexe files. That means you can change the |
| 352 names of your .nexe files and <code>create_nmf.py</code> will still be able to | 359 names of your .nexe files and <code>create_nmf.py</code> will still be able to |
| 353 generate the appropriate Native Client manifest file for your application.</li> | 360 generate the appropriate Native Client manifest file for your application.</li> |
| 354 </ul> | 361 </ul> |
| 355 <h3 id="id14">Examples</h3> | 362 <h3 id="id15">Examples</h3> |
| 356 <ul class="small-gap"> | 363 <ul class="small-gap"> |
| 357 <li>The SDK examples now build with four toolchains: the glibc and newlib | 364 <li>The SDK examples now build with four toolchains: the glibc and newlib |
| 358 toolchains, the experimental PNaCl toolchain, and the hosted toolchain on | 365 toolchains, the experimental PNaCl toolchain, and the hosted toolchain on |
| 359 your development machine. Within each toolchain build, each example also | 366 your development machine. Within each toolchain build, each example also |
| 360 builds both a debug and a release version.</li> | 367 builds both a debug and a release version.</li> |
| 361 <li>The example Makefiles use dependency (.d) files to enable incremental builds
.</li> | 368 <li>The example Makefiles use dependency (.d) files to enable incremental builds
.</li> |
| 362 <li>The pong example has been cleaned up and modified to run more smoothly. The | 369 <li>The pong example has been cleaned up and modified to run more smoothly. The |
| 363 drawing function is now set up as the Flush() callback, which allows 2D | 370 drawing function is now set up as the Flush() callback, which allows 2D |
| 364 drawing to occur as quickly as possible.</li> | 371 drawing to occur as quickly as possible.</li> |
| 365 </ul> | 372 </ul> |
| 366 <h3 id="id15">PPAPI</h3> | 373 <h3 id="id16">PPAPI</h3> |
| 367 <ul class="small-gap"> | 374 <ul class="small-gap"> |
| 368 <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> | 375 <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> |
| 369 for the context can specify whether to prefer low power or performance for | 376 for the context can specify whether to prefer low power or performance for |
| 370 the GPU. Contexts with a low power preference may be created on an integrated | 377 the GPU. Contexts with a low power preference may be created on an integrated |
| 371 GPU; contexts with a performance preference may be created on a discrete GPU.</l
i> | 378 GPU; contexts with a performance preference may be created on a discrete GPU.</l
i> |
| 372 </ul> | 379 </ul> |
| 373 <h3 id="windows-sdk">Windows SDK</h3> | 380 <h3 id="windows-sdk">Windows SDK</h3> |
| 374 <ul class="small-gap"> | 381 <ul class="small-gap"> |
| 375 <li>The Windows SDK includes the pthreads-win32 library to assist in porting fro
m | 382 <li>The Windows SDK includes the pthreads-win32 library to assist in porting fro
m |
| 376 win32 code. You can use this library when developing your module as a Pepper | 383 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... |
| 428 <ul class="small-gap"> | 435 <ul class="small-gap"> |
| 429 <li>Look at the example Makefiles or run <code>make</code> in the example direct
ories to | 436 <li>Look at the example Makefiles or run <code>make</code> in the example direct
ories to |
| 430 see the commands and flags used to build modules as Pepper plugins.</li> | 437 see the commands and flags used to build modules as Pepper plugins.</li> |
| 431 <li>Run <code>make LAUNCH</code> in the example directories to see how to use th
e | 438 <li>Run <code>make LAUNCH</code> in the example directories to see how to use th
e |
| 432 <code>--register-pepper-plugins</code> argument to load a Pepper plugin in Chrom
e. | 439 <code>--register-pepper-plugins</code> argument to load a Pepper plugin in Chrom
e. |
| 433 Note that you must set the <code>CHROME_PATH</code> environment variable and sta
rt a | 440 Note that you must set the <code>CHROME_PATH</code> environment variable and sta
rt a |
| 434 <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> | 441 <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> |
| 435 </ul> | 442 </ul> |
| 436 </li> | 443 </li> |
| 437 </ul> | 444 </ul> |
| 438 <h3 id="id16">Examples</h3> | 445 <h3 id="id17">Examples</h3> |
| 439 <ul class="small-gap"> | 446 <ul class="small-gap"> |
| 440 <li>On Linux and Windows systems, most of the examples now build with three | 447 <li>On Linux and Windows systems, most of the examples now build with three |
| 441 toolchains: the Native Client glibc and newlib toolchains, and the native | 448 toolchains: the Native Client glibc and newlib toolchains, and the native |
| 442 toolchain on the host system. Modules built with the native toolchain on the | 449 toolchain on the host system. Modules built with the native toolchain on the |
| 443 host system can only run as Pepper plugins.</li> | 450 host system can only run as Pepper plugins.</li> |
| 444 <li>All examples in the SDK now comply with version 2 of the Chrome Web Store | 451 <li>All examples in the SDK now comply with version 2 of the Chrome Web Store |
| 445 <a class="reference external" href="/extensions/manifest">manifest file format</
a>. By default, | 452 <a class="reference external" href="/extensions/manifest">manifest file format</
a>. By default, |
| 446 applications that use version 2 of the manifest file format apply a strict | 453 applications that use version 2 of the manifest file format apply a strict |
| 447 <a class="reference external" href="/extensions/contentSecurityPolicy">content s
ecurity policy</a>, which | 454 <a class="reference external" href="/extensions/contentSecurityPolicy">content s
ecurity policy</a>, which |
| 448 includes a restriction against inline JavaScript. This restriction prohibits | 455 includes a restriction against inline JavaScript. This restriction prohibits |
| 449 both inline <code><script></code> blocks and inline event handlers (e.g.,
<code><button | 456 both inline <code><script></code> blocks and inline event handlers (e.g.,
<code><button |
| 450 onclick="..."></code>). See <a class="reference external" href="/e
xtensions/manifestVersion">Manifest Version</a> for | 457 onclick="..."></code>). See <a class="reference external" href="/e
xtensions/manifestVersion">Manifest Version</a> for |
| 451 a list of changes between version 1 and version 2 of the manifest file | 458 a list of changes between version 1 and version 2 of the manifest file |
| 452 format, and a support schedule for applications that use version 1.</li> | 459 format, and a support schedule for applications that use version 1.</li> |
| 453 </ul> | 460 </ul> |
| 454 <h3 id="id17">PPAPI</h3> | 461 <h3 id="id18">PPAPI</h3> |
| 455 <ul class="small-gap"> | 462 <ul class="small-gap"> |
| 456 <li><a class="reference external" href="/native-client/pepper_stable/c/group___e
nums#ga21b811ac0484a214a8751aa3e1c959d9">PP_InputEvent_Modifier</a> | 463 <li><a class="reference external" href="/native-client/pepper_stable/c/group___e
nums#ga21b811ac0484a214a8751aa3e1c959d9">PP_InputEvent_Modifier</a> |
| 457 has two new enum values (_ISLEFT and _ISRIGHT).</li> | 464 has two new enum values (_ISLEFT and _ISRIGHT).</li> |
| 458 <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 | 465 <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 |
| 459 been fixed.</li> | 466 been fixed.</li> |
| 460 </ul> | 467 </ul> |
| 461 <h2 id="pepper-22-22-august-2012">Pepper 22 (22 August 2012)</h2> | 468 <h2 id="pepper-22-22-august-2012">Pepper 22 (22 August 2012)</h2> |
| 462 <p>The Pepper 22 bundle includes a <strong>command-line debugger</strong>, resou
rces to enable | 469 <p>The Pepper 22 bundle includes a <strong>command-line debugger</strong>, resou
rces to enable |
| 463 <strong>hosted development on Windows</strong>, and changes to the example Makef
iles (each | 470 <strong>hosted development on Windows</strong>, and changes to the example Makef
iles (each |
| 464 example now builds both a debug and a release version).</p> | 471 example now builds both a debug and a release version).</p> |
| 465 <h3 id="id18">Tools</h3> | 472 <h3 id="id19">Tools</h3> |
| 466 <ul class="small-gap"> | 473 <ul class="small-gap"> |
| 467 <li>The SDK now includes a <strong>command-line debugger</strong> that you can u
se to debug | 474 <li>The SDK now includes a <strong>command-line debugger</strong> that you can u
se to debug |
| 468 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, | 475 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, |
| 469 nacl-gdb only works on 64-bit Windows, 64-bit Linux, and 32-bit Linux | 476 nacl-gdb only works on 64-bit Windows, 64-bit Linux, and 32-bit Linux |
| 470 systems. Support for Mac and 32-bit Windows systems will be added soon.</li> | 477 systems. Support for Mac and 32-bit Windows systems will be added soon.</li> |
| 471 </ul> | 478 </ul> |
| 472 <h3 id="id19">Windows SDK</h3> | 479 <h3 id="id20">Windows SDK</h3> |
| 473 <ul class="small-gap"> | 480 <ul class="small-gap"> |
| 474 <li><p class="first">Developers using the Windows SDK can now <strong>build a mo
dule as a Pepper | 481 <li><p class="first">Developers using the Windows SDK can now <strong>build a mo
dule as a Pepper |
| 475 plugin</strong> (sometimes called a “trusted” or “in-process&#
8221; plugin) using the | 482 plugin</strong> (sometimes called a “trusted” or “in-process&#
8221; plugin) using the |
| 476 native C/C++ compiler on their development system. In essence this makes | 483 native C/C++ compiler on their development system. In essence this makes |
| 477 developing a Native Client module a two-step process:</p> | 484 developing a Native Client module a two-step process:</p> |
| 478 <ol class="arabic simple"> | 485 <ol class="arabic simple"> |
| 479 <li>Build the module into a DLL using your system’s C/C++ compiler. Test a
nd | 486 <li>Build the module into a DLL using your system’s C/C++ compiler. Test a
nd |
| 480 debug the DLL using the tools in your normal development environment.</li> | 487 debug the DLL using the tools in your normal development environment.</li> |
| 481 <li>Build the module into a .nexe using the compiler from one of the Native | 488 <li>Build the module into a .nexe using the compiler from one of the Native |
| 482 Client toolchains in the SDK (nacl-gcc or nacl-g++). Test and debug the | 489 Client toolchains in the SDK (nacl-gcc or nacl-g++). Test and debug the |
| (...skipping 27 matching lines...) Expand all Loading... |
| 510 <strong>Note:</strong> It’s also possible to build a module as a trusted p
lugin on Mac and | 517 <strong>Note:</strong> It’s also possible to build a module as a trusted p
lugin on Mac and |
| 511 Linux systems, but doing so requires more work because the SDK does not yet | 518 Linux systems, but doing so requires more work because the SDK does not yet |
| 512 include the above resources (library source files and pre-built libraries) | 519 include the above resources (library source files and pre-built libraries) |
| 513 for Mac and Linux systems. To build and debug a trusted plugin on Mac and | 520 for Mac and Linux systems. To build and debug a trusted plugin on Mac and |
| 514 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 | 521 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 |
| 515 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> | 522 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> |
| 516 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>. | 523 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>. |
| 517 In the future, the SDK will include resources for hosted development on Mac | 524 In the future, the SDK will include resources for hosted development on Mac |
| 518 and Linux as well as Windows. | 525 and Linux as well as Windows. |
| 519 </aside> | 526 </aside> |
| 520 <h3 id="id20">Examples</h3> | 527 <h3 id="id21">Examples</h3> |
| 521 <ul class="small-gap"> | 528 <ul class="small-gap"> |
| 522 <li>Each example in the SDK now builds both a debug and a release version. As | 529 <li>Each example in the SDK now builds both a debug and a release version. As |
| 523 before, most examples also build newlib and glibc versions, which means that | 530 before, most examples also build newlib and glibc versions, which means that |
| 524 there are now four versions for each example. Take a look at the Makefiles in | 531 there are now four versions for each example. Take a look at the Makefiles in |
| 525 the examples to see the compiler flags that are used for debug and release | 532 the examples to see the compiler flags that are used for debug and release |
| 526 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 | 533 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 |
| 527 different development scenarios</em></a>.</li> | 534 different development scenarios</em></a>.</li> |
| 528 <li>Comments have been added to common.js, which is used in all the examples. Th
e | 535 <li>Comments have been added to common.js, which is used in all the examples. Th
e |
| 529 JavaScript in common.js inserts an <embed> element that loads the NaCl mod
ule | 536 JavaScript in common.js inserts an <embed> element that loads the NaCl mod
ule |
| 530 in each example’s web page, attaches event listeners to monitor the loadin
g | 537 in each example’s web page, attaches event listeners to monitor the loadin
g |
| 531 of the module, and implements handleMessage() to respond to messages sent | 538 of the module, and implements handleMessage() to respond to messages sent |
| 532 from the NaCl module to the JavaScript side of the application</li> | 539 from the NaCl module to the JavaScript side of the application</li> |
| 533 </ul> | 540 </ul> |
| 534 <h3 id="id21">PPAPI</h3> | 541 <h3 id="id22">PPAPI</h3> |
| 535 <ul class="small-gap"> | 542 <ul class="small-gap"> |
| 536 <li>The <code>CompletionCallbackFactory</code> class template now takes a thread
traits | 543 <li>The <code>CompletionCallbackFactory</code> class template now takes a thread
traits |
| 537 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 | 544 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 |
| 538 class template reference</a>.</li> | 545 class template reference</a>.</li> |
| 539 </ul> | 546 </ul> |
| 540 </section> | 547 </section> |
| 541 | 548 |
| 542 {{/partials.standard_nacl_article}} | 549 {{/partials.standard_nacl_article}} |
| OLD | NEW |