diff options
| author | Luke Wagner <mail@lukewagner.name> | 2015-04-29 15:11:28 -0500 |
|---|---|---|
| committer | Luke Wagner <mail@lukewagner.name> | 2015-04-29 15:11:28 -0500 |
| commit | 12ee148fb5cfa33331dbffadae06752b1759a7bf (patch) | |
| tree | f8830f366090492da3b797c99a77351ad43bcb02 /HighLevelGoals.md | |
| parent | 1aff6a5eacd342f3d0e6ce37d2a7a2d2c7e5ad10 (diff) | |
| download | nanowasm-design-12ee148fb5cfa33331dbffadae06752b1759a7bf.tar.gz | |
Create HighLevelGoals.md
This high-level design goal list has been passed around and generally agreed upon, so I'll put it up. Of course we can continue to discuss and iterate in issues.
Diffstat (limited to 'HighLevelGoals.md')
| -rw-r--r-- | HighLevelGoals.md | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/HighLevelGoals.md b/HighLevelGoals.md new file mode 100644 index 0000000..5c454ed --- /dev/null +++ b/HighLevelGoals.md @@ -0,0 +1,16 @@ +# WebAssembly High-Level Design Goals + +1. Define a portable, size- and load-time-efficient binary format to serve as a web compilation target. +2. Define a human-editable text format that is isomorphic and convertible to/from the binary format. +3. Design v.1 to allow an effective (load-time and performance) [polyfill](https://github.com/WebAssembly/polyfill) via client-side compilation to [asm.js](http://asmjs.org). +4. Design v.1 as a Minimum Viable Product: basically what you can do with [asm.js](http://asmjs.org). +5. Design to integrate well with the existing web platform: + * execute in the same semantic universe as JavaScript; + * allow synchronous calls to and from JavaScript; + * enforce the same-origin security policy; and + * access browser functionality through the same Web APIs that are accessible to JavaScript. +6. Design to maintain the versionless, feature-testing and backwards-compatible evolution story + of the web; engines should not need multiple, versioned decoders. +7. Design to allow execution in non-browser environments. + + |
