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