diff options
| author | Ben L. Titzer <titzer@google.com> | 2015-11-02 16:20:25 -0800 |
|---|---|---|
| committer | Ben L. Titzer <titzer@google.com> | 2015-11-02 16:20:25 -0800 |
| commit | b890cbdf35ef3ec70f87fcb52964c2f18e6a4b3f (patch) | |
| tree | 15eb4ae70aae6a226004544cab3dcc3cc5430573 /Rationale.md | |
| parent | 542c1623990c20c30fb363b667b48a09b5f27567 (diff) | |
| download | nanowasm-design-b890cbdf35ef3ec70f87fcb52964c2f18e6a4b3f.tar.gz | |
Fix the WebAssembly page size at 64KiB.
Diffstat (limited to 'Rationale.md')
| -rw-r--r-- | Rationale.md | 14 |
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 |
