aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Wagner <mail@lukewagner.name>2015-04-29 15:11:28 -0500
committerLuke Wagner <mail@lukewagner.name>2015-04-29 15:11:28 -0500
commit12ee148fb5cfa33331dbffadae06752b1759a7bf (patch)
treef8830f366090492da3b797c99a77351ad43bcb02
parent1aff6a5eacd342f3d0e6ce37d2a7a2d2c7e5ad10 (diff)
downloadnanowasm-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.md16
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.
+
+