summaryrefslogtreecommitdiff
path: root/chapter25/ROADMAP.md
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2026-10-19 14:56:14 -0700
committerCliff Click <cliffc@acm.org>2026-10-19 14:56:14 -0700
commit7edca9823ec8ef0aed10c88fa07ef969792aab77 (patch)
treed95e308cac7a9c5039a59be636d881982a9b4878 /chapter25/ROADMAP.md
parent3617495d8efbcce23bbc9f1754c7d27d34d30a52 (diff)
downloadSimple-7edca9823ec8ef0aed10c88fa07ef969792aab77.tar.gz
Simple-7edca9823ec8ef0aed10c88fa07ef969792aab77.zip
Split from ch25, SCCP and interprocedural SCCPmain
Diffstat (limited to 'chapter25/ROADMAP.md')
-rw-r--r--chapter25/ROADMAP.md20
1 files changed, 20 insertions, 0 deletions
diff --git a/chapter25/ROADMAP.md b/chapter25/ROADMAP.md
index 966bf8e9..b5647587 100644
--- a/chapter25/ROADMAP.md
+++ b/chapter25/ROADMAP.md
@@ -487,6 +487,26 @@ Mutable fields may have static initial contents without becoming constants.
Choose read-only storage only when no runtime writes remain. Static reference
cycles can use relocations without requiring a dynamic initialization cycle.
+For a wholly immutable, pre-initialized class, eliminate the mutable `$init`
+state as well as the checks so the class image can reside in ROM. The native
+function thunks preserve static initialization of function fields.
+
+### Compact code and data arenas
+
+Keep four-byte Simple references into bounded code and data arenas; the arenas
+need not overlap or live near zero. Choose absolute addresses versus offsets
+from an arena base when implementing placement and indirect calls. Native
+function thunks can occupy the code arena while native libraries live elsewhere.
+The current thunk implementation uses the existing low-address executable;
+ordinary data pointers still occupy eight bytes.
+
+Give full-width native pointers separate types and foreign lifetime contracts.
+Opaque device addresses may need to be passed through without CPU dereference.
+Simple object lifetimes should be managed automatically without a GC;
+ownership, borrowing, cycles, and native retention still need design. Compact
+storage alone does not establish those rules. Preserve static class images and
+explicit native boundary conversions when choosing the arena representation.
+
### CFG frequency estimates
After lowering and loop-tree construction, estimate block frequencies for GCM