summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorTaylan Kammer <taylan.kammer@gmail.com>2026-09-23 14:17:34 +0200
committerTaylan Kammer <taylan.kammer@gmail.com>2026-09-23 14:17:34 +0200
commit6137e91c4a582417c519d19f9e903776b7d9fd04 (patch)
tree8b0253c475b6feb726b4115f9e234a827ec4b65f /doc
parent470bcb1b7a34c5eb95c95f1b01343740d459d42c (diff)
Meta Alloc size classes start at 256.
Diffstat (limited to 'doc')
-rw-r--r--doc/0/A-meta_alloc.md14
1 files changed, 7 insertions, 7 deletions
diff --git a/doc/0/A-meta_alloc.md b/doc/0/A-meta_alloc.md
index 85c704c..7383ec2 100644
--- a/doc/0/A-meta_alloc.md
+++ b/doc/0/A-meta_alloc.md
@@ -104,14 +104,14 @@ Zisp runtime, that the operating system reports that the process is
using hundreds of gigabytes of virtual memory, do not panic; it's a
feature, not a bug, and completely benign.
-As for the size classes: They simply go from 128 bytes to 4 MiB in
-perfect powers of two; in other words, from 2^7 to 2^22. There are
-certain benefits to using exact powers of two, and 128 bytes - 4 MiB
+As for the size classes: They simply go from 256 bytes to 8 MiB in
+perfect powers of two; in other words, from 2^8 to 2^23. There are
+certain benefits to using exact powers of two, and 256 bytes - 8 MiB
seems like a reasonable range. Code using Meta Alloc must be aware
that only these size classes are supported, and try to make optimal
use of them.
-**WARNING:** Calling `alloc()` with a size smaller than 128 or one
+**WARNING:** Calling `alloc()` with a size smaller than 256 or one
that is not a perfect power of two will lead to catastrophic bugs
under optimized builds of Zisp.
@@ -218,11 +218,11 @@ values used by the implementation are as follows:
* Maximum count: 16 Indexes
-* Smallest size class: 128 bytes
+* Smallest size class: 256 bytes
The extra Index array starts after 64 bytes, and requires 64 bytes,
-since it stores up to 16 32-bit integers; that's a total size of 128,
-which fits exactly into the smallest size.
+since it stores up to 16 32-bit integers; that's a total size of 256,
+which fits into the smallest size.
The 64-byte padding is to allow for efficient bulk memory transfer
using up to 512-bit SIMD instructions on modern processors.