diff options
| author | Luke Wagner <mail@lukewagner.name> | 2015-06-12 09:41:02 -0500 |
|---|---|---|
| committer | Luke Wagner <mail@lukewagner.name> | 2015-06-12 09:46:16 -0500 |
| commit | ed9d5f66f35a9f95d6dde672fdc714e6dda1b984 (patch) | |
| tree | f843bef457707280a2ba3bbd6442657c4f69cefa | |
| parent | e8f1b6952ca1e3fda3fc3f2f9882b3da19b0bee8 (diff) | |
| download | nanowasm-design-ed9d5f66f35a9f95d6dde672fdc714e6dda1b984.tar.gz | |
Split doc into sections
| -rw-r--r-- | Portability.md | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/Portability.md b/Portability.md index 04fecb0..e83e24d 100644 --- a/Portability.md +++ b/Portability.md @@ -4,6 +4,8 @@ WebAssembly's [binary format](BinaryEncoding.md) is designed to be executable efficiently on a variety of operating systems and instruction set architectures, [on the Web](Web.md) and [off the Web](NonWeb.md). +## Execution + Execution environments which, despite [limited, local, non-determinism](Nondeterminism.md), don't offer the following characteristics may be able to execute WebAssembly modules @@ -38,15 +40,20 @@ characteristics: * An execution environment which offers forward progress guarantees to all threads of execution (even when executing in a non-parallel manner). +## API + WebAssembly does not specify any APIs or syscalls, only an [import mechanism](MVP.md#modules) where the set of available imports is defined by the host environment. In a [Web](Web.md) environment, functionality is accessed through the Web APIs defined by the -[Web Platform](https://en.wikipedia.org/wiki/Open_Web_Platform). Non-Web -environments can choose to implement standard Web APIs, standard non-Web APIs -(e.g. POSIX), or invent their own. Portability at the C/C++ level can, however, -still be achieved by programming to a standard API (e.g., POSIX) and relying -on the compiler and/or libraries to map the standard interface to the host -environment's available imports either -at compile-time (via `#ifdef`) or run-time (via [feature detection](FeatureTest.md) -and [dynamic loading](MVP.md#modules)). +[Web Platform](https://en.wikipedia.org/wiki/Open_Web_Platform). +[Non-Web](NonWeb.md) environments can choose to implement standard Web APIs, +standard non-Web APIs (e.g. POSIX), or invent their own. + +## Source-level + +Portability at the C/C++ level can be achieved by programming to +a standard API (e.g., POSIX) and relying on the compiler and/or libraries to map +the standard interface to the host environment's available imports either at +compile-time (via `#ifdef`) or run-time (via [feature detection](FeatureTest.md) +and dynamic [loading](MVP.md#modules)/[linking](FutureFeatures.md#dynamic-linking)). |
