Skip to content
Newer
Older
100644 83 lines (64 sloc) 1.51 KB
a0775df @benjaminoakes modified: Ruby-in-the-browser-with-NativeClient-(NaCl).md
benjaminoakes authored Oct 1, 2011
1 Intro
2 -----
3
4 * JS as a monopoly
5 * CoffeeScript?
6 * New TryRuby site
7 * gestalt -- let's you do `<script type="test/ruby"></script>`
8 * Uses MS's DLR
9 * Silverlight/IronRuby
10 * Unsure future
11
12 History
13 -------
14
15 * Netscape, mimetypes, NPAPI
16 * Standalone plugins
17 * Powerful, but security nightmare
1c46229 @benjaminoakes modified: Ruby-in-the-browser-with-NativeClient-(NaCl).md
benjaminoakes authored Oct 1, 2011
18
19 Chrome
20 ------
21
22 * Separate processes
23 * NaCl
24 * Pepper Bridge (PPAPI)
25 * Sandboxed plugins
26 * Native machine code
27
28 NaCl
29 ----
30
31 * Compile code with specialized toolchain (modified GCC)
32 * NaCl runtime verifies untrusted code (static analysis)
33 * Executes verified code
7fbc115 @benjaminoakes NaCl
benjaminoakes authored Oct 1, 2011
34 * Limited functionality. Can't fork, limited FS access, etc.
35 * Figures out your platform (x86, ARM, etc) over JSON
36
37 * You can talk via JavaScript using the Pepper API
38 * Listening for events
39 * Like WebWorkers
40 * Has simlar APIs to browsers
41 * Same priveledges as the JS runtime
42
43 naclports
44 ---------
45
46 * Can do pthreads (browsers are single threaded, but Chrome has separate processes)
47 * Lots of C/C++ libraries
48 * Video
49 * Native
50
51 * Need: Chrome ~9 (1 yr old) with nacl enabled
52 * Latest: 14
53 * http://nacl-quake.appspot.com/
54
55 Future of NaCl?
56 ---------------
57
58 * Cool, but...
59 * It's in the wild
60 * But getting replaced with PNaCl
61 * See chrome://plugins -- enabled in the Chrome Web Store (for Chrome apps)
62 * Long term vision? Maybe enabling outright
63
64 * Examples
65 * Netflix on the Chromebook
66 * Google app engine
67 * Exacycle -- for scientific computing
8beb0e5 @benjaminoakes modified: Ruby-in-the-browser-with-NativeClient-(NaCl).md
benjaminoakes authored Oct 1, 2011
68
69 PNaCl
70 -----
71
72 * Does LLVM bytecode!
73 * Fortran!
74 * PyPy
75 * Rubinius
76 * Objective-C
77
78 EMScripten
79 ----------
80
81 * LLVM to JavaScript
82 * http://repl.it
Something went wrong with that request. Please try again.