From de455af1cd7e94e5940262f1511b1be5fc8dc1a3 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Tue, 2 Jun 2015 02:08:59 -0700 Subject: Tighten up the language about observable differences between implementations. --- IncompletelySpecifiedBehavior.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'IncompletelySpecifiedBehavior.md') diff --git a/IncompletelySpecifiedBehavior.md b/IncompletelySpecifiedBehavior.md index f566aba..2bdf9d2 100644 --- a/IncompletelySpecifiedBehavior.md +++ b/IncompletelySpecifiedBehavior.md @@ -2,9 +2,9 @@ WebAssembly is a sandboxed platform. Applications can't access data outside the sandbox without going through appropriate APIs, or otherwise escape the sandbox, even if the behavior inside the sandbox should ever be unspecified in any way. -Beyond that, it is desirable to minimize observable differences between implementations when practical, so that applications don't inadvertently become dependent on any particular implementation's behavior. However, in some areas, performance concerns make this prohibitively expensive, so some compromises are made. +Beyond that, WebAssembly minimizes observable differences between implementations, to reduce the risk of applications becoming dependent on any particular implementation's behavior. However, occasionally compromises are made due to performance concerns, listed below. -Also, there is a general preference against [nasal demons](https://en.wikipedia.org/w/index.php?title=Nasal_demons), since they are an extreme on the spectrum of observable differences, and since they make it difficult to reason about what state an application might be in. WebAssembly usually prefers to [trap](AstSemantics.md). Otherwise, it is generally preferred to have a specific set of possible behaviors rather than nasal demons. And presently, WebAssembly has no nasal demons. +In particular, WebAssembly has no [nasal demons](https://en.wikipedia.org/w/index.php?title=Nasal_demons), since they are an extreme on the spectrum of observable differences, and since they make it difficult to reason about what state an application might be in. WebAssembly prefers to [trap](AstSemantics.md) when feasible, and otherwise it permits a specific set of possible conforming behaviors. The following is a list of the places where the WebAssembly specification currently admits or is expected to admit multiple possible behaviors. -- cgit v1.2.3