aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJF Bastien <github@jfbastien.com>2015-06-04 17:36:36 -0700
committerJF Bastien <github@jfbastien.com>2015-06-04 17:36:36 -0700
commit8eff2a4768fd5f8a1506c2b3d48294d7abb73004 (patch)
tree43372ff90e735cfecd44e401946fedb9543b3c5a
parenta6272b1c5d7219bd1ba8e6452ac0b905a2e95acf (diff)
parent0b450fe855ab25cde82ba10c78e2139e75df8b94 (diff)
downloadnanowasm-design-8eff2a4768fd5f8a1506c2b3d48294d7abb73004.tar.gz
Merge pull request #113 from WebAssembly/feature-test
Add a new feature test section, link to it.
-rw-r--r--EssentialPostMVPFeatures.md3
-rw-r--r--FeatureTest.md11
-rw-r--r--FutureFeatures.md2
-rw-r--r--HighLevelGoals.md12
4 files changed, 20 insertions, 8 deletions
diff --git a/EssentialPostMVPFeatures.md b/EssentialPostMVPFeatures.md
index 03ce2b2..aea0a35 100644
--- a/EssentialPostMVPFeatures.md
+++ b/EssentialPostMVPFeatures.md
@@ -4,7 +4,8 @@ This is a list of essential features that are known to be needed ASAP, but were
removed from [the MVP](MVP.md) since there was not (yet) a portably-efficient
polyfill via JavaScript. There is a much bigger
[list of features](FutureFeatures.md) that will be added after this list,
-prioritized by feedback and experience.
+prioritized by feedback and experience. These features will be available under
+[feature tests](FeatureTest.md).
## Threads
* Provide low-level buildings blocks for pthreads-style shared memory: shared memory,
diff --git a/FeatureTest.md b/FeatureTest.md
new file mode 100644
index 0000000..f9877dc
--- /dev/null
+++ b/FeatureTest.md
@@ -0,0 +1,11 @@
+# Feature Test
+
+Any feature not present in [the MVP](MVP.md) will have a corresponding feature
+test. This allows polyfills to elegantly emulate a feature, and allows
+developers to fallback to another implementation if they so desire.
+
+Feature tests will be available from WebAssembly itself, as well as from
+JavaScript.
+
+Details
+[are still be hashed out](https://github.com/WebAssembly/spec/issues/90).
diff --git a/FutureFeatures.md b/FutureFeatures.md
index 30ee03e..f33bc58 100644
--- a/FutureFeatures.md
+++ b/FutureFeatures.md
@@ -5,7 +5,7 @@ These are features that make sense in the context of the
of the [Minimum Viable Product](MVP.md) or the
[essential post-MVP feature set](EssentialPostMVPFeatures.md) which are expected
to be standardized immediately after the MVP. These will be prioritized based on
-developer feedback.
+developer feedback, and will be available under [feature tests](FeatureTest.md).
## Great tooling support
This is covered in the [tooling](Tooling.md) section.
diff --git a/HighLevelGoals.md b/HighLevelGoals.md
index 56c1bdb..66a2bca 100644
--- a/HighLevelGoals.md
+++ b/HighLevelGoals.md
@@ -4,7 +4,7 @@
to serve as a compilation target which can be compiled to execute at native
speed by taking advantage of common hardware capabilities.
2. Specify and implement incrementally:
- * design [the MVP](MVP.md) of the standard as a Minimum Viable Product with
+ * design [a Minimum Viable Product (MVP)](MVP.md) for the standard with
roughly the same functionality as [asm.js](http://asmjs.org);
* ship an effective and efficient [polyfill](Polyfill.md) library for the
MVP that translates WebAssembly code into JavaScript in the client so that
@@ -12,12 +12,12 @@
* ship a follow-up to the MVP which adds several more
[essential features](EssentialPostMVPFeatures.md); and
* continue to iteratively specify [additional features](FutureFeatures.md),
- prioritized by feedback and experience, including support for languages other
- than C/C++.
+ prioritized by feedback and experience, including support for languages
+ other than C/C++.
3. Design to execute within and integrate well with the *existing* Web platform:
- * maintain the versionless, feature-tested and
- [backwards-compatible](BinaryEncoding.md#backwards-compatibility) evolution
- story of the Web;
+ * maintain the versionless, [feature-tested](FeatureTest.md) and
+ [backwards-compatible](BinaryEncoding.md#backwards-compatibility)
+ evolution story of the Web;
* execute in the same semantic universe as JavaScript;
* allow synchronous calls to and from JavaScript;
* enforce the same-origin and permissions security policies;