From 12ee148fb5cfa33331dbffadae06752b1759a7bf Mon Sep 17 00:00:00 2001 From: Luke Wagner Date: Wed, 29 Apr 2015 15:11:28 -0500 Subject: 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. --- HighLevelGoals.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 HighLevelGoals.md (limited to 'HighLevelGoals.md') 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. + + -- cgit v1.2.3