aboutsummaryrefslogtreecommitdiff
path: root/CAndC++.md
diff options
context:
space:
mode:
authorDan Gohman <sunfish@mozilla.com>2015-06-12 12:47:32 -0700
committerDan Gohman <sunfish@mozilla.com>2015-06-12 12:47:32 -0700
commit2d6c5e8ea5df26d82e75ee543466199a0309c134 (patch)
treecd20587053c8207c261cd0b455cfda2789c58cba /CAndC++.md
parent9fe8d0f4c0943787470b6db13f98f7b9344449cc (diff)
downloadnanowasm-design-2d6c5e8ea5df26d82e75ee543466199a0309c134.tar.gz
Add a note a about language support.
Diffstat (limited to 'CAndC++.md')
-rw-r--r--CAndC++.md21
1 files changed, 21 insertions, 0 deletions
diff --git a/CAndC++.md b/CAndC++.md
index b11a363..7ea4947 100644
--- a/CAndC++.md
+++ b/CAndC++.md
@@ -22,6 +22,27 @@ will enable an LP64 data model as well, meaning that `long` and pointer
types will be 64-bit, while `int` is 32-bit. From a C/C++ perspective,
this will be a separate mode from ILP32, with a separate ABI.
+### Language Support
+
+C and C++ language conformance is largely determined by individual compiler
+support, but WebAssembly includes all the functionality that popular C and C++
+compilers need to support high-quality implementations.
+
+While [the MVP](MVP.md) will be fully functional, additional features enabling
+greater performance will be added soon after, including:
+
+ * [Support for multi-threaded execution with shared memory](PostMVP.md#threads).
+
+ * [Zero-cost C++ exception handling](PostMVP.md#zero-cost-exception-handling).
+ C++ exceptions can be implemented without this, but this feature will
+ enable them to have lower runtime overhead.
+
+ * Support for [128-bit SIMD](PostMVP.md#fixed-width-SIMD). SIMD will be
+ exposed to C/C++ through auto-vectorization, explicit APIs such as
+ [this](http://clang.llvm.org/docs/LanguageExtensions.html#vectors-and-extended-vectors)
+ and [this](https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html),
+ and emulated APIs from other platforms such as `<xmmintrin.h>`.
+
### APIs
Libraries providing high-level C/C++ APIs such as the C and C++ standard