OLD | NEW |
1 .. _io2014: | 1 .. _io2014: |
2 | 2 |
3 ################### | 3 ################### |
4 Building a NaCl App | 4 Building a NaCl App |
5 ################### | 5 ################### |
6 | 6 |
7 In the browser! | 7 In the browser! |
8 --------------- | 8 --------------- |
9 | 9 |
10 Follow along with Brad Nelson's Google I/O 2014 talk. | 10 Follow along with Brad Nelson's Google I/O 2014 talk. |
11 Explore our new in-browser development environment and debugger. | 11 Explore our new in-browser development environment and debugger. |
12 | 12 |
13 Learn how easy it is to edit, build, and debug NaCl application | 13 Learn how easy it is to edit, build, and debug NaCl application |
14 all in your desktop web browser or on a Chromebook. | 14 all in your desktop web browser or on a Chromebook. |
15 Work either on-line or off-line! | 15 Work either on-line or off-line! |
16 | 16 |
17 .. raw:: html | 17 .. raw:: html |
18 | 18 |
19 <iframe class="video" width="500" height="281" | 19 <iframe class="video" width="500" height="281" |
20 src="//www.youtube.com/embed/OzNuzBDEWzk?rel=0" frameborder="0"></iframe> | 20 src="//www.youtube.com/embed/OzNuzBDEWzk?rel=0" frameborder="0"></iframe> |
21 | 21 |
22 Work in Progress | 22 .. include:: nacldev/web_tools_note.inc |
23 ================ | |
24 | |
25 These development tools are a work in progress, see `Feature Status`_. | |
26 At this point, they are a learning tool and demonstration of NaCl's | |
27 flexibility, but are not the recommended tools for a production application. | |
28 To develop a substantial application for Native Client / | |
29 Portable Native Client, | |
30 we currently recommend you use the | |
31 `Native Client SDK </native-client/sdk/download>`_. | |
32 | |
33 .. raw:: html | |
34 | |
35 <b><font color="#880000"> | |
36 NOTE: The NaCl Development Environment is not yet stable. | |
37 Ideally user data is preserved, but currently it can be lost during updates | |
38 or sporadically. We're working to resolve this. | |
39 </font></b> | |
40 | 23 |
41 Installation | 24 Installation |
42 ============ | 25 ============ |
43 | 26 |
44 The setup process currently requires several steps. | 27 The setup process currently requires several steps. |
45 We're working to reduce the number of steps in future releases. | 28 We're working to reduce the number of steps in future releases. |
46 As the process gets easier, we'll update this page. | 29 As the process gets easier, we'll update this page. |
47 | 30 |
48 To install the development environment: | 31 To install the development environment: |
49 | 32 |
(...skipping 17 matching lines...) Expand all Loading... |
67 * Install `Native Client GDB <https://chrome.google.com/webstore/detail/gdb/gk
joooooiaohiceibmdleokniplmbahe>`_. | 50 * Install `Native Client GDB <https://chrome.google.com/webstore/detail/gdb/gk
joooooiaohiceibmdleokniplmbahe>`_. |
68 | 51 |
69 * Navigate to: chrome://flags and: | 52 * Navigate to: chrome://flags and: |
70 | 53 |
71 * Enable **Native Client GDB-based debugging**. | 54 * Enable **Native Client GDB-based debugging**. |
72 * Restart your browser by clicking **Relaunch Now**. | 55 * Restart your browser by clicking **Relaunch Now**. |
73 | 56 |
74 * NOTE: If you experience unexplained hangs, disable GDB-based debugging | 57 * NOTE: If you experience unexplained hangs, disable GDB-based debugging |
75 temporarily and try again. | 58 temporarily and try again. |
76 | 59 |
77 Editor | |
78 ====== | |
79 | 60 |
80 To follow along in this tutorial, you'll need to use a text editor to modify | 61 .. include:: nacldev/editing.inc |
81 various files in our development environment. | |
82 There are currently two editor options, nano or vim. | |
83 Emacs is coming soon... | |
84 If you're unsure what to pick, nano is simpler to start with and has on-screen | |
85 help. | |
86 | 62 |
87 * You can open **nano** like this:: | 63 .. include:: nacldev/git.inc |
88 | 64 |
89 $ nano <filename> | |
90 | |
91 Here's an online `nano tutorial <http://mintaka.sdsu.edu/reu/nano.html>`_. | |
92 | |
93 * You can open **vim** like this:: | |
94 | |
95 $ vim <filename> | |
96 | |
97 Here's an online `vim tutorial <http://www.openvim.com/tutorial.html>`_. | |
98 | |
99 | |
100 Git Setup | |
101 ========= | |
102 | |
103 This tutorial also uses a revision control program called | |
104 `git <http://en.wikipedia.org/wiki/Git_(software)>`_. | |
105 In order to commit to a git repository, | |
106 you need to setup your environment to with your identity. | |
107 | |
108 You'll need to add these lines to `~/.bashrc` to cause them to be invoked each | |
109 time you start the development environment. | |
110 :: | |
111 | |
112 git config --global user.name "John Doe" | |
113 git config --global user.email johndoe@example.com | |
114 | |
115 You can reload you `~/.bashrc` by running: | |
116 :: | |
117 | |
118 source ~/.bashrc | |
119 | 65 |
120 Tour (follow the video) | 66 Tour (follow the video) |
121 ======================= | 67 ======================= |
122 | 68 |
123 Create a working directory and go into it:: | 69 Create a working directory and go into it:: |
124 | 70 |
125 $ mkdir work | 71 $ mkdir work |
126 $ cd work | 72 $ cd work |
127 | 73 |
128 Download a zip file containing our sample:: | 74 Download a zip file containing our sample:: |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 | 196 |
251 $ make serve | 197 $ make serve |
252 | 198 |
253 Thanks | 199 Thanks |
254 ====== | 200 ====== |
255 | 201 |
256 Thanks for checking out our environment. | 202 Thanks for checking out our environment. |
257 Things are rapidly changing and in the coming months you can expect to see | 203 Things are rapidly changing and in the coming months you can expect to see |
258 further improvements and filling out of our platform and library support. | 204 further improvements and filling out of our platform and library support. |
259 | 205 |
260 Check back at this page for the latest status. | 206 Follow the status of the NaCl Dev Environment at `this page <naclenv>`_. |
261 | |
262 Feature Status | |
263 ============== | |
264 | |
265 Here is a summary of feature status. We hope to overcome these limitations | |
266 in the near future: | |
267 | |
268 * NaCl Development Environment | |
269 | |
270 * General | |
271 | |
272 * Supported: | |
273 | |
274 * Python (built-in) | |
275 * GCC w/ GLibC (x86-32 and x86-64 only) | |
276 * Lua (install with: `package -i lua && . setup-environment`) | |
277 * Ruby (install with: `package -i ruby && . setup-environment`) | |
278 * Nethack! (install with: `package -i nethack && . setup-environment`) | |
279 | |
280 * Unsupported: | |
281 | |
282 * Targeting Newlib | |
283 * Targeting PNaCl | |
284 * Forking in bash | |
285 * Pipes / Redirection | |
286 * Symbolic and hard links | |
287 | |
288 * Missing / broken on ARM: | |
289 | |
290 * Git (broken) | |
291 * GCC (unsupported) | |
292 | |
293 * Debugger | |
294 | |
295 * Runs reliably only on a recent Beta or Dev Channel (M36+) build. | |
296 * Currently unreliable on some platforms: | |
297 | |
298 * ChromeOS | |
299 * Mac OSX | |
300 * Windows | |
OLD | NEW |