| 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 |