aboutsummaryrefslogtreecommitdiff
path: root/Rationale.md
diff options
context:
space:
mode:
authorBen L. Titzer <titzer@google.com>2015-11-02 16:20:25 -0800
committerBen L. Titzer <titzer@google.com>2015-11-02 16:20:25 -0800
commitb890cbdf35ef3ec70f87fcb52964c2f18e6a4b3f (patch)
tree15eb4ae70aae6a226004544cab3dcc3cc5430573 /Rationale.md
parent542c1623990c20c30fb363b667b48a09b5f27567 (diff)
downloadnanowasm-design-b890cbdf35ef3ec70f87fcb52964c2f18e6a4b3f.tar.gz
Fix the WebAssembly page size at 64KiB.
Diffstat (limited to 'Rationale.md')
-rw-r--r--Rationale.md14
1 files changed, 10 insertions, 4 deletions
diff --git a/Rationale.md b/Rationale.md
index 602f5bd..744c95b 100644
--- a/Rationale.md
+++ b/Rationale.md
@@ -106,10 +106,16 @@ tradeoffs.
## Resizing
-Implementations provide a `page_size` operator which allows them to efficiently
-map the underlying OS's capabilities to the WebAssembly application, as well as
-to communicate their own implementation details in a useful manner to the
-developer.
+To allow efficient virtual-memory based techniques for bounds checking, memory
+sizes are required to be page-aligned.
+For portability across a range of CPU architectures and operating systems,
+WebAssembly defines a fixed page size.
+Programs can depend on this fixed page size and still remain portable across all
+WebAssembly engines which employ efficient virtual memory techniques for bounds\
+checking.
+64KiB represents the least common multiple of many platforms and CPUs.
+In the future, WebAssembly may offer the ability to use larger page sizes on
+some platforms for increased TLB efficiency.
## Linear memory disabled if no linear memory section