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 <section id="chrome-pepper-37-20-june-2014"> | |
6 <h2 id="chrome-pepper-37-20-june-2014">Chrome/Pepper 37 (20 June 2014)</h2> | 5 <h2 id="chrome-pepper-37-20-june-2014">Chrome/Pepper 37 (20 June 2014)</h2> |
7 <section id="pnacl"> | |
8 <h3 id="pnacl">PNaCl</h3> | 6 <h3 id="pnacl">PNaCl</h3> |
9 <ul class="small-gap"> | 7 <ul class="small-gap"> |
10 <li>2–10% translation time improvement.</li> | 8 <li>2–10% translation time improvement.</li> |
11 <li>Improved vector load/store and shuffle performance.</li> | 9 <li>Improved vector load/store and shuffle performance.</li> |
12 </ul> | 10 </ul> |
13 </section><section id="pepper"> | |
14 <h3 id="pepper">Pepper</h3> | 11 <h3 id="pepper">Pepper</h3> |
15 <ul class="small-gap"> | 12 <ul class="small-gap"> |
16 <li>Media Streams Input support.</li> | 13 <li>Media Streams Input support.</li> |
17 <li>Compositor API.</li> | 14 <li>Compositor API.</li> |
18 <li>Hardware Decode API in development preview.</li> | 15 <li>Hardware Decode API in development preview.</li> |
19 <li>Sync API in development preview.</li> | 16 <li>Sync API in development preview.</li> |
20 </ul> | 17 </ul> |
21 </section><section id="sdk"> | |
22 <h3 id="sdk">SDK</h3> | 18 <h3 id="sdk">SDK</h3> |
23 <ul class="small-gap"> | 19 <ul class="small-gap"> |
24 <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> | 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> |
25 </ul> | 21 </ul> |
26 </section></section><section id="chrome-pepper-36-09-may-2014"> | |
27 <h2 id="chrome-pepper-36-09-may-2014">Chrome/Pepper 36 (09 May 2014)</h2> | 22 <h2 id="chrome-pepper-36-09-may-2014">Chrome/Pepper 36 (09 May 2014)</h2> |
28 <section id="id1"> | |
29 <h3 id="id1">PNaCl</h3> | 23 <h3 id="id1">PNaCl</h3> |
30 <ul class="small-gap"> | 24 <ul class="small-gap"> |
31 <li>Support <a class="reference external" href="http://clang.llvm.org/docs/Langu
ageExtensions.html#vectors-and-extended-vectors">LLVM vectors</a> | 25 <li>Support <a class="reference external" href="http://clang.llvm.org/docs/Langu
ageExtensions.html#vectors-and-extended-vectors">LLVM vectors</a> |
32 and <a class="reference external" href="http://gcc.gnu.org/onlinedocs/gcc/Vector
-Extensions.html">GCC vectors</a> for SIMD | 26 and <a class="reference external" href="http://gcc.gnu.org/onlinedocs/gcc/Vector
-Extensions.html">GCC vectors</a> for SIMD |
33 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, | 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 and performance is expected to become acceptable for version 37 of | 28 and performance is expected to become acceptable for version 37 of |
35 Chrome. More SIMD instructions will be added in later releases.</li> | 29 Chrome. More SIMD instructions will be added in later releases.</li> |
36 </ul> | 30 </ul> |
37 </section></section><section id="chrome-pepper-35-31-mar-2014"> | |
38 <h2 id="chrome-pepper-35-31-mar-2014">Chrome/Pepper 35 (31 Mar 2014)</h2> | 31 <h2 id="chrome-pepper-35-31-mar-2014">Chrome/Pepper 35 (31 Mar 2014)</h2> |
39 <section id="id2"> | |
40 <h3 id="id2">PNaCl</h3> | 32 <h3 id="id2">PNaCl</h3> |
41 <ul class="small-gap"> | 33 <ul class="small-gap"> |
42 <li>Upgraded LLVM to version 3.4.</li> | 34 <li>Upgraded LLVM to version 3.4.</li> |
43 <li>Translation now uses dynamic load balancing, making translation time faster.
</li> | 35 <li>Translation now uses dynamic load balancing, making translation time faster.
</li> |
44 <li>Unstable pexes (i.e. non-finalized) with debug information can be loaded by | 36 <li>Unstable pexes (i.e. non-finalized) with debug information can be loaded by |
45 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> | 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> |
46 </ul> | 38 </ul> |
47 </section></section><section id="chrome-pepper-34-20-feb-2014"> | |
48 <h2 id="chrome-pepper-34-20-feb-2014">Chrome/Pepper 34 (20 Feb 2014)</h2> | 39 <h2 id="chrome-pepper-34-20-feb-2014">Chrome/Pepper 34 (20 Feb 2014)</h2> |
49 <section id="id3"> | |
50 <h3 id="id3">Pepper</h3> | 40 <h3 id="id3">Pepper</h3> |
51 <ul class="small-gap"> | 41 <ul class="small-gap"> |
52 <li>Filesystems can now be passed from JavaScript to NaCl. The resulting | 42 <li>Filesystems can now be passed from JavaScript to NaCl. The resulting |
53 <code>pp::Var</code> will contain a <code>pp::Resource</code> that can be given
to the | 43 <code>pp::Var</code> will contain a <code>pp::Resource</code> that can be given
to the |
54 <code>pp::FileSystem</code> constructor.</li> | 44 <code>pp::FileSystem</code> constructor.</li> |
55 <li>New Audio and Video input APIs have been added as dev interfaces. See | 45 <li>New Audio and Video input APIs have been added as dev interfaces. See |
56 <a class="reference external" href="/native-client/pepper_dev/cpp/classpp_1_1_me
dia_stream_audio_track">pp::MediaStreamAudioTrack</a> and | 46 <a class="reference external" href="/native-client/pepper_dev/cpp/classpp_1_1_me
dia_stream_audio_track">pp::MediaStreamAudioTrack</a> and |
57 <a class="reference external" href="/native-client/pepper_dev/cpp/classpp_1_1_me
dia_stream_video_track">pp::MediaStreamVideoTrack</a> for | 47 <a class="reference external" href="/native-client/pepper_dev/cpp/classpp_1_1_me
dia_stream_video_track">pp::MediaStreamVideoTrack</a> for |
58 more details.</li> | 48 more details.</li> |
59 </ul> | 49 </ul> |
60 </section><section id="id4"> | |
61 <h3 id="id4">PNaCl</h3> | 50 <h3 id="id4">PNaCl</h3> |
62 <ul class="small-gap"> | 51 <ul class="small-gap"> |
63 <li>Parallel translation: at least 1.7x faster, even with older pexes.</li> | 52 <li>Parallel translation: at least 1.7x faster, even with older pexes.</li> |
64 <li>Intelligent abbreviations in the bitcode: 20% reduction in binary size using | 53 <li>Intelligent abbreviations in the bitcode: 20% reduction in binary size using |
65 the <a class="reference internal" href="/native-client/devguide/devcycle/buildin
g.html#pnacl-compress"><em>pnacl-compress</em></a> tool.</li> | 54 the <a class="reference internal" href="/native-client/devguide/devcycle/buildin
g.html#pnacl-compress"><em>pnacl-compress</em></a> tool.</li> |
66 </ul> | 55 </ul> |
67 </section></section><section id="chrome-pepper-33-16-dec-2013"> | |
68 <h2 id="chrome-pepper-33-16-dec-2013">Chrome/Pepper 33 (16 Dec 2013)</h2> | 56 <h2 id="chrome-pepper-33-16-dec-2013">Chrome/Pepper 33 (16 Dec 2013)</h2> |
69 <section id="portable-native-client"> | |
70 <h3 id="portable-native-client">Portable Native Client</h3> | 57 <h3 id="portable-native-client">Portable Native Client</h3> |
71 <ul class="small-gap"> | 58 <ul class="small-gap"> |
72 <li>PNaCl’s default C++ standard library is now LLVM’s own libc++, b
ased on | 59 <li>PNaCl’s default C++ standard library is now LLVM’s own libc++, b
ased on |
73 LLVM 3.3. This library now supports optional <code>setjmp</code>/<code>longjmp</
code> exception | 60 LLVM 3.3. This library now supports optional <code>setjmp</code>/<code>longjmp</
code> exception |
74 handling (see <a class="reference external" href="https://groups.google.com/foru
m/#!topic/native-client-discuss/0spfg6O04FM">announcement</a> | 61 handling (see <a class="reference external" href="https://groups.google.com/foru
m/#!topic/native-client-discuss/0spfg6O04FM">announcement</a> |
75 for details).</li> | 62 for details).</li> |
76 </ul> | 63 </ul> |
77 </section><section id="id5"> | |
78 <h3 id="id5">SDK</h3> | 64 <h3 id="id5">SDK</h3> |
79 <ul class="small-gap"> | 65 <ul class="small-gap"> |
80 <li>The <code>nacl_io</code> library now includes a FUSE mount.</li> | 66 <li>The <code>nacl_io</code> library now includes a FUSE mount.</li> |
81 <li>In the SDK examples, <code>common.js</code> now loads the Release version of
the | 67 <li>In the SDK examples, <code>common.js</code> now loads the Release version of
the |
82 nexes/pexes that are built (by default).</li> | 68 nexes/pexes that are built (by default).</li> |
83 <li>“<code>make debug</code>” and “<code>make run</code>”
; have been fixed on Mac.</li> | 69 <li>“<code>make debug</code>” and “<code>make run</code>”
; have been fixed on Mac.</li> |
84 </ul> | 70 </ul> |
85 </section></section><section id="pnacl-enabled-by-default-in-chrome-31-12-nov-20
13"> | |
86 <h2 id="pnacl-enabled-by-default-in-chrome-31-12-nov-2013">PNaCl enabled by defa
ult in Chrome 31 (12 Nov 2013)</h2> | 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> |
87 <ul class="small-gap"> | 72 <ul class="small-gap"> |
88 <li>Portable Native Client (PNaCl) is enabled by default in Chrome 31. See | 73 <li>Portable Native Client (PNaCl) is enabled by default in Chrome 31. See |
89 <a class="reference internal" href="/native-client/nacl-and-pnacl.html"><em>NaCl
and PNaCl</em></a> for details on the differences between | 74 <a class="reference internal" href="/native-client/nacl-and-pnacl.html"><em>NaCl
and PNaCl</em></a> for details on the differences between |
90 NaCl and PNaCl.</li> | 75 NaCl and PNaCl.</li> |
91 <li>The PNaCl ABI has changed from the preview release in Chrome 30. | 76 <li>The PNaCl ABI has changed from the preview release in Chrome 30. |
92 Pexe modules built with the <code>pepper_30</code> bundle in the SDK must be rec
ompiled | 77 Pexe modules built with the <code>pepper_30</code> bundle in the SDK must be rec
ompiled |
93 with the <code>pepper_31</code> bundle or later. | 78 with the <code>pepper_31</code> bundle or later. |
94 As a general rule, we always recommended building applications with the latest | 79 As a general rule, we always recommended building applications with the latest |
95 stable bundle in the Native Client SDK. | 80 stable bundle in the Native Client SDK. |
96 The PNaCl ABI will remain stable starting with the release of Chrome 31.</li> | 81 The PNaCl ABI will remain stable starting with the release of Chrome 31.</li> |
97 <li><p class="first">Additional changes in the Chrome/Pepper 31 release:</p> | 82 <li><p class="first">Additional changes in the Chrome/Pepper 31 release:</p> |
98 <ul class="small-gap"> | 83 <ul class="small-gap"> |
99 <li>Updates to the Pepper API, including socket and network support</li> | 84 <li>Updates to the Pepper API, including socket and network support</li> |
100 <li>Improved socket support in the <code>nacl_io</code> library</li> | 85 <li>Improved socket support in the <code>nacl_io</code> library</li> |
101 </ul> | 86 </ul> |
102 </li> | 87 </li> |
103 </ul> | 88 </ul> |
104 </section><section id="pnacl-in-chrome-30-dev-channel-01-aug-2013"> | |
105 <h2 id="pnacl-in-chrome-30-dev-channel-01-aug-2013">PNaCl in Chrome 30 Dev chann
el (01 Aug 2013)</h2> | 89 <h2 id="pnacl-in-chrome-30-dev-channel-01-aug-2013">PNaCl in Chrome 30 Dev chann
el (01 Aug 2013)</h2> |
106 <ul class="small-gap"> | 90 <ul class="small-gap"> |
107 <li>Portable Native Client (PNaCl) is currently available for preview in Chrome | 91 <li>Portable Native Client (PNaCl) is currently available for preview in Chrome |
108 30 (currently in the Dev channel). Apps and sites built with PNaCl can run in | 92 30 (currently in the Dev channel). Apps and sites built with PNaCl can run in |
109 Chrome 30 without an explicit flag.</li> | 93 Chrome 30 without an explicit flag.</li> |
110 <li>See <a class="reference external" href="http://www.chromium.org/nativeclient
/pnacl/introduction-to-portable-native-client">Introduction to Portable Native C
lient</a> | 94 <li>See <a class="reference external" href="http://www.chromium.org/nativeclient
/pnacl/introduction-to-portable-native-client">Introduction to Portable Native C
lient</a> |
111 for information on developing for PNaCl. More documentation will be available | 95 for information on developing for PNaCl. More documentation will be available |
112 soon.</li> | 96 soon.</li> |
113 <li>Please note that the <a class="reference external" href="http://www.chromium
.org/nativeclient/pnacl/bitcode-abi">PNaCl bitcode ABI</a> may still change | 97 <li>Please note that the <a class="reference external" href="http://www.chromium
.org/nativeclient/pnacl/bitcode-abi">PNaCl bitcode ABI</a> may still change |
114 before the official public release; if you’re developing a PNaCl-based | 98 before the official public release; if you’re developing a PNaCl-based |
115 application, be sure to build your code with the latest version of the Native | 99 application, be sure to build your code with the latest version of the Native |
116 Client SDK.</li> | 100 Client SDK.</li> |
117 <li>Update: PNaCl is not enabled by default in beta or stable versions of M30.</
li> | 101 <li>Update: PNaCl is not enabled by default in beta or stable versions of M30.</
li> |
118 </ul> | 102 </ul> |
119 </section><section id="pnacl-15-may-2013"> | |
120 <h2 id="pnacl-15-may-2013">PNaCl (15 May 2013)</h2> | 103 <h2 id="pnacl-15-may-2013">PNaCl (15 May 2013)</h2> |
121 <ul class="small-gap"> | 104 <ul class="small-gap"> |
122 <li>Portable Native Client (PNaCl) is currently available for developer preview | 105 <li>Portable Native Client (PNaCl) is currently available for developer preview |
123 in Chrome 29 or higher.</li> | 106 in Chrome 29 or higher.</li> |
124 <li>To produce a PNaCl executable (.pexe) file, you must use the pnacl toolchain | 107 <li>To produce a PNaCl executable (.pexe) file, you must use the pnacl toolchain |
125 in the current <code>pepper_canary</code> bundle. Chrome 29 does not support .pe
xe | 108 in the current <code>pepper_canary</code> bundle. Chrome 29 does not support .pe
xe |
126 files produced by earlier versions of the pnacl toolchain (that is, | 109 files produced by earlier versions of the pnacl toolchain (that is, |
127 executables compiled with the <code>pepper_28</code> bundle or earlier).</li> | 110 executables compiled with the <code>pepper_28</code> bundle or earlier).</li> |
128 <li>To run an application with a PNaCl module, you must launch Chrome 29 with th
e | 111 <li>To run an application with a PNaCl module, you must launch Chrome 29 with th
e |
129 <code>--enable-pnacl</code> flag (for <a class="reference external" href="/apps/
about_apps">packaged apps</a>), or the | 112 <code>--enable-pnacl</code> flag (for <a class="reference external" href="/apps/
about_apps">packaged apps</a>), or the |
130 <code>--enable-nacl</code> flag (for other apps).</li> | 113 <code>--enable-nacl</code> flag (for other apps).</li> |
131 <li>When you launch Chrome with the <code>--enable-pnacl</code> flag, Chrome loa
ds a PNaCl | 114 <li>When you launch Chrome with the <code>--enable-pnacl</code> flag, Chrome loa
ds a PNaCl |
132 translator in the background. Wait about a minute after you launch Chrome and | 115 translator in the background. Wait about a minute after you launch Chrome and |
133 check <a class="reference external" href="chrome://nacl">chrome://nacl</a> to ve
rify that the translator loaded.</li> | 116 check <a class="reference external" href="chrome://nacl">chrome://nacl</a> to ve
rify that the translator loaded.</li> |
134 <li>PNaCl translators are currently available for 32-bit x86, 64-bit x86, and AR
M | 117 <li>PNaCl translators are currently available for 32-bit x86, 64-bit x86, and AR
M |
135 architectures.</li> | 118 architectures.</li> |
136 <li>PNaCl applications must use the newlib C library (glibc and dynamic linking | 119 <li>PNaCl applications must use the newlib C library (glibc and dynamic linking |
137 are not supported yet).</li> | 120 are not supported yet).</li> |
138 <li>The intermediate representation (IR) format may change prior to the release | 121 <li>The intermediate representation (IR) format may change prior to the release |
139 of PNaCl. If so, you will need to recompile your application with the pnacl | 122 of PNaCl. If so, you will need to recompile your application with the pnacl |
140 toolchain in a new SDK bundle.</li> | 123 toolchain in a new SDK bundle.</li> |
141 </ul> | 124 </ul> |
142 </section><section id="pepper-27-12-april-2013"> | |
143 <h2 id="pepper-27-12-april-2013">Pepper 27 (12 April 2013)</h2> | 125 <h2 id="pepper-27-12-april-2013">Pepper 27 (12 April 2013)</h2> |
144 <p>The Pepper 27 bundle features a significant number of new libraries that have | 126 <p>The Pepper 27 bundle features a significant number of new libraries that have |
145 been incorporated directly into the SDK.</p> | 127 been incorporated directly into the SDK.</p> |
146 <section id="libraries"> | |
147 <h3 id="libraries">Libraries</h3> | 128 <h3 id="libraries">Libraries</h3> |
148 <ul class="small-gap"> | 129 <ul class="small-gap"> |
149 <li><p class="first">A number of libraries from the naclports project have been
incorporated | 130 <li><p class="first">A number of libraries from the naclports project have been
incorporated |
150 directly into the Native Client SDK. These libraries include:</p> | 131 directly into the Native Client SDK. These libraries include:</p> |
151 <ul class="small-gap"> | 132 <ul class="small-gap"> |
152 <li>image encoding/decoding: jpeg, tiff, png, webp</li> | 133 <li>image encoding/decoding: jpeg, tiff, png, webp</li> |
153 <li>multimedia: openal, freealut, ogg, vorbis</li> | 134 <li>multimedia: openal, freealut, ogg, vorbis</li> |
154 <li>XML parsing: tinyxml, xml2</li> | 135 <li>XML parsing: tinyxml, xml2</li> |
155 <li>miscellaneous: zlib (general purpose compression), freetype (font | 136 <li>miscellaneous: zlib (general purpose compression), freetype (font |
156 rendering), lua (Lua interpreter)</li> | 137 rendering), lua (Lua interpreter)</li> |
157 </ul> | 138 </ul> |
158 <p>The libraries are located in <code>ports/lib</code>, and the header files are
in | 139 <p>The libraries are located in <code>ports/lib</code>, and the header files are
in |
159 <code>ports/include</code>.</p> | 140 <code>ports/include</code>.</p> |
160 </li> | 141 </li> |
161 <li>The <code>httpfs</code> filesystem in the nacl_io library now caches content
in memory | 142 <li>The <code>httpfs</code> filesystem in the nacl_io library now caches content
in memory |
162 by default; this improves performance considerably.</li> | 143 by default; this improves performance considerably.</li> |
163 <li>For applications compiled with a glibc toolchain, <code>dlopen()</code> can
now be | 144 <li>For applications compiled with a glibc toolchain, <code>dlopen()</code> can
now be |
164 used to open shared libraries that are not specified in an application’s | 145 used to open shared libraries that are not specified in an application’s |
165 Native Client manifest (.nmf) file. This allows applications, for example, to | 146 Native Client manifest (.nmf) file. This allows applications, for example, to |
166 download a shared object and then use <code>dlopen()</code> to access the shared | 147 download a shared object and then use <code>dlopen()</code> to access the shared |
167 object. The <code>dlopen</code> example has been modified to demonstrate this | 148 object. The <code>dlopen</code> example has been modified to demonstrate this |
168 functionality: reverse.cc is built into a shared object (.so) file, which is | 149 functionality: reverse.cc is built into a shared object (.so) file, which is |
169 downloaded and opened using an <code>httpfs</code> mount.</li> | 150 downloaded and opened using an <code>httpfs</code> mount.</li> |
170 </ul> | 151 </ul> |
171 </section><section id="examples"> | |
172 <h3 id="examples">Examples</h3> | 152 <h3 id="examples">Examples</h3> |
173 <ul class="small-gap"> | 153 <ul class="small-gap"> |
174 <li>Each example now has a single <code>index.html</code> file, instead of multi
ple HTML | 154 <li>Each example now has a single <code>index.html</code> file, instead of multi
ple HTML |
175 files corresponding to NaCl modules built using different toolchains and | 155 files corresponding to NaCl modules built using different toolchains and |
176 configurations. By default, most examples are built using one toolchain | 156 configurations. By default, most examples are built using one toolchain |
177 (newlib) and one configuration (Debug). If you build an example using | 157 (newlib) and one configuration (Debug). If you build an example using |
178 multiple toolchains or configurations, you can specify which version to run | 158 multiple toolchains or configurations, you can specify which version to run |
179 in Chrome using the query parameters <code>tc</code> and <code>config</code>. Fo
r example, | 159 in Chrome using the query parameters <code>tc</code> and <code>config</code>. Fo
r example, |
180 assuming you are serving an example from the local server localhost:5103, you | 160 assuming you are serving an example from the local server localhost:5103, you |
181 can run a version of the example built with the glibc toolchain in the | 161 can run a version of the example built with the glibc toolchain in the |
182 Release configuration by specifying the following URL in Chrome: | 162 Release configuration by specifying the following URL in Chrome: |
183 <code>http://localhost:5103/index.html?tc=glibc&config=Release</code>. For a
dditional | 163 <code>http://localhost:5103/index.html?tc=glibc&config=Release</code>. For a
dditional |
184 information about how different NaCl modules are loaded into <code>index.html</c
ode>, | 164 information about how different NaCl modules are loaded into <code>index.html</c
ode>, |
185 see the <code>common.js</code> file in each example.</li> | 165 see the <code>common.js</code> file in each example.</li> |
186 </ul> | 166 </ul> |
187 </section><section id="build-tools-and-toolchains"> | |
188 <h3 id="build-tools-and-toolchains">Build tools and toolchains</h3> | 167 <h3 id="build-tools-and-toolchains">Build tools and toolchains</h3> |
189 <ul class="small-gap"> | 168 <ul class="small-gap"> |
190 <li>Common makefiles, including <code>tools/common.mk</code>, can now handle sou
rce files | 169 <li>Common makefiles, including <code>tools/common.mk</code>, can now handle sou
rce files |
191 located outside of an application’s root directory. For example, a Makefil
e | 170 located outside of an application’s root directory. For example, a Makefil
e |
192 for an application can specify a source file to compile such as | 171 for an application can specify a source file to compile such as |
193 <code>../../some/other/place.cpp</code>.</li> | 172 <code>../../some/other/place.cpp</code>.</li> |
194 </ul> | 173 </ul> |
195 </section></section><section id="pepper-26-29-march-2013"> | |
196 <h2 id="pepper-26-29-march-2013">Pepper 26 (29 March 2013)</h2> | 174 <h2 id="pepper-26-29-march-2013">Pepper 26 (29 March 2013)</h2> |
197 <p>The Pepper 26 bundle includes a new HTTP filesystem type in the nacl_mounts | 175 <p>The Pepper 26 bundle includes a new HTTP filesystem type in the nacl_mounts |
198 library (which has been renamed nacl_io), changes to the example Makefiles, a | 176 library (which has been renamed nacl_io), changes to the example Makefiles, a |
199 simple new 3D example, and a threaded file IO example.</p> | 177 simple new 3D example, and a threaded file IO example.</p> |
200 <section id="id6"> | |
201 <h3 id="id6">Build tools and toolchains</h3> | 178 <h3 id="id6">Build tools and toolchains</h3> |
202 <ul class="small-gap"> | 179 <ul class="small-gap"> |
203 <li><p class="first">Makefiles have been changed significantly:</p> | 180 <li><p class="first">Makefiles have been changed significantly:</p> |
204 <ul class="small-gap"> | 181 <ul class="small-gap"> |
205 <li>Build commands are now specified in a number of common files | 182 <li>Build commands are now specified in a number of common files |
206 (<code>tools/*.mk</code>), which are included in the Makefiles in the examples.<
/li> | 183 (<code>tools/*.mk</code>), which are included in the Makefiles in the examples.<
/li> |
207 <li>By default, make displays a simplified list of build steps (e.g., <code>CC | 184 <li>By default, make displays a simplified list of build steps (e.g., <code>CC |
208 newlib/Debug/hello_world_x86_32.o</code>) rather than the actual build commands. | 185 newlib/Debug/hello_world_x86_32.o</code>) rather than the actual build commands. |
209 To see the actual build commands, run <code>make V=1</code>.</li> | 186 To see the actual build commands, run <code>make V=1</code>.</li> |
210 <li>By default, most examples are built using one toolchain (newlib) and one | 187 <li>By default, most examples are built using one toolchain (newlib) and one |
211 configuration (Debug). To build an example using a different toolchain or | 188 configuration (Debug). To build an example using a different toolchain or |
212 configuration, run <code>make</code> with the parameters <code>TOOLCHAIN=<x&g
t;</code> or | 189 configuration, run <code>make</code> with the parameters <code>TOOLCHAIN=<x&g
t;</code> or |
213 <code>CONFIG=<y></code>. You can also run make <code>all_versions</code>
to build an example | 190 <code>CONFIG=<y></code>. You can also run make <code>all_versions</code>
to build an example |
214 with all toolchains.</li> | 191 with all toolchains.</li> |
215 </ul> | 192 </ul> |
216 </li> | 193 </li> |
217 <li>Header files have been moved out of the toolchains. All toolchains now share | 194 <li>Header files have been moved out of the toolchains. All toolchains now share |
218 the same set of header files as host builds. Previously host and NaCl builds | 195 the same set of header files as host builds. Previously host and NaCl builds |
219 used different headers, which could cause build problems.</li> | 196 used different headers, which could cause build problems.</li> |
220 </ul> | 197 </ul> |
221 </section><section id="id7"> | |
222 <h3 id="id7">Libraries</h3> | 198 <h3 id="id7">Libraries</h3> |
223 <ul class="small-gap"> | 199 <ul class="small-gap"> |
224 <li>The nacl_mounts library has been renamed <strong>nacl_io</strong>, and has b
een expanded | 200 <li>The nacl_mounts library has been renamed <strong>nacl_io</strong>, and has b
een expanded |
225 with a new type of mount, httpfs, which can be used to read URLs via HTTP. | 201 with a new type of mount, httpfs, which can be used to read URLs via HTTP. |
226 For details see <code>include/nacl_io/nacl_io.h</code>, as well as the | 202 For details see <code>include/nacl_io/nacl_io.h</code>, as well as the |
227 <code>hello_nacl_io</code> example.</li> | 203 <code>hello_nacl_io</code> example.</li> |
228 </ul> | 204 </ul> |
229 </section><section id="id8"> | |
230 <h3 id="id8">Examples</h3> | 205 <h3 id="id8">Examples</h3> |
231 <ul class="small-gap"> | 206 <ul class="small-gap"> |
232 <li>A new example, <strong>hello_world_instance3d</strong>, has been added to de
monstrate a | 207 <li>A new example, <strong>hello_world_instance3d</strong>, has been added to de
monstrate a |
233 simplified 3D app.</li> | 208 simplified 3D app.</li> |
234 <li>The <strong>file_io</strong> example has been rewritten to do all file opera
tions on a | 209 <li>The <strong>file_io</strong> example has been rewritten to do all file opera
tions on a |
235 thread. The example demonstrates how to use the MessageLoop API and blocking | 210 thread. The example demonstrates how to use the MessageLoop API and blocking |
236 callbacks on a thread.</li> | 211 callbacks on a thread.</li> |
237 </ul> | 212 </ul> |
238 </section><section id="general"> | |
239 <h3 id="general">General</h3> | 213 <h3 id="general">General</h3> |
240 <ul class="small-gap"> | 214 <ul class="small-gap"> |
241 <li>Old bundles (<code>pepper_20</code> and earlier) have been removed from the
Native | 215 <li>Old bundles (<code>pepper_20</code> and earlier) have been removed from the
Native |
242 Client SDK Manifest, and will no longer be updated by the <code>naclsdk</code> | 216 Client SDK Manifest, and will no longer be updated by the <code>naclsdk</code> |
243 command.</li> | 217 command.</li> |
244 </ul> | 218 </ul> |
245 </section></section><section id="pepper-25-21-december-2012"> | |
246 <h2 id="pepper-25-21-december-2012">Pepper 25 (21 December 2012)</h2> | 219 <h2 id="pepper-25-21-december-2012">Pepper 25 (21 December 2012)</h2> |
247 <p>The Pepper 25 bundle features an ARM toolchain to build Native Client modules | 220 <p>The Pepper 25 bundle features an ARM toolchain to build Native Client modules |
248 for ARM devices, two new Pepper APIs (including the MessageLoop API, which lets | 221 for ARM devices, two new Pepper APIs (including the MessageLoop API, which lets |
249 you make Pepper calls on background threads), two new libraries (nacl_mounts, | 222 you make Pepper calls on background threads), two new libraries (nacl_mounts, |
250 which provides a virtual file system that you can use with standard C file | 223 which provides a virtual file system that you can use with standard C file |
251 operations, and ppapi_main, which lets you implement a Native Client module | 224 operations, and ppapi_main, which lets you implement a Native Client module |
252 using a simple ppapi_main function), and two new examples that demonstrate how | 225 using a simple ppapi_main function), and two new examples that demonstrate how |
253 to use the nacl_mounts and ppapi_main libraries.</p> | 226 to use the nacl_mounts and ppapi_main libraries.</p> |
254 <section id="id9"> | |
255 <h3 id="id9">Build tools and toolchains</h3> | 227 <h3 id="id9">Build tools and toolchains</h3> |
256 <ul class="small-gap"> | 228 <ul class="small-gap"> |
257 <li><p class="first">The SDK includes a new toolchain to build Native Client exe
cutables (.nexe | 229 <li><p class="first">The SDK includes a new toolchain to build Native Client exe
cutables (.nexe |
258 files) for <strong>ARM devices</strong>.</p> | 230 files) for <strong>ARM devices</strong>.</p> |
259 <ul class="small-gap"> | 231 <ul class="small-gap"> |
260 <li>Currently the ARM toolchain can only be used to compile modules that use | 232 <li>Currently the ARM toolchain can only be used to compile modules that use |
261 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 | 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 |
262 to compile modules that use the glibc library.</li> | 234 to compile modules that use the glibc library.</li> |
263 <li>The ARM toolchain is in the directory | 235 <li>The ARM toolchain is in the directory |
264 <code>pepper_25/toolchain/<host>_arm_newlib</code>. The bin subdirectory
contains | 236 <code>pepper_25/toolchain/<host>_arm_newlib</code>. The bin subdirectory
contains |
265 the compiler (<code>arm-nacl-gcc</code>), the linker (<code>arm-nacl-g++</code>)
, and the | 237 the compiler (<code>arm-nacl-gcc</code>), the linker (<code>arm-nacl-g++</code>)
, and the |
266 other tools in the toolchain.</li> | 238 other tools in the toolchain.</li> |
267 <li>Take a look at the <code>hello_world</code> example to see how to use the AR
M | 239 <li>Take a look at the <code>hello_world</code> example to see how to use the AR
M |
268 toolchain. Go to <code>examples/hello_world</code> and run <code>make</code>. Wh
en the build | 240 toolchain. Go to <code>examples/hello_world</code> and run <code>make</code>. Wh
en the build |
269 finishes, the newlib/Debug and newlib/Release subdirectories will contain | 241 finishes, the newlib/Debug and newlib/Release subdirectories will contain |
270 .nexe files for the x86-32, x86-64, and ARM target architecutes, and a | 242 .nexe files for the x86-32, x86-64, and ARM target architecutes, and a |
271 Native Client manifest (.nmf file) that references those three .nexe files.</li> | 243 Native Client manifest (.nmf file) that references those three .nexe files.</li> |
272 </ul> | 244 </ul> |
273 </li> | 245 </li> |
274 <li>The simple web server included in the SDK, <code>httpd.py</code>, has been m
oved from | 246 <li>The simple web server included in the SDK, <code>httpd.py</code>, has been m
oved from |
275 the <code>examples/</code> directory to the <code>tools/</code> directory. On Wi
ndows, you can | 247 the <code>examples/</code> directory to the <code>tools/</code> directory. On Wi
ndows, you can |
276 run <code>httpd.cmd</code> (in the <code>examples/</code> directory) to start th
e server.</li> | 248 run <code>httpd.cmd</code> (in the <code>examples/</code> directory) to start th
e server.</li> |
277 </ul> | 249 </ul> |
278 </section><section id="ppapi"> | |
279 <h3 id="ppapi">PPAPI</h3> | 250 <h3 id="ppapi">PPAPI</h3> |
280 <p>Pepper 25 includes two new APIs:</p> | 251 <p>Pepper 25 includes two new APIs:</p> |
281 <ul class="small-gap"> | 252 <ul class="small-gap"> |
282 <li>The <a class="reference external" href="/native-client/pepper_stable/c/struc
t_p_p_b___console__1__0">Console API</a> lets your | 253 <li>The <a class="reference external" href="/native-client/pepper_stable/c/struc
t_p_p_b___console__1__0">Console API</a> lets your |
283 module log messages to the JavaScript console in the Chrome browser.</li> | 254 module log messages to the JavaScript console in the Chrome browser.</li> |
284 <li>The <a class="reference external" href="/native-client/pepper_stable/cpp/cla
sspp_1_1_message_loop">MessageLoop</a> API lets your | 255 <li>The <a class="reference external" href="/native-client/pepper_stable/cpp/cla
sspp_1_1_message_loop">MessageLoop</a> API lets your |
285 module make PPAPI calls on a background thread. Once you’ve created a | 256 module make PPAPI calls on a background thread. Once you’ve created a |
286 message loop resource, attached it to a thread, and run it, you can post work | 257 message loop resource, attached it to a thread, and run it, you can post work |
287 to the thread, including completion callbacks for asynchronous operations. | 258 to the thread, including completion callbacks for asynchronous operations. |
288 For a C++ example of how to use the MessageLoop API, see | 259 For a C++ example of how to use the MessageLoop API, see |
289 <code>pepper_25/include/ppapi/utility/threading/simple_thread.h</code>. Note tha
t you | 260 <code>pepper_25/include/ppapi/utility/threading/simple_thread.h</code>. Note tha
t you |
290 cannot make asynchronous PPAPI calls on a background thread without creating | 261 cannot make asynchronous PPAPI calls on a background thread without creating |
291 and using a message loop.</li> | 262 and using a message loop.</li> |
292 </ul> | 263 </ul> |
293 </section><section id="id10"> | |
294 <h3 id="id10">Libraries</h3> | 264 <h3 id="id10">Libraries</h3> |
295 <p>The SDK includes two new libraries:</p> | 265 <p>The SDK includes two new libraries:</p> |
296 <ul class="small-gap"> | 266 <ul class="small-gap"> |
297 <li><p class="first">The <strong>nacl_mounts</strong> library provides a virtual
file system that your module | 267 <li><p class="first">The <strong>nacl_mounts</strong> library provides a virtual
file system that your module |
298 can “mount” in a given directory tree. The file system can be one of
several | 268 can “mount” in a given directory tree. The file system can be one of
several |
299 types:</p> | 269 types:</p> |
300 <ul class="small-gap"> | 270 <ul class="small-gap"> |
301 <li>“memfs” is an in-memory file system,</li> | 271 <li>“memfs” is an in-memory file system,</li> |
302 <li>“dev” is a file system with various utility nodes (e.g., <code>/
dev/null</code>, | 272 <li>“dev” is a file system with various utility nodes (e.g., <code>/
dev/null</code>, |
303 <code>/dev/console[0-3]</code>, <code>/dev/tty</code>), and</li> | 273 <code>/dev/console[0-3]</code>, <code>/dev/tty</code>), and</li> |
(...skipping 14 matching lines...) Expand all Loading... |
318 providing a familiar C programming environment. With this library, your | 288 providing a familiar C programming environment. With this library, your |
319 module can have a simple entry point called ppapi_main(), which is similar to | 289 module can have a simple entry point called ppapi_main(), which is similar to |
320 the standard C main() function, complete with argc and argv[] parameters. | 290 the standard C main() function, complete with argc and argv[] parameters. |
321 Your module can also use standard C functions such as printf(), fopen(), and | 291 Your module can also use standard C functions such as printf(), fopen(), and |
322 fwrite(). For details see include/ppapi_main/ppapi_main.h. For an example of | 292 fwrite(). For details see include/ppapi_main/ppapi_main.h. For an example of |
323 how to use ppapi_main, see examples/hello_world_stdio.</li> | 293 how to use ppapi_main, see examples/hello_world_stdio.</li> |
324 </ul> | 294 </ul> |
325 <p>Header files for the new libraries are in the <code>include/</code> directory
, source | 295 <p>Header files for the new libraries are in the <code>include/</code> directory
, source |
326 files are in the <code>src/</code> directory, and compiled libraries are in the
<code>lib/</code> | 296 files are in the <code>src/</code> directory, and compiled libraries are in the
<code>lib/</code> |
327 directory.</p> | 297 directory.</p> |
328 </section><section id="id11"> | |
329 <h3 id="id11">Examples</h3> | 298 <h3 id="id11">Examples</h3> |
330 <ul class="small-gap"> | 299 <ul class="small-gap"> |
331 <li><p class="first">The SDK includes two new examples:</p> | 300 <li><p class="first">The SDK includes two new examples:</p> |
332 <ul class="small-gap"> | 301 <ul class="small-gap"> |
333 <li><strong>hello_nacl_mounts</strong> illustrates how to use standard C library
file | 302 <li><strong>hello_nacl_mounts</strong> illustrates how to use standard C library
file |
334 operations in a Native Client module through the use of the nacl_mounts | 303 operations in a Native Client module through the use of the nacl_mounts |
335 library.</li> | 304 library.</li> |
336 <li><strong>hello_world_stdio</strong> illustrates how to implement a Native Cli
ent module | 305 <li><strong>hello_world_stdio</strong> illustrates how to implement a Native Cli
ent module |
337 with a ppapi_main() function, and how to write to STDOUT and STDERR in a | 306 with a ppapi_main() function, and how to write to STDOUT and STDERR in a |
338 module, through the use of the nacl_mounts and ppapi_main libraries. This | 307 module, through the use of the nacl_mounts and ppapi_main libraries. This |
(...skipping 16 matching lines...) Expand all Loading... |
355 <li>Additionally, each version is built in both a Debug and a Release | 324 <li>Additionally, each version is built in both a Debug and a Release |
356 configuration.</li> | 325 configuration.</li> |
357 <li>The Makefile for each example includes two new targets: <code>make RUN</code
> and | 326 <li>The Makefile for each example includes two new targets: <code>make RUN</code
> and |
358 <code>make LAUNCH</code>. These targets, which are interchangeable, launch a loc
al | 327 <code>make LAUNCH</code>. These targets, which are interchangeable, launch a loc
al |
359 server and an instance of Chrome to run an example. When the instance of | 328 server and an instance of Chrome to run an example. When the instance of |
360 Chrome is closed, the local server is shut down as well.</li> | 329 Chrome is closed, the local server is shut down as well.</li> |
361 <li>The hello_world_stdio example includes a simplified Makefile that only lists | 330 <li>The hello_world_stdio example includes a simplified Makefile that only lists |
362 source dependencies, and invokes the build rules in a separate file | 331 source dependencies, and invokes the build rules in a separate file |
363 (common.mk).</li> | 332 (common.mk).</li> |
364 </ul> | 333 </ul> |
365 </section></section><section id="pepper-24-5-december-2012"> | |
366 <h2 id="pepper-24-5-december-2012">Pepper 24 (5 December 2012)</h2> | 334 <h2 id="pepper-24-5-december-2012">Pepper 24 (5 December 2012)</h2> |
367 <p>The Pepper 24 bundle features a new, experimental toolchain called PNaCl (sho
rt | 335 <p>The Pepper 24 bundle features a new, experimental toolchain called PNaCl (sho
rt |
368 for “Portable Native Client”), a new library (pthreads-win32) for th
e Windows | 336 for “Portable Native Client”), a new library (pthreads-win32) for th
e Windows |
369 SDK, and an expanded list of attributes for Pepper 3D contexts that lets | 337 SDK, and an expanded list of attributes for Pepper 3D contexts that lets |
370 applications specify a GPU preference for low power or performance.</p> | 338 applications specify a GPU preference for low power or performance.</p> |
371 <section id="id12"> | |
372 <h3 id="id12">Build tools and toolchains</h3> | 339 <h3 id="id12">Build tools and toolchains</h3> |
373 <ul class="small-gap"> | 340 <ul class="small-gap"> |
374 <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 | 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 |
375 “pinnacle”). The PNaCl toolchain produces architecture-independent e
xecutable | 342 “pinnacle”). The PNaCl toolchain produces architecture-independent e
xecutable |
376 files (.pexe files). Chrome doesn’t yet support .pexe files directly, but
if | 343 files (.pexe files). Chrome doesn’t yet support .pexe files directly, but
if |
377 you want to experiment with this early preview of PNaCl, the toolchain | 344 you want to experiment with this early preview of PNaCl, the toolchain |
378 includes a tool to translate .pexe files into architecture-specific .nexe | 345 includes a tool to translate .pexe files into architecture-specific .nexe |
379 files. Take a look at the <code>hello_world</code> example to see how to build a
.pexe | 346 files. Take a look at the <code>hello_world</code> example to see how to build a
.pexe |
380 file and translate it into multiple .nexe files. Note that PNaCl is currently | 347 file and translate it into multiple .nexe files. Note that PNaCl is currently |
381 restricted to the newlib C standard library – if your application uses glibc, | 348 restricted to the newlib C standard library – if your application uses glibc, |
382 you can’t build it with PNaCl.</li> | 349 you can’t build it with PNaCl.</li> |
383 <li>The <code>create_nmf.py</code> script uses ELF headers (rather than file nam
es) to | 350 <li>The <code>create_nmf.py</code> script uses ELF headers (rather than file nam
es) to |
384 determine the architecture of .nexe files. That means you can change the | 351 determine the architecture of .nexe files. That means you can change the |
385 names of your .nexe files and <code>create_nmf.py</code> will still be able to | 352 names of your .nexe files and <code>create_nmf.py</code> will still be able to |
386 generate the appropriate Native Client manifest file for your application.</li> | 353 generate the appropriate Native Client manifest file for your application.</li> |
387 </ul> | 354 </ul> |
388 </section><section id="id14"> | |
389 <h3 id="id14">Examples</h3> | 355 <h3 id="id14">Examples</h3> |
390 <ul class="small-gap"> | 356 <ul class="small-gap"> |
391 <li>The SDK examples now build with four toolchains: the glibc and newlib | 357 <li>The SDK examples now build with four toolchains: the glibc and newlib |
392 toolchains, the experimental PNaCl toolchain, and the hosted toolchain on | 358 toolchains, the experimental PNaCl toolchain, and the hosted toolchain on |
393 your development machine. Within each toolchain build, each example also | 359 your development machine. Within each toolchain build, each example also |
394 builds both a debug and a release version.</li> | 360 builds both a debug and a release version.</li> |
395 <li>The example Makefiles use dependency (.d) files to enable incremental builds
.</li> | 361 <li>The example Makefiles use dependency (.d) files to enable incremental builds
.</li> |
396 <li>The pong example has been cleaned up and modified to run more smoothly. The | 362 <li>The pong example has been cleaned up and modified to run more smoothly. The |
397 drawing function is now set up as the Flush() callback, which allows 2D | 363 drawing function is now set up as the Flush() callback, which allows 2D |
398 drawing to occur as quickly as possible.</li> | 364 drawing to occur as quickly as possible.</li> |
399 </ul> | 365 </ul> |
400 </section><section id="id15"> | |
401 <h3 id="id15">PPAPI</h3> | 366 <h3 id="id15">PPAPI</h3> |
402 <ul class="small-gap"> | 367 <ul class="small-gap"> |
403 <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> | 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> |
404 for the context can specify whether to prefer low power or performance for | 369 for the context can specify whether to prefer low power or performance for |
405 the GPU. Contexts with a low power preference may be created on an integrated | 370 the GPU. Contexts with a low power preference may be created on an integrated |
406 GPU; contexts with a performance preference may be created on a discrete GPU.</l
i> | 371 GPU; contexts with a performance preference may be created on a discrete GPU.</l
i> |
407 </ul> | 372 </ul> |
408 </section><section id="windows-sdk"> | |
409 <h3 id="windows-sdk">Windows SDK</h3> | 373 <h3 id="windows-sdk">Windows SDK</h3> |
410 <ul class="small-gap"> | 374 <ul class="small-gap"> |
411 <li>The Windows SDK includes the pthreads-win32 library to assist in porting fro
m | 375 <li>The Windows SDK includes the pthreads-win32 library to assist in porting fro
m |
412 win32 code. You can use this library when developing your module as a Pepper | 376 win32 code. You can use this library when developing your module as a Pepper |
413 plug-in (.dll). See pepper_24/include/win/pthread.h and | 377 plug-in (.dll). See pepper_24/include/win/pthread.h and |
414 pepper_24/src/pthread/README for additional information.</li> | 378 pepper_24/src/pthread/README for additional information.</li> |
415 <li>The update utility naclsdk.bat works when it is run from a path with spaces.
</li> | 379 <li>The update utility naclsdk.bat works when it is run from a path with spaces.
</li> |
416 </ul> | 380 </ul> |
417 </section></section><section id="pepper-23-15-october-2012"> | |
418 <h2 id="pepper-23-15-october-2012">Pepper 23 (15 October 2012)</h2> | 381 <h2 id="pepper-23-15-october-2012">Pepper 23 (15 October 2012)</h2> |
419 <p>The Pepper 23 bundle includes support for the nacl-gdb debugger on Mac and | 382 <p>The Pepper 23 bundle includes support for the nacl-gdb debugger on Mac and |
420 32-bit Windows, resources to enable hosted development on Linux, and changes to | 383 32-bit Windows, resources to enable hosted development on Linux, and changes to |
421 make the SDK examples compliant with version 2 of the Chrome Web Store manifest | 384 make the SDK examples compliant with version 2 of the Chrome Web Store manifest |
422 file format.</p> | 385 file format.</p> |
423 <section id="tools"> | |
424 <h3 id="tools">Tools</h3> | 386 <h3 id="tools">Tools</h3> |
425 <ul class="small-gap"> | 387 <ul class="small-gap"> |
426 <li>The <a class="reference internal" href="/native-client/devguide/devcycle/deb
ugging.html#using-gdb"><em>nacl-gdb debugger</em></a> now works on all systems (
Mac, | 388 <li>The <a class="reference internal" href="/native-client/devguide/devcycle/deb
ugging.html#using-gdb"><em>nacl-gdb debugger</em></a> now works on all systems (
Mac, |
427 Windows, and Linux).</li> | 389 Windows, and Linux).</li> |
428 <li>The output of the SDK update utility has been simplified. When you run the | 390 <li>The output of the SDK update utility has been simplified. When you run the |
429 command <code>naclsdk list</code>, the utility displays one line for each availa
ble | 391 command <code>naclsdk list</code>, the utility displays one line for each availa
ble |
430 bundle, annotated with an “<code>I</code>” if the bundle is already
installed on your | 392 bundle, annotated with an “<code>I</code>” if the bundle is already
installed on your |
431 system, and a “<code>*</code>” if the bundle has an update available
. To see full | 393 system, and a “<code>*</code>” if the bundle has an update available
. To see full |
432 information about a bundle, use the command <code>naclsdk info <bundle></c
ode> (for | 394 information about a bundle, use the command <code>naclsdk info <bundle></c
ode> (for |
433 example, <code>naclsdk info pepper_28</code>).</li> | 395 example, <code>naclsdk info pepper_28</code>).</li> |
434 </ul> | 396 </ul> |
435 </section><section id="linux-sdk"> | |
436 <h3 id="linux-sdk">Linux SDK</h3> | 397 <h3 id="linux-sdk">Linux SDK</h3> |
437 <ul class="small-gap"> | 398 <ul class="small-gap"> |
438 <li><p class="first">Developers using the Linux SDK now have resources, includin
g pre-built | 399 <li><p class="first">Developers using the Linux SDK now have resources, includin
g pre-built |
439 libraries and example Makefiles, that make it easier to <strong>build a module a
s a | 400 libraries and example Makefiles, that make it easier to <strong>build a module a
s a |
440 Pepper plugin</strong> (sometimes called a “trusted” or “in-pr
ocess” plugin) using | 401 Pepper plugin</strong> (sometimes called a “trusted” or “in-pr
ocess” plugin) using |
441 the native C/C++ compiler on their development system. In essence this makes | 402 the native C/C++ compiler on their development system. In essence this makes |
442 developing a Native Client module a two-step process:</p> | 403 developing a Native Client module a two-step process:</p> |
443 <ol class="arabic simple"> | 404 <ol class="arabic simple"> |
444 <li>Build the module into a shared library (.so file) using your system’s | 405 <li>Build the module into a shared library (.so file) using your system’s |
445 C/C++ compiler. Test and debug the .so file using the tools in your normal | 406 C/C++ compiler. Test and debug the .so file using the tools in your normal |
(...skipping 21 matching lines...) Expand all Loading... |
467 <ul class="small-gap"> | 428 <ul class="small-gap"> |
468 <li>Look at the example Makefiles or run <code>make</code> in the example direct
ories to | 429 <li>Look at the example Makefiles or run <code>make</code> in the example direct
ories to |
469 see the commands and flags used to build modules as Pepper plugins.</li> | 430 see the commands and flags used to build modules as Pepper plugins.</li> |
470 <li>Run <code>make LAUNCH</code> in the example directories to see how to use th
e | 431 <li>Run <code>make LAUNCH</code> in the example directories to see how to use th
e |
471 <code>--register-pepper-plugins</code> argument to load a Pepper plugin in Chrom
e. | 432 <code>--register-pepper-plugins</code> argument to load a Pepper plugin in Chrom
e. |
472 Note that you must set the <code>CHROME_PATH</code> environment variable and sta
rt a | 433 Note that you must set the <code>CHROME_PATH</code> environment variable and sta
rt a |
473 <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> | 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> |
474 </ul> | 435 </ul> |
475 </li> | 436 </li> |
476 </ul> | 437 </ul> |
477 </section><section id="id16"> | |
478 <h3 id="id16">Examples</h3> | 438 <h3 id="id16">Examples</h3> |
479 <ul class="small-gap"> | 439 <ul class="small-gap"> |
480 <li>On Linux and Windows systems, most of the examples now build with three | 440 <li>On Linux and Windows systems, most of the examples now build with three |
481 toolchains: the Native Client glibc and newlib toolchains, and the native | 441 toolchains: the Native Client glibc and newlib toolchains, and the native |
482 toolchain on the host system. Modules built with the native toolchain on the | 442 toolchain on the host system. Modules built with the native toolchain on the |
483 host system can only run as Pepper plugins.</li> | 443 host system can only run as Pepper plugins.</li> |
484 <li>All examples in the SDK now comply with version 2 of the Chrome Web Store | 444 <li>All examples in the SDK now comply with version 2 of the Chrome Web Store |
485 <a class="reference external" href="/extensions/manifest">manifest file format</
a>. By default, | 445 <a class="reference external" href="/extensions/manifest">manifest file format</
a>. By default, |
486 applications that use version 2 of the manifest file format apply a strict | 446 applications that use version 2 of the manifest file format apply a strict |
487 <a class="reference external" href="/extensions/contentSecurityPolicy">content s
ecurity policy</a>, which | 447 <a class="reference external" href="/extensions/contentSecurityPolicy">content s
ecurity policy</a>, which |
488 includes a restriction against inline JavaScript. This restriction prohibits | 448 includes a restriction against inline JavaScript. This restriction prohibits |
489 both inline <code><script></code> blocks and inline event handlers (e.g.,
<code><button | 449 both inline <code><script></code> blocks and inline event handlers (e.g.,
<code><button |
490 onclick="..."></code>). See <a class="reference external" href="/e
xtensions/manifestVersion">Manifest Version</a> for | 450 onclick="..."></code>). See <a class="reference external" href="/e
xtensions/manifestVersion">Manifest Version</a> for |
491 a list of changes between version 1 and version 2 of the manifest file | 451 a list of changes between version 1 and version 2 of the manifest file |
492 format, and a support schedule for applications that use version 1.</li> | 452 format, and a support schedule for applications that use version 1.</li> |
493 </ul> | 453 </ul> |
494 </section><section id="id17"> | |
495 <h3 id="id17">PPAPI</h3> | 454 <h3 id="id17">PPAPI</h3> |
496 <ul class="small-gap"> | 455 <ul class="small-gap"> |
497 <li><a class="reference external" href="/native-client/pepper_stable/c/group___e
nums#ga21b811ac0484a214a8751aa3e1c959d9">PP_InputEvent_Modifier</a> | 456 <li><a class="reference external" href="/native-client/pepper_stable/c/group___e
nums#ga21b811ac0484a214a8751aa3e1c959d9">PP_InputEvent_Modifier</a> |
498 has two new enum values (_ISLEFT and _ISRIGHT).</li> | 457 has two new enum values (_ISLEFT and _ISRIGHT).</li> |
499 <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 | 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 |
500 been fixed.</li> | 459 been fixed.</li> |
501 </ul> | 460 </ul> |
502 </section></section><section id="pepper-22-22-august-2012"> | |
503 <h2 id="pepper-22-22-august-2012">Pepper 22 (22 August 2012)</h2> | 461 <h2 id="pepper-22-22-august-2012">Pepper 22 (22 August 2012)</h2> |
504 <p>The Pepper 22 bundle includes a <strong>command-line debugger</strong>, resou
rces to enable | 462 <p>The Pepper 22 bundle includes a <strong>command-line debugger</strong>, resou
rces to enable |
505 <strong>hosted development on Windows</strong>, and changes to the example Makef
iles (each | 463 <strong>hosted development on Windows</strong>, and changes to the example Makef
iles (each |
506 example now builds both a debug and a release version).</p> | 464 example now builds both a debug and a release version).</p> |
507 <section id="id18"> | |
508 <h3 id="id18">Tools</h3> | 465 <h3 id="id18">Tools</h3> |
509 <ul class="small-gap"> | 466 <ul class="small-gap"> |
510 <li>The SDK now includes a <strong>command-line debugger</strong> that you can u
se to debug | 467 <li>The SDK now includes a <strong>command-line debugger</strong> that you can u
se to debug |
511 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, | 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, |
512 nacl-gdb only works on 64-bit Windows, 64-bit Linux, and 32-bit Linux | 469 nacl-gdb only works on 64-bit Windows, 64-bit Linux, and 32-bit Linux |
513 systems. Support for Mac and 32-bit Windows systems will be added soon.</li> | 470 systems. Support for Mac and 32-bit Windows systems will be added soon.</li> |
514 </ul> | 471 </ul> |
515 </section><section id="id19"> | |
516 <h3 id="id19">Windows SDK</h3> | 472 <h3 id="id19">Windows SDK</h3> |
517 <ul class="small-gap"> | 473 <ul class="small-gap"> |
518 <li><p class="first">Developers using the Windows SDK can now <strong>build a mo
dule as a Pepper | 474 <li><p class="first">Developers using the Windows SDK can now <strong>build a mo
dule as a Pepper |
519 plugin</strong> (sometimes called a “trusted” or “in-process&#
8221; plugin) using the | 475 plugin</strong> (sometimes called a “trusted” or “in-process&#
8221; plugin) using the |
520 native C/C++ compiler on their development system. In essence this makes | 476 native C/C++ compiler on their development system. In essence this makes |
521 developing a Native Client module a two-step process:</p> | 477 developing a Native Client module a two-step process:</p> |
522 <ol class="arabic simple"> | 478 <ol class="arabic simple"> |
523 <li>Build the module into a DLL using your system’s C/C++ compiler. Test a
nd | 479 <li>Build the module into a DLL using your system’s C/C++ compiler. Test a
nd |
524 debug the DLL using the tools in your normal development environment.</li> | 480 debug the DLL using the tools in your normal development environment.</li> |
525 <li>Build the module into a .nexe using the compiler from one of the Native | 481 <li>Build the module into a .nexe using the compiler from one of the Native |
(...skipping 28 matching lines...) Expand all Loading... |
554 <strong>Note:</strong> It’s also possible to build a module as a trusted p
lugin on Mac and | 510 <strong>Note:</strong> It’s also possible to build a module as a trusted p
lugin on Mac and |
555 Linux systems, but doing so requires more work because the SDK does not yet | 511 Linux systems, but doing so requires more work because the SDK does not yet |
556 include the above resources (library source files and pre-built libraries) | 512 include the above resources (library source files and pre-built libraries) |
557 for Mac and Linux systems. To build and debug a trusted plugin on Mac and | 513 for Mac and Linux systems. To build and debug a trusted plugin on Mac and |
558 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 | 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 |
559 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> | 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> |
560 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>. | 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>. |
561 In the future, the SDK will include resources for hosted development on Mac | 517 In the future, the SDK will include resources for hosted development on Mac |
562 and Linux as well as Windows. | 518 and Linux as well as Windows. |
563 </aside> | 519 </aside> |
564 </section><section id="id20"> | |
565 <h3 id="id20">Examples</h3> | 520 <h3 id="id20">Examples</h3> |
566 <ul class="small-gap"> | 521 <ul class="small-gap"> |
567 <li>Each example in the SDK now builds both a debug and a release version. As | 522 <li>Each example in the SDK now builds both a debug and a release version. As |
568 before, most examples also build newlib and glibc versions, which means that | 523 before, most examples also build newlib and glibc versions, which means that |
569 there are now four versions for each example. Take a look at the Makefiles in | 524 there are now four versions for each example. Take a look at the Makefiles in |
570 the examples to see the compiler flags that are used for debug and release | 525 the examples to see the compiler flags that are used for debug and release |
571 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 | 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 |
572 different development scenarios</em></a>.</li> | 527 different development scenarios</em></a>.</li> |
573 <li>Comments have been added to common.js, which is used in all the examples. Th
e | 528 <li>Comments have been added to common.js, which is used in all the examples. Th
e |
574 JavaScript in common.js inserts an <embed> element that loads the NaCl mod
ule | 529 JavaScript in common.js inserts an <embed> element that loads the NaCl mod
ule |
575 in each example’s web page, attaches event listeners to monitor the loadin
g | 530 in each example’s web page, attaches event listeners to monitor the loadin
g |
576 of the module, and implements handleMessage() to respond to messages sent | 531 of the module, and implements handleMessage() to respond to messages sent |
577 from the NaCl module to the JavaScript side of the application</li> | 532 from the NaCl module to the JavaScript side of the application</li> |
578 </ul> | 533 </ul> |
579 </section><section id="id21"> | |
580 <h3 id="id21">PPAPI</h3> | 534 <h3 id="id21">PPAPI</h3> |
581 <ul class="small-gap"> | 535 <ul class="small-gap"> |
582 <li>The <code>CompletionCallbackFactory</code> class template now takes a thread
traits | 536 <li>The <code>CompletionCallbackFactory</code> class template now takes a thread
traits |
583 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 | 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 |
584 class template reference</a>.</li> | 538 class template reference</a>.</li> |
585 </ul> | 539 </ul> |
586 </section></section></section> | 540 </section> |
587 | 541 |
588 {{/partials.standard_nacl_article}} | 542 {{/partials.standard_nacl_article}} |
OLD | NEW |