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